UNIX

В связи с вандализмом редактирование этой страницы закрыто для незарегистрированных и новых участников.

UNIX (TM, читается ю́никс) — группа переносимых, многозадачных и многопользовательских операционных систем.

Первая система UNIX была разработана в конце 1960-х — начале 1970-х годов в подразделении Bell Labs компании AT&T. С тех пор было создано большое количество различных UNIX-систем. Юридически лишь некоторые из них имеют полное право называться «UNIX»; остальные же, хотя и используют сходные концепции и технологии, объединяются термином «UNIX-подобные» (англ. Unix-like). Для краткости в данной статье под UNIX-системами подразумеваются как истинные UNIX, так и UNIX-подобные ОС.

Некоторые отличительные признаки UNIX-систем включают в себя:

  • использование простых текстовых файлов для настройки и управления системой;
  • широкое применение командной строки;
  • представление устройств и некоторых средств межпроцессного взаимодействия как файлов;
  • использование конвейеров из нескольких программ, каждая из которых выполняет одну задачу.

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

Содержание

История

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

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

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

Первые UNIX

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

В 1969 году Кен Томпсон, стремясь реализовать идеи, что были положены в основу MULTICS, но на более скромном аппаратном обеспечении (DEC PDP-7), написал первую версию новой операционной системы, а Брайан Керниган придумал для неё название — UNICS (UNIplexed Information and Computing System) — в противовес MULTICS (MULTIplexed Information and Computing Service). Позже это название сократилось до UNIX. В 1970 г. вышла версия для PDP-11, наиболее успешного семейства миникомпьютеров 1970-хСССР оно известно как СМ ЭВМ).

В 1973 г. было принято решение переписать ядро системы на вновь созданном языке Си. UNIX стал первой операционной системой, практически полностью написанной на языке высокого уровня, что существенно упростило портирование системы на другие архитектуры. 15 октября на очередном симпозиуме ACM была представлена четвёртая версия UNIX. Вскоре появилась UNIX Version 5, с 1974 года начавшая распространяться бесплатно среди университетов и академических учреждений.

К 1975 году вышла UNIX Version 6, известная по широко разошедшимся комментариям Джона Лайонса (Lions' Commentary on UNIX 6th Edition, with Source Code, [1], [2]). К 1978 г. система была установлена более чем на 600 машинах, прежде всего, в университетах. Версия 7 была последней единой версией UNIX. Именно в версии 7 появился близкий к современному интерпретатор командной строки Bourne shell.

Раскол

В начале 1980-х компания AT&T, которой принадлежали Bell Labs, осознала ценность UNIX и начала создание коммерческой версии UNIX. Эта версия, поступившая в продажу в 1982 году, носила название UNIX System III и была основана на седьмой версии системы. Несколько раньше Билл Джой из университета Беркли создал собственный дистрибутив, основанный на UNIX Version 7. Этот дистрибутив получил название BSD (англ. Berkeley Software Distribution).

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

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

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

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

В 1991 году, когда Линус Товальдс опубликовал ядро Linux и привлёк помощников, использование инструментов, разработанных в рамках проекта GNU, было очевидным выбором. Будучи объединённым с ядром Linux, программное обеспечение GNU стало основой для UNIX-подобной операционной системы, известной как GNU/Linux (часто её называют просто Linux). Дистрибутивы этой системы (такие как Red Hat и Debian), включающие ядро, утилиты GNU и дополнительное программное обеспечение стали популярными как среди любителей, так и среди представителей бизнеса.

В результате урегулирования юридического дела, возбуждённого UNIX Systems Laboratories против университета Беркли и Berkeley Software Design Inc., было установлено, что университет может распространять BSD UNIX, в том числе и бесплатно. После этого были возобновлены эксперименты, связанные с BSD-версией UNIX. Вскоре разработка дистрибутива BSD была продолжена в нескольких направлениях одновременно, что привело к появлению проектов, известных как FreeBSD, NetBSD, OpenBSD, TrustedBSD и DragonFlyBSD.

В настоящий момент 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. В настоящее время спор этих двух компаний рассматривается в суде.

Влияние UNIX

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

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

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

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

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

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

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

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

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

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

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

Стандарты

Начиная с конца 1980-х годов усилия по стандартизации операционных систем привели к созданию стандарта POSIX, описывающего общую часть операционных систем. Создатель спецификаций POSIX, институт IEEE, взял за основу структуру UNIX. Примерно в то же время The Open Group предложила другой, похожий на POSIX стандарт — Single UNIX Specification. В 1998 году были начаты работы по объединению данных стандартов. Благодаря этому в настоящее время данные стандарты почти идентичны.

В целях совместимости несколько создателей UNIX-систем предложили использовать ELF-формат систем SVR4 для двоичных и объектных файлов. Единый формат полностью обеспечивает соответствие двоичных файлов в рамках одной компьютерной архитектуры.

Структура каталогов некоторых систем, в частности, GNU/Linux, определена в стандарте Filesystem Hierarchy Standard. Однако во многих отношениях этот тип стандарта является спорным, и он, даже внутри сообщества GNU/Linux, далеко не универсален.

Канонические команды UNIX

  • Создание и навигация по файлам и каталогам: ls, cd, pwd, mkdir, rm rmdir, cp, find;
  • Просмотр и редактирование файлов: touch, more, ed, vi, emacs, ex;
  • Обработка текста: echo, cat, grep, sort, uniq, sed, awk, tail, tee, head, cut, tr, split, printf;
  • Сравнение файлов: comm, cmp, diff, patch;
  • Разнообразные утилиты командного интерпретатора: yes, test, xargs;
  • Системное администрирование: chmod, chown, ps, su, w, who;
  • Коммуникации: mail, telnet, ftp, finger, ssh
  • Командные оболочки: sh, bash, csh, ksh, tcsh.

Ниже приведён список 60 команд из раздела 1 первой версии UNIX:

ar, as, b, bas, bcd, boot, cat, chdir, check, chmod, chown, cmp, cp, date, db, dbppt, dc, df, dsw, dtf, du, ed, find, for, form, hup, lbppt, ld, ln, ls, mail, mesg, mkdir, mkfs, mount, mv, nm, od, pr, rew, rkd, rkf, rkl, rm, rmdir, roff, sdate, sh, stat, strip, su, sum, tap, tm, tty, type, un, wc, who, write.

См. также

Ссылки

На русском

На английском


UNIX-подобные операционные системы
A/UX • AIX • BSD • FreeBSD • GNU • HP-UX • IRIX • Linux • Mac OS X • Minix • NetBSD • NEXTSTEP • OpenBSD • Plan 9 • QNX • SCO OpenServer • Solaris • System V • Tru64 • Xenix • ещё ...
 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home