Поиск по сайту:

В чем разница между Linux и Unix?


Linux черпал вдохновение из Unix, но Linux — это не Unix, хотя он определенно похож на 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. В результате в Bell посыпались запросы на копии Unix. Поскольку продажа операционных систем не входила в разрешенный объем деятельности AT&T, они не могли рассматривать Unix как продукт. Это привело к тому, что Unix распространялся как исходный код с лицензией. Номинальных затрат было достаточно, чтобы покрыть доставку и упаковку, а также «разумные гонорары». Unix поставлялся «как есть», без технической поддержки и без исправлений ошибок. Но вы получили исходный код — и вы могли его модифицировать.

Unix быстро завоевал популярность в академических учреждениях. В 1975 году Кен Томпсон провел творческий отпуск у Белла в Калифорнийском университете в Беркли. Вместе с некоторыми аспирантами он начал добавлять и улучшать их локальную копию Unix. Внешний интерес к дополнениям Berkeley вырос, что привело к выпуску первого выпуска 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 для разработки операционной системы. В 1985 году он основал Фонд свободного программного обеспечения для продвижения, финансирования и поддержки проекта GNU.

Все области операционной системы GNU развивались хорошо, кроме ядра. Разработчики проекта GNU работали над микроядром под названием GNU Hurd, но продвигались медленно. (Он все еще находится в разработке и приближается к выпуску.) Без ядра не было бы операционной системы.

В 1987 году Эндрю С. Танебаум выпустил операционную систему под названием MINIX (мини-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 не соответствует ни Единой спецификации Unix (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 for Linux Applications. Это позволяет системному администратору устанавливать сотни пакетов 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.

Stick Shift против автоматического

Если вы можете управлять одним, вы можете управлять и другим, даже если для начала это будет немного сложно.

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

Самые большие отличия — это не те, которые вы видите на экране.