Linux черпал вдохновение из Unix, но Linux — это не Unix, хотя они определенно схожи. Мы объясним основные различия между этими двумя известными операционными системами.
Разница
Linux — это бесплатная операционная система с открытым исходным кодом. Unix — это коммерческий продукт, предлагаемый различными поставщиками, каждый со своим собственным вариантом, обычно предназначенным для своего собственного оборудования. Это дорогое приложение с закрытым исходным кодом. Но Linux и Unix делают более или менее одно и то же.
Но есть отличия не только технические, но и архитектурные. Чтобы понять некоторые влияния, которые сформировали Unix и Linux, нам нужно понять их предысторию.
Истоки Unix
Unix более 50 лет. Он был разработан на языке ассемблера Digital Equipment Corporation (DEC) на DEC PDP/7 как неофициальный проект в Bell Labs, в то время принадлежавшем AT&T. Вскоре он был перенесен на компьютер DEC PDP/11/20, а затем постепенно распространился на другие компьютеры Bell. Переписывание на язык программирования C привело к появлению версии 4 Unix 1973 года. Это было важно, потому что характеристики языка C и компилятора означали, что теперь переносить Unix на новые компьютерные архитектуры было относительно легко.
В 1973 году Кен Томпсон и Деннис Ричи представили на конференции доклад о Unix. В результате запросы на копии Unix хлынули в Bell. Поскольку продажа операционных систем выходила за рамки разрешенного объема деятельности AT&T, они не могли рассматривать Unix как продукт. Это привело к распространению Unix в виде исходного кода с лицензией. Номинальных затрат было достаточно, чтобы покрыть отгрузку и упаковку. Unix пришла «как есть», без технической поддержки и исправлений ошибок. Но вы получили исходный код — и вы можете его изменить.
Unix быстро завоевал популярность в академических учреждениях. В 1975 году Кен Томпсон провел творческий отпуск от Bell в Калифорнийском университете в Беркли. Вместе с некоторыми аспирантами он начал добавлять и улучшать их локальную копию Unix. Внешний интерес к дополнениям Беркли вырос, что привело к первому выпуску Berkeley Software Distribution (BSD). Это был набор программ и модификаций системы, которые можно было добавить в существующую систему Unix, но это не была отдельная операционная система. Последующие версии BSD были целыми системами Unix.
Теперь существовало две основных разновидности Unix: от AT&T и BSD. Все другие варианты Unix, такие как AIX, HP-UX и Oracle Solaris, являются их потомками. В 1984 году были сняты некоторые ограничения для AT&T, и они смогли производить и продавать Unix.
Затем Unix стала коммерциализированной.
Происхождение Linux
Рассматривая коммерциализацию Unix как дальнейшее размывание свобод, доступных пользователям компьютеров, Ричард Столлман решил создать операционную систему, основанную на свободе. То есть свобода изменять исходный код, распространять модифицированные версии программного обеспечения и использовать программное обеспечение любым способом, который пользователь сочтет нужным.
Операционная система собиралась воспроизвести функциональность Unix без включения какого-либо исходного кода Unix. Он назвал операционную систему GNU и в 1983 году основал проект GNU Project для разработки этой операционной системы. В 1985 году он основал Фонд свободного программного обеспечения для продвижения, финансирования и поддержки проекта GNU.
Все области операционной системы GNU достигли хорошего прогресса — кроме ядра. Разработчики проекта GNU работали над микроядром под названием GNU Hurd, но прогресс был медленным. (Сегодня он все еще находится в разработке и приближается к релизу) Без ядра не было бы операционной системы.
В 1987 году Эндрю С. Танебаум выпустил операционную систему MINIX (mini-Unix) в качестве учебного пособия для студентов, изучающих проектирование операционных систем. MINIX была функциональной Unix-подобной операционной системой, но имела некоторые ограничения, особенно в отношении файловой системы. В конце концов, исходный код должен быть достаточно маленьким, чтобы его можно было адекватно изучить за один университетский семестр. Некоторой функциональностью пришлось пожертвовать.
Чтобы лучше понять внутреннюю работу Intel 80386 на своем новом ПК, студент-информатик Линус Торвальдс написал в качестве учебного упражнения простой код переключения задач. В конце концов, этот код стал элементарным прото-ядром, которое стало первым ядром Linux. Торвальдс был знаком с MINIX. Фактически, его первое ядро было разработано для MINIX с использованием компилятора GCC Ричарда Столлмана.
Торвальдс решил создать свою собственную операционную систему, которая преодолела бы ограничения MINIX, предназначенного для обучения. В 1991 году он сделал свое знаменитое объявление в группе MINIX Usenet, в котором попросил комментариев и предложений по его проекту.
Linux на самом деле не клон Unix. Если бы Linux был клоном Unix, это был бы Unix. Это не так, это похоже на Unix. Слово «клон» подразумевает, что некоторая небольшая часть оригинала перешла в новую копию оригинала. Linux был создан заново, чтобы иметь внешний вид Unix и удовлетворять те же потребности. Это не столько клон, сколько репликант.
Но в любом случае Linux был ядром, ищущим операционную систему; GNU была операционной системой, ищущей ядро. Оглядываясь назад, то, что произошло потом, кажется неизбежным. Это также изменило мир.
Кто занимается разработкой
Дистрибутив Linux — это сумма множества различных частей, взятых из самых разных мест. Ядро Linux, набор основных утилит GNU и пользовательские приложения объединены для создания жизнеспособного дистрибутива. И кто-то должен заниматься этим объединением, обслуживанием и управлением — точно так же, как кто-то должен разрабатывать ядро, приложения и основные утилиты. Сопровождающие дистрибутивы и сообщества каждого дистрибутива играют свою роль в создании дистрибутива Linux так же, как и разработчики ядра.
Linux является результатом распределенных совместных усилий, выполняемых добровольцами, такими организациями, как Canonical и Red Hat, а также отдельными лицами, спонсируемыми отраслью.
Каждый коммерческий Unix разрабатывается как единое связное целое с использованием собственных или жестко контролируемых сторонних средств разработки. Часто они имеют уникальное ядро и разработаны специально для аппаратных платформ, поставляемых каждым поставщиком.
Бесплатные производные от BSD Unix с открытым исходным кодом, такие как FreeBSD, OpenBSD и DragonBSD, используют комбинацию унаследованного кода BSD и нового кода. Теперь они поддерживаются сообществом и управляются так же, как и дистрибутивы Linux.
Стандарты и соответствие
В общем, Linux не соответствует ни Single Unix Specification (SUS), ни POSIX. Он пытается удовлетворить оба стандарта. Было одно или два исключения, такие как Inspur K-UX, китайский Linux, совместимый с POSIX.
Настоящая Unix, как и коммерческие предложения, соответствует требованиям. Некоторые производные BSD, включая все версии macOS, кроме одной, совместимы с POSIX. Имена вариантов, такие как AIX, HP-UX и Solaris, являются товарными знаками соответствующих организаций.
Товарные знаки и авторское право
Linux — зарегистрированная торговая марка Линуса Торвальдса. Linux Foundation управляет торговой маркой от его имени. Ядро Linux и основные утилиты выпускаются под различными общедоступными лицензиями GNU с «копилефтом». Исходный код находится в свободном доступе.
Unix — зарегистрированная торговая марка Open Group. Он защищен авторским правом, проприетарен и имеет закрытый исходный код.
Авторские права на FreeBSD принадлежат проекту FreeBSD, и исходный код доступен.
Различия в использовании
С точки зрения пользовательского опыта, в командной строке нет большой видимой разницы. Из-за стандартов и соответствия POSIX программное обеспечение, написанное на Unix, может быть скомпилировано для операционной системы Linux с ограниченными усилиями по переносу. Например, скрипты оболочки можно использовать непосредственно в Linux во многих случаях с небольшими изменениями или без них.
Некоторые утилиты командной строки имеют несколько разные параметры командной строки, но, по сути, на обеих платформах доступен один и тот же арсенал инструментов. Фактически, в IBM AIX есть AIX Toolbox для приложений Linux. Это позволяет системному администратору устанавливать сотни пакетов GNU (например, Bash, GCC и т. д.).
Различные разновидности Unix имеют разные доступные им графические пользовательские интерфейсы (GUI), как и Linux. Пользователь Linux, знакомый с GNOME или Mate, должен будет нащупать свой путь при первом знакомстве с KDE или Xfce, но вскоре они его поймут. Это похоже на ряд графических интерфейсов пользователя, доступных в Unix, таких как Motif, Common Desktop Environment и X Windows System. Все они достаточно похожи, чтобы по ним мог ориентироваться любой, кто знаком с концепциями оконной среды с диалоговыми окнами, меню и значками.
Вы узнаете больше о различиях при администрировании систем. Например, есть разные механизмы инициализации. Производные от System V Unix и BSD имеют разные системы инициализации. Бесплатные варианты BSD поддерживали схемы инициализации BSD. По умолчанию дистрибутивы Linux будут использовать систему инициализации, производную от Unix System V или systemd.