Якась основна відмінність Unix від Linux у дизайні та інших аспектах? [зачинено]


24

Я продовжую читати це речення:

Linux - це система, схожа на Unix, але це не Unix.

Я не знаю, яка реальна різниця між ними. Я знаю, що Linux отримав багато ідей від Unix, і ліцензії обох різні. Крім того, оскільки я не є експертом жодного з них, я хочу знати, чи існують між ними основні відмінності в дизайні чи інші важливі аспекти.


2
Ви б проти зауважити, де ви це читали? пошук в Інтернеті показує мені Linux Kernel Development (3-е видання) Роберт Лав, це так?
гнат

Відповіді:


30

Система "схожий на Unix" може повністю відповідати Єдиній специфікації 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-бітних платформах на базі SPARC® Fujitsu PRIMEPOWER®
  • Компанія Hewlett-Packard: HP-UX 11i V3 випуск B.11.31 або новішої версії на серверах цілісності HP
  • Корпорація IBM: AIX 5L для POWER V5.2 від 8-2004 р. Або новішої версії з APARs: IY59610, IY60869, IY61405 з VAC 6.0.0.8 або новішими версіями на системах pSeries CHRP
  • Корпорація IBM: AIX 5L для POWER V5.3 від 7-2006 р. Або новішої версії Системи, що використовують архітектуру системи CHRP з процесорами POWER ™
  • Корпорація IBM: Операційна система AIX 6 V6.1.2 з 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, з іншого боку, створив Linux Standard Base , стандарт 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, яка наразі знаходиться у версії 4 SUSv4 (Single Unix Specification, версія 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 .


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 OS, тоді як FreeBSD - це те, що ви отримуєте, коли берете розробник Unix і просите його створити ОС для ПК .... не ' не забудьте BSD у своєму порівнянні!

Відмінності полягають в основному в ядрі, оскільки програми для користувацького простору (включаючи речі, такі як ls) є частиною проекту GNU. Це означає, що Unix, FreeBSD та Linux, схоже, є одне і те ж.

Однак, коли ви придивитесь уважніше, існують відмінності. Макет каталогів буде різним (але багато дистрибутивів Linux все одно використовують власні сумісні, але все ще різні макети), файлові системи різні (Unix використовує UFS, FreeBSD використовує FFS, Linux використовує Ext3 для спрощення - усі вони можуть використовувати порти звичайні ФС, наприклад, ZFS)

Тоді існують відмінності в основних API, Linux надасть API inotify, щоб повідомити, коли файли змінюються, Mac OSX дає вам FSEvents , а FreeBSD дає вам kqueue .

Таким чином, їх можна вважати однією і тією ж сім'єю - порівняйте систему Windows з перенесеними до неї інструментами GNU з системою Linux з тими ж інструментами. Вони виглядатимуть лише поверхово однаково, але система Unix або FreeBSD все ще буде порівняна. При ближчому огляді ви зможете перенести додатки між FreeBSD, Unix та Linux порівняно просто в порівнянні з переносом на альтернативні ОС, такі як Windows.


1

Unix - це вже не єдина операційна система. Раніше це було реалізацією Bell Labs / AT&T, але тепер це стандарт.

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

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

Сумісні системи - це, але не завжди, це сумісність власних та відкритих компонентів, тоді як Gnu / Linux може бути або повністю відкритим кодом, або також включати власні речі.

Що стосується відповідності Unix, відмінностей немає. Більшість дистрибутивів Linux та реалізацій Unix мають однаковий набір команд, використовуючи той самий набір параметрів. Однак ви знайдете безліч розширень стандартних команд, особливо на стороні Gnu, де їх називають Gnuisms, і численні команди, які не визначені стандартами в першу чергу (компілятори, адміністративні команди, установка, упаковка, графічне середовище). Це область, де можна знайти багато розбіжностей, несумісностей та іноді святих воєн.

Модель розробки Gnu / Linux зазвичай вважається більш "органічною" і "базарною", тоді як інші системи, подібні Unix, більш "розроблені" і "соборні". Залежно від підсистем, різниця не настільки чітка і залежить від осіб та / або компаній, що стоять за ними.


1

Linux постачається з багатьма інструментами, такими як:

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

Однак більшість операційних систем UNIX вважаються повноцінною операційною системою, оскільки все походить від одного джерела або постачальника.

Деякі речі, якими вони діляться:

  • GUI, файли та менеджери Windows (KDE, Gnome)
  • Снаряди (ksh, csh, bash)
  • Різні офісні програми, такі як OpenOffice.org
  • Інструменти розробки (компілятори perl, php, python, GNU C / C ++)
  • POSIX-інтерфейс

Linux також розширює філософію Unix ...
Робота

2
Linux - це не просто ядро, ядро ​​Linux - це ядро. Зазвичай Linux посилається на повну систему, яка складається навколо ядра Linux.
янніс

@Anonymous - Іноді, якщо ви редагуєте та виправляєте свою відповідь, поточні користувачі можуть видалити звуковий запис. Це не гарантується, але іноді це допомагає. (Я не подав заявки, просто намагаюся бути корисним) :) Решта вашої відповіді правильна, ІМХО, тому позбавлення від невідповідності може допомогти вам отримати кілька змін / уникнути більшої кількості повторних заявок.
jmort253

-7

Насправді Linux все-таки був спільною зворотною інженерією Unix, тому дизайн ядра слідував філософії Кена Томпсона. Спосіб Linux, схоже, полягає в тому, щоб наслідувати філософію Unix якомога ближче, ніколи не обтяжуючи себе оригінальною думкою.


@YannisRizos Що ви маєте на увазі під ", але це не було дійсно придатним для використання". AFAIK він був повністю придатний для використання, але оскільки він був написаний на монтажі PDP, важко було перенести його в інші архітектури.
sakisk

@ samual-johnson -1 Тому що ви не створюєте резервну копію своїх заяв із посиланнями. Це перший раз, коли я чую про "філософію Кена Томпсона" (і це Томпсон, а не Томсон).
sakisk

1
@faif Перевіряючи мої посилання, рудиментарне ядро, про яке я мав на увазі, було написане для GE-645, а не PDP, тож це було розтягненням назвати його ядром Unix. Я видалив коментар, оскільки головний момент стосувався відсутності посилань, і вашого коментаря достатньо, щоб передати це повідомлення. - особисті, будь ласка, знайдіть трохи часу, щоб або створити резервну копію ваших претензій з ґрунтовними посиланнями, або переглянути їх на щось менше, на основі думки.
янніс

@YannisRizos Цікаво. Я не чув про GE-645, який за Вікіпедією був вдосконаленою версією Multics. Дякуємо за інформацію.
sakisk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.