Интернет магазин китайских планшетных компьютеров



Компьютеры - UNIX - История

08 июня 2011


Оглавление:
1. UNIX
2. История
3. Некоторые архитектурные особенности ОС UNIX
4. Стандарты
5. Стандартные команды ОС UNIX



Предшественники

Варианты Unix по годам

В 1957 году в Bell Labs была начата работа по созданию операционной системы для собственных нужд. Под руководством Виктора Высотского была создана система BESYS. Впоследствии он возглавил проект Multics, а затем стал главой информационного подразделения Bell Labs.

В 1964 году появились компьютеры третьего поколения, для которых возможности BESYS уже не подходили. Высотский и его коллеги приняли решение не разрабатывать новую собственную операционную систему, а подключиться к совместному проекту General Electric и Массачусетского технологического института Multics. Телекоммуникационный гигант AT&T, в состав которого входили Bell Labs, оказал проекту существенную поддержку, но в 1969 году вышел из проекта, поскольку он не приносил никаких финансовых выгод.

Первые UNIX

Кен Томпсон и Денис Ритчи — создатели UNIX

Первоначально UNIX была разработана в конце 1960-х годов сотрудниками Bell Labs, в первую очередь Кеном Томпсоном, Денисом Ритчи и Дугласом Макилроем.

В 1969 году Кен Томпсон, стремясь реализовать идеи, которые были положены в основу MULTICS, но на более скромном аппаратном обеспечении, написал первую версию новой операционной системы, а Брайан Керниган придумал для неё название — UNICS — в противовес MULTICS. Позже это название сократилось до UNIX.

В ноябре 1971 года вышла версия для PDP-11, наиболее успешного семейства миникомпьютеров 1970-х. Эта версия получила название «первая редакция» и была первой официальной версией. Системное время все реализации UNIX отсчитывают с 1 января 1970.

Первые версии UNIX были написаны на ассемблере и не имели встроенного компилятора с языком высокого уровня. Примерно в 1969 году Кен Томпсон при содействии Дениса Ритчи разработал и реализовал язык Би, представлявший собой упрощённый вариант разработанного в 1966 языка BCPL. Би, как и BCPL, был интерпретируемым языком. В 1972 году была выпущена вторая редакция UNIX, переписанная на языке Би. В 1969—1973 годах на основе Би был разработан компилируемый язык, получивший название Си.

В 1973 году вышла третья редакция UNIX, со встроенным компилятором языка Си. 15 октября того же года появилась четвёртая редакция, с переписанным на Си системным ядром, а в 1975 — пятая редакция, полностью переписанная на Си.

С 1974 года UNIX стал распространяться среди университетов и академических учреждений. С 1975 года началось появление новых версий, разработанных за пределами Bell Labs, и рост популярности системы. В том же 1975 году Bell Labs выпустила шестую редакцию, известную по широко разошедшимся комментариям Джона Лайонса.

К 1978 году система была установлена более чем на 600 машинах, прежде всего, в университетах. Седьмая редакция была последней единой версией UNIX. Именно в ней появился близкий к современному интерпретатор командной строки Bourne shell.

Раскол

С 1978 года начинает свою историю BSD UNIX, созданный в университете Беркли. Его первая версия была основана на шестой редакции. В 1979 выпущена новая версия, названная 3BSD, основанная на седьмой редакции. BSD поддерживал такие полезные свойства, как виртуальную память и замещение страниц по требованию. Автором BSD был Билл Джой.

В начале 1980-х компания AT&T, которой принадлежали Bell Labs, осознала ценность UNIX и начала создание коммерческой версии UNIX. Эта версия, поступившая в продажу в 1982 году, носила название UNIX System III и была основана на седьмой версии системы.

Важной причиной раскола UNIX стала реализация в 1980 году стека протоколов TCP/IP. До этого межмашинное взаимодействие в UNIX пребывало в зачаточном состоянии — наиболее существенным способом связи был UUCP.

Было предложено два интерфейса программирования сетевых приложений: Berkley sockets и интерфейс транспортного уровня TLI. Интерфейс Berkley sockets был разработан в университете Беркли и использовал стек протоколов TCP/IP, разработанный там же. TLI был создан AT&T в соответствии с определением транспортного уровня модели OSI и впервые появился в системе System V версии 3. Хотя эта версия содержала TLI и потоки, первоначально в ней не было реализации TCP/IP или других сетевых протоколов, но подобные реализации предоставлялись сторонними фирмами. Реализация TCP/IP официально и окончательно была включена в базовую поставку System V версии 4. Это, как и другие соображения, вызвало окончательное размежевание между двумя ветвями UNIX — BSD и System V. Впоследствии, многие компании, лицензировав System V у AT&T, разработали собственные коммерческие разновидности UNIX, такие, как AIX, CLIX, HP-UX, IRIX, Solaris.

В середине 1983 года была выпущена версия BSD 4.2, поддерживающая работу в сетях Ethernet и Arpanet. Система стала весьма популярной. Между 1983 и 1990 годом в BSD было добавлено много новых возможностей, таких как отладчик ядра, сетевая файловая система NFS, виртуальная файловая система VFS, и существенно улучшены возможности работы с файловыми сетями.

Тем временем AT&T выпускала новые версии своей системы, названной System V. В 1983 была выпущена версия 1, включавшая полноэкранный текстовый редактор vi, библиотеку curses, буферизацию ввода-вывода, кеширование inode. Версия 2, выпущенная в 1984, реализовывала монопольный доступ к файлам, доступ к страницам по требованию, копирование при записи. Версия 3 вышла в 1987 году и включала, среди прочего, TLI, а также систему поддержки удалённых файловых систем RFS. Версия 4, разработанная в сотрудничестве с фирмой Sun и вышедшая 18 октября 1988, поддерживала многие возможности BSD, в частности TCP/IP, сокеты, новый командный интерпретатор csh. Кроме того, там было много других добавлений, таких как символические ссылки, командный интерпретатор ksh, сетевая файловая система NFS и т. д.

Современные реализации UNIX, как правило, не являются системами V или BSD в чистом виде. Они реализуют возможности как System V, так и BSD.

Свободные UNIX-подобные операционные системы

Рабочий стол KDE

В 1983 году Ричард Столлмэн объявил о создании проекта GNU — попытки создания свободной UNIX-подобной операционной системы с нуля, без использования оригинального исходного кода. Большая часть программного обеспечения, разработанного в рамках данного проекта, — такого, как GNU toolchain, Glibc и Coreutils — играет ключевую роль в других свободных операционных системах. Однако, работы по созданию замены для ядра UNIX, необходимые для полного выполнения задач GNU, продвигались крайне медленно. В настоящее время GNU Hurd — попытка создать современное ядро на основе микроядерной архитектуры Mach — всё ещё далека от завершения.

В 1991 году, когда Линус Торвальдс опубликовал ядро Linux и привлёк помощников, использование инструментов, разработанных в рамках проекта GNU, было очевидным выбором. Операционная система GNU и ядро Linux вместе составляют ОС, известную, как GNU/Linux. Дистрибутивы этой системы, включающие ядро, утилиты GNU и дополнительное программное обеспечение стали популярными как среди любителей, так и среди представителей бизнеса.

В начале 1992 года вышел дистрибутив 386/BSD, основанный на дистрибутиве Networking Release 2, распространяемый компанией BSDI за $995 с «ужасающей скидкой» в 99 % по сравнению с ценой System V. UNIX Systems Laboratories подала иск против BSDI, а затем против университета Беркли, допустившей распространение файлов UNIX в исходных и двоичных форматах фактически за бесценок, что подрывало бизнес самой USL. Весь 1992 год никаких значительных успехов в судебной тяжбе для USL не принёс, зато появился встречный иск от Калифорнийского университета. К началу 1993 года дистрибутив 386/BSD поменял своё название на NetBSD. В декабре 1993 года появился другой дистрибутив — FreeBSD, нацеленный на простых пользователей. После приобретения USL компанией Novell к лету 1993 года начались переговоры по урегулированию статуса кодов BSD. К январю 1994 CSRG и Novell договорились удалить три файла из 18000 Networking Release 2, часть файлов должна быть подвергнута правке, а к примерно 70 файлам университет должен был добавить информацию о копирайте USL. В июне 1994 года вышел «чистый» выпуск 4.4BSD-Lite. Вот с этого момента группы BSDI, NetBSD и FreeBSD должны были повторно синхронизировать свои версии систем с «чистой» системой 4.4BSD-Lite. Таким образом, все наработки, сделанные за три года с момента подачи иска USL, пришлось пересматривать на предмет нарушения авторских прав и использования стороннего кода. Переписывать важные составляющие ядра и операционного окружения. Значительно позднее выделились в самостоятельные проекты OpenBSD, TrustedBSD и DragonFlyBSD.

14 июня 2005 был открыт исходный код операционной системы Solaris. Этот проект, как и созданная на его основе операционная система, получили название OpenSolaris. 17 июня, через три дня после открытия кода, был создан дистрибутив SchilliX. В мае 2008 появился первый официальный дистрибутив OpenSolaris 2008.05. Существует более десяти дистрибутивов на основе OpenSolaris, наиболее известные из которых BeleniX и Nexenta OS.

В настоящий момент GNU/Linux и представители семейства BSD быстро отвоёвывают рынок у коммерческих UNIX-систем и одновременно проникают как на настольные компьютеры конечных пользователей, так и на мобильные и встраиваемые системы. Одним из свидетельств данного успеха служит тот факт, что, когда фирма Apple искала основу для своей новой операционной системы, она выбрала NEXTSTEP — операционную систему со свободно распространяемым ядром, разработанную фирмой NeXT и переименованную в Darwin после приобретения фирмой Apple. Данная система относится к семейству BSD и основана на ядре Mach. Применение Darwin BSD UNIX в Mac OS X делает его одной из наиболее широко используемых версий UNIX.

Современность

После разделения компании AT&T, товарный знак UNIX и права на оригинальный исходный код неоднократно меняли владельцев, в частности, длительное время принадлежали компании Novell.

В 1993 году Novell передала права на товарный знак и на сертификацию программного обеспечения на соответствие этому знаку консорциуму X/Open, который затем объединился с Open Software Foundation, образовав консорциум The Open Group. Он объединяет ведущие компьютерные корпорации и государственные организации, в том числе IBM, Hewlett-Packard, Sun, NASA и многие другие. Консорциум занимается разработкой открытых стандартов в области операционных систем, самым важным из которых является Single UNIX Specification, ранее известный как POSIX. С точки зрения The Open Group, название UNIX могут носить только системы, прошедшие сертификацию на соответствие Single UNIX Specification.

В 1995 году Novell продала права на существующие лицензии и дальнейшую разработку System V компании Santa Cruz Operation. В 2000 году Santa Cruz Operation продала свой UNIX-бизнес компании Caldera, которая затем была переименована в SCO Group. Хотя это название похоже на аббревиатуру SCO, используемую Santa Cruz Operation, это две разные компании.

SCO Group заявила, что она также обладает правами на исходный код UNIX и развернула кампанию против различных пользователей и поставщиков UNIX-подобных систем, требуя выплаты лицензионных отчислений. Однако Novell утверждает, что права на исходный код не были переданы Santa Cruz Operation и, таким образом, не перешли к SCO Group, а остаются у Novell, что и подтвердил вердикт суда. Несмотря на это в августе 2009 года апелляционный суд США отменил вынесенное ранее решение, назначив дополнительное расследование с целью установления законного владельца авторских прав на исходные тексты операционной системы. В июне 2010 года суд поставил точку в этом вопросе, подтвердив вынесенный ранее очередной вердикт в пользу Novell и отказав SCO Group в рассмотрении дальнейших жалоб.

Влияние UNIX на эволюцию операционных систем

Идеи, заложенные в основу UNIX, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIX-системы признаны одними из самых исторически важных ОС.

Как и Multics, UNIX была написана на языке высокого уровня, а не на ассемблере.

Она содержала значительно упрощённую, по сравнению с предшествующими ей операционными системами, файловую модель. Файловая система включала как службы, так и устройства и предоставляла внешне единообразный интерфейс к ним, но дополнительные механизмы работы с устройствами не вписывались в простую модель «поток байтов».

UNIX популяризовала предложенную в Multics идею иерархической файловой системы с произвольной глубиной вложенности. Другие операционные системы того времени позволяли разбивать дисковое пространство на каталоги или разделы, но число уровней вложенности было фиксировано и, зачастую, уровень вложенности был только один. Позднее все основные фирменные операционные системы обрели возможность создания рекурсивных подкаталогов, также заимствованную из Multics.

То, что интерпретатор команд стал просто одной из пользовательских программ, а в качестве дополнительных команд выступают отдельные программы, является ещё одной инновацией Multics, популяризированной UNIX. Язык командной оболочки UNIX используется пользователем как для интерактивной работы, так и для написания скриптов, то есть не существует отдельного языка описания заданий, как, например, в системе JCL фирмы IBM. Так как оболочка и команды операционной системы являются обычными программами, пользователь может выбирать их в соответствии со своими предпочтениями, или даже написать собственную оболочку. Наконец, новые команды можно добавлять к системе без перекомпиляции ядра. Новый, предложенный в командной строке UNIX, способ создания цепочек программ, последовательно обрабатывающих данные, способствовал использованию параллельной обработки данных.

Существенными особенностями UNIX были полная ориентация на текстовый ввод-вывод и предположение, что размер машинного слова кратен восьми битам. Первоначально в UNIX не было даже редакторов двоичных файлов — система полностью конфигурировалась с помощью текстовых команд. Наибольшей и наименьшей единицей ввода-вывода служил текстовый байт, что полностью отличало ввод-вывод UNIX от ввода-вывода других операционных систем, ориентированного на работу с записями. Ориентация на использование текста для представления всего, что только можно, сделала полезными т. н. конвейеры. Ориентация на текстовый восьмибитный байт сделала UNIX более масштабируемой и переносимой, чем другие операционные системы. Со временем текстовые приложения одержали победу и в других областях, например, на уровне сетевых протоколов, таких как Telnet, FTP, SMTP, HTTP и других.

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

Широко используемый в системном программировании язык Си, созданный изначально для разработки UNIX, превзошёл UNIX по популярности. Язык Си был первым «веротерпимым» языком, который не пытался навязать программисту тот или иной стиль программирования. Си был первым высокоуровневым языком, предоставляющим доступ ко всем возможностям процессора, таким как ссылки, таблицы, битовые сдвиги, инкременты и т. п. С другой стороны, свобода языка Си приводила к ошибкам переполнения буфера в таких функциях стандартной библиотеки Си, как gets и scanf. Результатом стали многие печально известные уязвимости, например, та, что эксплуатировалась в знаменитом черве Морриса.

Первые разработчики UNIX способствовали внедрению принципов модульного программирования и повторного использования в инженерную практику.

UNIX предоставлял возможность использования протоколов TCP/IP на сравнительно недорогих компьютерах, что привело к быстрому росту Интернета. Это, в свою очередь, способствовало быстрому обнаружению нескольких крупных уязвимостей в системе безопасности, архитектуре и системных утилитах UNIX.

Со временем ведущие разработчики UNIX разработали культурные нормы разработки программного обеспечения, которые стали столь же важны, как и сам UNIX.

Социальная роль в сообществе ИТ-профессионалов и историческая роль

Первоначальные UNIX работали на крупных многопользовательских компьютерах, к которым также предлагались и проприетарные ОС от производителя оборудования, такие, как RSX-11 и ее потомок VMS. Невзирая на то, что по ряду мнений тогдашний UNIX имел недостатки по сравнению с данными ОС, он был а) дешевле, а иногда и бесплатен для академических учреждений б) был портируем с оборудования на оборудование, и разработан на портируемом языке Си, что «отвязывало» разработку программ от конкретной аппаратуры. Кроме того, «отвязанным» от аппаратуры и производителя оказался и опыт пользователя — человек, работавший с UNIX на VAX, легко работал с ней же и на 68xxx, и так далее.

Все это привело к зарождению в западной академической среде прослойки фанатов UNIX, считавших ее чуть ли «совершенством от Бога».

Производители аппаратуры в то время часто прохладно относились к UNIX, считая ее игрушечной, и предлагая свою проприетарную ОС для серьезной работы — в первую очередь СУБД и основанных на них бизнес-приложений в коммерческих структурах. Известны комментарии по этому поводу от DEC по поводу ее VMS. К этому прислушивались корпорации, но не академическая среда, которая имела все для себя необходимое в UNIX, зачастую не требовала официальной поддержки от производителя, справляясь своими силами, и ценила дешевизну и переносимость UNIX.

Таким образом, UNIX была едва ли не первой переносимой на разную аппаратуру ОС.

Вторым резким взлетом UNIX было появление RISC-процессоров около 1989 года. Еще до того существовали т. н. workstations — персональные однопользовательские компьютеры большой мощности, имеющие достаточный объем памяти, жесткого диска и достаточно развитую ОС для работы с серьезными приложениями, такими, как CADы. Среди производителей таких машин выделялась компания Sun Microsystems, сделавшая себе на них имя.

До появления RISC процессоров эти станции обычно пользовались процессором Motorola 68xxx, тем же, что на персоналках фирмы Apple.

Популярности workstations, невзирая на в общем обычную производительность процессора, способствовало наличие чудовищных огрехов в архитектуре x86 и MS-DOS, которая создавала огромные затруднения в реализации на этом оборудовании защиты памяти при сохранении совместимости с MS-DOS и всей экосистемой ПО для данной платформы, а также в портировании ПО с других архитектур на IBM PC. Невзирая на появление ряда «костылей» для обхода этих огрехов, ряд серьезных наименований ПО так и не был перенесен на PC, что создавало потребность в workstation для использования этого ПО.

Около 1989 на рынке появились коммерческие реализации процессоров RISC архитектуры, которые имели на тот момент много большую производительность, чем x86 и 68xxx, но ценой полной несовместимости по ассемблеру. Логичным решением ряда компаний был перенос UNIX на эти архитектуры, что немедленно повлекло за собой и перенос всей экосистемы ПО для UNIX.

Таким образом, через посредство UNIX мир получил самые мощные на тот момент компьютеры общего назначения.

Проприетарные серьезные ОС, такие, как VMS, начали свой закат именно с этого момента, и UNIX стал ОС для самых мощных компьютеров в мире.

С этого момента сообщество фэнов UNIX получило новую поддержку для своего убеждения том, что UNIX есть лучшая в мире ОС всех времен и народов, далеко превосходящая конкурентов.

Однако в это время экосистема PC начала переходить на GUI, в лице Windows 3.0. Огромные преимущества GUI, а также, например, унифицированная поддержка всех типов принтеров, были оценены и разработчиками, и пользователями. Это сильно подорвало позиции UNIX на рынке PC — реализации, такие, как SCO и Interactive UNIX, не справлялись с поддержкой Windows-приложений из-за огромного и насквозь проприетарного API этой оболочки. Что же касается GUI для UNIX, называемого X11, то он не мог полноценно работать на обычной пользовательской PC ввиду требований к памяти — для нормальной работы X11 требовалось 16МБ, в то время как Windows 3.1 с достаточной производительностью исполняла и Word, и Excel одновременно в 8МБ. При высоких ценах на память это было лимитирующим фактором.

Успех Windows как GUI для рабочих столов дал импульс внутреннему проекту Microsoft под названием Windows NT, которая была совместима с Windows по API, но при этом имела все те же архитектурные особенности серьезной ОС, что и UNIX — многозадачность, полноценную защиту памяти, поддержку многопроцессорных машин, права доступа к файлам и директориям, системный журнал. Также Windows NT представила журнальную файловую систему NTFS, которая по возможностям на тот момент превышала все стандартно поставляемые с UNIX файловые системы — аналоги под UNIX были только отдельными коммерческими продуктами от Veritas и других.

Хотя Windows NT и не была популярна первоначально из-за высоких требований к памяти, она позволила Microsoft выйти на рынок решений для серверов, например, СУБД. Многие в то время не верили в возможность Microsoft, традиционно специализирующейся на настольном ПО, быть игроком на рынке ПО масштаба предприятия, где уже были свои громкие имена, такие, как Oracle и Sun. К этому сомнению добавлялся тот факт, что СУБД Microsoft — SQL Server — начинался как упрощенная версия Sybase SQL Server, лицензированная у Sybase и на 99 % совместимая по всем аспектам работы с ним.

Это породило в сообществе фэнов UNIX серьезную нелюбовь к Microsoft, которая была особенно подогрета нарушениями антимонопольного законодательства, в коих MS была замечена еще во времена MS-DOS, а также довольно успешным на тот момент попыткам MS подмять под себя Internet, что начался в мире UNIX.

Во второй половине 1990х годов Microsoft также начал теснить UNIX и на рынке корпоративных серверов. Этому способствовало, например, то, что Intelу таки удалось создать x86-совместимый процессор с производительностью не хуже RISC-машин — Pentium, что дало новое дыхание архитектуре PC, более не отстававшей от workstations ни по производительности, ни — в случае использования Windows NT — в общем и целом и по степени развитости ОС.

Совокупность вышеперечисленных факторов, а также огромное падение цены на 3D-видеопроцессоры, ставшими из профессионального оборудования домашним, по сути убила само понятие workstation к началу 2000ных годов.

Кроме того, системы Microsoft проще в управлении, особенно в типовых сценариях использования, что размыло в США рынок труда ИТ-профессионалов и позволило заменить UNIX-гуру чуть ли не недоучками, умеющими установить Windows.

Излишне говорить, что все это не добавило положительных эмоций UNIX-сообществу, а коммерческие UNIX-системы от производителей аппаратуры, такие, как Solaris, оказались просто под угрозой.

Но в данный момент начался третий резкий взлет UNIX.

Еще в конце 80х годов Ричард Столлман подытожил те неформальные практики в отношении прав на ПО, что существовали в академической среде и по сути являлись производными от принятых в этой среде прав на научные открытия и изобретения.

Результатом явилась лицензия GPL.

Кроме того, Столлман и его товарищи, прекрасно понимая, что для успеха не-завязанного-на-корпорации ПО необходимы не-завязанные-на-корпорации средства разработки, разработал gcc, что вместе с разработанными ранее утилитами GNU создало достаточно солидный пакет.

Для создания полностью свободного UNIX не хватало по сути только ядра ОС. И оно было разработано финским студентом Линусом Торвалдсом. Ядро было разработано «с нуля» и не является с точки зрения исходного кода деривативом ни BSD, ни System V, однако по ряду нюансов — больше тяготеет к последней.

Первоначально Linux был в достаточной степени неразвитым и примитивным проектом. Однако он верно нашел для себя нишу, сначала как учебного UNIX, а затем — как раз тогда началось активное развитие Интернета — и веб-сервера.

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

В дальнейшем Linux достигал все новых и новых высот:

  • перенос серьезных проприетарных продуктов, таких, как Oracle
  • серьезный интерес IBM к этой экосистеме как основе для своих вертикальных решений
  • появление аналогов почти всех привычных программ из мира Windows
  • отказ некоторых производителей оборудования от обязательной предустановки Windows
  • выпуск нетбуков с одной лишь Linux
  • использование в качестве ядра в ОС Android

На настоящий момент Linux есть заслуженно популярная ОС для серверов, хотя и куда менее популярная на рабочих столах.



Просмотров: 6109


<<< SunOS
/dev/null >>>