Есть ли принципиальное отличие Unix от Linux в дизайне и других аспектах? [закрыто]

24

Я продолжаю читать это предложение:

Linux - это Unix-подобная система, но это не Unix.

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

Gnijuohz
источник
2
Не могли бы вы уточнить, где вы это прочитали? веб-поиск показывает мне разработку ядра Linux (3-е издание) Роберта Лава, так?
комнат

Ответы:

30

«Unix-подобная» система может полностью соответствовать спецификации Single UNIX , собирательному названию стандартов для системы Unix, но в то же время Unix является зарегистрированным товарным знаком The Open Group, и поставщики Unix-подобных систем нуждаются чтобы их системы были официально зарегистрированы как Unix. В настоящее время зарегистрированными системами UNIX 03 являются:

  • Apple Inc .: Mac OS X версии 10.5 Leopard на компьютерах Macintosh с процессором Intel
  • Apple Inc .: Mac OS X Версия 10.6 Snow Leopard на компьютерах Macintosh с процессором Intel
  • Fujitsu Limited: операционная система Solaris ™ 10 на 64-битных платформах Fujitsu PRIMEPOWER® на базе SPARC®
  • Компания Hewlett-Packard: HP-UX 11i V3, выпуск B.11.31 или новее на серверах HP Integrity
  • Корпорация IBM: AIX 5L для POWER V5.2 от 8-2004 или более поздней версии с APAR: IY59610, IY60869, IY61405 с VAC 6.0.0.8 или более поздней в системах pSeries CHRP
  • Корпорация IBM: AIX 5L для POWER V5.3 от 7-2006 или новее для систем, использующих системную архитектуру CHRP с процессорами POWER ™
  • IBM Corporation: операционная система AIX 6 V6.1.2 с пакетом обновления 1 (SP1) или более поздней версии в системах, использующих архитектуру системы CHRP с процессорами POWER ™ и асинхронными картами с 2, 8 или 128 портами
  • Корпорация Oracle: Oracle Solaris 11 FCS и более поздних версий на платформах на основе SPARC, 32-разрядных и 64-разрядных, а также на платформах на основе X86, 32-разрядных и 64-разрядных
  • Корпорация Oracle: операционная система Solaris 10 плюс исправление 118844-06 для X86 и более поздних версий в 64-разрядных системах на основе X86
  • Корпорация Oracle: операционная система Solaris 10 и более поздняя, ​​в 32-разрядных и 64-разрядных системах на базе SPARC
  • Корпорация Oracle: операционная система Solaris 10 и выше в 32-разрядных системах на базе X86

Производители Unix-подобных систем с открытым исходным кодом (в основном Linux и FreeBSD) обычно не регистрируются в The Open Group, чтобы избежать затрат на сертификацию или, ну, в общем, потому что они не находят в этом особой ценности. Теоретически, вполне возможно, что Unix-подобная система технически является Unix, и все, чего ей не хватает, - это сертификации.

Фонд Linux с другой стороны, создал Standard Base Linux , в стандарт ISO , в попытке стандартизировать Linux. Совместимость с POSIX лежит в основе как SUS, так и LSB, поддерживая связь между Unix и Linux.

Unix и Unix-подобные системы, как правило, больше похожи, чем отличаются, теоретически все популярные версии Unix, зарегистрированные или нет, являются POSIX-совместимыми (полными или в основном), поэтому они имеют общий программный интерфейс, оболочки и утилиты (и многие другие). материал). IEEE и The Open Group поддерживают свободно доступную копию последней версии, POSIX.1-2008 , где вы можете найти больше информации о том, что на самом деле означает соответствие POSIX.

Теперь, кроме юридических и технических причин, Linux унаследовал мантру "не Unix" от своей ассоциации с GNU , операционной системой, подобной Unix, инициированной Ричардом Столлманом. GNU означает «GNU - это не Unix», так как Столлман намеревался создать Unix-совместимую систему, которая была бы бесплатной, и для этого она не должна содержать код Unix, поскольку Unix является проприетарным.

Ранние разработчики Linux начали переносить инструменты GNU на Linux, а получившаяся система называлась GNU / Linux еще в 1992 году . Существует длительный спор о том, следует ли называть Linux Linux или GNU / Linux (поскольку он включает в себя несколько частей GNU), но это не имеет отношения к вашему вопросу, важно то, что «не Unix» может просто относиться к ассоциации с GNU и имеют мало общего с его дизайном, в зависимости от контекста.

«История Linux» Статья в Википедии объясняет происхождение Linux , и это отношения с Unix (через Minix и GNU) в некоторых деталях, и вы также должны занять некоторое время , чтобы прочитать ссылки на статьи, если вы заинтересованы в том, узнать больше.

Яннис
источник
хороший ответ, я подожду и посмотрю, выберу ли ты мой ответ :)
Gnijuohz
8
@Gnijuohz Не спешите с принятием ответов, всегда дайте своему вопросу созреть в течение дня или двух (или более, если хотите), вы можете получить отличные ответы от людей, которые не будут отвечать, если увидят, что вы уже приняли ответ. Принятие ответа полностью зависит от вас, вам даже не нужно соглашаться, если ни один из ответов не был вам полезен, независимо от того, как сообщество ответило на них.
Яннис
1
Интересно, что последняя версия OS X не является «официально» UNIX.
Крис Харпер
@ root45 Этого следовало ожидать, так как требуется некоторое время, чтобы проверить версию на соответствие.
Яннис
@YannisRizos Ну ладно. В этом есть смысл. Спасибо за информацию.
Крис Харпер
4

UNIX - это семейство операционных систем, и в настоящее время UNIX - это скорее бренд, принадлежащий The Open Group. Для операционной системы под маркой UNIX она должна пройти тестирование на соответствие, а для Linux это будет означать, что каждый дистрибутив (Ubuntu, Debian, Fedora, Red Hat и т. Д.) Должен будет отдельно проходить это тестирование на соответствие для каждого выпуска , Так что это одна из основных причин, почему Linux является Unix-подобной системой, а не UNIX.

Это тестирование, которое я упомянул, заключается в обеспечении соответствия ОС спецификации Single Unix, которая в настоящее время находится в версии 4 SUSv4 (версия спецификации Single Unix версии 4). Эта спецификация определяет набор API-интерфейсов, которые должны быть доступны приложениям, чтобы система была квалифицирована для имени UNIX.

Рафаэль
источник
Это хороший стандарт для подражания? Пытаются ли авторы Linux?
Работа
1
Это хороший, но не полный стандарт. Разработчики ядра Linux стараются следовать этому стандарту, и Linux неофициально можно считать системой UNIX. Если вы разрабатываете приложения в соответствии со стандартами Unix, они, скорее всего, будут компилироваться и работать в системе Linux. К сожалению, как я уже говорил, UNIX является довольно неполным в некоторых аспектах, поэтому ОС предоставляют дополнительные API для некоторых задач, и это то, что делает определенные прикладные платформы зависимыми, поскольку эти дополнительные API имеют тенденцию изменяться.
Рафаэль
Был дистрибутив Linux-FT, который начал процесс сертификации POSIX, но неудивительно, что у спонсоров закончились деньги. ukuug.org/newsletter/linux-newsletter/linux@uk12/ftinfo.shtml
Спасибо за эту информацию! Я всегда задавался вопросом, пытался ли кто-нибудь там когда-либо сертифицировать дистрибутив.
Рафаэль
3

В существующих ответах уже упоминаются некоторые различия, которые вы ищете. Не будучи экспертом по ядру Linux, я бы также добавил, что многие из различий в разработке / реализации между GNU / Linux и различными Unices рассматриваются в серии шаблонов проектирования ядра Linux .

sakisk
источник
2

«UNIX» - это сложная вещь С точки зрения соответствия стандартам, Solaris и Mac OS X являются «официально» UNIX, но вам не нужно тратить много времени, прежде чем вы обнаружите довольно большие различия между ними. Есть отличная диаграмма, которая документирует выпуск различных разновидностей UNIX или UNIX-подобных операционных систем, а также того, как они влияют и отличаются друг от друга.

В общей схеме вещей, которые выглядят, ходят и крякают, как UNIX, система Linux [*] является одним из наиболее традиционных выпусков. Люди часто ссылаются на Unices или * nix и имеют в виду «что-нибудь UNIX-подобное», которое, вероятно, включает Linux. Однако UNIX является зарегистрированным товарным знаком с ограничениями на то, как он может применяться на коммерческой основе; ни один дистрибутив Linux не соответствует этим ограничениям.

[*] Поскольку этот вопрос предполагает уровень семантического разделения волос, я думаю, что в данном случае уместно указать, что сам Linux - это просто ядро, на котором может быть построена операционная система. Распространено построение UNIX-подобной системы поверх Linux, для которой она и была разработана, и эта система обычно состоит из компонентов проекта GNU. В ответе выше «Linux» можно прочитать как сокращение для «операционной системы, которая включает ядро ​​Linux».


источник
@YannisRizos Я добавлю ссылку на ответ, он определенно сертифицирован.
Да, вы абсолютно правы, начиная с Leopard и далее, Mac OS сертифицирована на UNIX 03, и вот еще одно упоминание .
Яннис
2

Однажды я прочитал, что Linux - это то, что вы получаете, когда берете разработчика для ПК и просите его написать ОС для Unix, тогда как FreeBSD - это то, что вы получаете, когда берете разработчика для Unix и просите его сделать ОС для ПК…. не забудьте о BSD в вашем сравнении!

Различия в основном в ядре, так как приложения пользовательского пространства (включая такие, как ls) являются частью проекта GNU. Это означает, что Unix, FreeBSD и Linux кажутся практически одинаковыми.

Однако есть разницы, если вы посмотрите внимательно. Структура каталогов будет другой (но многие дистрибутивы Linux используют свои собственные, в основном совместимые, но все равно разные), файловые системы разные (Unix использует UFS, FreeBSD использует FFS, Linux использует Ext3 для упрощения - все они могут использовать порты общие FS, например ZFS)

Кроме того, существуют различия в основных API-интерфейсах: Linux предоставит вам API inotify для уведомления об изменениях файлов, Mac OSX предоставит вам FSEvents , а FreeBSD даст вам запрос .

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

gbjbaanb
источник
1

Unix больше не является единой операционной системой. Раньше это была реализация Bell Labs / AT & T, но теперь это стандарт.

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

Стандарт Unix не требует, чтобы совместимая система была проприетарной или имела какую-либо конкретную лицензию. BSD, OpenSolaris / Illumos, darwin являются примерами не-Linux еще бесплатных реализаций Unix.

Совместимые системы обычно, но не всегда, представляют собой смесь проприетарных и открытых компонентов, в то время как Gnu / Linux может быть либо полностью открытым исходным кодом, либо включать проприетарные вещи.

Что касается соответствия Unix, то особых различий нет. Большинство дистрибутивов Linux и реализации Unix используют один и тот же набор команд с использованием одного и того же набора параметров. Тем не менее, вы найдете множество расширений стандартных команд, особенно на стороне Gnu, где они называются Gnuisms, и многочисленные команды, которые в первую очередь не определены стандартами (компиляторы, административные команды, установка, упаковка, графическая среда). Это область, где вы можете найти много расхождений, несовместимостей и иногда священных войн.

Модель разработки Gnu / Linux обычно считается более «органичной» и «базарной», в то время как другие Unix-подобные системы более «спроектированы» и «соборные». В зависимости от подсистем, разница не так очевидна и зависит от отдельных лиц и / или компаний, стоящих за ними.

jlliagre
источник
1

Linux поставляется со многими инструментами, такими как:

  • GUI система
  • Утилиты GNU (такие как cp, mv, ls, date, bash и т. Д.)
  • инструменты для установки и управления
  • Компиляторы GNU C / C ++
  • Редакторы (vi)
  • и различные приложения (такие как OpenOffice, Firefox).

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

Некоторые вещи, которые они разделяют:

  • GUI, файловый и оконный менеджеры (KDE, Gnome)
  • Снаряды (кш, чш, баш)
  • Различные офисные приложения, такие как OpenOffice.org
  • Инструменты разработки (компиляторы perl, php, python, GNU C / C ++)
  • Интерфейс POSIX
Billjk
источник
Linux также расширяет философию Unix ...
Job
2
Linux - это не просто ядро, ядро ​​Linux - это ядро. Linux обычно относится к полной системе, построенной вокруг ядра Linux.
Яннис
@ Аноним - Иногда, если вы отредактируете и исправите свой ответ, пользователи могут удалить голосование вниз. Это не гарантировано, но иногда это помогает. (Я не отрицал, просто пытался быть полезным) :) Остальная часть вашего ответа верна, ИМХО, поэтому избавление от несоответствия может помочь вам получить некоторые отрицательные голоса / избежать дополнительных отрицательных голосов.
jmort253
-7

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

Самуал Джонсон
источник
@YannisRizos Что вы подразумеваете под "но это не было действительно полезным". AFAIK он был полностью применим, но поскольку он был написан на сборке PDP, было трудно перенести его на другие архитектуры.
Сакиск
@ samual-johnson -1 Потому что вы не подтверждаете свои утверждения ссылками. Я впервые слышу о «философии Кена Томпсона» (и это Томпсон, а не Томсон).
Сакиск
1
@faif Проверяя мои ссылки, рудиментарное ядро, на которое я ссылался, было написано для GE-645, а не для PDP, поэтому называть его ядром Unix было натяжкой. Я удалил комментарий, так как главный вопрос был об отсутствии ссылок в любом случае, и вашего комментария достаточно, чтобы передать это сообщение. - Самуаль, пожалуйста, найдите время, чтобы либо подкрепить свои претензии убедительными ссылками, либо пересмотреть его на что-то менее основанное на мнениях.
Яннис
@YannisRizos Интересно. Я не слышал о GE-645, который, согласно Википедии, был улучшенной версией Multics. Спасибо за информацию.
Сакиск