Linux vs Unix - в чем разница?

28 January

Linux черпал вдохновение из Unix, но Linux - это не Unix, хотя он определенно похож на Unix. Мы объясним основные различия между этими двумя известными операционными системами.

Linux vs 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 привело к появлению в 1973 г. версии 4 Unix. Это было важно, потому что характеристики языка C и компилятора означали, что теперь переносить Unix на новые компьютерные архитектуры было относительно легко.

В 1973 году Кен Томпсон и Деннис Ритчи представили на конференции доклад о Unix. В результате запросы на копии Unix хлынули в Bell. Поскольку продажа операционных систем выходила за рамки разрешенного объема деятельности AT&T, они не могли рассматривать Unix как продукт. Это привело к распространению Unix в виде исходного кода с лицензией. Номинальных затрат было достаточно, чтобы покрыть отгрузку и упаковку, а также «разумный гонорар». Unix пришла «как есть», без технической поддержки и исправлений ошибок. Но вы получили исходный код - и вы могли его изменить.

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

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

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

В 1987 году Эндрю С. Танебаум выпустил операционную систему MINIX (mini-Unix) в качестве учебного пособия для студентов, изучающих проектирование операционных систем. MINIX была функциональной Unix-подобной операционной системой, но имела некоторые ограничения, особенно в отношении файловой системы. В конце концов, исходный код должен быть достаточно маленьким, чтобы его можно было адекватно изучить за один университетский семестр. Некоторой функциональностью пришлось пожертвовать.

Чтобы лучше понять внутреннюю работу Intel 80386 на своем новом ПК, студент-информатик Линус Торвальдс написал в качестве учебного упражнения простой код переключения задач. В конце концов, этот код стал элементарным прото-ядром, которое стало первым ядром Linux. Торвальдс был знаком с MINIX. Фактически, его первое ядро ??было разработано на MINIX с использованием компилятора GCC Ричарда Столлмана.

Линус Торвальд
Линус Торвальд

Кто занимается разработкой?

Дистрибутив Linux - это сумма множества различных частей, взятых из самых разных мест. Ядро Linux, набор основных утилит GNU и пользовательские приложения объединены для создания жизнеспособного дистрибутива. И кто-то должен заниматься этим объединением, обслуживанием и управлением - точно так же, как кто-то должен разрабатывать ядро, приложения и основные утилиты. Сопровождающие дистрибутива и сообщества каждого дистрибутива играют свою роль в создании дистрибутива Linux так же, как и разработчики ядра.

Linux - это результат распределенных совместных усилий, выполняемых неоплачиваемыми добровольцами, такими организациями, как Canonical и Red Hat, а также отдельными лицами, спонсируемыми отраслью.

Разработчики
Разработчики

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

Бесплатные производные потока BSD Unix с открытым исходным кодом, такие как FreeBSD, OpenBSD и DragonBSD, используют комбинацию устаревшего кода BSD и нового кода. Теперь они поддерживаются сообществом и управляются так же, как и дистрибутивы Linux.

Также важно отметить, что Linux - это только ядро, а не полная ОС. Это ядро Linux обычно входит в состав дистрибутивов Linux, что делает его полноценной ОС.

Дистрибутив Linux - это операционная система, созданная из набора программного обеспечения, построенного на ядре Linux, и система управления пакетами.

Стандартный дистрибутив Linux состоит из ядра Linux, системы GNU, утилит GNU, библиотек, компилятора, дополнительного программного обеспечения, документации, оконной системы, оконного менеджера и среды рабочего стола.

Таким образом, дистрибутивы Linux фактически делают ядро Linux полностью пригодным для использования в качестве операционной системы, добавляя к нему различные приложения. Существуют различные разновидности дистрибутивов Linux, которые обслуживают широкий спектр потребностей пользователей.

Например, у нас есть ОС на базе OpenWrt Linux для встраиваемых устройств, Linux Mint для персональных компьютеров и Rocks Cluster Distribution для суперкомпьютеров. Всего существует около 600 дистрибутивов Linux.

Или, например, популярная мобильная ОС Android от Google основана на Linux. Каждая итерация ОС Android построена на текущем ядре Linux.

Дерево Unix
Дерево Unix

Стандарты и соответствие

В общем, Linux не соответствует ни единой спецификации Unix (SUS), ни POSIX. Он пытается удовлетворить оба стандарта, не будучи зависим от них. Таие ОС называются Unix-подобными ОС (Unix-like, UN*X или *nix). Linux - это Unix-подобная операционная система с некоторыми изменениями в дизайне Unix. Было одно или два (буквально одно или два) исключения, такие как Inspur K-UX, китайский Linux, совместимый с POSIX.

POSIX (Portable Operating System Interface — переносимый интерфейс операционных систем) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой (системный API)
Single UNIX Specification (SUS) — общее название для семейства стандартов, которым должна удовлетворять операционная система, чтобы называться «UNIX»

Настоящий Unix, как и коммерческие предложения, соответствует требованиям. Некоторые производные BSD, включая все версии macOS, кроме одной, совместимы с POSIX. Имена вариантов, такие как AIX, HP-UX и Solaris, являются товарными знаками соответствующих организаций. MacOS - это сертифицированная ОС Unix. У него есть собственное ядро под названием XNU. MacOS используется в компьютерах Apple.

Товарные знаки и авторское право

Linux - зарегистрированная торговая марка Линуса Торвальдса. Linux Foundation управляет торговой маркой от его имени. Ядро Linux и основные утилиты выпускаются под различными общедоступными лицензиями GNU с «авторским левом». Исходный код находится в свободном доступе.

Unix - зарегистрированная торговая марка Open Group. Он защищен авторским правом, проприетарен и имеет закрытый код.

FreeBSD защищена авторским правом FreeBSD Project, и исходный код доступен.

Различия в использовании

С точки зрения пользовательского опыта, в командной строке нет большой видимой разницы. Из-за стандартов и соответствия 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.

Подробнее про различия

Использование и операции

Linux используется от малых до средних операций, в то время как ранее UNIX был единственным вариантом. Большинство поставщиков программного обеспечения перешли на Linux, поскольку это открытое программное обеспечение, которое свободно распространяется и предпочтительно для веб-служб и офисных операций. В большинстве случаев используется Linux, но бывают случаи, когда UNIX имеет преимущество. Как и на предприятиях, которые используют массивные симметричные многопроцессорные системы, UNIX - правильный выбор. Серьёзным конкурентом Linux какое-то была FreeBSD, но благодоря открытости Linux стал лидером мира свободного ПО.

Основные характеристики

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

Возможности UNIX:

  • Это многопользовательская и многозадачная ОС.
  • На серверах и рабочих станциях UNIX используется в качестве главной управляющей программы.

Возможности Linux:

  • Это многозадачная ОС, которая также поддерживает многопользовательские программы.
  • Одна программа может иметь более одного процесса, и каждый из процессов может иметь более одного потока.
  • На одном компьютере вы можете установить Linux, а также другую ОС, и обе ОС будут работать без сбоев.
  • У него есть авторизованная учетная запись, поэтому отдельные учетные записи защищены.

Безопасность

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

Аппаратная архитектура

Если мы увидим коммерческие версии Unix, то большинство из них поддерживает свои собственные аппаратные машины. Например. HP-UX поддерживает только компьютеры PA-RISC и Itanium, Solaris работает на SPARC и x86, который является процессором питания. Они подпадают под ограничения UNIX, и по этой причине производители Unix имеют преимущество в том, что они могут оптимизировать код и драйверы.

В случае с Linux это не так. Linux был написан таким образом, чтобы он мог поддерживать максимальное количество машин. Есть несколько платформ и машин, на которых может работать Linux с поддержкой нескольких других устройств ввода-вывода. Здесь разработчики не знают, в какой системе будет установлено программное обеспечение, поэтому они не могут оптимизировать код.

Ядро

Процесс установки исправлений и компиляции различен для Linux и Unix. В Linux патч может быть выпущен на форуме, и конечный пользователь может установить его на свой компьютер. Этот патч также может редактироваться и изменяться конечным пользователем. Поскольку существует множество сред, поддерживающих приложения Linux, разработчики зависят от многих глаз, чтобы знать об ошибках и угрозах.

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

Поддержка файловой системы

Существует множество файловых систем, поддерживаемых Linux, тогда как в случае Unix он поддерживает меньшее количество систем. Ниже мы увидим некоторые файловые системы, поддерживаемые разными ОС.

  • Linux - Jfs, Xfs, Btrfs, Ext2, Ext3, Ext4, FAT, FAT32, NTFS, devpts и так далее.
  • Unix - ufs, xfs, zfs, jfs, hfs +, hfs и так далее.

Доступность приложений

Как упоминалось выше, Linux - это клон Unix. Таким образом, многие приложения одинаковы в обеих ОС. Некоторые похожие команды - cp, ls, vi и cc. Linux - это версия GNU, тогда как Unix основан на оригинальных инструментах. Но это не следует путать, поскольку некоторые поставщики Unix используют инструменты GNU в своих установках. Большинство поставщиков предоставляют эти инструменты в виде предварительно скомпилированных пакетов, которые устанавливаются или поставляются как дополнительный компонент.

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

Поддержка

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

Заключение

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

Разница между ними также будет зависеть от того, какие именно версии Linux и Unix вы сравниваете.

Также важно указать, что Linux (и многие другие Unix-подобные ОС) можно свободно получать и изменять, в то время как операционные системы Unix - нет. Стоимость всегда является основным вопросом при принятии решения, какую технологию использовать, и Linux имеет в этом отношении преимущество.

Linux более гибкий и бесплатный по сравнению с настоящими системами Unix, и именно поэтому Linux стал более популярным. При обсуждении команд в Unix и Linux они не одинаковы, но очень похожи. Фактически, команды в каждом дистрибутиве одного и того же семейства ОС также различаются.

В Solaris, HP, Intel и других используются Интернет-серверы Unix, рабочие станции и персональные компьютеры. В то время как Linux широко используется для компьютерного программного обеспечения и оборудования, игр, планшетов, мэйнфреймов и т.д.

Есть исследования, которые говорят, что Linux за последние несколько лет развивается быстрее, чем любая другая ОС. Следовательно, в будущем Linux может оставить далеко позади установки UNIX.

Оригинал статьи