LINUX.ORG.RU
ФорумTalks

Почему распространено утверждение, о том, что FreeBSD является настоящим UNIX в отличие от Linux?

 , ,


0

2

Если не впадать в срач о том, какая система лучше. Хочется узнать, почему бытует мнение, что FreeBSD, в отличие от Linux, является «настоящим UNIX»?

Ведь, как я понимаю, FreeBSD не содержит ни строчки кода, написанного Томпсоном и Ритчи в Bell Labs. Также однозначно FreeBSD не сертифицирована The Open Group как UNIX. А в плане того, что она реализует UNIX API (POSIX), Так и GNU/Linux его реализует.

Ответ на: комментарий от crypt

с ifconfig как раз все правильно

Нет. Ибо сказано в Писании: «Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new „features“.» ©

так можно и от ls требовать

Можно. Поэтому под юниксвейностью каждый адепт понимает своё. Обычно это выглядит так: «Я фанат Х, поэтому Х юниксвейна». К реальной юниксвейности это, разумеется, никогда никакого отношения не имеет.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от baka-kun

А ты хочешь оставить систему без возможности настройки ядра и без сети заодно? Полуработающий огрызок?

Нет, я хочу, как в Debian: чтобы wpa_supplicant, bluez и проч. устанавливались, только если в системе есть Wi-Fi и Bluetooth, соответственно.

Это не так сложно сделать технически - но в FreeBSD базовая система разворачивается из одного большого архива, не разделённого на компоненты. (Если) доделают PkgBase, станет возможно реализовать условную установку - а пока имеем то, что имеем.

lex, yacc, c99 и прочая почта — это POSIX.

POSIX определяет интерфейсы перечисленного, но не обязывает их устанавливать по умолчанию.

DNS сервер в поставку не входит, он в портах.

Да, bind из базы убрали в FreeBSD 10. Однако в Handbook всё ещё утверждается обратное (что и ввело меня в заблуждение).

Поэтому лучше, когда система содержит лишь необходимый минимум

Ну так есть же Linux, который только ядро — предельный «необходимый минимум».

Покоцали мою цитату - неудивительно, что пришли к абсурдному выводу.

Вот такой у нас POSIX. Обязан соответствовать ожиданиям

Система обязана соответствовать лишь mandatory условиям.

Запуская POSIX систему, я ожидаю наличия cp, dd, iconv и pax, принимающие определенные ключи и аргументы

Перечисленные утилиты являются обязательными, в отличие от c99 и компании.

Как система узнает, что у меня есть такая «зависимость»?

А при чём здесь вы? Кто-то и X-сервер ожидает…

Вот как раз библиотека — очень даже разделимая сущность. По определению.

По какому определению?

Все компоненты увязаны, и исключение одного делает неработоспособными другие.

Что сделает неработоспособным исключение, например, hostapd?

Моё Google-fu сильнее: “Programs are bloated. Our study shows that only 5% of libc is used on average across the Ubuntu Desktop environment (2016 programs)”.

Почитал. 5% - это среднее относительное количество символов, которое использует программа. Понятное дело, что в случае UNIX-систем, где поощряется разделение на небольшие программы, делающие что-то одно, каждая такая программа использует лишь небольшую часть доступных символов. Однако:

  1. Каждая из программ может использовать разные 5% символов.

  2. Есть множество программ, которые используют больше 5%.

Таким образом, описанное в данной статье не имеет ничего общего с заявленным вами:

только 5% кода libc реально используется в современном Linux десктопе. Остальное таскается только ради совместимости

Rootlexx ★★★★★
()
Ответ на: комментарий от crypt

ой, я тя умоляю.:( там этого кода на 100мб.

Я отвечал на:

еали мне нужна будет ОС для слабой VPSки (1Gb RAM 1/2 CPU core(s)) то однозначно выберу FreeBSD, если хостер не предлагает Slackware или Gentoo. Современные systemd’нуые дистрибутивы очень жирные с кучей ненужностей

Rootlexx ★★★★★
()
Ответ на: комментарий от Rootlexx

Нет, я хочу, как в Debian: чтобы wpa_supplicant, bluez и проч. устанавливались, только если в системе есть Wi-Fi и Bluetooth, соответственно.

Покоцали мою цитату - неудивительно, что пришли к абсурдному выводу.

Другой вывод ещё более абсурден: в ядре системы есть и WiFi, и Bluetooth, и виртуализация, и контейнеры. Поэтому, очевидно, по зависимостям должен ставится минимальный набор ПО для настройки и использования всего этого. Но, «Баба-Яга против».

FreeBSD базовая система разворачивается из одного большого архива

kernel, base, lib32, doc, src, ports, dbg…

Система обязана соответствовать лишь mandatory условиям… POSIX … не обязывает их устанавливать по умолчанию.

Равно как и вычисления с плавающей точкой, сокеты, IPv6, многозадачность, многопоточность, мьютексы, разделяемую память и так далее. Предлагаешь ограничиться только обязательным (mandatory)? Нет? А где остановиться? FreeBSD покрывает практически всё, кроме XSI.

По какому определению?

По определению библиотеки, очевидно. Это же просто архив файлов.

Что сделает неработоспособным исключение, например, hostapd?

802.11i, 802.1X, TKIP, EAP, CCMP и так далее.

Таким образом, описанное в данной статье не имеет ничего общего с заявленным вами

Да ладно? Я ведь использовал твою логику:

Наличие предустановленного ПО, которое далеко не всегда нужно пользователю, - обратная сторона разработки FreeBSD как «complete operating system».

Наличие «предустановленных» функций, которые не всегда нужны программе (в среднем 95% не нужно), — обратная сторона разработки glibc как «расширенной C std lib». А уж сколько там ненужного для соответствия POSIX…

PS. FreeBSD и Linux: Два мира — два Шапиро. В одном случае у нас полноценная операционная система, но есть возможность отрезать лишнее, чтобы собрать свой дистрибутив от минимального размера embedded с crunched бинарниками. В другом — голое ядро, вокруг которого предлагается накручивать дистрибутив, собирая «с миру по нитке» (в основном из GNU, конечно).

baka-kun ★★★★★
()
Ответ на: комментарий от baka-kun

Другой вывод ещё более абсурден: в ядре системы есть и WiFi, и Bluetooth, и виртуализация, и контейнеры.

Т.е. по-вашему в системе должно быть предустановлено ПО для всех возможностей, которые есть в ядре? Какое-то надуманное условие, как по мне. В таком случае базовая система FreeBSD неизбежно будет разбухать и далее.

На мой взгляд, разумнее определить наиболее вероятные сценарии использования ОС и по умолчанию устанавливать лишь разумный минимум ПО на основе пересечения, необходимого для данных сценариев. Плюс способ установки дополнительного ПО, ну и какая-нибудь мелочёвка для удобства интерактивного использования.

Поэтому, очевидно, по зависимостям должен ставится минимальный набор ПО для настройки и использования всего этого.

Зависимости в данном случае - в другую сторону. Предустановленное ПО зависит от функциональности ядра, а не наоборот.

FreeBSD базовая система разворачивается из одного большого архива

kernel, base, lib32, doc, src, ports, dbg…

базовая система

base

Ну kernel ещё - остальное в базовую систему не входит, поскольку опционально.

Равно как и вычисления с плавающей точкой, сокеты, IPv6, многозадачность, многопоточность, мьютексы, разделяемую память и так далее. Предлагаешь ограничиться только обязательным (mandatory)? Нет? А где остановиться? FreeBSD покрывает практически всё, кроме XSI.

Вы утверждали, что наличие некоторых утилит в базе - это якобы из-за того, что FreeBSD обязана соответствовать POSIX. Я показал, что для соответствия POSIX наличие этих утилит не является обязательным. Следовательно, настоящие причины поставки этих утилит в базе другие, нежели утверждаемые вами, и необходимостью соответствовать POSIX она не объясняется.

По определению библиотеки, очевидно. Это же просто архив файлов.

Вы игнорируете наличие зависимостей между этими файлами. Для разделения библиотеки недостаточно поместить её символы в разные файлы - необходимо, чтобы эти файлы были независимы. А это уже - переработка проекта, что уже выходит за рамки дискуссии о базовой системе.

802.11i, 802.1X, TKIP, EAP, CCMP и так далее.

Шлангуете? Вы же написали, что «все компоненты увязаны, и исключение одного делает неработоспособными другие». Я спросил, какие такие другие компоненты сделает неработоспособным исключение, например, hostapd - в ответ вы перечислили функциональность, замкнутую в hostapd. o_O

Да ладно? Я ведь использовал твою логику:

Вы можете использовать чью угодно логику - это никак не меняет тот факт, что ваше утверждение не соответствует действительности. Напомню, что вы утверждали:

только 5% кода libc реально используется в современном Linux десктопе. Остальное таскается только ради совместимости

В действительности лишь 5% кода glibc реально используется в одной усреднённой программе.

«Современный Linux-десктоп» состоит из большого множества программ, каждая из которых может использовать разные 5% (или использовать больше), поэтому их совокупность - «современный Linux-десктоп» - реально использует гораздо больше 5%. Что, очевидно, противоречит вашему утверждению, приведённому выше.

Наличие «предустановленных» функций, которые не всегда нужны программе (в среднем 95% не нужно), — обратная сторона разработки glibc как «расширенной C std lib». А уж сколько там ненужного для соответствия POSIX…

Вы сейчас серьёзно сравнили неразделимую сущность (библиотеку) с разделимой (множество независимых программ, поставляемое с FreeBSD)?

Между прочим, в том же Debian из glibc собираются несколько двоичных пакетов, и в базовую систему входит лишь их часть.

Rootlexx ★★★★★
()
Ответ на: комментарий от Rootlexx

Т.е. по-вашему в системе должно быть предустановлено ПО для всех возможностей, которые есть в ядре? Это не по-моему, это так есть. Просто другой подход. Базовая система позволяет реализовать все возможности ядра. При этом есть простой стандартный способ собрать свой дистрибутив, исключив ненужное.

Вы утверждали, что наличие некоторых утилит в базе - это якобы из-за того, что FreeBSD обязана соответствовать POSIX.

Обязана — очень сильное слово. FreeBSD стремится реализовать подмножество POSIX. Очевидно, что минимальный mandatory набор интерфейсов и программ очень ограничен. Вопрос только в том, где остановиться.

Я спросил, какие такие другие компоненты сделает неработоспособным исключение, например, hostapd

Все сетевые драйверы, использующие hostapd как WPA или 802.1X authenticator, очевидно.

Вы игнорируете наличие зависимостей между этими файлами.

libc экспортирует пару тысяч символов, большинство из которых не зависят друг от друга, а только от очень небольшого набора общих процедур. Почему ты не предлагаешь выкинуть их в разные файлы, и устанавливать только реально необходимые?

Напомню, что вы утверждали:

«где-то читал, что используется только 5% libc». Продолжим твою логику.

«Современный Linux-десктоп» состоит из большого множества программ, каждая из которых может использовать разные 5% (или использовать больше), поэтому их совокупность - «современный Linux-десктоп» - реально использует гораздо больше 5%.

Напомню, что ты утверждал, «ПО, которое далеко не всегда нужно пользователю». Каждому конкретному пользователю может быть необходимо не всё ПО из базовой системы, но каждому нужен разный набор, поэтому базовая система покрывает всё множество пользователей ОС. И если конкретно у тебя специфические нужды, не позволяющие устанавливать сотню мегабайт не используемых тобой утилит и библиотек, никто не мешает собрать свой урезанный дистрибутив.

Debian из glibc собираются несколько двоичных пакетов, и в базовую систему входит лишь их часть.

В Debian отдельно ставятся библиотеки libc, отдельно связанные утилиты (ldd, etc), локализация, заголовки и исходники. Сама GNU libc ставится одним куском, как и везде.

baka-kun ★★★★★
()
Ответ на: комментарий от baka-kun

Обязана — очень сильное слово. FreeBSD стремится реализовать подмножество POSIX.

Ну вот и не нужно было на вопрос «В каком документе прописано обязательное наличие в системе утилит виртуализации (bhyve), sqlite, flex, lua, wpa_supplicant, hostapd, ppp, bind, bluetooth, компилятора с отладчиком, sendmail и проч.?» отвечать:

lex, yacc, c99 и прочая почта — это POSIX.

Ибо в POSIX наличие в системе данных программ не является обязательным.

Я спросил, какие такие другие компоненты сделает неработоспособным исключение, например, hostapd

Все сетевые драйверы, использующие hostapd как WPA или 802.1X authenticator, очевидно.

Отсутствие hostapd не сделает драйверы неработоспособными.

libc экспортирует пару тысяч символов, большинство из которых не зависят друг от друга, а только от очень небольшого набора общих процедур. Почему ты не предлагаешь выкинуть их в разные файлы, и устанавливать только реально необходимые?

Это было бы правильно. Но:

Для разделения библиотеки недостаточно поместить её символы в разные файлы - необходимо, чтобы эти файлы были независимы. А это уже - переработка проекта, что уже выходит за рамки дискуссии о базовой системе.

«где-то читал, что используется только 5% libc»

…«в современном Linux-десктопе». Пишите полностью, не стесняйтесь.

А в реальности - в некой «средней программе». (Причём использование среднего значения в данном контексте вообще как минимум спорно, ибо если взять два проекта, абсолютно идентичных по функциональности, но первый из которых является одним большим монолитным двоичным файлом, а второй является набором маленьких связанных между собой компонентов, то хотя в совокупности они используют одно и то же количество символов libc, среднее значение будет отличаться в разы. При таком подходе вообще непонятно, что этот параметр должен показывать.)

Продолжим твою логику.

«Современный Linux-десктоп» состоит из большого множества программ, каждая из которых может использовать разные 5% (или использовать больше), поэтому их совокупность - «современный Linux-десктоп» - реально использует гораздо больше 5%.

Напомню, что ты утверждал, «ПО, которое далеко не всегда нужно пользователю». Каждому конкретному пользователю может быть необходимо не всё ПО из базовой системы, но каждому нужен разный набор, поэтому базовая система покрывает всё множество пользователей ОС.

Плохо у вас с логикой…

Программы используют одну копию libc одновременно, поэтому все необходимые символы должны присутствовать в системе. Пользователи же в основном используют разные копии ОС, каждая из которых вполне могла бы без последствий содержать разный набор предустановленного ПО.

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

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

Конкретно у меня таких нужд нет - я отвечал на:

еали мне нужна будет ОС для слабой VPSки (1Gb RAM 1/2 CPU core(s)) то однозначно выберу FreeBSD, если хостер не предлагает Slackware или Gentoo. Современные systemd’нуые дистрибутивы очень жирные с кучей ненужностей

Но если бы был способ убрать из базы FreeBSD набор абсолютно не нужного в конкретном случае ПО (зачем мне wpasupplicant и hostapd на сервере, в котором физически нет Wi-Fi? - для экзотики вроде 802.1X over Ethernet?), не устанавливая >1ГБ исходников, и без необходимости наличия в системе компилятора - было бы неплохо.

Rootlexx ★★★★★
()
Ответ на: комментарий от te111011010

Ложнопарадокс фейлосухов, которые не знали, что они сами давно не те, что были прежде, томущо в них нет ни одного прежнего атома, которые ежегодно в них заменялись :) До сих пор это гуано притаскивают в споры про телепортацию.

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

С человеком это проще. Человека определяет разум, или то, что в филосифии называют душой. То есть, склад ума, характера, приобретённые знания и пережитые ситуации.

te111011010
() автор топика
Ответ на: комментарий от te111011010

Это не убеждает сторонников «уникальности» как писаной торбы – хотя идет это не от их хотелок, а от культурно-экономических оснований законов… на имущество :) Т.е. от хорошо слежавшихся предрассудков. Потому что «так он лукавый презлым заплатил за предобрейшее и захотел сам всем влодети?» Та же самая подоплека шкурных интересов лежит за идеей «восстания машин» и «злых инопланетян» – или «злых близнецов». Только «машины» и «злые инопланетяне» – это надличностные конкуренты, т.е. видовые, которых типо нет на Земле, а «злой близнец» – это конкурент очень личный :) Пугает их сама возможность «кражи личности», которая разумеется нетождественна «краже внутреннего я», т.е. не «уникальных переживаний нетакого как все», а представленности субъекта в обществе и общественных прав с этим всем ассоциированных. По Фрейду выходит, к этим людям следует как следует присмотреться :) Они подозревают внутри себя такую мерзость, что сами себе не доверяют – т.е. их близнец или клон, скопированный со всеми их намереньями и повадками… немедленно начнет интриговать против них, а они против него :)

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.