Linux
Шрифт:
• /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 3166);
• поле скодовая страница символов> должно быть представлено в стандартном описании кодовой страницы. Если скодовая страница символов> содержит числовую спецификацию, она соответствует интернациональному стандарту, описывающему эту страницу;
• поле <версия> рекомендуется не использовать без крайней необходимости. Реальное его применение – например, для страны, имеющей один язык и кодировку, но разные диалекты.
Пример формирования каталогов локализованной справочной системы приведен в табл. 5.3.
Таблица 5.3. Пример формирования каталогов локализованной справочной системыАрхитектурно-зависимые справочные файлы можно помещать в отдельные каталоги, соответствующие архитектуре. Например, /usr/share/man/<locale>/ man8/i386/ctrlaltdel.8. Однако проще написать общее справочное руководство, в котором особо отметить архитектурно-зависимые случаи, чем разрабатывать справочные файлы для каждой архитектуры.
Справочная информация для программ и данных, находящихся в /usr/local, размещается в каталоге /usr/local/man. Справочная информация, касающаяся X11R6, размещается в каталоге /usr/X11R6/man.
Правило размещения справочных руководств на различных языках в отдельные подкаталоги также распространяется и на справочные руководства, хранящиеся в каталогах /usr/local/man и /usr/X11R6/man.
/usr/share/misc – различные архитектурно-независимые данные
Каталог содержит различные архитектурно-независимые файлы, которые не требуют отдельного каталога в /usr/share/. Если соответствующие пакеты установлены в системе, в каталоге должны находиться следующие файлы:
• ascii – ASCII-таблица символов;
• magic – список «магических» цифр;
• termcap – база данных совместимости терминалов.
/usr/src – исходные тексты программЛюбой исходный код нелокальной программы должен помещаться в этот каталог.
/usr/src/Liriux-2.4.3 – каталог исходного кода ядра Linux
В каталоге хранятся файлы и каталоги, содержащие исходный код ядра Linux, модулей, различная документация. Имя каталога меняется в зависимости от того, исходный код какой версии ядра Linux находится в каталоге.
/usr/src/Linux-2.4.3/Documentation – документация к ядру и модулям операционной системы Linux
В каталоге содержится документация, которая тем или иным образом касается ядра операционной системы Linux или загружаемых модулей. Типичное содержимое каталога приведено ниже:/arm
/cdrom
/cris
/DocBook
/fb
/filesystems
/i2c
/i386
/ia64
/isdn
/kbuild
/m68k
/mips
/networking
/parisc
/powerpc
/s390
/sound
/sparc
/sysctl
/telephony
/video4linux
/vm
/usb
00-INDEX
binfmt_misc.txt
BUG-HUNTING
cachetlb.txt
cciss.txt
Changes
CodingStyle
computone.txt
Configure.help
cpqarray.txt
devices.txt
digiboard.txt
digiepca.txt
DMA-mapping.txt
dnotify.txt
exception.txt
floppy.txt
ftape.txt
hayes-esp.txt
highuid.txt
ide.txt
initrd.txt
ioctl-number.txt
IO-mapping.txt
IRQ-affinity.txt
isapnp.txt
java.txt
joystick-api.txt
joystick-paiport.txt
joystick.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
kernel-parameters.txt
kmod.txt
locks.txt
logo.gif
logo.txt
LVM-HOWTO
magic-number.txt
mandatoiy.txt
mca.txt
md.txt
memory.txt
mkdev.cciss
mkdev.ida
modules.txt
moxa-smartio
mtrr.txt
nbd.txt
nfsroot.txt
nmi_watchdog.txt
oops-tracing.txt
paride.txt
parport-lowlevel.txt
parport.txt
pci.txt
pcwd-watchdog.txt
pm.txt
ramdisk.txt
README.DAC960
README.moxa
README.nsp_cs.eng
riscom8.txt
rtc.txt
SAK.txt
scsi-generic.txt
scsi.txt
serial-console.txt
sgi-visws.txt
smart-config.txt
smp.tex
smp.txt
specialix.txt
spinlocks.txt
stallion.txt
SubmittingDrivers
SubmittingPatches
svga.txt
sx.txt
sysrq.txt
unicode.txt
VGA-softcursor.txt
watchdog.txt
xterm-linux.xpm
zorro.txt
/usr/X11R6 – X Window System, Version 11 Release 6В каталоге X11R6 содержится иерархия каталогов X Window. Информацию о структуре и назначении каталогов следует искать в документации на X Window.
Каталог /var
Каталог содержит изменяемые файлы. Сюда входят spool-каталоги и файлы, административные и журнальные данные, временные файлы. Некоторые каталоги, входящие в иерархию /var, такие как /var/log, /var/lock и /var/run, не должны быть разделяемыми между различными системами. Другие каталоги, такие как /var/mail, /var/cache/man, /var/cache/fonts и /var/spool/news, могут быть разделяемыми.
Рекомендуется для каталога /var выделить отдельный раздел на жестком диске. В том случае, если это невозможно, не следует размещать его в корневой файловой системе. Это позволит избежать некоторых проблем, возникающих при переполнении диска. Приложения не должны создавать каталоги в верхнем уровне иерархии /var. В каталоге /var должны присутствовать следующие каталоги:
• /cache – каталог кэша программ;
• /db – каталог для файлов баз данных;
• /games – файлы для игровых программ;
• /lib – библиотеки;
• /local – изменяемые данные для /usr/local;
• /lock – Lock-файлы (файлы-защелки);
• /log – Log-файлы и каталоги (файлы журналов);
• /lost+found – каталог для файлов, восстановленных после краха системы;
• /mail – каталог, содержащий почтовые ящики пользователей;
• /named – файлы DNS-сервера;
• /opt – переменные данные для /opt;
• /run – данные о запущенных процессах;
• /spool – spool-данные приложений;
• /state – состояние приложений;
• /tmp – временные файлы, сохраняемые между перезагрузками системы.
/var/cache – кэш программКаталог используется для хранения временных «короткоживущих» данных, создаваемых программами. Это могут быть буферы ввода/вывода или файлы, содержащие какие-нибудь промежуточные данные. Подкаталоги в /var/cashe создаются при установке пакетов и обычно носят имя соответствующей программы.
Если соответствующие пакеты установлены в системе, в каталоге должны находиться следующие файлы:
• /fonts – каталог для хранения динамически создаваемых шрифтов;
• /man – сформатированные страницы руководств. Справочные страницы в /usr/man хранятся в специальном виде и перед тем, как показать справочное руководство пользователю, страницы необходимо сформатировать;
• /www – файлы или кэш-данные прокси-сервера WWW;
• /<пакет> – кэш соответствующего пакета.
/var/games – файлы для игровых программВ этом каталоге должны храниться файлы, которые могут изменяться, например файлы, содержащие таблицы результатов, файлы сохраненных игр и т. п.
/var/lib – библиотекиНемного неверное наименование раздела. В этом каталоге содержатся различные файлы, входящие в какие-либо пакеты, которые можно отнести к системным. Обычно каждый пакет, который сохраняет какие-то файлы в каталог /var/lib, создает свой каталог, имеющий вид Даг/НЬ<имя_пакета>. Если соответствующие пакеты установлены в системе, в каталоге должны находиться следующие файлы:
• /misc – разные несистематизированные файлы;
• /<редактор> – каталог соответствующего редактора, в котором хранятся резервные копии файлов и файлы состояния;
• /rpm – каталог для менеджера пакетов RPM. В нем содержатся базы установленных в системе пакетов и другая служебная информация;
• /<пакет> – файлы соответствующего пакета;
• /xdm – данные Х-менеджера.
/var/lock – lock-файлы (файлы-защелки)Lock-файлы (файлы-защелки) – файлы, которые «закрепляют» какое-либо оборудование или файлы для использования только программой, создающей файл-защелку. Обычно уничтожаются по окончании работы программы или если файл или оборудование не нужны в данный момент программе. В каталоге /var/lock могут находиться, например, следующие подкаталоги:
• /console – данные, относящиеся к консоли системы;
• /samba – данные, связанные с программой Samba.
/var/log – файлы и каталоги журналов (log-файлов)Каталог содержит разнообразные файлы журналов. Также для некоторых пакетов используются каталоги, в которых хранятся соответствующие файлы журналов. Если соответствующие пакеты установлены в системе, в каталоге должны находиться следующие файлы:
• /httpd – каталог для журнальных файлов Web-cepвepa;
• /samba – каталог для журнальных файлов сервера Samba;
• /squid – каталог для журнальных файлов SQUID;
• /uucp – каталог для журнальных файлов UUCP.
Также в каталоге /var/log должны находиться следующие файлы:
• сгоп – события демона сгоп;
• dmesg – сообщения в течение дня;
• lastlog – записи о последней регистрации в системе каждого пользователя;
• maillog – регистрация событий, связанных с почтовыми сообщениями;
• messages – системные сообщения от syslogd;
• secure – сообщения, связанные с безопасностью;
• statistics – файл статистики;
• usracct – файл активности пользователей;
• wtmp – записи всех logins и logouts;
• boot.log – журнал загрузки системы;
• htmlaccess.log – журнал доступа к Web-cepвepy;
• XFree86.0.1og – журнал XFree86.
/var/mail – пользовательские почтовые ящикиЭтот каталог хранит пользовательские почтовые ящики, сохраненные в стандартном формате UNIX mailbox.
/var/opt – изменяемые данные для каталога /optВ этом каталоге должны храниться изменяемые данные пакетов, устанавливаемые в каталог /opt. Рекомендуется для каждого пакета создать свой каталог вида /ор1/<имя_пакета>.
/var/run – переменные файлы времени исполненияКаталог содержит системную информацию, описывающую состояние системы. Файлы в этом каталоге при загрузке системы должны быть удалены или усечены до нулевого размера. Программы, если это им необходимо, могут иметь подкаталоги, при условии, что эти программы создают во время функционирования более чем один файл (однако, например, демон FTP создает следующие файлы: ftp.pids-all, ftp.pids-local, ftp.pids-other, а отдельного каталога не имеет).
В каталоге, в основном, содержатся файлы-идентификаторы процессов (PID, Process identifie file), имеющие имя <имя_программы>.pid. К примеру, /var/run/named.pid. Pid-файл должен содержать символы, соответствующие номеру PID и символ перевода строки.
Каталог /var/run должен быть недоступен для записи непривилегированными пользователями, поскольку запись информации или ее удаление из каталога /var/run может привести к печальным последствиям, вплоть до краха системы.
/var/spool – spool-данные приложенийКаталог /var/spool – содержит данные, которые ожидают какой-либо обработки. После обработки (программой, пользователем, администратором) они должны быть удалены из каталога. Если соответствующие пакеты установлены в системе, в каталоге должны находиться следующие файлы:
• /at – spool-каталог программы at;
• /сгоп – spool-каталог программы сгоп;
• /lpd – spool-катал or программы печати;
• /mail – каталог входящей почты;
• /mqueue – исходящая почтовая очередь;
• /news – spool-каталог сервера новостей;
• /samba – spool-каталог сервера Samba;
• /squid – spool-каталог SQUID;
• /uucp – spool-каталог для UUCP.
/var/tmp – временные файлы, сохраняемые между перезагрузкамиКаталог /var/tmp используется для того, чтобы временные файлы, необходимые для программ, сохранялись при перезагрузке системы. Файлы, находящиеся в /tmp, при перезагрузке системы могут быть удалены.
/var/yp – файлы баз данных Network Information Service (NIS) (опционально)Если в системе установлена сетевая информационная служба (Network Information Service, NIS), так же известная, как Желтые страницы (Sun Yellow Pages, YP), то в этом каталоге хранятся ее базы данных.
Ссылки
•– Filesystem Hierarchy Standard в различных текстовых форматах.
•– список устройств и специальных файлов.
• proc.txt – документация по файловой системе procfs. Входит в состав документации к ядру Linux.
• Соответствующие тап-страницы.
• Соответствующие HOWTO (см. гл. 13):
– Networking-HOWTO;
– SMB-HOWTO;
– DNS-HOWTO;
– LILO-HOWTO.Глава 6 Процесс загрузки Linux
Для того чтобы достичь полного контроля над операционной системой крайне важно представлять себе, как происходит процесс ее загрузки.
Вот нажатием кнопки Power вы включили компьютер. Сначала специальная программа, зашитая в ПЗУ материнской платы, производит тестирование установленного в компьютере оборудования. В случае неудачи вы либо услышите из встроенного динамика компьютера серию гудков, либо программа тестирования оборудования выведет на дисплей предупреждающее сообщение.
Если система успешно прошла тестирование, на дисплее можно будет увидеть перечень установленного оборудования, емкость оперативной памяти и жесткого диска. После этого программа BIOS (Basic Input/Output System – базовая система ввода/вывода), хранящаяся в ПЗУ материнской платы, определит, с какого устройства будет происходить загрузка (например, с жесткого диска С:), и считает из первого сектора загрузочного диска короткую программу-загрузчик. Эта программа (LILO, GRUB) загружает с жесткого диска ядро Linux, которое имеет имя vmlinuz-x.y.z-a (где x.y.z – это номер версии ядра, например, 2.4.3, а строка а – признак сборки, может быть каким-то числом или словом) и находится в каталоге /boot (для Red Hat-подобных дистрибутивов) или в корне файловой системы (для дистрибутива Slackware). Во время загрузки ядру можно передать различные параметры, позволяющие более тонко настроить систему (об этом немного позже). Сразу после загрузки ядро производит инициализацию устройств, установленных в компьютере. Затем пробует загрузить и монтировать корневую (root) файловую систему. Ядру необходимо тем или иным образом сообщить, где искать корневую файловую систему. Если ядро Linux не может ее найти, оно выдает соответствующее сообщение и останавливается.
Во многих дистрибутивах и практически всегда при загрузке с дискеты в оперативной памяти создается псевдодиск (RAM-disk, виртуальный диск), который и выступает в роли корневой файловой системы. Для этого есть две причины. Во-первых, оперативная память на несколько порядков быстрее, чем дискета, и во-вторых – на виртуальный диск ядро может загрузить с дискеты и распаковать сжатую файловую систему, что позволяет поместить на дискете намного больше файлов.
После того как ядро Linux успешно смонтирует корневую файловую систему, оно запускает процесс init. Процесс init – это программа, которая, собственно, и осуществляет переход от начального состояния системы в стандартный многопользовательский режим (или тот, который установлен администратором по умолчанию). Помимо этого, процесс init выполняет множество различных операций, необходимых для корректной работы системы: проверку и монтирование файловых систем, запуск различных сервисов, запуск системы входа пользователя и т. п. А теперь подробнее разберемся с каждым шагом загрузки системы.
Программы-загрузчики
Используются для загрузки ядра операционной системы Linux, передачи параметров ядру и организации загрузки нескольких операционных систем, установленных на компьютере.
LILO – LInux LOader
Программа-загрузчик, на сегодняшний день является стандартом de-facto практически для любого дистрибутива Linux. LILO (LInux LOader – загрузчик Linux) без проблем может загружать DOS, OS/2, Linux, FreeBSD, Windows и множество других операционных систем.
Стандартно сконфигурированная программа LILO после запуска приостановит свое выполнение и выведет на экран графическое изображение с меню, пунктами которого являются варианты загрузки. Несколько секунд LILO ожидает ввода пользователем варианта загрузки (или специальных команд) и, в случае их отсутствия, запускает вариант загрузки, выбранный при конфигурировании по умолчанию. Обычные варианты загрузки в LILO носят название linux и dos (если в системе установлены одновременно операционная система Windows 9х и Linux).
Конфигурационный файл LILO – /etc/lilo.conf, формат его можно найти в соответствующей справочной документации.
GRUB
GRand Unified Bootloader (Главный унифицированный загрузчик) – универсальный загрузчик, разработан в Фонде свободного программного обеспечения. Имеет больше возможностей по сравнению с LILO, а также избавлен от некоторых ограничений. В последнее время стал очень популярен, и по распространенности скоро догонит LILO.
LoadLin
Еще одна программа запуска Linux, которая, правда, не используется при старте компьютера, а позволяет загрузить ядро Linux из командной строки DOS (с параметрами загрузки). Применение LoadLin оправдано в том случае, если мы не хотим устанавливать загрузчик типа LILO в MBR (Master Boot Record) винчестера. Этот загрузчик также необходим, если у нас имеется оборудование, использующее драйвер DOS для установки в определенное состояние.