Linux в сравнении с Unix: В чем разница?

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

Если вы являетесь разработчиком программного обеспечения в возрасте 20-30 лет, вы выросли в мире, где доминирует Linux. Он был значительным игроком в центре обработки данных на протяжении десятилетий, и хотя трудно найти точные отчеты о доле рынка операционных систем, доля Linux в операционных системах центров обработки данных может достигать 70%, а оставшийся процент приходится на варианты Windows. Разработчики, использующие любое крупное публичное облако, могут рассчитывать на то, что целевая система будет работать под управлением Linux. Доказательств того, что Linux есть везде, в последние годы становится все больше, если добавить встроенные системы на базе Android и Linux в смартфонах, телевизорах, автомобилях и многих других устройствах.

Несмотря на это, большинство разработчиков программного обеспечения, даже те, кто вырос во время этой почтенной "революции Linux", по крайней мере, слышали о Unix. Это звучит похоже на Linux, и вы, вероятно, слышали, как люди используют эти термины как взаимозаменяемые. Или, возможно, вы слышали, что Linux называют "Unix-подобной" операционной системой.

Так что же это за Unix? Карикатурные образы представляют "седобородых" волшебников, сидящих за светящимися зелеными экранами, пишущих код на языке Си и сценарии оболочки, питающихся старомодным кофе, сваренным капельным способом. Но у Unix гораздо более богатая история, чем у тех бородатых программистов на языке Си из 1970-х годов. В то время как статей с подробным описанием истории Unix и сравнений "Unix vs. Linux" предостаточно, в этой статье будет предложена общая история и список основных различий между этими взаимодополняющими мирами.

Зарождение Unix

Unix

История Unix начинается в AT&T Bell Labs в конце 1960-х годов с небольшой команды программистов, которые хотели написать многозадачную, многопользовательскую операционную систему для PDP-7. Двумя наиболее известными членами этой команды в исследовательском центре Bell Labs были Кен Томпсон и Деннис Ричи. Хотя многие концепции Unix были производными от ее предшественницы (Multics), решение команды Unix в начале 1970-х годов переписать эту небольшую операционную систему на языке C - это то, что выделило Unix из всех остальных. В то время операционные системы редко, если вообще когда-либо, были переносимыми. Вместо этого, в силу своей конструкции и низкоуровневого исходного языка, операционные системы были тесно связаны с аппаратной платформой, для которой они были написаны. Благодаря рефакторингу Unix на языке программирования C, Unix теперь можно было переносить на многие аппаратные архитектуры.

В дополнение к этой новой переносимости, которая позволила Unix быстро распространиться за пределы Bell Labs на другие исследовательские, академические и даже коммерческие сферы применения, несколько ключевых принципов дизайна операционной системы были привлекательны для пользователей и программистов. Например, философия Unix Кена Томпсона стала мощной моделью модульного проектирования программного обеспечения и вычислений. Философия Unix рекомендовала использовать небольшие, специально созданные программы в комбинации для выполнения сложных общих задач. Поскольку Unix была разработана на основе файлов и труб, эта модель "объединения" входов и выходов программ в линейный набор операций над входом остается в моде и сегодня. Фактически, современная модель облачных бессерверных вычислений во многом обязана своим наследием философии Unix.

Быстрый рост и конкуренция

В конце 1970-х и в 80-х годах Unix стала корнем родословного дерева, которое распространилось на научные исследования, академические круги и растущий коммерческий бизнес операционных систем Unix. Unix не был открытым программным обеспечением, и исходный код Unix можно было лицензировать по соглашениям с его владельцем, компанией AT&T. Первая известная лицензия на программное обеспечение была продана Университету штата Иллинойс в 1975 году.

Unix быстро развивалась в академических кругах, причем Беркли стал значительным центром активности, учитывая, что Кен Томпсон проводил там академический отпуск в 70-х годах. Благодаря активности вокруг Unix в Беркли, родилась новая форма поставки программного обеспечения Unix: Berkeley Software Distribution, или BSD. Первоначально BSD был не альтернативой Unix от AT&T, а дополнением с дополнительным программным обеспечением и возможностями. К тому времени, когда в 1979 году появился 2BSD (второй дистрибутив Berkeley Software Distribution), Билл Джой, аспирант Беркли, добавил такие известные сейчас программы, как vi и оболочку C (/bin/csh).

В дополнение к BSD, которая стала одной из самых популярных ветвей семейства Unix, коммерческие предложения Unix взорвались в 1980-х и 90-х годах такими названиями, как HP-UX, IBM AIX, Sun Solaris, Sequent и Xenix. По мере роста ветвей от первоначального корня начались "войны Unix", и стандартизация стала новым направлением деятельности сообщества. В 1988 году родился стандарт POSIX, а также другие продолжения стандартизации через The Open Group в 1990-х годах.

Примерно в это время AT&T и Sun выпустили System V Release 4 (SVR4), которая была принята многими коммерческими производителями. Отдельно, семейство операционных систем BSD выросло за эти годы, что привело к появлению некоторых вариантов с открытым исходным кодом, которые были выпущены под известной сейчас лицензией BSD. К ним относятся FreeBSD, OpenBSD и NetBSD, каждая из которых имеет несколько иной целевой рынок в индустрии Unix-серверов. Эти варианты Unix продолжают использоваться и сегодня, хотя доля многих из них на рынке серверов сократилась до однозначных цифр (или ниже). BSD, возможно, имеет самую большую базу установки среди всех современных Unix-систем на сегодняшний день. Кроме того, каждый аппарат Apple Mac, поставленный в недавней истории, может претендовать на BSD, поскольку его операционная система OS X (теперь macOS) является производной от BSD.

Хотя полная история Unix и ее академических и коммерческих вариантов может занять еще много страниц, в интересах нашей статьи давайте перейдем к истории Linux.

Появление Linux

Linux

То, что мы сегодня называем операционной системой Linux, на самом деле является комбинацией двух усилий, предпринятых в начале 1990-х годов. Ричард Столлман стремился создать действительно свободную и открытую альтернативу проприетарной системе Unix. Он работал над утилитами и программами под названием GNU - рекурсивный акроним, означающий "GNU - не Unix!". Хотя проект ядра был запущен, он оказался сложным, а без ядра мечта о свободной операционной системе с открытым исходным кодом не могла быть реализована. Именно работа Линуса Торвальда по созданию рабочего и жизнеспособного ядра, которое он назвал Linux, привела к появлению полноценной операционной системы. Учитывая, что Линус использовал несколько инструментов GNU (например, GNU Compiler Collection, или GCC), брак между инструментами GNU и ядром Linux был идеальным.

Дистрибутивы Linux появились благодаря компонентам GNU, ядру Linux, графическому интерфейсу X-Windows от MIT и другим компонентам BSD, которые можно было использовать под лицензией BSD с открытым исходным кодом. Ранняя популярность таких дистрибутивов, как Slackware, а затем Red Hat, дала "простым пользователям ПК" 1990-х годов доступ к операционной системе Linux и, вместе с ней, ко многим возможностям и утилитам проприетарной системы Unix, которые они использовали в своей работе или учебе.

Благодаря тому, что все компоненты Linux были бесплатными и с открытым исходным кодом, любой мог создать дистрибутив Linux, приложив немного усилий, и вскоре общее число дистрибутивов достигло сотен. Конечно, многие разработчики используют Linux либо через облачных провайдеров, либо с помощью популярных бесплатных дистрибутивов, таких как Fedora, Canonical's Ubuntu, Debian, Arch Linux, Gentoo и многих других. Коммерческие предложения Linux, которые обеспечивают поддержку поверх бесплатных компонентов с открытым исходным кодом, стали жизнеспособными, когда многие предприятия, включая IBM, перешли от проприетарной Unix к предложению промежуточного программного обеспечения и программных решений на базе Linux. Red Hat построила модель коммерческой поддержки вокруг Red Hat Enterprise Linux, как и немецкий поставщик SUSE с SUSE Linux Enterprise Server (SLES).

Сравнение Unix и Linux

До сих пор мы рассматривали историю Unix и становление Linux, а также основы GNU/Free Software Foundation - свободной альтернативы Unix с открытым исходным кодом. Давайте рассмотрим различия между этими двумя операционными системами, которые имеют во многом одинаковое наследие и одни и те же цели.

С точки зрения пользовательского опыта, различий не так уж много! Привлекательность Linux во многом заключалась в доступности операционной системы для многих аппаратных архитектур (включая современные ПК) и возможности использования инструментов, знакомых системным администраторам и пользователям Unix.

Благодаря стандартам POSIX и соответствию стандартам, программное обеспечение, написанное на Unix, могло быть скомпилировано для операционной системы Linux с обычно ограниченным количеством усилий по переносу. Скрипты оболочки во многих случаях можно было использовать непосредственно в Linux. Хотя некоторые инструменты имеют несколько разные флаги/опции командной строки для Unix и Linux, многие из них работают одинаково в обеих операционных системах.

Стоит отметить, что популярность аппаратного обеспечения и операционной системы macOS как платформы для разработки, ориентированной в основном на Linux, может быть связана с BSD-подобной операционной системой macOS. Многие инструменты и скрипты, предназначенные для системы Linux, легко работают в терминале macOS. Многие компоненты программного обеспечения с открытым исходным кодом, доступные в Linux, легко доступны через такие инструменты, как Homebrew.

Остальные различия между Linux и Unix в основном связаны с моделью лицензирования: открытый исходный код против проприетарного лицензированного программного обеспечения. Кроме того, отсутствие общего ядра в дистрибутивах Unix имеет последствия для производителей программного и аппаратного обеспечения. В Linux производитель может создать драйвер устройства для конкретного аппаратного устройства и ожидать, что в пределах разумного он будет работать в большинстве дистрибутивов. Из-за коммерческих и академических ветвей дерева Unix поставщику, возможно, придется писать разные драйверы для различных вариантов Unix и иметь лицензионные и другие проблемы, связанные с доступом к SDK или моделью распространения программного обеспечения в виде бинарного драйвера устройства во многих вариантах Unix.

По мере развития обоих сообществ за последнее десятилетие многие достижения Linux были приняты в мире Unix. Многие утилиты GNU стали доступны в качестве дополнений для систем Unix, когда разработчикам требовались функции программ GNU, не входящие в состав Unix. Например, IBM's AIX предлагала AIX Toolbox for Linux Applications с сотнями пакетов программ GNU (таких как Bash, GCC, OpenLDAP и многие другие), которые можно было добавить к установке AIX, чтобы облегчить переход между Linux и системами AIX на базе Unix.

Проприетарная Unix все еще жива и здорова, а поскольку многие крупные поставщики обещают поддержку своих текущих версий вплоть до 2020-х годов, само собой разумеется, что Unix будет существовать в обозримом будущем. Кроме того, ветвь BSD дерева Unix является открытой, и NetBSD, OpenBSD и FreeBSD имеют сильные пользовательские базы и сообщества с открытым исходным кодом, которые, возможно, не так заметны и активны, как Linux, но держат свои позиции в последних отчетах о доле серверов, значительно превышая показатели проприетарной Unix в таких областях, как веб-сервисы.

Существенным преимуществом Linux перед проприетарной Unix является доступность на огромном количестве аппаратных платформ и устройств. Raspberry Pi, популярная среди любителей и энтузиастов, работает на базе Linux и открыла дверь для целого спектра IoT-устройств под управлением Linux. Мы уже упоминали устройства Android, автомобили (с Automotive Grade Linux) и умные телевизоры, где Linux занимает большую долю рынка. Каждый облачный провайдер на планете предлагает виртуальные серверы под управлением Linux, а многие из наиболее популярных сегодня облачных стеков основаны на Linux, будь то контейнерные среды, Kubernetes или многие набирающие популярность бессерверные платформы.

Одним из наиболее показательных примеров восхождения Linux является трансформация Microsoft в последние годы. Если бы десять лет назад вы сказали разработчикам программного обеспечения, что операционная система Windows будет "работать под Linux" в 2016 году, большинство из них истерически рассмеялись бы. Но существование и популярность подсистемы Windows для Linux (WSL), а также недавно анонсированные возможности, такие как Windows-порт Docker, включая поддержку LCOW (Linux-контейнеры на Windows), свидетельствуют о влиянии, которое Linux оказывает и, очевидно, будет продолжать оказывать на весь мир программного обеспечения.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий