HPC.ru lite - Все форумы
Форум: КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее
Тема: Файловая система Linux
Страницы: 1 [2]
[Ответить]
ВадимП [25.12.2003 18:56] :
/mnt - существует далеко не всех вариантах Unix. Используется исключительно для создания в ней субдиректорий на которые монтируются дополнительные файловые системы.
/opt - "optional" (иногда добавляют "for layered products"). Прямая противоположность с /mnt: эта директория очень типична для Unix, но редко встречается в Linux. Один из очень немногих (наряду с некоторыми базами данных, всякими там Globus Toolkit'ами и пр.) продуктов использующих в Линукс эту директорию - графическая среда Qtopia.
/proc - "псевдо файловая система". То есть файловая система, которой не соответствует никакой реальный носитель. На самом деле по все той же метафоре ("все, что угодно - это файл") получить всю необходимую информацию о состоянии Вашей операционной системы можно, просто просматривая якобы существующие файлы в этой файловой системе. Формат /proc очень плохо стандартизован и постоянно меняется не только при переходе между разными вариантами Unix, но даже от версии к версии Linux. Первоначально эта файловая система была предназначена только для получения справочной информации о системе, но никак не для управления ей. То есть любая попытка записи в эти псевдофайлы попросту игнорировалась. К сожалению, через некоторое время исходная парадигма забылась, /proc перегрузили несвойственными ей функциями и теперь не только запись, но даже простая попытка чтения из некоторых файлов может в некоторых случаях изменить состояние системы. В Linux для управления системой долго использовалась директория /proc/sys. Файлы в этой директории можно не только читать но и изменять, изменяя тем самым системные параметры связанные с этими файлами. В версии 2.6 ядра значительная часть функциональности /proc/sys была вынесена в новую файловую систему sysfs, монтируемую на директорию /sys (понятно, что монтировать что угодно можно куда угодно. Никто не в состоянии запретить Вам смонтировать procfs на /mnt/floppy. Просто это не принято).
Первое, что Вы увидите по "ls /proc" - это большое количество субдиректорий со странными именами состоящими из одних цифр. Их количество должно быть равно количеству процессов в таблице задач. В каждой такой директории хранится информация о состоянии и ресурсах процесса с этим номером. Именно отсюда берет свою информацию известная Вам программа ps. (Вообще все стандартные информационные программы, начиная от mount без параметров и кончая free берут свои данные именно из /proc).
Поясним назначение некоторых файлов из /proc/<номерпроцесса>:
cwd - символьная ссылка на текущую директорию процесса
fd - директория, которая теоретически должна содержать ссылки на все открытые этим процессом файлы. Ссылка при этом имеет имя == номеру дескриптора с которым этот файл открыт в данном процессе.
root - ссылка на корневую директорию файловой системы. После chroot может отличаться от "/".
cmdline - аргументы командной строки с которыми был вызван процесс.
environ - переменные окружения
exe - ссылка на исполняемый файл
maps - карта выделенного процессу адресного пространства
...
/root - во всех нормальных вариантах Линукса в этой директории расположена домашняя директория суперпользователя root. В нашем случае, директория используется как свалка... ладно, скажем "как склад" для хранения архивов файлов из которых будет восстановлено содержимое пользовательского раздела при жесткой перезагрузке.
ВадимП [26.12.2003 01:06] :
/sbin - ("system binary") директория в которой хранятся системные утилиты. Как правило только суперпользователь (система привилегий в Unix примитивна до безобразия: есть суперпользователь и все остальные) имеет право их использовать. Поэтому для остальных пользователей этого каталог даже не включен в переменную PATH. Не потому, конечно, чтобы они не могли случайно их запустить и все испортить - обычный пользователь всегда может использовать полное имя файла "/sbin/iptables" или "/sbin/insmod". Только это ничего не даст - программы аварийно завершатся с сообщением о недостаточных привилегиях.
Точно так же как и директории bin и lib, sbin "един в двух лицах": кроме самого каталога /sbin есть еще /usr/sbin причем что хранить в последнем вроде бы совершенно непонятно. По аналогии с остальными подобными директориями в /sbin необходимо было бы хранить "общесистемные", а в /usr/sbin "пользовательские" системные утилиты. Причем, по смыслу самого каталога sbin исключительно для использования суперпользователем. К сожалению, фраза "пользовательские системные утилиты для суперпользователя" напрочь лишена какого-либо смысла.
/tmp - самый простой каталог, служит исключительно для временных файлов, то есть для файлов, которые не жалко потерять между перезагрузками. Очень часто располагается на RAM-диске что обеспечивает исключительно быстрый доступ к временным файлам. Размер электронного диска (glibc 2.2 и старше рассчитывают, что он будет монтирован на /dev/shm) у Линукс всегда ограничен сразу в момент монтирования этого диска. Строго говоря, существуют два разных вида RAM-дисков (я имею в виду tmpfs о которой шла речь и собственно ramdisk, т.е. /dev/ram* и rdev -r), но забивать себе голову последними не стоит.
P.S. уже ночь и текст получился какой-то неудачный.... завтра либо перепишу либо вообще сотру его на фиг.
sil [26.12.2003 11:52] 1:
Вот уже что то из тумана непознанного начинает проступать и становится позвнаваемым.... 
[Ответить]
[< Назад]