UNIX u LINUX


История UNIX начиналась в 60-е гг. прошлого столетия, когда сотрудник лаборатории Bell Labs крупнейшей телекоммуникацион­ной компании в мире AT&T Кен Томпсон написал на ассемблере операционную систему, которая в шутку была названа UNICS (UNiplexed Information and Computing Service - примитивная инфор­мационная и вычислительная служба). Впоследствии написание этого слова стало короче, превратившись в UNIX. Однако переписывать всю систему на ассемблере заново для каждой новой машины дело трудное, поэтому Томпсон решил переписать UNIX на языке высо­кого уровня, который он сам специально разработал и назвал язы­ком В. Но язык В оказался слабым, в первую очередь, из-за отсут­ствия в нем структур данных. Тогда коллега Томпсона Ритчи разработал следующий язык, явившийся преемником языка В, который, естественно, получил название С. Вместе Томпсон и Ритчи переписали UNIX на С. Язык С оказался как раз тем языком, который и был нужен в то время, и он сохраняет лидирующие позиции в области системного программирования до сих пор. За работу по созданию ОС UNIX Ритчи и Томпсону ассоциацией по вычислитель­ной технике АСМ была присуждена престижная премия Тьюринга. Многие университеты старались получить копию системы UNIX.

Операционная система UNIX поставлялась с полным комплектом исходных текстов, поэтому владельцы системы могли совершенствовать ее. Новые идеи и усовершенствования системы распространялись быстро.

Version 7 (по номеру издания руководства программиста) стала первой переносимой на другие платформы версией операционной     системы UNIX. На Version 7 выросло целое поколение студентов, которые содействовали распространению UNIX. К середине 80-х гг. ОС       UNIX широко применялась на мини-компьютерах и рабочих станциях различных производителей. Многие компании даже приобрели      лицензии на исходные тексты, чтобы производить свои версии системы UNIX. Одной из таких компаний была небольшая начинающая фирма Microsoft, в течение нескольких лет продававшая Version 7 под  именем XENIX, пока ее интересы не повернулись в другую сторону.

В 1984 г. компания AT&T выпустила на рынок первый коммерческий вариант системы UNIX, System III. Через год она была заменена улучшенной версией, System V. Оригинальную систему System V сменили выпуски 2, 3 и 4 все той же System V. Каждый последующий выпуск был более сложным и громоздким, чем предшествующий. В процессе усовершенствований оригинальная идея, лежащая в основе системы UNIX, заключающаяся в простоте и элегантности системы, была в значительной мере утрачена.

Калифорнийский университет в Беркли был одним из многих университетов, приобретших UNIX. Он разработал и выпустил улуч­шенные версий операционной системы, которые содержали большое количество усовершенствований. Важнейшими из них были использование виртуальной памяти и страничная подкачка файлов, что позволяло создавать программы, большие по размеру, чем физическая память. Другое изменение заключалось в поддержке имен файлов длиной более 14 символов. Реализация файловой системы также была изменена, благодаря чему работа с файловой системой стала существенно быстрее. Более надежной стала обработка сигналов. В 4-й версии Berkeley UNIX появилась поддержка сетей, в результате чего используемый протокол TCP/IP стал стандартом де-факто в мире UNIX, а позднее и в Internet, в котором преобладают серверы на базе системы UNIX. Университет в Беркли также добавил значительное ко­личество утилит для системы UNIX, включая компиляторы с языков Pascal и Lisp. Все эти усовершенствования привели к тому, что мно­гие производители компьютеров стали основывать свои версии сис­темы UNIX на Berkeley UNIX, а не на официальной версии компании AT&T, System V. В результате Berkeley UNIX получила широкое рас­пространение в академических и исследовательских кругах.

Для того, чтобы система UNIX могла быть гарантированно за­пущена на любой машине, к концу 80-х при содействии Совета по стандартам Standard Boards при Институте инженеров по электротех­нике и электронике IEEE была предпринята попытка объединить варианты системы. В этой работе приняли участие сотни людей из промышленных, академических и правительственных организаций. Коллективное название проекта — POSIX. Первые три буквы этого сокращения означали Portable Operating System — переносимая опе­рационная система. Буквы IX были добавлены, чтобы имя проекта выглядело юниксообразно. Комитет POSIX выработал стандарт, из­вестный как 1003.1. Этот стандарт определяет набор библиотечных процедур, которые должна предоставлять каждая соответствующая данному стандарту система UNIX, таким образом, гарантируя, что эта программа будет работать на любой версии системы, поддерживаю­щей данный стандарт.

Все системы, созданные разными разработчиками, большие и сложные, что противоречит оригинальной идее, лежавшей в основе UNIX. Поэтому исходные тексты систем понять одному человеку просто не под силу. В 1987 г. Эндрю Таненбаум написал на ассемб­лере новую юниксоподобную систему MJNIX, достаточно небольшую, чтобы ее можно было понять, с доступным полным исходным тек­стом для использования в учебных целях. Система функционально практически эквивалентна системе Version 7 UNIX, бывшей оплотом большинства факультетов кибернетики.

Система MINIX была одной из первых юниксообразных систем, основанных на схеме микроядра. Идея микроядра заключается в том, чтобы реализовать как можно меньше функций в ядре, в результате чего можно создать надежное и эффективное ядро. Задачи управле­ния памятью и файловой системой были перемещены в процессы пользователя. Ядро обрабатывало передачу сообщений между процес­сами, не занимаясь другими задачами. По техническим причинам, связанным с архитектурой процессора Intel 8088, драйверы устройств ввода-вывода также были размещены в ядре. Файловая система и менеджер памяти работали как два раздельных пользовательских про­цесса.

Преимущество микроядер перед монолитными системами заклю­чается в том, что устройство микроядра легко понять, и поддержка системы, основанной на микроядре,: проще благодаря модульной структуре такой системы. Кроме того, перемещение программного обеспечения из ядра в пространство пользователя существенно по­вышает надежность системы, так как сбой процесса, работающего в режиме пользователя, способен нанести меньший ущерб, чем сбой компонента в режиме ядра. Основной недостаток состоит в несколько меньшей производительности, связанной с дополнительными пере­ключениями из режима пользователя в режим ядра. На всех совре­менных системах UNIX оконная система X Windows работает в ре­жиме пользователя, в результате чего производительность несколько снижается, зато достигается большая модульность (в отличие от си­стемы Windows, у которой весь графический интерфейс пользовате­ля расположен в ядре).

В 1991 г. финский студент Линус Торвальдс написал еще один клон системы UNIX, который назвал Linux. Это должна была быть полноценная операционная система, со многими функциями, отсут­ствующими в системе MINIX. Она заимствовала некоторые идеи системы M1NIX, начиная со структуры дерева исходных текстов и кончая структурой файловой системы. Однако, в отличие от микро­ядерной системы MINIX, Linux была монолитной системой, т.е. вся ОС помещалась в ядре. Размер исходного текста приблизительно совпадал с версией MINIX. Функционально первая версия Linux так­же практически почти не отличалась от MINIX.

Операционная система Linux быстро росла в размерах и впо­следствии развилась в полноценный клон UNIX с виртуальной па­мятью, более сложной файловой системой и многими другими до­бавленными функциями. Она была перенесена на другие платформы и теперь работает на широком спектре машин, как и UNIX.

Следующим выпуском системы Linux была версия 1.0, появив­шаяся в 1994 г. Она включала новую файловую систему, отображе­ние файлов на адресное пространство памяти и совместимое с UNIX сетевое программное обеспечение. Данная версия также включала многие новые драйверы устройств.

К этому времени ОС Linux стала достаточно совместимой с UNIX, поэтому в нее было перенесено большое количество про­граммного обеспечения UNIX, что значительно увеличило полезность этой системы. Кроме того, операционная система Linux привлекла большое количество людей, которые начали работу над ее совершен­ствованием и расширением.

Следующая версия - 2.0, вышла в 1996 г. Она включала в себя поддержку 64-разрядной архитектуры, симметричной многозадачно­сти, новых сетевых протоколов и прочих многочисленных функций. Система также содержала внушительную коллекцию различных драй­веров устройств.

Необычной особенностью Linux является ее бизнес-модель: это свободно распространяющееся программное обеспечение. Ее можно скачать с различных Internet-сайтов, например www.kernel.org. Сис­тема Linux поставляется вместе с лицензией, разработанной Ричар­дом Столманом, основателем Фонда бесплатно распространяемых программ.

 

Вопросы для самоконтроля:

1.Управление процессами.

2.Команды POSIX для работы с процессами

3.Команды LINUX для работы с процессами

 

Рекомендуемая литература:

1.Системное программное обеспечение, А.В. Гордеев, А Ю. Молчанов – СПб.: Питер, 2003. – 736с.

2.Соболь Б.В., Галин А.Б., Панов Ю.В. Информатика: Учебник. – Ростов н/Д: Феникс,2005. – 448 с.