Понимание разделения bin, sbin, usr/bin, usr/sbin
Роб Лэндли
ограбить в Landley.net
Четверг, 9 декабря, 15:45:39 UTC 2010 г.
Предыдущее сообщение: Апплет для определения типа файловой системы.
Следующее сообщение: Понимание разделения bin, sbin, usr/bin, usr/sbin.
Сообщения сортируются по:
[ дата ]
[ тема ]
[ тема ]
[ автор ]
Во вторник, 30 ноября 2010 г., 15:58:00 Дэвид Кольер написал:
> Я вижу, что busybox распространяет свои ссылки по этим 4 каталогам.
>
> Существует ли простое правило, определяющее, в каком каталоге находится каждая ссылка?
> в.....
>
> Например, я вижу, что kill находится в /bin, а killall — в /usr/bin.... Я не знаю.
> поймите, в чем может быть логика этого.
Вы знаете, как Кен Томпсон и Деннис Ритчи создали Unix на PDP-7 в 1969 году?
Примерно в 1971 году они перешли на PDP-11 с парой дисковых блоков RK05 (1,5
мегабайт каждый) для хранения.
Когда операционная система стала слишком большой, чтобы поместиться на первом дисковом пакете RK05 (их
корневая файловая система) они позволяют ей просачиваться во вторую, где находится вся
домашние каталоги пользователей существовали (поэтому монтирование называлось /usr). Они
реплицировали все каталоги ОС (/bin, /sbin, /lib, /tmp...) и
записывал файлы в эти новые каталоги, потому что на их исходном диске не было свободного места.
пространство. Когда у них появился третий диск, они смонтировали его в /home и переместили все
туда пользовательские каталоги, чтобы ОС могла занимать все пространство на обоих
дисков и вырастут до ТРЕХ ЦЕЛЫХ МЕГАБАЙТОВ (оооо!).
Конечно, они установили правила: «Когда система впервые загружается, она должна запуститься».
достаточно, чтобы иметь возможность смонтировать второй диск в /usr, поэтому не помещайте такие вещи, как
команду монтирования /usr/bin, иначе у нас возникнет проблема с курицей и яйцом
система включена». Довольно просто. Также довольно специфично для v6 unix из 35.
лет назад.
Разделение /bin на /usr/bin (и все остальные) является результатом этого,
Детали реализации 1970-х годов, которые переносились на десятилетия вперед
бюрократы, которые никогда не задаются вопросом, почему они что-то делают. Оно перестало делать
какой-либо смысл до того, как Linux был изобретен, по нескольким причинам:
1) Ранняя загрузка системы осуществляется с помощью initrd и initramfs, которые
с проблемами «этот файл необходим до того, как этот файл». У нас уже есть
временная система, которая загружает основную систему.
2) разделяемые библиотеки (представленные ребятами из Беркли) не позволяют вам
независимое обновление частей /lib и /usr/bin. У них два раздела
для _match_, иначе они не будут работать. В 1974 году такого не было, тогда они
имел определенный уровень независимости, поскольку все было статически связано.
3) Дешевые розничные жесткие диски превысили отметку в 100 мегабайт примерно в 1990 году, и
где-то там появилось программное обеспечение для изменения размера раздела (магия разделов
3.0 выпущена в 1997 году).
Конечно, когда раскол возник, некоторые люди установили другие правила, чтобы оправдать его.
Root предназначен для ОС, которую вы получили от исходной версии, а /usr — для вашего сайта.
локальные файлы. Тогда / предназначался для материалов, которые вы получали от AT&T, а /usr — для
вещи, добавленные в ваш дистрибутив, например IBM AIX, Dec Ultrix или SGI Irix, и
/usr/local предназначался для файлов вашей конкретной установки. Потом кто-то решил
/usr/local — неподходящее место для установки новых пакетов, поэтому давайте добавим /opt!
Я все еще жду появления /opt/local...
Конечно, учитывая, что этот раскол длился 30 лет, он привел к некоторым интересным дистрибутивам.
определенные правила появляются и снова исчезают, например «/tmp очищается между
перезагружается, а /usr/tmp — нет». (Конечно, в Ubuntu /usr/tmp не существует и
в Gentoo /usr/tmp — это символическая ссылка на /var/tmp, которая теперь имеет пометку «не очищена».
между перезагрузками». Да, все это предшествовало tmpfs. Это связано с чтением.
только корневые файловые системы, в этом случае /usr всегда будет доступен только для чтения и
/var — это место, где находится пространство для записи, / _в основном_ доступно только для чтения, за исключением битов
/etc, который они пытались переместить в /var, но на самом деле символически ссылались на /etc
/var/etc случается чаще, чем нет...)
Бюрократические бюро по стандартизации, такие как Linux Foundation (который поглотил Free
Standards Group в своем постоянно растущем аккреционном диске много лет назад)
...