Які основні відмінності між BSD та GNU / Linux користувачем?


38

Я багато читав в Unix & Linux про BSD та GNU тощо. Але я все ще не розумію, які існують фактичні, практичні відмінності між BSD та GNU користувачами, незважаючи на те, що вони часто згадуються. Може хтось детальніше розробив?

Відповідаючи, будь ласка, повністю поясніть історичні зв’язки, маючи на увазі, що я не жив досить довго, щоб переживати час, коли GNU / Linux не був основним UNIX (за винятком OS X).


2
Тут я опублікував список відмінностей від GNU / Linux в OS X в середовищі командного рядка: reddit.com/r/commandline/comments/4jydnw/… .
нісетама

Відповіді:


28

Термін "userland" може стосуватися багатьох речей у різних контекстах, але тут я трактую "GNU userland" vs "BSD userland" як мінімальний набір програм, що постачаються з дистрибутивом.

Велика основна відмінність полягає в тому, що обидві області користувачів починаються з зовсім іншого вихідного коду. Вихідний код кішки GNU NetBSD вихідний код кішки . Тільки з цієї простої в концепції програми ви можете бачити, що кішка NetBSD використовує традиційні прапори командного рядка з однією буквою. Програми GNU, як правило, мають однолітерні прапори, але також і --something-longпараметри типу. Програми GNU також схильні до сумісності з POSIX.

Ця різниця у вихідному коді в деяких випадках надасть двом користувачам різну поведінку.

Також схоже, що NetBSD (принаймні) використовує власну версію libc, стандартну бібліотеку C. Я заходжу сюди над головою, але розширення та динамічні зв'язки дивно взаємопов'язані. Знову-таки, різний вихідний код призведе до різної поведінки.

Я думаю, що як користувач оболонки ви виявите, що psце діятиме інакше, і це lsможе дати вам трохи інший результат, ніж ви звикли. Для деяких програм вам доведеться знайти еквівалентні прапорці командного рядка для деяких програм--long-option тип прапорів командного рядка, .

Історично я розумію, що BSD користувальницька земля спускається безпосередньо з V6 та V7 Bell Labs Unix, через порт 32В до обладнання VAX. GNU userland - новіший, написаний хоча б дещо як реакція на спроби AT&T зберегти код, який чітко зберігається таємницею на початку 80-х. Після розпорядження Bell System 1983 року AT&T намагалися "монетизувати" Unix. Частина цього полягала в тому, щоб ліцензувати вихідний код таким чином, щоб більшість людей не бачили його бачити. Річард Сталлман та інші мали проблеми з цим. Їхній проект GNU існував спеціально для створення системи, що легко передається Unix, що поділяється.

Тим часом, до 1993 року AT&T подав позов до системи Каліфорнійського університету за системою BSD ("B" - Берклі, де розташований Каліфорнійський університет). Люди в Берклі замінили все оригінальне джерело AT&T новим кодом, і цей новий код став родоначальником принаймні користувальницької мережі NetBSD. AT&T та UCB прийшли до врегулювання в 1994 році, виявилося для громадськості в 2004 році.

Природно, щонайменше ідеї перехресно запилюються, тому існує принаймні концептуальна схожість між GNU та BSD userland, але кутові випадки точно відрізняються.


1
Обидва ваші посилання вказують на одне місце.

так це, як правило, для практичного використання оболонок? довгі прапори та кутові чохли?
strugee

12
Мій досвід також полягає в тому, що GNU сприймає масштабність серйозніше. Можливо, це також вважається "кутовими справами", але насправді це дуже засмучує, коли ваші sedзадихаються на довгих рядках введення або ваші grepсегментальні помилки на бінарних даних.
трійка

одна велика різниця полягає в тому, що GNU ніколи не мав власного ядра, тоді як BSD базувався і будував на своєму власному ядрі, яке частково широко використовується в комерційних системах Unix. MAC OS X використовує, наприклад, Darwin як ядро ​​на базі BSK.
візуалізація

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