Unix (МФА: «UNIX» является зарегистрированной торговой маркой организации The Open Group) — семейство переносимых, многозадачных и многопользовательских операционных систем, которые основаны на идеях оригинального проекта AT&T Unix, разработанного в 1970-х годах в исследовательском центре Bell Labs Кеном Томпсоном и Деннисом Ритчи.

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

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

Первая система Unix была разработана в подразделении Bell Labs компании AT&T. С тех пор было создано большое количество различных Unix-систем. Пользоваться торговой маркой UNIX® имеют право лишь те операционные системы, которые прошли сертификацию на соответствие стандарту Single UNIX Specification. Остальные же, хотя и используют сходные концепции и технологии, называются Unix-подобными операционными системами ().

Особенности Основное отличие Unix-подобных систем от других операционных систем заключается в том, что это изначально многопользовательские многозадачные системы. В Unix может одновременно работать сразу много людей, каждый за своим виртуальным устройством — терминалом, при этом каждый из них может выполнять множество различных вычислительных процессов, которые будут использовать ресурсы именно этого компьютера.

Вторая заслуга Unix — в её кроссплатформенности. Ядро системы разработано таким образом, что его легко можно приспособить практически под любой микропроцессор.

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

Применение Начиная с 1980-х годов Unix-системы распространены в основном среди серверов. С 2010-х годов широкое распространение получили системы на базе ядра Unix-подобных систем как встроенные системы для различного оборудования, включая смартфоны. Также Unix-системы доминируют на суперкомпьютерах, в частности, на 100 % суперкомпьютеров из рейтинга TOP500 установлен Linux.

Среди систем для рабочих станций и домашнего применения Unix и Unix-подобные операционные системы занимают после Microsoft Windows, второе (macOS), третье (Linux) и многие последующие места по популярности.

История

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

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

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

Первые Unix-системы

Первоначально Unix была разработана для мини-компьютеров PDP-7 на основе идей Multics в конце 1960-х годов сотрудниками Bell Labs, основной вклад внёс Кен Томпсон при значительном участии Денниса Ритчи и Дугласа Макилроя. Поскольку система была однозадачной, в 1970 году системе дано название «Униплексный информационный и вычислительный сервис» в противовес многозадачной «Мультиплексные информационные и вычислительные сервисы». Окончательный вариант написания ­— «Unix» — приписывают Брайану Кернигану.

Первая официальная версия получила название «» (Edition 1). Она отсчитывала время с 1 января 1971 года (так как измерение проводилось в шестидесятых долях секунды, переполнение происходило каждые 2 года, из-за чего отсчёт в первых версиях обнулялся каждый год); в четвёртой версии Unix в ноябре 1973 года был введён используемый поныне формат хранения времени, и с тех пор все реализации Unix отсчитывают системное время с 1 января 1970 года. Первые версии Unix были написаны на ассемблере и не имели встроенного компилятора с языком высокого уровня. Примерно в 1969 году Кен Томпсон при содействии Денниса Ритчи разработал и реализовал язык Би, представлявший собой упрощённый (для реализации на мини-компьютерах) вариант разработанного в 1966 году языка BCPL. Би, как и BCPL, был интерпретируемым языком. В 1972 году была выпущена вторая редакция Unix, переписанная на языке Би. В 1969—1973 годы на основе Би был разработан компилируемый язык, получивший название Си.

В 1973 году вышла третья редакция Unix со встроенным компилятором языка Си. 15 октября того же года появилась четвёртая редакция с переписанным на Си системным ядром (в духе системы Multics, также написанной на языке высокого уровня ПЛ/1), а в 1975 году — пятая редакция, полностью переписанная на Си.

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

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

Раскол В начале 1980-х годов компания AT&T, которой принадлежала Bell Labs, осознала ценность Unix и начала создание коммерческой версии операционной системы. Эта версия, поступившая в продажу в 1982 году, носила название UNIX System III и была основана на седьмой версии системы. Однако компания не могла напрямую начать развитие Unix как коммерческого продукта из-за запрета, наложенного правительством США в 1956 году. Министерство юстиции вынудило AT&T подписать соглашение, запрещавшее компании заниматься деятельностью, не связанной с телефонными и телеграфными сетями и оборудованием. Для того, чтобы всё-таки иметь возможность перевести Unix в ранг коммерческих продуктов, компания передала исходный код операционной системы некоторым высшим учебным заведениям, лицензировав код под очень либеральными условиями. В декабре 1973 года одним из первых исходные коды получил университет Беркли.

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

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

Было предложено два интерфейса программирования сетевых приложений: сокет Беркли (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 (коммерческая версия от AT&T). Впоследствии многие компании, получив лицензию на 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 (SVR1 — System V Release 1), включавшая полноэкранный текстовый редактор vi, библиотеку curses, буферизацию ввода-вывода, кеширование inode. Версия 2 (SVR2), выпущенная в 1984 году, реализовывала монопольный доступ к файлам (file locking), доступ к страницам по требованию (demand paging), копирование при записи (copy-on-write). Версия 3 вышла в 1987 году и включала, среди прочего, TLI, а также систему поддержки удалённых файловых систем RFS. Версия 4 (SVR4), разработанная в сотрудничестве с фирмой Sun и вышедшая 18 октября 1988 года, поддерживала многие возможности BSD, в частности, TCP/IP, сокеты, новый командный интерпретатор csh. Кроме того, там было много других добавлений, таких как символические ссылки, командный интерпретатор ksh, сетевая файловая система NFS (заимствованная у SunOS) и т. д.

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

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

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

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

В начале 1992 года вышел дистрибутив 386/BSD, основанный на дистрибутиве Networking Release 2. UNIX Systems Laboratories (USL) подала иск против BSDI, а затем — против университета Беркли, допустившего распространение файлов Unix в исходных и двоичных форматах фактически за бесценок, что подрывало бизнес самой USL.

Весь 1992 год никаких значительных успехов в судебной тяжбе для USL не принёс, зато появился встречный иск от Калифорнийского университета. К началу 1993 года дистрибутив 386/BSD поменял своё название на NetBSD. В декабре 1993 года появился другой дистрибутив — FreeBSD, нацеленный на простых пользователей. После приобретения USL компанией Novell к лету 1993 года начались переговоры по урегулированию статуса кодов BSD. К январю 1994 CSRG и Novell договорились удалить три файла из 18 000 Networking Release 2, часть файлов должна была быть подвергнута правке, а к примерно 70 файлам университет должен был добавить информацию о копирайте USL.