КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
UNIX и Linux
Распространённость В настоящее время Windows установлена более чем на 89 % персональных компьютеров и рабочих станций. По данным компании Net Applications, на июль 2011года рыночная доля Windows составляла 87,60 %. Среди различных версий Windows по данным W3Schools с августа 2011 года наиболее популярна Windows 7
Операционная система UNIX используется на различных типах компьютеров чаще, чем любая другая ОС. Система UNIX доминирует на рабочих станциях старших моделей и серверах, но она также используется и в ноутбуках и суперкомпьютерах. Система UNIX иллюстрирует множество важных принципов построения ОС, многие из которых были позаимствованы другими операционными системами. Общий обзор системы особенно важен для пользователей, знакомых только с системой Windows, так как последняя скрывает от них практически все детали системы. Хотя графические интерфейсы могут быть очень удобными для начинающих пользователей, они обладают недостаточной гибкостью и не дают представление о том, как работает система. Существует множество клонов и версий системы UNIX, но фундаментальные принципы и системные вызовы практически для всех этих систем во многом совпадают. Сходными являются также общие стратегии реализации, алгоритмы и структуры данных. У операционной системы UNIX очень интересная история. То, что началось как развлечение одного молодого исследователя, стало индустрией, в которую включились университеты, многонациональные корпорации, правительства и международные организации. В 60-е годы прошлого столетия на смену персональным компьютерам, когда программист записывался на определенный час, и вся машина на этот период оказывалась в его распоряжении, пришли пакетные системы, и программист стал приносить в машинный зал задание в виде колоды перфокарт. От пробивки перфокарт до получения программистом распечатки проходило более часа. При такой схеме на отладку программ уходило много времени, так как всего одна не там набитая запятая могла привести к потере нескольких часов машинного времени. Чтобы усовершенствовать существовавшую схему, которую все считали неудовлетворительной и непродуктивной, в Массачусетсском технологическом институте была изобретена система разделения времени CTSS. Система была универсальной и получила колоссальный успех в научных кругах. Исследователи из Массачусетсского технологического института объединили свои усилия с лабораторией Bell Labs и корпорацией General Electric и начали разработку системы второго поколения MULTICS (MULTiplexed Information and Computing Service – мультиплексная информационная и вычислительная служба). Вскоре лаборатория Bell Labs вышла из проекта, а один из ее сотрудников, Кен Томпсон, сам написал на ассемблере усеченный вариант системы MULTICS. Операционная система Томпсона в шутку была названа UNICS (UNiplexed Information and Computing Service – примитивная информационная и вычислительная служба). Впоследствии написание этого слова стало слегка короче, превратившись в UNIX. Работа Томпсона произвела на его коллег сильное впечатление, и вскоре усовершенствованием системы стал заниматься один из отделов Bell Labs. Система UNIX была перенесена с устаревшей машины PDP-7 на современные компьютеры PDP-11/45 и PDP-11/70. Эти машины доминировали в мире мини-компьютеров в течение большей части 70-х годов. Второе усовершенствование касалось языка, на котором писалась ОС UNIX. Уже давно стало очевидно, что необходимость переписывать всю систему заново для каждой новой машины дело не легкое, поэтому Томпсона решил переписать UNIX на языке высокого уровня, который он сам специально разработал и назвал языком В. Но эта попытка оказалась неудачной из-за слабостей языка В, в первую очередь, из-за отсутствия в нем структур данных. Тогда коллега Томпсона Ритчи разработал следующий язык, явившийся преемником языка B, который естественно, получил название C. Он написал для него прекрасный компилятор. Вместе Томпсон и Ритчи переписали UNIX на С. Язык С оказался как раз тем языком, который и был нужен в то время, и он сохраняет лидирующие позиции в области системного программирования до сих пор. За работу по созданию ОС UNIX Ритчи и Томпсону ассоциацией по вычислительной технике АСМ была присуждена престижная премия Тьюринга. Многие университеты выстроились в очередь в лабораторию за копией системы UNIX. Операционная система UNIX поставлялась с полным комплектом исходных текстов, поэтому новые владельцы системы могли подправлять и совершенствовать ее. Новые идеи и усовершенствования системы распространялись быстро. Version 7 (по номеру издания руководства программиста) стала первой переносимой версией операционной системы UNIX. Эта версия системы состояла из 18800 строк на С и 2100 ассемблерных строк. На Version 7 выросло целое поколение студентовтов, которые, закончив свои учебные заведения и начав работу в промышленности, содействовали дальнейшему распространению UNIX. К середине 80-х ОС UNIX широко применялась на мини-компьютерах и рабочих станциях различных производителей. Многие компании даже приобрели лицензии на исходные тексты, чтобы производить свои версии системы UNIX. Одной из таких компаний была небольшая начинающая фирма Microsoft, в течение нескольких лет продававшая Version 7 под именем XENIX, пока ее интересы не повернулись в другую сторону. После того как система UNIX была переписана на языке высокого уровняC, задачапереноса ее на новые машины стала значительно более простым делом. Для переноса системы сначала требуется написать для новой машины компилятор с языка C. Затем для устройств ввода-вывода, таких как терминалы, принтеры и диски, нужно написать драйверы устройств. Наконец, требуется переписать заново на ассемблере небольшое количество машинно-зависимого кода, например обработчики прерываний и процедуры управления памятью. В 1984 году компания AT&T выпустила на рынок первый коммерческий вариант системы UNIX, System III. Через год она была заменена улучшенной версией, System V. Оригинальную систему System V сменили выпуски 2,3 и 4 все той же System V. Каждый последующий выпуск был более сложным и громоздким, чем предшествующий. В процессе усовершенствований оригинальная идея, лежащая в основе системы UNIX, заключающаяся в простоте и элегантности системы, была в значительной мере утрачена. Хотя группа Ритчи и Томпсона позднее выпустила 8-ю, 9-ю и 10-ю редакцию системы UNIX, они не получили широкого распространения, так как компания AT&T все свои усилия на рынке вкладывала в продажу версии System V. Однако некоторые идеи из 8-й, 9-й и 10-й редакции системы все-таки были включены в System V. Наконец, компания AT&T решила, что хочет быть телефонной компанией, а не компьютерной фирмой. В 1993 году она продала весь свой бизнес, связанный с системой UNIX, корпорации Novell, которая, в свою очередь, в 1995 году перепродала его компании Santa Cruz Operation. К этому времени cтало практически неважным, кому принадлежит этот бизнес, так как почти у всех основных компьютерных компаний уже были лицензии. Калифорнийский университет в Беркли был одним из многих университетов, приобретших UNIX Version 6 практически с момента ее выхода. При финансовой поддержке управления перспективного планирования научно-исследовательских работ ARPA (Advanced Research Projects Agency) при Министерстве обороны США университет в Беркли разработал и выпустил улучшенные версии операционной системы UNIX. Они содержали большое количество усовершенствований. Важнейшими из них были использование виртуальной памяти и страничная подкачка файлов, что позволяло создавать программы, большие по размеру, чем физическая память. Другое изменение заключалось в поддержке имен файлов длиной более 14 символов. Реализация файловой системы также была изменена, благодаря чему работа с файловой системой стала существенно быстрее. Более надежной стала обработка сигналов. В 4-й версии Berkeley UNIX появилась поддержка сетей, в результате чего используемый протокол TCP/IP стал стандартом де-факто в мире UNIX, а позднее и в Internet, в котором преобладают серверы на базе системы UNIX. Университет в Беркли также добавил значительное количество утилитдлясистемы UNIX, включая компиляторы с языков Pascal и Lisp и многое другое. Все эти усовершенствования привели к тому, что многие производители компьютеров (Sun Microsystems, DEC и другие) стали основывать свои версии системы UNIX на Berkeley UNIX, а не на официальной версии компании AT&T, System V. В результате Berkeley UNIX получила широкое распространение в академических и исследовательских кругах. К концу 80-х широкое распространение получили две различные и в чем несовместимые версии ОС UNIX: 4.3BSD и System V Release 3. Кроме того, практически каждый производитель добавлял свои нестандартные усовершенствования. Тот факт, что стандарта на формат двоичных программ не было, сильно замедлил коммерческое признание операционной системы UNIX. Производители ПО не могли написать пакет программ для системы UNIX так, чтобы он гарантированно мог быть запущен на любой системе UNIX (как, например, это делалось в системе MS-DOS). Первая попытка примирить два варианта системы UNIX была предпринята при содействииСовета по стандартам Standard Boards при Институте инженеров по электротехнике и электронике IEEE. В этой работе приняли участие сотни людей из промышленных, академических и правительственных организаций. Коллективное название проекта — POSIX. Первые три буквы этого сокращения означали Portable Operating System — переносимая операционная система. Буквы IX были добавлены, чтобы имя проекта выглядело юниксообразно. Комитет POSIX выработал стандарт, известный как 1003.1. Этот стандарт определяет набор библиотечных процедур, которые должна предоставлять каждая соответствующая данному стандарту система UNIX. Идея стандарта POSIX заключается в том, что производитель ПО при написании программы использует только процедуры, описанные в стандарте 1003.1, таким образом, гарантируя, что эта программа будет работать на любой версии системы UNIX, поддерживающей данный стандарт. Стандарт 1003.1 заметно отличается от общего правила в лучшую сторону. Вместо того, чтобы принять за точку отсчета объединение множеств всех свойств System V и BSD (норма для большинства комитетов по стандартам), комитет IEEE взял за основу пересечение множеств. Документ 1003.1 написан так, чтобы как разработчики ОС, так и создатели ПО были способны его понять, что также ново в мире стандартов, хотя в настоящее время уже полным ходом ведется работа по исправлению этого нестандартного для стандартов свойства. Стандарт 1003.1 описывает только системные вызовы. Принят также ряд документов, стандартизирующих потоки, утилиты, сетевое ПО и многие другие особенности системы UNIX. Кроме того, язык C также был стандартизирован Национальным институтом стандартизации США ANSI и Международной организацией по стандартизации ISO. Все системы, созданные разными разработчиками, обладают одним общим свойством: все они большие и сложные, что противоречит оригинальной идее, лежавшей в основе UNIX. Поэтому исходные тексты систем понять одному человеку просто не под силу. Эта ситуация привела к тому, что в 1987 году Эндрю Таненбаум написал новую юниксоподобную систему MINIX, достаточно небольшую, чтобы ее можно понять, с доступным полным исходным текстом для использования в учебных целях. Эта система состояла из 11 800 строк на С и 800 строк на ассемблере. Система функционально практически эквивалентна системе Version 7 UNIX, бывшей оплотом большинства факультетов кибернетики в эпоху PDP-11. Система MINIX была одной из первых юниксообразных систем, основанной на схеме микроядра. Идея микроядра заключается в том, чтобы реализовать как можно меньше функций в ядре, в результате чего можно создать надежное и эффективное ядро. Соответственно, задачи управления памятью и файловой системой были перемещены в процессы пользователя. Ядро в основном обрабатывало передачу сообщений между процессами, почти не занимаясь другими задачами. По техническим причинам, связанным с архитектурой процессора Intel 8088, драйверы устройств ввода-вывода также были размещены в ядре. Файловая система и менеджер памяти работали как два раздельных пользовательских процесса. Преимущество микроядер перед монолитными системами заключается в том, что устройство микроядра легко понять, и поддержка системы, основанной на микроядре проще благодаря модульной структуре такой системы. Кроме того, перемещение программного обеспечения из ядра в пространство пользователя существенно повышает надежность системы, так как сбой процесса, работающего в режиме пользователя, способен нанести меньший ущерб, чем сбой компонента в режиме ядра. Основной недостаток состоит в несколько меньшей производительности, связанной с дополнительными переключениями из режима пользователя в режим ядра. Однако производительность – не единственное достоинство системы. На всех современных системах UNIX оконная система X Windows работает в режиме пользователя, в результате чего производительность несколько снижается, зато достигается большая модульность (в отличие от системы Windows, у которой весь графический интерфейс пользователя расположен в ядре). Через несколько лет финский студент Линус Торвальдс решил написать еще один клон системы UNIX, который он назвал Linux. Это должна была быть полноценная операционная система, со многими функциями, отсутствующими (по намерению авторов) в системе MINIX. Первая версия операционной системы Linux 0.01 была выпущена в 1991 году. Она была разработана и собрана в системе MINIX и заимствовала некоторые идеи системы MINIX, начиная со структуры дерева исходных текстов и кончая структурой файловой системы. Однако, в отличие от микроядерной системы MINIX, Linux была монолитной системой, то есть вся операционная система помещалась в ядре. Размер исходного текста приблизительно совпадал с версией MINIX. Функционально первая версия Linux также практически почти не отличалась от MINIX. Операционная система Linux быстро росла в размерах и впоследствии развилась в полноценный клон UNIX с виртуальной памятью, более сложной файловой системой и многими другими добавленными функциями. Она была перенесена на другие платформы и теперь работает на широком спектре машин, как и UNIX. Однако одно из основных отличий системы Linux от других клонов системы UNIX заключается в использовании многих специальных особенностей компилятора, поэтому, чтобы откомпилировать ее стандартным ANSI C компилятором, потребуется приложить немало усилий. Следующим выпуском системы Linux была версия 1.0, появившаяся в 1994 году. Она включала новую файловую систему, отображение файлов на адресное пространство памяти и совместимое с UNIX сетевое программное обеспечение с сокетами и TCP/IP. Она также включала многие новые драйверы устройств. К этому времени ОС Linux стала достаточно совместимой с UNIX, поэтому в нее было перенесено большое количество программного обеспечения UNIX, что значительно увеличило полезность этой системы. Кроме того, операционная система Linux привлекла большое количество людей, которые начали работу над ее совершенствованием и расширением. Следующая версия 2.0, вышла в 1996 году. Она включала в себя поддержку 64-разрядной архитектуры, симметричной многозадачности, новых сетевых протоколов и прочих многочисленных функций. Система также содержала внушительную коллекцию различных драйверов устройств. В систему Linux была перенесена большая часть стандартного программного обеспечения UNIX, включая более 1000 утилит, оконная система X Windows и сетевое программное обеспечение. Кроме того, специально для Linux было написано два различных графических интерфейса пользователя GNOME и KDE. В итоге, система Linux выросла в полноценный клон UNIX. Таким образом, в первом приближении большая часть описания системы UNIX, приведенного в данном разделе, также применимо и к Linux. Необычной особенностью Linux является ее бизнес-модель: это свободно распространяющееся программное обеспечение. Ее можно скачать с различных Internet- сайтов, например www.kernel.org. Система Linux поставляется вместе с лицензией разработанной Ричардом Столманом, основателем Фонда бесплатно распространяемых программ.
Дата добавления: 2014-01-04; Просмотров: 563; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |