Яка різниця між Unix, Linux, BSD та GNU? [зачинено]


27

У чому полягає принципова відмінність Unix, Linux, BSD від GNU? Unix був найбільш ранньою ОС, тому термін "схожий на Unix" зрозумілий, оскільки вони мають ядро, структуру файлової системи, більшість команд, користувачів тощо такі ж, як і Unix. І все-таки чому вони різні? Що змусило їх виділитись? Це ядро?


2
Можливо, на це запитання відповідає відповідь, чи всі команди Unix були переписані в Linux? .
CVn

Відповіді:


31

На це складне питання відповісти.

По-перше, "Unix Like" або "* nix" зазвичай означає POSIX. Усі перераховані вами системи - це POSIX. POSIX - це набір стандартів для впровадження.

Тепер для більш складних питань.

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

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

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

Основна різниця в управлінні - ідеали. Unix, Linux та BSD мають різні ідеали, які вони реалізують. Всі вони POSIX, і всі вони в основному взаємозамінні. Вони вирішують одні і ті ж проблеми різними способами. Окрім ідеалів та того, як вони вирішили впровадити стандарти POSIX, різниці є мало.

Для отримання додаткової інформації пропоную вам прочитати коротку статтю про створення GNU, OSS, Linux, BSD та UNIX. Вони будуть нахилені до своїх індивідуальних ідей, але, прочитавши їх, ви отримаєте гарне уявлення про відмінності.

Ця генеалогічна діаграма Unix чітко показує історію Unix, BSD, GNU та Linux ( з Вікімедії ):

Генеалогічна діаграма Unix


зауважте: не все є POSIX. наприклад, дивіться man unimplemented(IIRC, можливо, це man security) в системі GNU / Linux.
strugee

Струже правильно. Вони не повністю сумісні, але намагаються бути. Не знаю, як це зробити у відповідь. Unix-Like також технічно відрізняється від POSIX, але загалом, коли люди кажуть, що Unix-Like вони зазвичай мають на увазі POSIX.
coteyr

1
Деякі додаткові відомості в цьому запитанні .

ні, розробники ядра Linux ніколи не збираються бути сумісними з POSIX. Я забуваю, де я це прочитав (я заглянув у мапажі, але не зміг його знайти), але є певні систематичні виклики, які ніколи не будуть реалізовані через міркування безпеки.
strugee

Я вважаю, що GNU спочатку мав бути ОС.
Faheem Mitha

14

Linux - це не ОС, це ядро. Linux сам по собі не має середовища "userland" (немає додатків, команд, немає ... тощо).

Якщо ви хочете мати повну ОС, вам потрібно додати до свого ядра поле користувача. Історично для Linux це GNU. Усі (?) Дистрибутиви Linux не є "справжніми дистрибутивами Linux". Вони є дистрибутивами GNU / Linux (GNU + Linux).

BSD - це "unix-подібний" повний ОС, з його власним ядром та власною користувальницькою базою (ні Linux Linux, ні GNU).

GNU / Linux та * BSD сімейства (FreeBSD, OpenBSD та NetBSD) - це "unix-подібні" ОС, вони поводяться як Unix.

Ось порівняння між (GNU) / Linux та * BSD: http://www.freebsd.org/doc/en/articles/explaining-bsd/comparing-bsd-and-linux.html


ваше посилання не працює
Антон

@Anthon це працює
Prvt_Yadav
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.