Лекция №5 - назначение основных каталогов

В этой лекции речь пойдет о файловой системе 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 Talk, X25, IPX и другие).

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

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

/usr - в этом каталоге сохраняются все приложения (не путать с утилитами). Файлы Linux-приложений в отличии от Windows-приложений хранятся в соответствующих папках в зависимости от типа. Поэтому в каталоге /usr есть такие подкаталоги как /etc - для файлов конфигураций, /bin - для исполняемых файлов, /lib - библиотеки приложений и другие. То есть получается, что /usr - это как бы корень для приложений. Также хочу отметить, что во многих дистрибутивах конфигурационные файлы приложений могут располагаться не в /lib/etc/, а в /etc, и каталога /lib/etc/ может не быть. В каталоге /usr также располагаются различные службы такие как apache, bind и другие, которые не имеют непосредственного отношения к 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),  файлы sda1, sda2 (и т.д.) представляют собой логические разделы данного диска. Файл /dev/ttyS0 - это последовательный порт com1, /dev/ttyS1 - это com2 и т.д. Файлы /dev/tty1, /dev/tty2 …. /dev/ttyN - это файлы консоли. Проделайте следующий эксперимент. Зарегистрируйтесь на второй и третъей консоли. Перейдите на вторую консоль и наберите следующую команду: echo HELLO! > /dev/tty3. Теперь перейдите на третью консоль и вы должны увидеть там надпись HELLO!. То есть мы перенаправили вывод команды echo на другую консоль. Два слова об обозначении жестких дисков в Linux. Диски с интерфесом IDE обозначаются как hda, hdb, 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 рассмотрим на следующей лекции.

Читать другие лекции по курсу Администратор ПК с Linux

Статьи и новости схожей тематики:

Комментариев: 2

  1. СеГа:

    спасибо.
    есть вопрос.
    какие папки для безопасности лучше разместить на отдельных разделах?
    например /home/user єто точно, при переустановке линукса останутся все настройки и не повредятся данные.
    спасибо.

    Ответить

  2. Александр:

    Ошибка?
    Зарегистрируйтес на второй и третъей консоли.

    Ответить

Оставьте свой отзыв