Intereting Posts
Как добавить текст в начало и конец нескольких текстовых файлов в Bash? Где находится страница с ошибкой прокси-сервера squid? Как принять абсолютное значение с помощью awk? cURL socks5 proxy: «Пустой ответ с сервера» Правильный способ создания учетной записи Blackhole в Postfix Использование sed со специальными символами Как найти общую папку на моей гостевой машине? Почему Unix устанавливает флаг исполняемого файла для файловых систем FAT? Неверный формат изображения для команды bootm. ERROR: невозможно получить изображение ядра! Переименовывать файлы на основе их родительского каталога с помощью команды find / xargs? Установка протокола gphotofs для установки Android-устройства в режиме PTP Проблемы с crontab CentOS 7 – не обрабатывать рабочие места Дисковое пространство на Fedora 12 Изменение переменной PATH для процесса, выполняемого как пользователь в Linux Linux Mint 15: Олива не может проснуться от приостановления / спячки?

В чем основные отличия между BSD и GNU / Linux?

Я много читал о Unix и Linux о BSD и GNU и т. Д. Но я до сих пор не понимаю, что некоторые фактические, практические различия между BSD и GNU userlands, несмотря на то, что они часто упоминаются. Может кто-то уточнить?

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

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

Основное различие заключается в том, что два пользовательских пространства начинаются с совершенно другого исходного кода. Исходный код исходного кода GNU NetBSD . Как раз из этой простой в концепции программы вы можете видеть, что кошка NetBSD использует традиционные однобуквенные флаги командной строки. Программы GNU имеют однобуквенные флаги, но также и --something-long типа --something-long . Программы GNU также имеют тенденцию к совместимости с POSIX.

Это различие в исходном коде в некоторых случаях будет приводить к разным поведениям двух пользователей.

Также похоже, что NetBSD (по крайней мере) использует собственную версию libc, стандартную библиотеку C. Я нахожусь здесь, но libc и динамические ссылки странно связаны между собой. Опять-таки, другой исходный код приведет к разному поведению.

Я думаю, что в качестве пользователя оболочки вы обнаружите, что ps будет действовать иначе, и ls может дать вам немного другой результат, чем вы привыкли. Вам нужно будет найти эквивалентные флаги командной строки для некоторых программ, если вы используете флаги командной строки --long-option .

Исторически сложилось так, что я понимаю, что пользовательское пространство BSD больше всего происходит от V6 и V7 Bell Labs Unix через 32-портовый порт для оборудования VAX. GNU userland новее, написано, по крайней мере, несколько в ответ на попытки AT & T сохранить секретный секрет в начале 80-х годов. После отчуждения Bell Bell 1983 года AT & T попыталась «монетизировать» Unix. Часть этого права заключалась в том, чтобы лицензировать исходный код таким образом, чтобы большинство людей не увидели его. У Ричарда Столлмана и других были проблемы с этим. Их проект GNU существовал специально для создания свободно распространяемой Unix-подобной системы.

Тем временем, к 1993 году, AT & T подала в суд на систему Калифорнийского университета над BSD («B» – это Беркли, где расположен университет Калифорнии). Люди в Беркли заменили весь исходный исходный код AT & T новым кодом и этот новый код стал предком, по крайней мере, для пользователя NetBSD. AT & T и UCB пришли к урегулированию в 1994 году, которое было открыто для общественности в 2004 году.

Естественно, по крайней мере, идеи перекрестно опыляют, так что существует, по крайней мере, концептуальное сходство между GNU и BSD, но угловые случаи определенно различаются.