Термін "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, але кутові випадки точно відрізняються.