Лекция
Сразу хочу сказать, что здесь никакой воды про linux каталоги, и только нужная информация. Для того чтобы лучше понимать что такое linux каталоги , настоятельно рекомендую прочитать все из категории Операционная система 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/ - каталог содержащий модули ядра. Об этом говорит сайт https://intellect.icu . В этом каталоге расположены подкаталоги, которые совпадают с версиями ядра, которые были установлены в системе. То есть для каждой версии ядра есть свой набор модулей. Это очень важно и нужно обратить на это внимание. Часто при компиляции ядра забывают изменять версию, новое ядро при загрузке использует модули предыдущей версии и система не загружается. Текущую версию ядра можно узнать по команде 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 каталоги Надеюсь, что теперь ты понял что такое linux каталоги и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Операционная система LINUX
Комментарии
Оставить комментарий
Операционная система LINUX
Термины: Операционная система LINUX