Историческая справка


Историю возникновения операционной системы UNIX часто можно встре­тить во многих книгах, поэтому здесь она приводится лишь схематично — ос­новные этапы развития изображены на рис. 2.14, взятом из [SALU94].9

Изначально операционная система UNIX была разработана компанией Bell Labs и запущена в эксплуатацию в 1970 году на системе PDP-7. Некоторые со­трудники Bell Labs принимали участие также в работе над системой разделения времени, выполняемой в рамках проекта MAC в Массачусетском технологиче­ском институте. В результате выполнения этого проекта возникла операционная система CTSS, а затем Multics. Хотя часто говорят, что система UNIX — это уменьшенная версия Multics, сами разработчики UNIX утверждали, что на них в большей степени повлияла работа над CTSS [RITC78b]. Тем не менее в системе UNIX воплощено много идей, позаимствованных от Multics.

В результате разработки системы UNIX в компании Bell Labs, а впоследст­вии — и в других местах, появились различные версии этой операционной сис­темы. Первой значительной вехой стал перенос системы UNIX с PDP-7 на PDP-
11. Это послужило первым указанием на тот факт, что система UNIX может
быть использована в качестве операционной системы на всех компьютерах. Вторым важным этапом развития этой системы стало то, что она была переписана
на языке программирования С. Для того времени это было неслыханно. Считалось, что такая сложная программа, какой является операционная система, для которой важным параметром является время ее работы, должна быть написана только на языке ассемблера. Реализация на языке С продемонстрировала пре­имущество языка программирования высокого уровня если не для всех, то для подавляющего большинства фрагментов системного кода. В настоящее время почти все реализации операционной системы UNIX написаны на С.

Ранние версии UNIX были очень популярны в пределах компании Bell Labs. В 1974 году система UNIX была впервые описана в техническом журнале [RITC74], что вызвало к ней большой интерес. Лицензии на UNIX были предоставлены ком­мерческим организациям и университетам. Версия 6 этой системы, появившаяся в 1976 году, стала первой широко используемой за пределами Bell Labs версией.

 

Рис. 2.14. История развития системы UNIX

 

Следующая версия, версия 7, выпущенная в 1978 году, стала прототипом большинства современных систем UNIX. Наиболее важные системы, не являющиеся продуктами фирмы AT&T, были разработаны в Калифорнийском университете в Беркли и полу­чили название UNIX BSD; они эксплуатировались на машинах PDP и VAX. Фирма AT&T доработала и улучшила эти системы. В 1982 году компания Bell Labs скомби­нировала несколько вариантов системы UNIX фирмы AT&T в единую систему, кото­рая появилась в продаже под названием UNIX System III. Впоследствии к этой опе­рационной системе было добавлено несколько новых возможностей, в результате че­го появилась система UNIX System V.

Описание

 

Рис. 2.15 дает общее представление об архитектуре системы UNIX. Лежащее в основе аппаратное обеспечение окружено программным обеспечением операционной системы. Операционную систему часто называют системным ядром или просто ядром, чтобы подчеркнуть ее изолированность от пользователя и приложений. Именно эта часть системы UNIX будет представлять для нас интерес в данной книге. Однако UNIX снабжается различными пользовательскими сервисами и интерфейса­ми, которые рассматриваются как часть этой системы. Их можно сгруппировать в оболочку, интерфейс и компоненты компилятора С (компилятор, ассемблер, загруз­чик). Внешний по отношению к этой части системы уровень состоит из приложений пользователя и интерфейса компилятора С.

 

 

Рис. 2.15. Общая архитектура системы UNIX

 

Рис. 2.16 дает более полное представление о системе. Программы пользова­теля могут вызывать сервисы операционной системы непосредственно либо с по­мощью библиотечных программ. Интерфейс системных вызовов позволяет про­граммам высших уровней получить доступ к определенным функциям ядра. Нижние уровни операционной системы содержат простые программы, которые непосредственно взаимодействуют с аппаратным обеспечением.

 

Рис. 2.16. Ядро традиционной системы UNIX [BACH86]

 

Между этими уровнями находятся компоненты системы; их можно разделить на две основные части, одна из которых относится к управлению процессами, а другая — к вво­ду-выводу. Подсистема управления процессами отвечает за управление памятью, распределение ресурсов между процессами, диспетчеризацию, синхронизацию и за взаимодействие разных процессов. Файловая система производит обмен дан­ными между памятью и внешними устройствами либо в виде потоков символов, либо в виде блоков с использованием различных драйверов устройств. Поблоч­ная передача данных осуществляется с участием дискового кэша — системного буфера основной памяти, являющегося промежуточным звеном между адресным пространством пользователя и внешним устройством

В этом разделе рассказывается о тех системах UNIX, которые можно назвать традиционными; в [VAHA96] этот термин используется, когда речь идет о System V Release 3 (SVR3), 4.3BSD и более ранних версиях. Ниже приведены общие положения, касающиеся традиционных систем UNIX. Они предназначены для работы на однопроцессорных системах и не обладают достаточной возможностью по защите своих структур данных от одновременного доступа при работе на нескольких процессорах. Их ядра не слишком разносторонни; они поддерживают один тип файловой системы, стратегии распределения ресурсов между процессами и формата исполняемых файлов. Ядро традиционной системы UNIX не является наращиваемым, в нем мало возможностей повторного использования кода. Все это приводило к тому, что при добавлении в очередных версиях UNIX новых возможностей приходи­лось в больших количествах писать новый код. В результате ядро оказыва­лось громоздким и немодульным.

 

 



Дата добавления: 2016-06-05; просмотров: 1520;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.