UNIX — это семейство многозадачных многопользовательских операционных систем, выросшее из системы, которую в 1969 году создали в Bell Labs. UNIX задал принципы, по которым до сих пор строят серверные и настольные ОС: иерархия файлов от корня /, представление устройств в виде файлов, командная оболочка и набор небольших утилит, соединяемых в цепочки.
Содержание
Дальше разберем, как появился UNIX и зачем его переписали на языке C, в чем состоит философия UNIX, на какие ветви (BSD и System V) он разделился и чем отличаются три близких понятия, которые часто путают: UNIX, Linux и POSIX.
История развития UNIX
В середине 1960-х Bell Labs вместе с MIT и General Electric разрабатывала систему разделения времени Multics. Проект оказался слишком громоздким, и в 1969 году Bell Labs из него вышла. Сотрудники лаборатории Кен Томпсон и Деннис Ритчи решили сделать свою систему — компактнее и проще.
Летом 1969 года Кен Томпсон написал первую версию на ассемблере для мини-компьютера PDP-7. В ней уже были иерархическая файловая система, интерпретатор командной строки и несколько служебных программ. Название придумали как игру слов от Multics: сначала Unics (Uniplexed Information and Computing Service — в противовес Multiplexed), позже оно закрепилось как Unix.
Ключевой поворот произошел в 1973 году. Ритчи создал язык C, и в том же году систему переписали на C — это была четвертая редакция UNIX (Version 4). До этого операционные системы писали на ассемблере под конкретное железо. Перенос на C сделал UNIX переносимым: чтобы запустить систему на новом процессоре, стало достаточно перекомпилировать исходный код, а не переписывать его заново.
Из-за антимонопольных ограничений AT&T (материнская компания Bell Labs) не могла продавать UNIX как продукт и раздавала исходники университетам почти даром. Так в 1970-х UNIX распространился по научным центрам, а вместе с исходным кодом — идеи и подходы, на которых он построен.
Философия UNIX
Философия UNIX — это набор правил проектирования программ, сложившийся у разработчиков системы. Ее коротко сформулировал Даглас Макилрой: пишите программы, которые делают одну вещь и делают ее хорошо, и умеют работать вместе, а универсальным интерфейсом между ними сделайте текстовый поток.
Отсюда вырастают несколько практических принципов:
- Одна программа — одна задача. Утилита
lsпоказывает список файлов,grepищет строки,sortсортирует. Каждая делает свое и не тянет лишнего. - Композиция через конвейер. Мелкие утилиты соединяют в цепочку оператором
|(pipe): вывод одной становится вводом следующей. Так из простых команд собирают сложную обработку. - Все есть файл. Обычные файлы, каталоги, устройства и даже многие системные интерфейсы выглядят как файлы, к которым применяют одни и те же операции чтения и записи.
- Текст как универсальный формат. Данные передают простыми текстовыми строками, а не бинарными структурами, поэтому результат одной программы легко подать на вход другой.
Простой пример конвейера: посчитать, сколько процессов запущено от имени пользователя root.
ps aux | grep '^root' | wc -l
Здесь ps aux выводит список процессов, grep '^root' оставляет строки, начинающиеся со слова root, а wc -l считает их количество. Ни одна из трех программ не знает про две другие — их связывает только текстовый поток. Это и есть философия UNIX в действии.
Ветви UNIX: BSD и System V
К концу 1970-х UNIX разошелся на две большие ветви, у которых были разные владельцы и разные цели.
BSD (Berkeley Software Distribution) появилась в Калифорнийском университете в Беркли. Там на основе исходников AT&T дорабатывали систему, и первый выпуск, 1BSD, вышел в 1978 году. В BSD появилось многое из того, что стало стандартом: сетевой стек TCP/IP, редактор vi, C-shell. Позже из BSD выросли свободные системы FreeBSD, OpenBSD и NetBSD.
System V — это коммерческая ветвь самой AT&T. Когда антимонопольные ограничения ослабли, компания стала выпускать UNIX как продукт, и в 1983 году вышла System V — линейка, которую лицензировали производители оборудования (отсюда пошли AIX, HP-UX, Solaris).
В 1980-х и начале 1990-х ветви конкурировали и расходились по деталям — интерфейсам, командам, форматам. Этот период называют «войнами UNIX» (Unix wars). Именно несовместимость версий подтолкнула к идее общего стандарта, о котором ниже.
UNIX, Linux и POSIX: в чем разница
Эти три слова легко перепутать, но они про разное: UNIX — это сертифицированная система (и товарный знак), Linux — независимо написанная Unix-подобная система, а POSIX — стандарт интерфейса, а не система вообще.
Разведем понятия по цепочке:
- UNIX (в узком смысле) — система, которая прошла сертификацию и вправе носить товарный знак UNIX. Сегодня им владеет консорциум The Open Group, а требования описаны в Single UNIX Specification.
- Unix-подобная система — похожа на UNIX по устройству и командам, но сертификацию не проходила. Формально называть ее «UNIX» нельзя, хотя в быту так делают.
- Linux — ядро, которое Линус Торвальдс написал с нуля в 1991 году, не используя код AT&T. Дистрибутивы на его основе (Ubuntu, Debian, Red Hat) — Unix-подобные, но не сертифицированный UNIX.
- POSIX (Portable Operating System Interface) — серия стандартов IEEE, задающих единый программный интерфейс. Первая редакция, IEEE 1003.1, вышла в 1988 году, чтобы программы переносились между разными UNIX-системами. POSIX описывает интерфейс, а не реализацию, поэтому ему может соответствовать и несертифицированная система.
| Признак | UNIX | Linux | POSIX |
|---|---|---|---|
| Что это | сертифицированная ОС и товарный знак | ядро и семейство ОС на его основе | стандарт программного интерфейса |
| Происхождение | Bell Labs, 1969 | Линус Торвальдс, 1991 | IEEE, 1988 |
| Общий код с AT&T UNIX | да (историческая линия) | нет, написан независимо | не система, а спецификация |
| Примеры | macOS, AIX, HP-UX, Solaris | Ubuntu, Debian, Fedora, Android | требования, а не продукт |
Коротко: Linux — Unix-подобная система, близкая к POSIX, но она не сертифицированный UNIX. А macOS, наоборот, официально сертифицирована как UNIX, хотя многие считают ее «просто маком».
Наследие UNIX
UNIX давно перестал быть отдельным продуктом, но его подход лежит в основе почти всей современной инфраструктуры.
- Серверы и облака. Большинство серверов в интернете работают на Linux — Unix-подобной системе, унаследовавшей устройство и команды UNIX.
- Настольные и мобильные ОС. macOS — сертифицированный UNIX, iOS и Android построены на Unix-подобной основе (у Android — ядро Linux).
- Язык C и сеть. Язык C, созданный ради UNIX, стал одним из главных языков системного программирования, а стек TCP/IP из BSD — основой интернета.
- Инструменты и навыки. Командная оболочка, конвейеры, утилиты
grep,sort,awk, права доступа rwx — все это выросло из UNIX и до сих пор изучается системными администраторами и разработчиками.
Поэтому знакомство с UNIX-подходом — это не история ради истории: те же принципы каждый день применяют, работая с Linux в терминале.
FAQ
UNIX и Linux — это одно и то же?
Нет. UNIX — историческая система из Bell Labs и товарный знак для сертифицированных ОС. Linux написан независимо и код AT&T не использует, поэтому он Unix-подобный, но не сертифицированный UNIX.
Можно ли сегодня поставить «настоящий» UNIX на домашний компьютер?
Проще всего — macOS: это сертифицированный UNIX для компьютеров Apple. Серверные UNIX вроде AIX, HP-UX и Solaris рассчитаны на специфическое оборудование и для домашнего ПК не предназначены.
Зачем нужен POSIX, если есть сам UNIX?
POSIX описывает единый интерфейс, чтобы программу можно было перенести между разными системами без переписывания. Ему стараются соответствовать и Linux, и BSD, и коммерческие UNIX, поэтому один и тот же код чаще собирается везде.
Выводы
- UNIX появился в Bell Labs в 1969 году (Кен Томпсон и Деннис Ритчи), а в 1973 году был переписан на языке C, что сделало систему переносимой.
- Философия UNIX — маленькие программы, которые делают одно дело и соединяются через текстовые конвейеры; принцип «все есть файл» действует до сих пор.
- Исторически UNIX разошелся на ветви BSD (Беркли) и System V (AT&T); их несовместимость привела к стандарту POSIX (1988).
- UNIX, Linux и POSIX — разное: сертифицированная система, независимое Unix-подобное ядро и стандарт интерфейса соответственно.
- Наследие UNIX — это Linux, macOS, язык C, стек TCP/IP и весь инструментарий терминала.
Где применяется и как освоить
Освойте тему на практике
На практике знания об устройстве UNIX превращаются в работу с Linux: терминал, файловая система от корня /, права доступа rwx, конвейеры и утилиты — все это ежедневные инструменты системного администратора и DevOps-инженера. Освоить их системно, от команд оболочки до настройки сервисов, помогает курс Otus по администрированию Linux.
Освойте тему на практике
Посмотреть формат обучения и разобрать реальные задачи с преподавателем можно на бесплатных открытых уроках Otus.
Смежные темы: Язык C: описание и основы, Команда ls в Linux, Скрипты для системных администраторов.



