Текст книги "Linux"
Автор книги: Алексей Стахнов
Жанр: ОС и Сети, Компьютеры
сообщить о неприемлемом содержимом
Текущая страница: 9 (всего у книги 60 страниц) [доступный отрывок для чтения: 20 страниц]
Каталог должен быть доступен для программ, которые нуждаются во временных файлах.
При загрузке системы файлы, находящиеся в /tmp, должны удаляться (по крайней мере, рекомендуется).
Каталог /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. Пример формирования каталогов локализованной справочной системы
Архитектурно-зависимые справочные файлы можно помещать в отдельные каталоги, соответствующие архитектуре. Например, /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.
Каталог содержит изменяемые файлы. Сюда входят 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), то в этом каталоге хранятся ее базы данных.
Ссылки• http://www.pathname.com/fhs/ – Filesystem Hierarchy Standard в различных текстовых форматах.
• http://www.kerael.org/pub/llniix/docs/device-list/devices.txt – список устройств и специальных файлов.
• 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 выполняет множество различных операций, необходимых для корректной работы системы: проверку и монтирование файловых систем, запуск различных сервисов, запуск системы входа пользователя и т. п. А теперь подробнее разберемся с каждым шагом загрузки системы.
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?