0

Курсы Linux (Лекция 5) — назначение основных каталогов

Приветствую вас читатели linuxfan.com.ua. В данной статье я публикую пятую лекцию из курса лекций по Linux.

В этой лекции речь пойдет о файловой системе Linux и о предназначении основных каталогов. Для начала давайте посмотрим как файловая система реализована в Windows. Есть физический жесткий диск, который разбивается на логические разделы и каждому разделу назначается латинская буква начиная с буквы С (С:, D:, E: и т.д.). На каждом логическом разделе есть каталоги и файлы. Если мы добавим, например, еще один жесткий диск, ему будет назначена следующая свободная буква.

В Linux организовано по другому. Основой всего является так называемый “корень” или “рут”. Обозначается символом / . Корень файловой системы — это виртуальный объект в ядре. Ядро создает виртуальный корень, а потом к нему монтирует диски (файловые системы) с помощью команды mount. Пользователям работавшим в Windows поначалу трудно привыкнуть к тому, что файловые системы нужно монтировать перед использованием и размонтировать после. Но со временем вы привыкнете к этому. К тому же если раньше, вставляя диск в привод, его нужно было сначала подмонтировать к дереву файловой системы, то сейчас эти действия выполняются автоматически. Позже мы будем более подробно говорить о монтировании, а пока давайте рассмотрим назначение основных каталогов Linux.

/bin — в этом каталоге размещаются утилиты (исполняемые файлы) для работы на уровне системы. Из примеров можно привестиls, date, cp, pwd и т.д.

/sbin — в этом каталоге размещены системные утилиты и программы, которые предназначены для управления самой системой. Пример: shutdown, init, ifconfig.

/boot — в этом каталоге размещены файлы запуска системы: ядро, файлы GRUB, initrd, а также файл конфигурации ядра. initrd — это образ RAM-диска который используется для того, чтобы смонтировать временную файловую систему на время загрузки ядра. По сути initrd содержит необходимые модули которые позволят смонтировать реальную файловую систему и продолжить инициализацию и загрузку системы.

/boot/grub/ — каталог содержит загрузчик GRUB и его конфигурационные файлы.

/etc — в этом каталоге находится большинство конфигурационных файлов системы. Содержим много подкаталогов каждый их которых отвечает за определенную область. рассмотрим некоторые из них. /alsa — расширенная поддержка звуковых устройств,/sane.d — поддержка сканера, /X11 — файлы графической подсистемы, /init.d — скрипты, которые управляют службами, /rc0.d — /rc6.d — содержат скрипты, которые должны выполнятся на соответствующем уровне (runlevel), /cron.d — файлы службы периодического запуска процессов, /cups — файлы службы печати, /samba — конфигурационные файлы одноименной системы, /udev — файлы одноименной подсистемы.

/home — в этом каталоге размещаются домашние каталоги пользователей зарегистрированных в системе. Как правило названия домашних каталогов совпадает с логином пользователя.

/root — каталог пользователя root.

/selinux — каталог одноименной подсистемы, которая появилась не так давно и позволяет более жестко контролировать права пользователей (в том числе и рута) для большей безопасности.

/lib — в этом каталоге хранятся библиотеки операционной системы и приложений.

/lib/modules/ — каталог содержащий модули ядра. В этом каталоге расположены подкаталоги, которые совпадают с версиями ядра, которые были установлены в системе. То есть для каждой версии ядра есть свой набор модулей. Это очень важно и нужно обратить на это внимание. Часто при компиляции ядра забывают изменять версию, новое ядро при загрузке использует модули предыдущей версии и система не загружается. Текущую версию ядра можно узнать по команде uname -r, возвращаемая версия обязательно совпадет с названием одного из каталогов в /lib/modules/ .

/lib/modules/версия ядра/kernel/drivers/ — модули, которые поддерживают отдельные устройства (видеоадаптеры, сетевые карты, звуковые карты и т.д.). Например, в /lib/modules/2.6.28-15-generic/kernel/drivers/net/ находятся модули поддержки различных сетевых карт.

/lib/modules/2.6.28-15-generic/kernel/fs/ — модули поддержки различных файловых систем.

/lib/modules/2.6.28-15-generic/kernel/net/ — модули поддержки различных типов сетей (Apple TalkX25IPX и другие).

/mnt — каталог предназначен для монтирования в нем блочных устройств, которые не являются частью системы Linux. Например, Windows-раздел жесткого диска не является частью Linux и монтируется в именно в этот каталог. Также несколько лет назад в эту директорию монтировались и CDROM и Floppy-диски. Сейчас могут монтироваться либо в /media либо непосредственно в корень. Зависит от дистрибутива.

/media — предназначен для монтирования блочных устройств которые подключаются физически к системе в процессе ее работы. Самые распространенные из устройств это флешки, внешние накопители. Монтируются устройства в этот каталог как правило автоматически подсистемой udev.

/usr — в этом каталоге сохраняются все приложения (не путать с утилитами). Файлы Linux-приложений в отличии от Windows-приложений хранятся в соответствующих папках в зависимости от типа. Поэтому в каталоге /usr есть такие подкаталоги как /etc — для файлов конфигураций, /bin — для исполняемых файлов, /lib — библиотеки приложений и другие. То есть получается, что /usr — это как бы корень для приложений. Также хочу отметить, что во многих дистрибутивах конфигурационные файлы приложений могут располагаться не в /lib/etc/, а в /etc, и каталога /lib/etc/ может не быть. В каталоге /usr также располагаются различные службы такие как apachebind и другие, которые не имеют непосредственного отношения к Linux. Для приложений, которым в силу определенных причин необходимо хранить все свои файлы в одном каталоге (например это различные кроссплтаформенные приложения) придумали директорию /opt. Например, там могут быть такие приложения как OpenOffice, Picasa, Chrome.

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

/var — в этом каталоге хранятся различные системные файлы такие как, например, журналы различных подсистем или буферные каталоги принтеров, электронной почты и т.д. Для системного администратора особое внимание на каталог /var/log/ где как раз и содержаться файлы-журналы. Так как эти файлы постоянно растут, то необходимо внимательно следить за свободным местом на жестком диске где размещен каталок /var. Рассмотрим назначение еще нескольких подкаталогов находящихся в /var/var/lock/ — здесь храняться файлы котороые сигнализируют о блокировке того или иного ресурса системы. /var/run/ — в этом каталоге запущенные службы создают подкаталоги в которых содержится файл и идентификатором процесса службы. Например, в файле/var/run/cron.pid содержится идентификатор процесса службы cron. Команды cat /var/run/cron.pid и ps ax | grep cron покажут, что числа совпадают. /var/mail/ — файлы почтовых ящиков пользователей. /var/spool/ — в этом каталоге сохраняются очереди различных программ или служб. Например, /var/spool/cups/ — содержит очереди заданий для принтеров.

У нас остались еще три важных корневых каталога /dev, /proc и /sys. Рассмотрим назначение каталога /dev. В каталоге /devнаходтся особый тип файлов — файлы-устройства. Можно сказать, что эти файлы — это точки доступа к “железу” компьютера. Подробнее о типах файлах мы будем говорить далее. Пока же нужно понять, что каждый файл в каталоге /dev представляет собой реальное физическое или логическое устройство. Например, файл sda в каталоге /dev представляет собой жесткий диск с интерфесом Sata (или SCSI),  файлы sda1sda2 (и т.д.) представляют собой логические разделы данного диска. Файл /dev/ttyS0 — это последовательный порт com1/dev/ttyS1 — это com2 и т.д. Файлы /dev/tty1, /dev/tty2 …. /dev/ttyN — это файлы консоли. Проделайте следующий эксперимент. Зарегистрируйтес на второй и третъей консоли. Перейдите на вторую консоль и наберите следующую команду: echo HELLO! > /dev/tty3. Теперь перейдите на третью консоль и вы должны увидеть там надпись HELLO!. То есть мы перенаправили вывод команды echo на другую консоль. Два слова об обозначении жестких дисков в Linux. Диски с интерфесом IDE обозначаются как hdahdb, hdc или hdd. Если диск подключен к первому IDE разъему как master, то он будет определен как hda, если как slave, то hdb и т.д. Диски с интерфесом SCSI или SATA обозначаются как sda, sdb, sdc и т.д. ДискиSATA обозначаются немного по другому чем IDE. Имя SATA диска не зависит от того к какому разъему SATA вы подключили диск. Например у вас есть шесть раъемов SATA (пронумеруем их от 0 до 5). Независимо от того к какому разъему подключить диск он будет называться sda. Если у вас в системе два и более диска SATA, то диск который подключен к разъему с наименьшим номером будет обозначен как sda, и далее по порядку. Нужно учесть следующее. Если у вас диск SATA был всегда подключен например ко второму разъему (и он назывался sda), а затем вы подключили еще один диск к первому разъему, то теперь уже новый диск будет называться sda, а ваш старый диск будет называться sdb.

Каталоги /proc и /sys рассмотрим на следующей лекции.

Материалом любезно поделился Кузьменко Игорь http://igorka.com.ua

Состоит в: Обучение Тэги: , ,
 
Подпишись на обновления сайта по Linuxfan RSSRSS, Linuxfan по EmailEmail или twitter!

Написать ответ

Оставить коментарий

© 2013 LinuxFan. При копировании материала ссылка на Linuxfan.com.ua обязательна!