Linux є Unix?


190

Отже, існує багато різних версій Unix: HP-UX, AIX, BSD тощо. Linux вважається клоном Unix, а не реалізацією Unix. Чи всі "справжні" Союзи - справжні нащадки оригіналу? Якщо ні, то що відділяє Linux від Unix?


Відповіді:


224

Це залежить від того, що ви розумієте під "Unix" та "Linux".

  • UNIX є зареєстрованою торговельною маркою в The Open Group . У торговельної марки була історія, що склалася, і не зовсім зрозуміло, що вона не генерізована завдяки широкому використанню системи «Unix» для систем, схожих на Unix (див. Нижче). В даний час Open Group надає використання торгової марки будь-якій системі, яка проходить єдину сертифікацію UNIX . Дивіться також Чому існує * Коли в Інтернеті згадується Unix? .

  • Unix - це операційна система, яка народилася в 1969 році в Bell Labs . Різні компанії, що продають і досі продають код, отриманий з цієї оригінальної системи, наприклад AIX , HP-UX , Solaris . Дивіться також Еволюція операційних систем від Unix .

  • Є багато систем, подібних Unix, оскільки вони пропонують подібні інтерфейси програмістам, користувачам та адміністраторам. Найдавнішою виробничою системою є програмне забезпечення Berkeley Software Distribution , яке поступово еволюціонувало від Unix-бази (тобто містить код, отриманий від оригінальної реалізації) до Unix-подібного (тобто має аналогічний інтерфейс). Існує багато операційних систем на базі BSD або BSD: FreeBSD , NetBSD , OpenBSD , Mac OS X тощо. Інші приклади включають OSF / 1 (тепер припинено, це була комерційна система, яка не схожа на Unix, яка не базується на Unix), Мінікс(спочатку іграшкова операційна система Unix, що використовується як навчальний інструмент, тепер у виробництво вбудована система, схожа на Unix), і найвідоміше Linux .


  • Строго кажучи, Linux - це ядро ​​операційної системи, розроблене як ядро ​​Unix.

  • Linux найчастіше використовується як назва Unix-подібних операційних систем, які використовують Linux як своє ядро. Оскільки багато інструментів поза ядром є частиною проекту GNU , такі системи часто називають GNU / Linux . Усі основні дистрибутиви Linux складаються з GNU / Linux та іншого програмного забезпечення.

  • Є Linux-базировані Unix-подібні системи, які не використовують багато інструментів GNU, особливо у вбудованому світі, але я не думаю, що жодна з них не усуває інструменти розробки GNU, зокрема GCC .

  • Є операційні системи, у яких Linux є своїм ядром, але вони не схожі на Unix. Найвідомішим є Android , який не має подібного користувальницького досвіду (хоча ви можете встановити командний рядок, схожий на Unix) або досвід адміністратора або (в основному) досвід роботи програміста ("рідні" програми Android використовують API, який повністю відрізняється від Unix).


70
І не будемо забувати, що GNU розшифровується як "GNU is not Unix"!
алекс

57
"Gnu - це не Unix" означає, що Gnu не базується на оригінальному коді Unix, Gnu не хоче реалізувати специфікації Unix. Цитуючи rms: "Безкоштовно Unix! Починаючи цей День Подяки, я збираюся написати повну сумісну з Unix програмну систему під назвою GNU (для Gnu's не Unix) і подарувати її безкоштовно (1) для всіх, хто може цим користуватися."
jlliagre

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

6
@Kevin: Кальдера (тепер сумно відома під іншим ім’ям) колись працювала над нею, хоча вони не пройшли повний шлях (вони, здається, відмовилися від ідеї і наполегливо натиснули на LSB, перш ніж раптом забули, що коли-небудь чули про Linux).
Жиль

4
@milkovsky Ні. Як я пояснюю у своїй відповіді, слово "Linux" має два значення. "Android на базі Linux" відповідає дійсності із значенням 1 (ядро). "Linux є Unix-подібний" вірно зі значенням 2 (операційна система).
Жиль

58

Для всіх намірів і цілей типовий сучасний дистрибутив Linux (Ubuntu, Debian, Red Hat, Fedora, Slackware тощо) - це Unix, але строго кажучи, жодна система не може претендувати на те, що вона є Unix без сертифікації, тому люди замість цього кажуть, що вони є Unix-подібний. Вони натхненні Unix і несуть його культуру.

Це стосується і систем BSD.

Mac OS X є сертифікованим Unix, тому це Unix і в імені, і в дійсності. (і насправді заснована на BSD).

Слід зазначити, що оскільки сам Linux є лише ядром, його можна використовувати для створення не unix-подібних систем (наприклад, Android).


1
Примітка: ядро ​​Mac OS X не засноване на будь-якому ядрі BSD. Частина режиму користувача базується на FreeBSD, а в частині NetBSD, наскільки мені відомо.
0xC0000022L

2
Сьогоднішнє ядро ​​може дещо відрізнятися від ядра BSD, але я думаю, що воно спочатку (принаймні частково) було засноване на ньому.
hasen

3
Слід зазначити, що FreeBSD є прямим нащадком ATT Unix і колись містив код ATT Unix. Це не просто "надихнуло" Unix.
Роб

2
@ 0xC0000022L, і ми підемо далі "Ранні версії Маха мали монолітні ядра з великою кількістю коду BSD в ядрі. Mach 3.0 був першою реалізацією мікроядер". Як на мене, osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html є досить авторитетним джерелом.
poige

2
І на закінчення: "Деякі аспекти, за які відповідає BSD, включають: ідентифікаційні дані, дозволи користувачів, процесорну модель процесора, систему стилів BSD, виклик стеку TCP / IP, розетки BSD, VFS брандмауера та файлові системи (див. Файлові системи Mac OS X для подробиці) Система V IPC криптовалюта різні механізми синхронізації ". Як на мене цього достатньо, щоб сказати, що він заснований на BSD. Обличчя правди.
poige

23

Linux більше "схожий на Unix", так що так просто ви можете назвати його клоном, те ж саме стосується BSD (хоча, правда, BSD можна вважати ближче до Unix, ніж Linux).

Головне, що надає Linux назву, схожу на Unix, - це той факт, що він майже повністю відповідає стандартам w / POSIX (Портативний інтерфейс операційної системи [для Unix]), які з часом накопичуються.

Інша ключова річ - це успадкування коду тощо , як показано у Вікіпедії, Linux насправді не походить з джерел Unix, натомість він в значній мірі побудований з нуля (однак це суперечить).

Отже, по суті, головне, що відокремлює Unix від Linux, - це походження та стандарти, яким він відповідає.


1
Існує також Єдина специфікація Unix для розгляду.
Денніс Вільямсон

Я б точно сказав, що BSD ближче до Unix, ніж Linux. Завдяки більш ліберальній ліцензії BSD та її тісній розробці з AT&T UNIX, у комерційному Unix використовується багато вихідного коду BSD та його API. Файлова система UFS в Solaris та деякі інші комерційні UNIX прийшли прямо з BSD. Також на BSD був розроблений API Berkely Sockets (не обов'язково джерело), ​​який використовується всіма, включаючи Linux.
penguin359

3
Після всього безладу SCO проти IBM стало зрозуміло, що ядро ​​Linux взагалі не містить коду Unix.
фонбранд

11

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

Спочатку ви повинні врахувати, що Linux - це ядро, яке було зроблено linus та іншими програмістами. Він вирішив випустити його разом із GPL, який на той час був ліцензією ФСФ (RMS та інших людей), які також розробляли власне ядро ​​та GNU.

Те, що ми зазвичай називаємо Linux, - це спочатку ядро, а також всі інші інструменти, що спочатку надходять із проекту GNU. Ці два проекти історично відрізняються, тому що в той час ядро ​​від FSF людей відмовилися віддати перевагу ядра Linux, що було набагато краще.

Я пам’ятаю, що існує документальний фільм, ви справді повинні його переглянути, я вважаю це важливим для вашої культури програмування.

Ще одна річ, яку ви повинні враховувати, думаючи про "* nix", - це також те, що включає POSIX та інші стандартизовані архітектури речі. Це предмет дизайну / дослідження ОС, але він визначає, як саме працюють задіяні ОС, і є вирішальним, коли у вас ядро ​​добре працює з його інструментами.


Насправді POSIX зараз називається SUS (Single Unix Specification), про який згадувалося.
0xC0000022L

1
@STATUS POSIX був основою для SUSv2. Пізніше Група Остін була сформована як спільна робоча група між IEEE, яка створила POSIX та The Open Group, яка володіє торговою маркою UNIX та специфікацією UNIX. Вони випустили POSIX: 2001, також відомий як SUSv3. Наскільки я можу сказати, вони однакові. POSIX все ще розробляється за допомогою POSIX: 2004 та POSIX: 2008, що є ядром SUSv4. Я не думаю, що POSIX ще не мертвий. en.wikipedia.org/wiki/Single_UNIX_Specification
penguin359

Я розумію, що SUS - це POSIX з деякими доповненнями.
vonbrand

Посилання на цей документальний фільм?
Едвард Торвальдс

Едвард Торвальдс Вибачте, що не можу згадати назву. Він, зокрема, містив RMS та був схожий на старого документа.
jokoon

6

Вже є безліч чудових відповідей, але я вважав, що погляди великого Денніса Річі (співтворця Unix) будуть цікавим доповненням до інших більш технічних відповідей.

Схоже, що Деніс Річі вважав Linux законною похідною Unix. У інтерв'ю 1999 року для LinuxFocus.org його запитали:

яка ваша думка щодо всього імпульсу Linux та рішення багатьох компаній почати розробку програмного забезпечення для нього?

Його відповідь на запитання була

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


1

Історично Лінус Торвальдс створив вдосконалений клон Minix OS. Розробка Linux не орієнтована на конкретну платформу та клієнтську базу, а розробники Linux мають різноманітний досвід та перспективи. Такі ОС, як HP-UX, AIX, Solaris та інші, в основному заточені для постачальників.

У спільноті Linux немає суворого стандартного набору інструментів чи середовищ. Ця відсутність стандартизації призводить до значних невідповідностей всередині Linux. Для деяких розробників можливість використовувати найкращі досягнення інших операційних систем є плюсом, але не завжди зручно копіювати UNIX-елементи в Linux, наприклад, коли імена пристроїв всередині Linux можна взяти з AIX, тоді як інструменти для робота з файловою системою зосереджена на HP-UX. Несумісності такого роду також виявляються між різними дистрибутивами Linux.


0

Unix, спочатку UNICS (UNiplexed Infomation and Computing Service).

Unix (торгова марка UNIX) - це сімейство багатозадачних, багатокористувацьких комп'ютерних операційних систем, що походять від оригінальної AT&T Unix. Розробка розпочалася в 1969 році і була оголошена за межами Bell abs у жовтні 1973 року.

Різноманітність академічних та комерційних варіантів Unix від таких постачальників, як Каліфорнійський університет, Берклі (BSD), Microsoft (Xenix), IBM (AIX) та Sun Microsystems (Solaris).

  • Випуски BSD ( B erkeley S oftware D istribution ) послужили основою для декількох проектів розробки з відкритим кодом, які тривають, наприклад, FreeBSD, OpenBSD, NetBSD, Darwin та TrueOS.
  • Xenix - це припинена версія операційної системи Unix для різних мікрокомп'ютерних платформ, ліцензована корпорацією Microsoft.
  • AIX ( dvanced I Інтерактивно е X ecutive) розроблені і продаються IBM для кількох своїх комп'ютерних платформ.

Linux - це сімейство операційних систем вільного та відкритого програмного забезпечення, побудованих навколо ядра Linux. Визначальним компонентом Linux є ядро ​​Linux, ядро ​​операційної системи, вперше випущене 17 вересня 1991 року Лінусом Торвальдсом.

Linux упакований у форму, відому як дистрибутив Linux (або короткий дистрибутив) як для настільного, так і для серверного використання. Деякі з найпопулярніших і основних потоків дистрибутивів Linux - Arch Linux, CentOS, Debian, Fedora, Gentoo Linux, Linux Mint, Mageia, openSUSE і Ubuntu, а також комерційні дистрибутиви, такі як Red Hat Enterprise Linux

Інтерфейс користувача, також відомий як оболонка, є або інтерфейсом командного рядка (CLI), графічним інтерфейсом користувача (GUI), або через елементи управління, приєднані до відповідного обладнання, що є загальним для вбудованих систем. Для настільних систем звичайним режимом є графічний інтерфейс користувача, хоча CLI зазвичай доступний через вікна емулятора терміналів або на окремій віртуальній консолі.

  • Оболонки CLI - це текстові інтерфейси користувача, які використовують текст як для введення, так і для виведення. Домінуючою оболонкою, що використовується в Linux, є оболонка Bourne-Again (bash), спочатку розроблена для проекту GNU.
  • Оболонки графічного інтерфейсу - це K Desktop Environment (KDE), GNOME, MATE, Cinnamon, Unity, LXDE, Pantheon та Xfce, хоча існує безліч додаткових інтерфейсів користувача. Найбільш популярні інтерфейси користувачів базуються на системі X Window System, яку часто називають "X".

GNU - це операційна система та велика колекція комп'ютерного програмного забезпечення. GNU складається повністю з вільного програмного забезпечення, більшість з яких ліцензовано відповідно до власної GPL Проекту GNU. GNU - рекурсивна абревіатура для "GNU's не Unix!", Обрана тим, що дизайн GNU є подібним до Unix, але відрізняється від Unix тим, що є вільним програмним забезпеченням і не містить коду Unix. Розробка операційної системи GNU була ініційована Річардом Сталманом, працюючи в Лабораторі штучного інтелекту Массачусетського технологічного інституту (MIT) у 1983 році.

Основні компоненти включають колекцію компілятора GNU (GCC), бібліотеку GNU C (glibc) та основні утиліти GNU (coreutils), а також налагоджувач GNU (GDB), бінарні утиліти GNU (binutils), оболонку GNU Bash та GNOME середовище робочого столу.


-7

Linux є Unix-подібною операційною системою, розробленою Лінусом Торвальдсом та тисячами інших.
BSD - це операційна система UNIX, яка з юридичних причин повинна називатися Unix-Like.
OS X - це графічна операційна система UNIX, розроблена компанією Apple Inc.

Linux - найвизначніший приклад "справжньої" ОС Unix. Він працює на будь-що і підтримує набагато апаратніші ніж BSD або OS X. Цікава цитата, яку я знайшов, коли порівнював BSD та Linux:

Linux - це те, що ви отримуєте, коли купа ПК-хакерів сідає і намагається написати систему Unix для ПК. BSD - це те, що ви отримуєте, коли купа UNIX-хакерів сідає і намагається перенести систему Unix на ПК.

BSD більше схожий на ОС Unix, ніж Linux. Також примітно, що Apple використовує компоненти BSD та Linux. Apple використовує APT від Debian та Ubuntu на платформах iOS та OS X. І базується на BSD. (Ядро, хоч і Дарвін, це його власне ядро. Бістіший мечоносець є талісманом Дарвіна, тому що він є сумішшю між Бісті з BSD та Платипусом.)

Якщо ви хочете "справжню" операційну систему Unix (ту, яка працює на будь-що і підтримує багато обладнання), спробуйте Linux.
Якщо ви хочете апаратну підтримку нижнього класу та головний біль (я знаю, я отримаю тону ненависті, але мені все одно), використовуйте BSD.
Якщо ви хочете витратити $ 1000 +, використовуйте OS X та iOS. (Знову я, мабуть, отримаю тонну ненависті.)

Я давно користувач Linux, використовуючи його і з 90-х до початку 2000-х, а потім кинув його на деякий час, але знову почав використовувати його в середині 2012 року в якості моєї постійної ОС, тому я можу рекомендувати його всім, хто хоче спробувати щось інше, ніж Windoze.


4
Оскільки Linux останнім часом змінюється разом із Wayland / systemd / тощо, він все більше і більше віддаляється від того, щоб бути системою, схожою на Unix, і стати її власною сутністю. Це робить себе менш сумісним з справжніми Unix та Unix-подібними системами до того моменту, коли ці реальні системи виробили «не байдуже» ставлення до Linux. Ваші "рекомендації" не підходять, і я змушую погодитися з вами, що ви не торкалися жодного з цих речей протягом 15 років.
Роб

11
Linux - це не ОС, а ядро.
Мартін Шредер

3
Apple не використовує APT від Debian. Він включає зовсім інший інструмент під назвою APT (інструмент обробки анотацій Java). А спільнота джейлбрейка використовує APT як менеджер пакетів для встановлення програм iOS проти волі Apple.
abarnert

4
Насправді майже кожне твердження у цій відповіді є неправильним. "Працює на багатьох системах == Unix" - смішно. Apple ніколи не випускала систему в розмірі $ 1000 + під управлінням iOS. BSD - це сімейство Unix та Unix-подібних систем, а не одна ОС. Linux - це ядро, яке може поєднуватися з Unix-подібною користувальницькою землею (наприклад, GNU), зведеною користувальницькою Unix-ish (наприклад, eLinux чи Android) або будь-чим іншим. І так далі.
abarnert
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.