Linux - Алексей Стахнов 12 стр.


Исполняемые модули надо размещать в каталоге /bin, а если пакет включает в себя документацию, ее надо сохранить в каталоге /doc. При наличии страниц справочной системы, размещать их в /орt/<имя_пакета>/man и использовать подструктуру каталогов, как в /usr/share/man. Специфичные для конкретного пакета библиотеки размещаются в /орt/<имя_пакета>/lib и т. д. Файлы пакета, которые могут изменяться, должны быть установлены в каталоге /var/opt. Хост-специфичные конфигурационные файлы должны быть установлены в /etc/opt.

Каталог /proc – точка монтирования виртуальной файловой системы procfs

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

Структура каталогов в /proc:

• /1 – подкаталог процесса, имя каталога соответствует номеру PID-процесса;

• /2;

• /3;

• /4;

• /5;

• /6;

• /7;

• /384;

• /389;

• /403;

• /418;

• /490;

• /5196;

• /bus – каталог содержит специфичную информацию, касающуюся шин (PCI, ISA);

• /driver – здесь сгруппированы различные драйверы;

• /fs – каталог содержит параметры файловых систем;

• /ide – каталог содержит информацию о IDE-подсистеме;

• /irq – маски для управления аппаратными прерываниями;

• /net – сетевая информация;

• /sys – системная информация;

• /sysvipc – информация о SysVIPC-ресурсах (msg, sem, shm);

• /tty – информация о TTY-драйверах;

• apm – расширенная информация управлением питанием;

• cmdline – командная строка ядра операционной системы;

• cpuinfo – информация о микропроцессоре;

• devices – доступные устройства (блочные и символьные);

• dma – используемые каналы DMA;

• execdomains – используемые домены;

• fb – Frame Buffer-устройства;

• filesystems – поддерживаемые файловые системы;

• interrupts – используемые прерывания;

• iomem – карта памяти;

• ioports – используемые порты ввода/вывода;

• isapnp – информация о ISA-устройствах;

• kcore – образ ядра операционной системы;

• kmsg – сообщения ядра;

• ksyms – таблица символов ядра;

• loadavg – средняя загрузка за последние 1, 5 и 15 минут;

• locks – "защелки" ядра;

• mdstat– файл, сообщающий о конфигурации RAID-массива системы;

• meminfo – информация о памяти;

• misc – различная информация, не попавшая не в одну из категорий;

• modules – список загруженных модулей;

• mounts – смонтированные файловые системы;

• mtrr – управление использованием памяти;

• partitions – список разделов, известных системе;

• pci – устаревшая информация о PCI-шине (см. /proc/bus/pci/);

• its – часы реального времени;

• scsi – информация о SCSI-устройствах;

• self – символическая ссылка к каталогу процесса, пытающегося получить информацию из /proc;

• slabinfo – информация о Slab;

• stat – разнообразная статистика;

• swaps – использование разделов и файлов подкачки;

• uptime – время работы системы без перезагрузки;

• version – версия ядра;

• video – BTTV-информация о видеоресурсах.

/proc/№процесса_PID-процесса

Каталог имеет имя, соответствующее номеру PID-процесса. Каждый процесс в системе имеет соответствующий ему каталог в /proc. В этом каталоге обязательно находятся следующие файлы:

• cmdline – файл, содержащий аргументы командной строки процесса;

• cpu – текущий и последний использовавшийся микропроцессор (только для мультипроцессорных систем);

• /cwd – ссылка на текущий рабочий каталог;

• environ – содержит значения переменных окружения;

• ехе – ссылка на исполняемый файл этого процесса;

• /fd – каталог, содержащий все файловые дескрипторы данного процесса;

• maps – карты памяти исполняемых и библиотечных файлов;

• mem – память, занятая этим процессом;

• /root – ссылка на корневой каталог этого процесса;

• stat – статус процесса;

• statm – информация об использовании процессом памяти;

• status – статус процесса в форме, воспринимаемой человеком.

/proc/ide – IDE-устройства, установленные в системе

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

/proc/net – сетевая информация

В этом каталоге содержится информация, относящаяся к сети. Следующие файлы являются общими как для протокола IPv4, так и IPv6:

• агр – ARP-таблица ядра;

• dev – сетевые устройства со своей статистикой;

• dev_stat – статус сетевого устройства;

• ip_fwchains – связи цепочки Firewall;

• ip_fwnames – имена цепочек Firewall;

• /ip_masq – каталог содержит таблицы маскарадинга [2] ;

• ip_masquerade – главная таблица маскарадинга;

• netstat – сетевая статистика;

• raw – статистика сетевых устройств;

• route – таблица маршрутизации ядра;

• /грс – каталог содержит RPC-информацию;

• rt_cache – кэш маршрутизации;

• snmp – данные SNMP;

• sockstat – статистика сокетов;

• tcp – ТСР-сокеты;

• tr_rif – таблица маршрутизации Token ring RIF;

• udp – UDP-сокеты;

• unix – UNIX-сокеты;

• wireless – данные беспроводного интерфейса (Wavelan и т. п.);

• igmp – IP-адреса, которые хост принимает;

• psched – параметры глобального администратора пакетов;

• netlink – список PF_NETLINK-сокетов;

• ip_mr_vifs – список виртуальных интерфейсов;

• ip_mr_cache – список кэша маршрутизации.

Файлы, приведенные ниже, используются протоколом IPv6:

• udp6 – UDP-сокеты (IPv6);

• tcp6 – ТСР-сокеты (IPv6);

• raw6 – статистика устройств (IPv6);

• igmp6 – IP-адреса, принимаемые хостом (IPv6);

• if_inet6 – список IРv6-интерфейсных адресов;

• ipv6_route – таблица маршрутизации для IPv6;

• rt6_stats – общая статистика IРv6-таблиц маршрутизации;

• sockstat6 – статистика сокетов (IPv6);

• snmp6 – SNMP-данные (IPv6).

/proc/parport – параллельные порты

Каталог содержит информацию обо всех параллельных портах, установленных в системе.

/proc/scsi – SCSI-устройства, установленные в системе

Если в компьютере установлены SCSI-устройства, то должен существовать каталог /proc/scsi. В нем содержится информация обо всех установленных в системе SCSI-устройствах, в том числе используемые драйверы.

/proc/sys – системная информация

Этот каталог содержит файлы, изменением которых можно, не перегружая системы, изменять различные параметры ядра.

/proc/sys/dev – информация, специфическая для устройств

На сегодняшний день поддерживаются только устройства CD-ROM.

/proc/sys/fs – данные файловой системы

Каталог содержит различную информацию о файловой системе.

/proc/sys/kerriel – основные параметры ядра операционной системы

В этом каталоге находятся файлы, с помощью которых можно изменять настройки ядра операционной системы.

/proc/sys/net – сетевая "начинка"

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

• /802 – протокол Е802;

• /appletalk – Appletalk-протокол;

• /ах25 – АХ25;

• /bridge – Bridging;

• /core – основные параметры;

• /decnet – DEC-net;

• /ethernet – Ethernet-протокол;

• /ipv4 – IP версии 4;

• /ipv6 – IP версии 6;

• /ipx – IPX;

• /netrom – NET/ROM;

• /rose – X.25 PLP layer;

• /token-ring – IBM token ring;

• /unix – UNIX domain sockets;

• x25 – протокол X.25.

/proc/sys/sunrpc – удаленные вызовы процедур

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

/proc/sys/vm – виртуальная подсистема памяти

Файлы в этом каталоге используются для настройки виртуальной подсистемы памяти ядра Linux.

/proc/tty – терминалы

Здесь содержится информация о доступных и используемых терминалах.

Каталог /root – домашний каталог для пользователя root (администратора)

Существенных причин для вынесения домашнего каталога /root в корневой уровень нет. Однако существует практика выделения отдельного раздела для каталога /home, который при аварийных ситуациях может не подмонтироваться. По-видимому, по этой причине каталог /root вынесли на корневой уровень.

Каталог /sbin – системные исполняемые файлы

Утилиты, используемые для системного администрирования, и другие, используемые только администратором (пользователем root), хранятся в каталогах /sbin, /usr/sbin и /usr/local/sbin. Каталог /sbin содержит исполняемые файлы, необходимые для загрузки, восстановления, починки системы в добавление к файлам, находящимся в каталоге /bin. Программы, используемые после монтирования файловых систем, в основном помещаются в каталог /usr/sbin. Административные программы, используемые только на локальной системе, помещаются в каталог /usr/local/sbin.

Обычные пользователи не должны иметь доступа в каталоги /sbin. Если обычный пользователь (не администратор) может запускать команду, она должна находиться в одном из каталогов /bin. В каталоге /sbin должны присутствовать следующие файлы:

• badblocks – утилита для проверки жестких дисков;

• ctrlaltdel – программа для перезагрузки операционной системы;

• dumpe2fs – утилита для работы с файловой системой;

• e2fsck – утилита для проверки файловой системы;

• fastboot – утилита, перезагружающая систему без проверки дисков;

• fasthalt – утилита, останавливающая систему без проверки дисков;

• fdisk – утилита, позволяющая производить различные действия с таблицей разделов (создавать, редактировать, удалять раздел и т. д.);

• fsck – утилита, проверяющая и восстанавливающая файловую систему;

• fsck.* – утилита, проверяющая и восстанавливающая файловую специфичную систему (например, Ext2);

• getty – программа getty;

• halt – команда, останавливающая систему;

• ifconfig – утилита конфигурации сетевого интерфейса;

• init – Init-процесс;

• kbdrate – утилита для настройки клавиатуры;

• lilo – загрузчик операционной системы;

• mke2fs – утилита создания файловой системы;

• mkfs – команда, создающая файловую систему;

• mkfs.* – команда, создающая специфичную файловую систему;

• mkswap – команда, устанавливающая своп-область;

• reboot – команда, перегружающая систему;

• route – утилита для таблицы IP-маршрутизации;

• swapon – утилита, разрешающая свопирование;

• swapoff – утилита, запрещающая свопирование;

• tune2fs – утилита тонкой настройки файловой системы;

• update – демон, периодически сбрасывающий буферы файловой системы.

Каталог /tmp – временные файлы

Каталог должен быть доступен для программ, которые нуждаются во временных файлах.

При загрузке системы файлы, находящиеся в /tmp, должны удаляться (по крайней мере, рекомендуется).

Каталог /usr – иерархия

Каталог /usr – это вторая основная секция файловой системы, разделяемая, только для чтения. В каталоге /usr должны находиться следующие каталоги:

• /bin – содержит большую часть утилит, используемых пользователем;

• /include – файлы заголовков, включаемых в С-программы;

• /lib – библиотеки;

• /local – локальная иерархия;

• /sbin – содержит не жизненно необходимые системные исполняемые файлы;

• /share – архитектурно-независимые данные;

• /X11R6 – X Window System, версия 11, выпуск 6;

• /games – игры и образовательные программы;

• /src – исходные коды.

/usr/bin – пользовательские программы

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

• perl – интерпретатор языка Perl;

• python – интерпретатор языка Python;

• tclsh – интерпретатор Tel;

• wish – простая оконная оболочка Tcl/Tk;

• expect – программа для интерактивного диалога.

/usr/include – каталог для стандартных include-файлов

В этом каталоге хранится большинство включаемых файлов, используемых компилятором C/C++.

/usr/lib – библиотеки для программирования и пакетов

Каталог содержит объектные файлы, библиотеки и другие файлы, которые не используются напрямую пользователем или скриптами командных оболочек. Если программа создает подкаталог в /usr/lib, все архитектурно-зависимые данные должны помещаться в этот каталог. Для примера: подкаталог /рег15 содержит в себе модули и библиотеки для Perl 5.

/usr/local – локальная иерархия

Каталог предназначен для системного администратора под установку локального программного обеспечения. Это необходимо для предотвращения перезаписи программного обеспечения при обновлении системного программного обеспечения. Содержит следующие каталоги:

• /bin – локальные исполняемые файлы;

• /games – локальные исполняемые файлы игр;

• /include – локальные файлы С-заголовков;

• /lib – локальные библиотеки;

• /sbin – локальные системные исполняемые файлы;

• /share – локальная архитектурно-независимая иерархия;

• /sre – локальный исходный код.

/usr/sbin – не жизненно необходимые стандартные системные программы

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

/usr/share – архитектурно-независимые данные

Каталог предназначен для всех архитектурно-независимых файлов данных, предназначенных только для чтения (неизменяемых). Содержит следующие каталоги:

• /diet – списки слов (словари);

• /doc – разнообразная документация;

• /games – неизменяемые файлы данных для /usr/games;

• /info – основной каталог информационной системы GNU;

• /locale – информация для локализации системы;

• /man – файлы справочной системы;

• /misc – разнообразные архитектурно-независимые данные;

• /terminfo – каталог для базы данных terminfo;

• /zoneinfo – информация и конфигурация временной зоны (Timezone).

Любая программа или пакет, который содержит или требует данных, не нуждающихся в модификации должны хранится в /usr/share (или /usr/local/share, если программное обеспечение установлено локально).

/usr/share/dict – списки слов (словари)

Каталог содержит словари, находящиеся в системе. Традиционно в этом каталоге находится только файл с английскими словами, которые используются программой look и многими программами проверки правописания. В этот каталог можно установить свои файлы, например, с русскими словами.

/usr/share/man – страницы справочной системы

Каталог предназначен для хранения данных справочной системы. Вся справочная информация разделена на восемь больших тем, для каждой существует свой отдельный каталог – от /man1 до /man8. Содержит следующие каталоги:

• /man1 – справочные страницы, описывающие доступные пользователям программы;

• /man2 – раздел, описывающий все системные вызовы (для взаимодействия с ядром);

• /man3 – библиотечные функции и подпрограммы. Описывает программные библиотеки, напрямую не взаимодействующие с ядром операционной системы. Этот и второй разделы справочной системы представляют интерес только для программистов;

• /man4 – описывает специальные файлы, осуществляющие функции драйверов и сетевой поддержки в системе. В основном эти файлы находятся в каталоге /dev;

• /man5 – документация по множеству файловых форматов;

• /man6 – содержится документация по разнообразным играм;

• /man7 – разное. Содержит документацию, которую трудно классифицировать;

• /man8 – системное администрирование. Программы, используемые системным администратором для администрирования и сопровождения системы.

Система справочной информации должна поддерживать несколько языков одновременно, поэтому для исключения конфликтов в каталоге /usr/share/man файлы справочной системы принято хранить следующим образом:

• для каждого языка, установленного в системе (locale, локаль), в каталоге /usr/share/man создается подкаталог, носящий имя своей локали;

• в этом подкаталоге создаются каталоги /man<раздел>, причем только те, в которых есть справочная информация;

• в каталоге /man<раздел> хранятся справочные файлы, отдельные для каждой установленной программы, причем стандартом de-facto является то, что справочные файлы хранятся в архивированном виде (никто, однако, не запрещает хранить их в распакованном виде, но для экономии места на жестком диске их упаковывают).

Программа man при обращении к ней с целью получения справочной информации по какой-то программе сначала пытается получить справочную информацию на языке, соответствующем текущей локали. Если ей это не удается, то берется информация, хранящяяся в /шг/811аге/man/man<раздел>. По умолчанию в этих каталогах содержится англоязычная справочная информация.

Наименование языковых подкаталогов в /usr/share/man основывается на приложении Е стандарта POSIX 1003.1, который описывает строку-идентификатор локали. Строка-идентификатор локали согласно этому стандарту имеет вид:

<язык>[_<территория>][.<кодовая страница символов>][,<версия>]

• поле <язык> берется из стандарта ISO 639. Это должны быть два символа исключительно в нижнем регистре;

• поле <территория> должно быть двухсимвольным кодом только в верхнем регистре (согласно стандарту ISO 3166);

• поле скодовая страница символов> должно быть представлено в стандартном описании кодовой страницы. Если скодовая страница символов> содержит числовую спецификацию, она соответствует интернациональному стандарту, описывающему эту страницу;

• поле <версия> рекомендуется не использовать без крайней необходимости. Реальное его применение – например, для страны, имеющей один язык и кодировку, но разные диалекты.

Пример формирования каталогов локализованной справочной системы приведен в табл. 5.3.

Таблица 5.3. Пример формирования каталогов локализованной справочной системы

Алексей Стахнов - Linux

Назад Дальше