Структура операционной системы Linux Linux Линукс. Файловая система Linux и структура каталогов

Авто 07.07.2019
Авто

Введение в файловую систему

Операционная система (далее - ОС) Linux поддерживает множество файловых систем , в настоящее время наиболее широко используются: ext2, ext3,ext4, reiserfs . Так же, современные ОС Linux совместимы с файловыми системами (ФС далее), используемыми ОС Windows, такими как NTFS и FAT32 , но использование данных ФС в Linux крайне не желательно по причине того, что данные ФС разрабатывались под ОС Windows и поддержка Windows-разделов ядром Linux реализована с помощью сторонних утилит/драйверов/модулей, что накладывает некоторые ограничения (например, согласно проекту Linux-NTFS на момент написания статьи на разделах с NTFS поддерживается практически только чтение (запись - лишь в существующие файлы без изменения их размера), так же ОС Linux не имеет возможности разграничивать права доступа к файлам на разделах NTFS. Данная ситуация со временем может поменяться.

Базовые понятия

Начну с общей структуры файловой системы . ФС Linux/UNIX физически представляет собой пространство раздела диска разбитое на блоки фиксированного размера, кратные размеру сектора - 1024, 2048, 4096 или 8120 байт. Размер блока указывается при создании файловой системы.

Управлением обмена данными между ядром/приложениями и собственно байтами на диске занимается 2 базовых технологии, называемые виртуальная файловая система (VFS) и драйверы файловых систем . Виртуальная файловая система - это часть ядра linux, которая является неким абстрактным слоем (интерфейсам взаимодействия, если хотите) между ядром и конкретной реализацией файловой системы (ext2, fat32...). Данная технология позволяет ядру и приложениям взаимодействовать с файловой системой не учитывая подробностей работы конкретной файловой системы и управлять файловыми операциями с помощью типовых команд - прозрачно. Часто, VFS называют виртуальный коммутатор файловых систем. Виртуальная файловая система так же осуществляет стыковку блочных устройств с имеющимися файловыми системами.

Список поддерживаемых Вашим ядром Linux файловых систем можно увидеть в файле /proc/filesystems .

Структура каталогов и другие базовые понятия

Структуру каталогов , в общем случае можно представить в виде следующей схемы:

Данная схема отображает то, что у одного объекта файловой системы (файла) может быть несколько путей. Грубо говоря, несколько файлов в структуре каталогов Linux могут быть физически одним файлом на диске. Или же другими словами, 1 физический файл на диске может иметь несколько имен (путей). Это достигается тем, что в файловой системе каждый файл идентифицируется уникальным номером , называемым Inode (инод = Индексный дескриптор ).

Отсюда можно сделать вывод, что структура файловой системы отчасти иерархична. Или лучше сказать - "перекрестно-иерархическая", потому что дерево иерархии за счет того, что один объект может иметь несколько путей, может пересекаться.

В файловой структуре Linux имеется один корневой раздел - / (он же root , корень ). Все разделы жесткого диска (если их несколько) представляют собой структуру подкаталогов, "примонтированых" к определенным каталогам, схематично это можно представить следующим образом:

/- |-/etc-|-/etc/X11-|-/etc/X11/xinit.d | | |-... | |-files | |-... |-/opt |-/home <- |-/user1-|-/user1/Desktop # примонтированный раздел ext3, | | |-/user1/Documents # содержащий свое дерево каталогов | | |-... # (/home - точка монтирования) | |-/user2 | |-.... |-/usr |-/var

Операция монтирования служит для того, чтобы сделать доступной файловую систему, расположенную на каком-либо блочном устройстве. Суть операции монтирования заключается в том, что ядро ассоциирует некоторый каталог (называемый точкой монтирования) с устройством, содержащем файловую систему и драйвером файловой системы. Для этого оно передает ссылку на блочное устройство - драйверу файловой системы, и в случае, если драйвер успешно проидентифицировал эту файловую систему, ядро заносит в специальную таблицу монтирования информацию о том, что все файлы и каталоги, чей полный путь начинается с указанной точки монтирования, обслуживаются соответствующим драйвером файловой системы и расположены на указанном блочном устройстве. Посмотреть таблицу примонтированных файловых систем можно через файл /proc/mounts .

Примечание. Вообще говоря, привязываться к блочному устройству в данном случае не обязательно. Устройство, которое монтируется может быть не только блочным. Может быть, например, сетевым (если монтируется NFS или SMB\CIFS).

Посмотреть сколько файл имеет ссылок и инод файла можно командой:

$ ls -li 193 drwxr-xr-x 1 mc-sim root 368 Mar 30 2008 bin 1 drwxr-xr-x 1 mc-sim root 0 Jan 1 1970 dev 197 lrwxrwxrwx 1 mc-sim root 7 Mar 30 2008 etc -> tmp/etc ....

в приведенном примере первый столбец (значения 193,1,197) есть инод , а третий столбец (значения 1) есть количество ссылок на файл (читаем: путей файла ).

Инод , как уже говорилось, уникален в пределах определенной файловой системы и содержит следующую информацию :

  • о владельце объекта ФС
  • последнем времени доступа
  • размере объекта ФС
  • указании файл это или каталог
  • права доступа
Структура и описание каталогов Linux
. ссылка на текущий каталог. Данный элемент есть в каждом каталоге файловой структуры.
.. ссылка на родительский каталог. Данный элемент есть в каждом каталоге файловой структуры. (в корне - / данный элемент указывает на саму корневую систему)
/ корневой каталог ФС, сюда "завязаны" все остальные подкаталоги первого уровня
/bin/ Бинарные программы, основные программы для работы в системе: командные оболочки, файловые утилиты и.т.д.
/boot/ статичные файлы загрузчика (образ ядра, файлы GRUB, LILO)
|-- /grub/
|-- /lilo/ Каталог конфигурационных файлов
| config-kern_ver файл текущей конфигурации ядра
| initrd.img-kern_ver загрузочный образ инициализации initrd
| vmlinuz-kern_ver образ ядра Linux
/dev/ каталог, содержащий файлы устройств.
В Linux вообще всё рассматривается, как файл, даже различные устройства, такие как принтеры, жёсткие диски, сканеры и т.д. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл. Аналогично устроено большинство UNIX-подобных операционных систем
|-- /pts/ фиктивная файловая система, представляющая собой файловую структуру, которая отражает псевдотерминалы пользователей вошедших в систему
| |-- 0 устройство псевдотерминала pts/0
| |-- 1 устройство псевдотерминала pts/1
| --- n устройство псевдотерминала pts/n
|-- null т.н. "черная дыра" или "урна для битов". Вся информация, отправляемая на данное устройства - пропадает/уничтожается.
--- zero "генератор нулей"
/etc/ Системные конфигурационные файлы, стартовые сценарии, конфигурационные файлы графической системы и различных приложений. Из данного каталога хотелось бы выделить следующие файлы:
|-- /default/ содержит системные Файлы конфигураций в дистрибутивах Debian (аналог /etc/sysconfig/ в RedHat)
|-- /logrotate.d/ директория конфигурационных файлов демона автоматической обработки логов;
| |-- apache
| |-- squid конфигурация логирования apache
| |-- syslog конфигурация логирования системных логов
| --- ...
|-- /pam.d/ каталог содержит файлы конфигурации PAM (указывают методы аутентификации в приложениях, использующих PAM)
|-- /ppp/ директория содержит конфигурации PPP-соединений:
| |-- options содержит общую для всех PPP-соединений конфигурацию;
| |-- options.* конфигурация конкретно взятого соединения (например модемное options.ttyS1)
| |-- ip-up скрипт выполняемый при/для соединения (демоном pppd);
| --- ip-down скрипт выполняемый при/для разъединении (демоном pppd).
|-- /rc.d/ директория системы (содержит сценарии инициализации)
| |-- /init.d/ содержит скрипты, для управления системными демонами (сервисами);
| --- /rcX.d/ директории уровней запуска X, содержат ссылки на скрипты в init.d;
|-- /samba/ содержит файлы конфигурации samba:
| |-- smb.conf главный конфигурационный файл SAMBA;
| |-- smbusers описывает соответствие SAMBA пользователей к системным пользователям;
| --- smbpasswd содержит хеши пользователей SAMBA, пароли устанавливаются утилитой smbpasswd.
|-- /ssh/ Каталог конфигурации демона sshd
| |-- ssh_config Конфигурационный файл ssh клиента
| --- sshd_config Конфигурационный файл ssh - сервера
|-- /sysconfig/ содержит системные Файлы конфигураций в дистрибутивах RedHat (аналог /etc/default/ в Debian)
| |-- keyboard описание текущей раскладки клавиатуры;
| |-- desktop установки графической среды (KDE,GNOME..);
| |-- network файл конфигурации сетевой подсистемы
| --- i18n конфигурация общесистемной локали (локаль отдельных пользователей может содержаться в {home}/i18n);
|-- /security/ содержит Файлы описывающие безопасность системы:
| |-- console.perms правила изменения прав доступа к устройствам, при аутентификации;
| |-- limits.conf конфигурация лимитов пользователей.
| --- network конфигурация сети;
|-- /skel/ шаблон директории пользователя (в момент создания пользователя содержимое директории пользователя копируется отсюда), своеобразный аналог каталога C:\Documents and settings\Default User\ в Windows.
|-- /xinetd.d/ директория содержит файлы конфигураций отдельных сервисов для суперсервера xinetd;
|-- /X11/ /fs/config содержит перечень каталогов со шрифтами для X;
| |-- XF86Config Файл конфигурации X (XFree86);
| --- xorg.conf Файл конфигурации X (XOrg);
|-- at.allow Список пользователей, разрешающий (allow) или запрещающий (deny) выполнение утилиты at
|-- at.deny
|-- cron.allow Список пользователей, разрешающий (allow) или запрещающий (deny) выполнение
|-- cron.deny
|-- anacrontab конфигурация задач выполняемых anacron;
|-- crontab конфигурация задач выполняемых cron;
|-- ethers Файл соответствия аппаратных MAC адресов сетевым IP адресам в сети, в случае несоответствия доступ для хоста будет закрыт;
|-- export конфигурация NFS-ресурсов доступных извне;
|-- filesystems список ФС, поддерживаемых ядром (отсюда берется ФС, если она не указана в /etc/fstab)
|-- fstab список ФС, монтирующихся автоматически при загрузке
|-- group база данных
|-- gshadow файл паролей групп пользователей
|-- hostname текущее имя машины;
|-- hosts перечень хостов и соответствующих им IP-адресов;
|-- host.allow список хостов которым вход разрешен;
|-- host.deny список хостов которым вход запрещен (для libc ver 5);
|-- host.conf указывает где и в каком порядке искать имена хостов (для libc ver 6);
|-- inittab ;
|-- inputrc конфигурация ресурсов ввода с клавиатуры;
|-- issue сообщение, выводимое при локальном подключении к системе
|-- issue.net сообщение, выводимое при удаленном подключении к системе
|-- ld.so.conf файл конфигурации, содержащий список каталогов, в которых , кроме указанных путей, компоновщик ищет в каталогах /lib и /usr/lib
|-- ld.so.cache кэш библиотечных файлов, для более быстрого поиска библиотек (своеобразный индекс)
|-- login.defs описывает поведение login и su;
|-- logrotate.conf конфигурация демона
|-- lilo.conf конфигурация boot-загрузчика LILO;
|-- man.conf конфигурация системы страниц помощи, команда man;
|-- motd сообщение, выводимое всем пользователям после ввода пароля и перед запуском интерпретатора, т.н. "сообщение дня"
|-- mtab Список текущих примонтированных ФС. Обычно, этот файл должен создаваться, как только монтируется новая файловая система.
|-- netgroup файл определяет сетевые группы, используемые для проверки прав доступа при выполнении удаленного входа.
|-- nologin наличие этого файла запрещает пользователям входить в систему с выдачей сообщения в файле;
|-- nsswitch.conf конфигурация последовательности поиска имен по различным источникам;
|-- passwd
|-- printcap Файл конфигурации принтеров;
|-- profile сценарий-профиль для интерпретатора BASH (выполняется после регистрации в системе и используется для всех пользователей системы);
|-- protocols файл описывает номера протоколов, названия и описания.
|-- resolv.conf конфигурация резолвера имён, содержит список DNS-серверов;
|-- rpc файл описывает службы RPC (соответствие имя сервера RPC, номер программы RPC и псевдонимы)
|-- services содержит сопоставления номеров портов/сокетов именам служб
|-- shadow
|-- sysctl.conf содержит команды для автоматической инициализации sysctl-параметров ядра;
|-- syslog.conf конфигурация демона системного логера (syslogd);
|-- sudoers указание на то какие пользователи и какие программы могут быть запущены с привилегиями root используя sudo.
--- xinetd.conf конфигурация суперсервера Internet (централизованное управление сокетами/портами);
/home/ {имя_юзера} каталог, содержащий подкаталоги пользователей (настройки интерфейса, личные файлы)
|-- .bashrc профиль конкретного пользователя для BASH (запускается при запуске bash или запуске копии bash);
|-- .cshrc профиль конкретного пользователя для TCSH;
|-- .bash_profile профиль конкретного пользователя для BASH (запускается при каждом входе в систему).
|-- .inputrc конфигурация ресурсы ввода с клавиатуры конкретного пользователя.
|-- .Xauthority файл авторизации для запуска X-приложений удаленно, файлы на удаленных машинах должны соответствовать;
|-- .xinitrc сценарий загрузки X сервера конкретного пользователя;
--- .plan
.project
.forward
данные файлы используются утилитой finger для вывода информации о пользователе
/lib/ Системные библиотеки, необходимые для программ и модули ядра. (В Windows библиотеки представляют собой dll модули)
/lost+found В lost+found скидываются файлы, на которых не было ссылок ни в одной директории, хотя их inod не были помечены как свободные.
/media/ Каталог для монтирования съемных носителей (CD, Flash)
|-- /cdrom/
/mnt/ В каталоге содержаться временные точки монтирования для устройств
/opt/ Дополнительные пакеты программ. Если программа установленная сюда больше не нужна, то достаточно удалить ее каталог без процедуры денсталляции. Сюда могут устанавливается программы не являющиеся частью дистрибутива. (например /opt/openoffice.org).
/proc/ Виртуальная ФС, хранящаяся в памяти компьютера при загруженной ОС. В данном каталоге расположены самые свежие сведения обо всех процессах, запущенных на компьютере. Содержимое каждого файла определяется в реальном времени. среди данного каталога, хотелось бы особо выделить следующие файлы и каталоги:
|-- /net/
| -- arp текущая arp-таблица
|-- /sys/kernel/
| |-- cap-bound управление дополнительными пра, как сделано в последней строке для дискеты.tr сценарий-профиль для интерпретатора BASH (выполняетсtd/tdtda name="proc"я после регистрации в системе и используется для всех пользователей системы);вами (root) (0 – root права аннулируются);
| |-- hostname текущее имя Компьютера
| |-- domainname Имя домена компьютера
| |-- osrelease версия ядра системы;
| |-- ostype тип ОС (Linux, *BSD, ...);
| --- version дата сборки ядра.
|-- cpuinfo Текущая информация о процессоре
|-- cmdline список параметров, переданных ядру при загрузке
|-- devices системные устройства
|-- dma Задействованные в данный момент DMA каналы
|-- interrupts Счетчики количества прерываний IRQ в архитектуре i386.
|-- ioports порты ввода/вывода
|-- filesystems поддерживаемые ФС
|-- loadvg информация о загруженности системы
|-- kcore содержимое физической памяти в текущий момент
|-- kmsg сообщения, выдаваемые ядром (копия syslog)
|-- mdstat отображение статистики программных RAID массивов
|-- meminfo информация о памяти
|-- modules загруженные модули ядра
|-- mounts смонтированные ФС
|-- partitions информация о разделах дисков
|-- pci Полный список всех PCI-устройств, найденных во время инициализации ядра, а также их конфигурация.
|-- swaps информация о всех своп-разделах, подключенных к системе
|-- uptime время работоспособности
|-- version версия ядра
|-- /цифровые/ каталоги, содержащие в названии наборы цифр, соответствуют GID -номеру процесса и содержат в себе информацию о работающем процессе, GIDу которого соответствует.
| |-- /fd/* содержит указатели на все, открытые процессом файлы
| |-- cmdline полную командную строку запуска процесса до тех пор, пока процесс не будет "выгружен" или не станет "зомби"
| |-- cwd символьная ссылка на текущий рабочий каталог процесса
| |-- environ содержит окружение процесса
| |-- exe содержит мягкую ссылку на бинарник процесса
| |-- limits содержит информацию о лимитах процесса (например, лимит открытых файлов, приоритет процесса и т.п.)
| |-- root мягкая ссылка на каталог пользователя root для процесса
| --- status Информация о процессе, представленная в довольно удобном для просмотра виде. Она содержит, в частности, следующие строки:
  • Имя исполняемого файла процесса в скобках;
  • Статус процесса;
  • Идентификатор процесса
  • Идентификатор родительского процесса
  • Идентификатор группы процессов процесса
  • и др.
/root/ домашний каталог пользователя root, данный каталог должен быть в корневой ФС, чтобы администратор мог войти в нее.
/sbin/ В данном каталоге содержаться основные системные бинарники, команды для системного администрирования, а также программы, выполняемые в ходе загрузки ОС. Здесь находятся элементы, запускаемые в фоновом режиме, в каком то смысле данный каталог является аналогом папки c:\Windows\system\ и c:\Windows\system32\.
--- shutdown утилита остановки системы
/srv/ данные предоставляемых сервисов от ОС
/sys/ это директория, к которой примонтирована виртуальная файловая система sysfs, которая добавляет в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. (В версии ядра ниже 2.6 не использовалась)
|-- /block/ каталог содержит подкаталоги всех блочных устройств, присутствующих в данный момент в системе.
|-- /bus/ В этом каталоге находится список шин, определенных в ядре Linux (eisa, pci и т.д.).
--- /class/ Каталог содержит список группированных устройств по классам (printer, scsi-devices и т.д.).
/tmp/ Временные файлы. Данный каталог аналогичен c:\Windows\temp. Обычно Linux очищает этот каталог во время загрузки.
/usr/ В данном каталоге хранятся все установленные пакеты программ, документация, исходный код ядра и система X Window. Все пользователи кроме суперпользователя root имеют доступ только для чтения. Может быть смонтирована по сети и может быть общей для нескольких машин.
|-- /bin/ Директория дополнительных программ для всех учетных записей.
|-- /include/ Заголовочные файлы С++.
|-- /lib/ Системные библиотеки для программ, расположенных в каталоге/usr
| /local/ По стандарту /usr должен быть общим для нескольких компьютеров и смонтирован по сети, а /usr/local должен содержать установленные пакеты программы только на локальной машине (к примеру, /usr - бюджет семьи, а /usr/local - личный кошелек каждого). Но чаще всего директория /usr/local используется для установки программ, которые не предназначены для конкретного дистрибутива (к примеру для пакетного дистрибутива Ubuntu в /usr находятся "родные" установленные пакеты, а /usr/local находятся собранные пакеты из исходников).
| |-- /bin/
| |-- /lib/
| |-- ...
|-- /sbin/ Дополнительные системные программы.
|-- /share/ Общие данные установленных программ.
| |-- /icons/ В каталоге находятся все иконки системы.
| --- /doc/ Директория, в которой обычно находится справочная документация по установленным программам.
|-- /src/ Каталог содержит исходные коды (например, здесь располагаются исходные коды ядра).
|-- /X11R6/bin/ Х ссылка на текущий X сервер;
|-- magic.mime файлы, хранящие "магическое число". Данное число описывает тип файла для утилиты file .
--- magic
/var Здесь находятся часто меняющиеся данные (журналы операционной системы, системные log-файлы, cache-файлы и т. д.)
|-- /cache В этом месте хранятся все кэшированные данные различных программ.
|-- /lib Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.).
| --- /rpm/ база данных пакетного менеджера RPM
|-- /lock Здесь лежат lock-файлы, указывающие на занятость некоторого ресурса.
|-- /log/ в данном каталоге лежат все лог файлы системы
| |-- wtmp (бинарный формат) содержит удачные попытки входа и выхода в систему
| |-- utmp (бинарный формат) содержит текущих вошедших пользователей в систему
| |-- lastlog (бинарный формат) содержит, когда каждый пользователь последний раз входил
| -- btmp (бинарный формат) содержит НЕ удачные попытки входа/выхода в систему
|-- /spool Задачи, ожидающие обработки (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т. д.).
--- /www В этом месте размещаются Web-страницы для сервера Apache.

Вот, в кратце, о назначении каталогов Linux. В последующем данная таблица будет наполняться по мере моего изучения ОС LINUX. Хочу отметить, что у некоторых дистрибутивов структура каталогов может несколько различаться, добавляться другие каталоги. Но в общем случае структура имеет вид, указанный выше.

На сегодня все. В следующей статье будет сделана шпаргалка по основным командам Linux.

Любая UNIX-подобная операционная система состоит из ядра, некоторых системных и прикладных программ. Системные программы используют средства, предоставляемые ядром для обеспечения выполнения различных функций операционной системы. Системные и все остальные программы выполняются «на поверхности ядра» - в пользовательском режиме. Довольно часто операционная система содержит компиляторы и соответствующие им библиотеки (GCC и C библиотеки для Linux), хотя не обязательно все языки программирования должны быть частью операционной системы. Документация, а иногда даже игры, могут являться ее частью. Обычно состав операционной системы определяется содержимым установочного диска.

Операционную систему Linux можно рассматривать в виде Unix-пирамиды, изображенной на рисунке.

Рисунок Уровни операционной системы Unix

На самом нижнем уровне располагается аппаратное обеспечение, состоящее из центрального процессора, памяти, дисков, терминалов и других устройств.

На голом «железе» работает система Unix, функции которой заключаются в управлении аппаратным обеспечением и предоставлении всем программам интерфейса системных вызовов. Эти системные вызовы позволяют программа создавать процессы, файлы и прочие ресурсы, а так же управлять ими.

Все программы обращаются к системным вызовам, помещая аргументы в регистры центрального процессора и выполняя команду эмулированного прерывания для переключения из пользовательского режима в режим ядра и передачи управления операционной системе Unix. За работу команд эмулированного прерывания отвечают библиотечные функции, по одной на системный вызов. Таким образом, чтобы обратиться к системному вызову READ, программа на С должна вызвать библиотечную процедуру READ.

Помимо операционной системы и библиотеки системных вызовов все версии Unix содержать большое количество стандартных программ. К этим программам относятся: командный процессор (оболочка), компиляторы, редакторы, программы обработки текста и утилиты для работы с файлами.

Многие утилиты можно отнести к одной из трех категорий:

1 Редакторы;

Фильтры – считывают входную информацию, поступившую либо от пользователя, либо из файла или другого источника, изучают и обрабатывают ее, а затем выдают результат. Для написания скрипта-фильтра используется специальный язык AWK. К фильтрам относятся – grep, sort, wc, pr, cmp, comm., cpio, fmt, fgrep, srd;

Коммуникационные программы – используются для связи с другими пользователями Вашей системы и других систем.

Таким образом, мы можем говорить о трех интерфейсах в операционной системе Unix: интерфейс системных вызовов, интерфейс библиотечных функций и интерфейс, образованный набором стандартных обслуживающих программ.

Хотя именно последний интерфейс большинство пользователей считает системой Unix, в действительности он не имеет практически ни какого отношения к самой операционной системе и легко может быть заменен.

Дистрибутивы Linux

Дистрибутив Linux – это набор пакетов программного обеспечения, включающий базовые компоненты операционной систем (в том числе, ядро Linux), некоторую совокупность программных приложений и программу инсталляции, которая позволяет установить на компьютер пользователя операционную систему GNU/Linux без привлечения высококвалифицированного эксперта, и набор прикладных программ, необходимых для конкретного применения системы.

Признаков, по которым различаются отдельные дистрибутивы существует очень много. Вот только некоторые из них:

­ ориентация (или назначение) дистрибутива на конкретную область применений;

­ требования к аппаратному обеспечению;

­ используемая графическая оболочка (например, KDE, GNOME или XFce);

­ наличие средств локализации, обеспечивающих поддержку необходимых вам;

­ носитель, с которого может запускаться система;

­ организация процедуры начальной загрузки системы (System V или BSD);

­ используемая система управления пакетами (например, dpkg в Debian, RPM в Fedora Core). Программное обеспечение, содержащееся в пакете, поставляется в одном из двух основных видов: в виде бинарных файлов , которые предназначены для непосредственной установки в вашу систему, без какой-либо дополнительной обработки (например, компиляции) и в виде исходных текстов , которые обычно содержат текст на каком-то языке программирования, заархивированный в формате tar и упакованный программой gzip, а также вспомогательные файлы, необходимые для компиляции приложения из файлов пакета;

­ структура каталогов файловой системы (хотя все файловые системы должны по возможности соответствовать стандарту на структуру каталогов файловой системы FHS - Filesystem Hierarchy Standard);

­ родословная или история происхождения дистрибутива (большая часть современных дистрибутивов ведет свою родословную либо от Red Hat, либо от Debian);

­ состав базового устанавливаемого программного обеспечения;

­ доступность дополнительных пакетов;

­ наличие и состав коммерческих программ, включенных в дистрибутив;

­ предоставляемые инструменты управления системой и так далее...

Рассмотрев более подробно все аспекты, по которым различаются дистрибутивы, можно констатировать, что существует три существенных критерия классификации дистрибутивов Linux:

­ стиль загрузки;

­ система управления пакетами;

­ назначение дистрибутива.

5. Файловая система - это часть операционной системы, работающая

файлами, и предоставляющая способы хранения данных и организации доступа к ним, на информационном носителе или его разделе. В Unix-системах файловая система представляет собой некоторое устройство (жесткий диск или компакт-диск) или раздел диска, используемые для хранения файлов.

Основной файловой системой операционной системы Linux стала – Ext2 , с длинными именами файлов, длинными файлами и высоко производительностью. Однако Linux также поддерживает и другие файловые системы, используя для этого файловую систему NFS. При компоновке операционной системы Linux предлагает сделать выбор файловой системы, которая будет встроена в ядро. Другие файловые системы при необходимости могут динамически подгружаться во время исполнения в виде модулей.

Ext2 очень похожа на файловую систему BSD с небольшими изменениями. Размещение файловой системы Ext2 на диске показано на рисунке.

Файловая система Linux организована в виде дерева с одной исходной вершиной, которая называется корнем (записывается: « / » ), промежуточные вершины которого соответствуют каталогам, и листья - файлам и пустым каталогам. Символ « / » так же используется для разделения имен каталогов. Каждый каталог и файл файловой системы имеет уникальное полное имя. В каталоге содержатся два специальных имени: имя « . » - именующее сам этот каталог, и имя « . . » - именующее "родительский" каталог данного каталога. Файловая система Linux использует два имени пути: полное (абсолютное), которое начинается с корня, т.е. со знака « / » и родственное (относительное), которое начинается и имени текущего каталога.

6. Ext2 очень похожа на файловую систему BSD с небольшими изменениями. Размещение файловой системы Ext2 на диске показано на рисунке.

Рисунок – Размещение файловой системы Ext2 на диске

Вместо групп цилиндров Ext2 делит диск на группы блоков. Описатель группы содержит информацию о расположении битовых массивов, количестве свободных блоков и i-узлов в группе, а также количество каталогов в группе. В двух битовых массивах (блоковый битовый массив и битовый массив i-узлов) ведется учет свободных блоков и свободных i-узлов. Размер каждого битового массива равен одному блоку.

Несмотря на то, что основным назначением файловой системы является упорядочение хранимых ресурсов, программистам не очень хотелось бы “изобретать велосипед” для управления объектами других типов. В Linux объектами файловой системы являются: процессы, устройства, структуры данных ядра и параметры настройки, каналы межзадачного взаимодействия, папки, и, конечно, обычные файлы. Такое устройство файловой системы имеет как преимущества, так и недостатки. К преимуществам относится единый программный интерфейс, легкость доступа из интерпретатора команд. К недостаткам относится реализация файловой системы по методу Франкенштейна.

Файловая система состоит из четырех основных компонентов:

  1. Пространство имен – методы именования объектов и организации в виде единой иерархии
  2. API – набор системных вызовов для перемещения между объектами и управления ими
  3. Методы безопасности – схема защиты, сокрытия и совместного использования объектов
  4. Реализация – программный код, который связывает логические модели с дисковой подсистемой

Файловая система – это единая иерархическая структура, которая начинается с каталога / и разветвляется, охватывая произвольное число каталогов.

Каталог верхнего уровня называется корневым . Это моноиерархическая система отличается от используемой в Windows, где применяется понятие пространства имен, основанное на принципе деления диска на разделы.

Цепочка имен каталогов, через которые необходимо пройти для доступа к заданному файлу, вместе с именем этого файла образуют путь к файлу. Путь может быть абсолютным (например, /temp/foo ) или относительным (например, book4/filesystem ). Последние интерпретируются начиная с текущего каталога. Стоит отметить, что текущий каталог есть у каждого процесса (большинство процессов никогда не изменяют свои рабочие каталоги, и поэтому просто наследуют текущий каталог процесса, который их запустил).

Существует ограничение на длину имени файла – не более 255 символов. В имя нельзя включать символ косой черты и нулевые символы. Также есть ограничение на длину пути, который передается ядру в качестве аргумента системного вызова – 4095 байт.

Монтирование и демонтирование файловой системы

Файловое дерево формируется из отдельных частей, которые носят название файловых систем. Каждая файловая система имеет корневой каталог и список его подкаталогов и файлов. Большинство файловых систем представляет собой разделы жесткого диска или логические тома, но, как было сказано ранее, файловая система может принять облик всего, что подчиняется определенным функциональным признакам – сетевых файловых систем, компонентов ядра, дисков, устройств и т.д.

В большинстве случаев файловые системы присоединяются к файловому дереву с помощью команды mount . Эта команда связывает каталог существующего файлового дерева, называемый точкой монтирования, корневым каталогом новой файловой системы. На время монтирования доступ к прежнему содержимому точки монтирования становится невозможным. Например, команда $ sudo mount /dev/sda4 /users монтирует на устройстве /dev/sda4 файловую систему /users . По окончании монтирования можно с помощью команды ls /users просмотреть содержимое файловой системы. Список смонтированных пользователями файловых систем хранится в файле /etc/fstab . Демонтируются файловые системы с помощью команды umount . Занятую файловую систему демонтировать невозможно.

Организация файловой системы

Корневая файловая система содержит корневой каталог и минимальный набор файлов и подкаталогов. Файл ядра находится в недрах корневой файловой системы, но не имеет стандартного имени или точного местоположения.

Частью корневой файловой системы являются также каталог /etc для критических системных файлов и файлов конфигурации, каталоги /sbin и /bin - для важных ути­лит и иногда каталог /tmp - для временных файлов. Каталог /dev - это обычно ре­альный каталог, который включен в корневую файловую систему, но он (частично или полностью) может перекрываться другими файловыми системами, если ваша система виртуализировала поддержку своих устройств.

Одни системы хранят совместно используемые библиотечные файлы и прочие важ­ные программы (например, препроцессор языка С) в каталоге /lib . Другие переместили эти элементы в каталог /usr/lib , оставив для каталога /lib роль символьной ссылки.

Огромное значение имеют также каталоги /usr и /var . В первом хранится большин­ство стандартных программ и другие полезные компоненты, в частности интерактивная документация и библиотеки. Совсем не обязательно, чтобы каталог /usr был отдельной файловой системой, однако для удобства администрирования его, как правило, монти­руют именно так. Для того чтобы система могла загрузиться в многопользовательском режиме, необходимы оба каталога - /usr и /var . В каталоге /var содержатся буферные каталоги, журнальные файлы, учетная инфор­мация и прочие компоненты, специфичные для каждого компьютера. Поскольку при возникновении проблем журнальные файлы быстро разрастаются, рекомендуется помещать каталог /var в отдельную файловую систему. Домашние каталоги пользователей чаще всего хранятся в отдельной файловой си­стеме, которая обычно монтируется в корневом каталоге. Отдельные файловые системы можно использовать и для хранения больших информационных массивов, например библиотек исходных кодов программ и баз данных.

В таблице приведены стандартные каталоги и их содержимое

Каталог ОС Содержимое
/bin Все Команды операционной системы ядра
/boot LS Ядро и файлы для его загрузки
/dev Все Файлы устройств: дисков, принтеров, псевдотерминалов и т.д.
/etc Все Важные файлы запуска и конфигурации системы
/home Все Стандартные домашние каталоги пользователей
/kernel S Компоненты ядра
/lib Все Библиотеки, совместно используемые библиотеки и компоненты компилятора языка C
/media LS Точки монтирования файловых системы на съемных носителях
/mnt LSA Временные точки монтирования
/opt Все Программные пакеты необязательных приложения (которые пока не находят широкого применения)
/proc LSA Информация о всех выполняющихся процессах
/root LS Домашний каталог суперпользователя (часто просто /)
/sbin Все Команды, необходимые для обеспечения минимальной работоспособности системы
/stand H Автономные утилиты, средства диагностики и форматирования дисков
/tmp Все Временные файлы, которые могут удаляться при перезагрузке
/usr Все Иерархия дополнительных файлов и программ
/usb/bin Все Содержимое
/usr/include Все Файлы заголовков, предназначенные для компиляции C-программ
/usr/lib Все Библиотеки и вспомогательные файлы для стандартных программ
/usr/lib64 L 64-разрядные библиотеки для 64-разрядных дистрибутивов Linux
/usr/local Все Локальные программы (программы, создаваемые или устанавливаемые локальными пользователями)
/usr/sbin Все Менее важные файлы системного администрирования
/usr/share Все Элементы, общие для различных систем
/usr/share/man Все Страницы интерактивной документации
/usr/src LSA Исходные коды нелокальных программных пакетов (не находит широкого применения)
/usr/tmp Все Дополнительный каталог для временных файлов, которые могут сохраняться при перезагрузке
/var Все Системные данные и конфигурационные файлы
/var/adm Все Разное: журнальные файлы, записи об инсталляции системы, административные компоненты
/var/log LSA Системные журнальные файлы
/var/spool Все Буферные каталоги для принтеров, электронной почты и т.д.
/var/tmp Все Каталог для временного хранения файлов

Примечание: L = Linux, S = Solaris, H = HP-UX, A = AIX

Типы файлов

В большинстве реализаций файловых систем определены семь типов файлов:

  • Обычные файлы
  • Каталоги
  • Файлы байт-ориентированных (символьных) устройств
  • Файлы блочно-ориентированных (блочных) устройств
  • Локальные сокеты
  • Именованные каналы (реализующие принцип обслуживания FIFO – первым поступил первым обслужен)
  • Символьные ссылки

Определить тип существующего файла можно с помощью команды ls -ld . Первый символ в строке вывода обозначает тип объекта. Пример:

$ ls -ld /usr/include

где d – означает каталог

Возможные коды ля представления различных типов файлов представлены в таблице

Обычные файлы – это просто последовательность байтов. Файловые системы не налагают ограничения на его структуру. Текстовые документы, файлы данных, программные файлы, библиотеки функций и многое другое – все это хранится в обычных файлах. К их содержимому возможен как последовательный, так и прямой доступ.

Каталог хранит именованные ссылки и другие файлы. Он создается командой mkdir и удаляется (при условии, что он пуст) командой rmdir . Непустые каталоги можно удалять командой rm -r . Специальные ссылки ‘.’ и ‘..’ обозначают сам каталог и его родительский каталог соответственно. Такие ссылки нельзя удалить. Поскольку корневой каталог находится на вершине иерархии, ссылка ‘..’ эквивалентна ссылке ‘.’

Имя файла в действительности хранится в родительском каталоге, а не в самом файле. На файл можно ссылаться из нескольких каталогов одновременно и даже из нескольких элементов одного и того же каталога, причем у всех ссылок могут быть разные имена. Это создает иллюзию того, что файл одновременно присутствует в разных каталогах. Эти дополнительные жесткие (фиксированные) ссылки можно считать синонимами для исходных файлов, и с точки зрения файловой системы все ссылки на файл эквивалентны. Файловая система подсчитывает количество ссылок на каждый файл и при удалении файла не освобождает блоки данных до тех пор, пока не будет удалена последняя ссылка на него. Ссылки не могут указывать на файл, находящийся в другой файловой системе.

Жесткие ссылки создаются командой ln и удаляются командой rm . Синтаксис ко­манды ln легко запомнить, поскольку она является “зеркальным отражением” команды cp. Команда cp oldfile newfile создает копию файла oldfile с именем newfile, а команда ln newfile oldfile преобразует имя newfile в дополнительную ссылку на файл oldfile.

Файлы устройств позволяют программам получать доступ к аппаратным средства и периферийному оборудованию системы. Ядро включает (или загружает) специальные программы (драйверы), которые во всех деталях “знают”, как взаимодействовать с каж­дым из имеющихся устройств, поэтому само ядро может оставаться относительно аб­страктным и независимым от оборудования.

Драйверы устройств образуют стандартный коммуникационный интерфейс, кото­рый воспринимается пользователем как совокупность обычных файлов. Получив за­прос к файлу символьного или блочного устройства, файловая система передает этот запрос соответствующему драйверу. Важно отличать файлы устройств от драйверов этих устройств. Файлы сами по себе не являются драйверами.

Их можно рассматривать как шлюзы, через которые драйвер принимает запросы. Файлы символьных устройств позволяют связанным с ними драйверам выполнять соб­ственную буферизацию ввода-вывода. Файлы блочных устройств обрабатываются драй­верами, которые осуществляют ввод-вывод большими порциями, а буферизацию вы­полняет ядро. В прошлом некоторые типы аппаратных средств могли быть представлены файлами любого типа, но в современных системах такая конфигурация встречается редко.

Файлы устройств характеризуются двумя номерами: старшим и младшим. Старший номер устройства позволяет ядру определить, к какому драйверу относится файл, а младший номер, как правило, идентифицирует конкретное физическое устройство. На­пример, старший номер устройства 4 в Linux соответствует драйверу последовательного порта. Таким образом, первый последовательный порт (/ dev/tty0) будет иметь стар­ший номер 4 и младший номер 0.

Драйверы могут интерпретировать переданные им младшие номера устройств как угодно. Например, драйверы накопителей на магнитных лентах с помощью этого номе­ра определяют, необходимо ли перемотать ленту после закрытия файла устройства.

В далеком прошлом /dev играл роль общего каталога, а файлы устройств, которые в нем хранились, создавались с помощью команды mknod и удалялись командой rm . Стандартизировать работу по созданию файлов устройств помогал сценарий с именем MAKEDEV

К сожалению, эта “сырая” система плохо справлялась с безбрежным морем драйве­ров и типов устройств, которые появились в последние десятилетия. Кроме того, она способствовала возникновению разного рода потенциальных конфигурационных несты­ковок: например, файлы устройств ссылались на несуществующие устройства, устрой­ства оказывались недоступными, поскольку они не имели файлов устройств, и т.д.

В наши дни в большинстве систем реализована некоторая форма автоматического управления файлами устройств, которая позволяет системе играть более активную роль в конфигурировании собственных файлов устройств. Например, в Solaris каталоги /dev и /devices полностью виртуализированы. В дистрибутивах Linux каталог /dev является стандартным, но управлением файлами внутри него занимается демон udevd. (Демон udevd создает и удаляет файлы устройств в ответ на изменения в оборудовании, о кото­рых сообщает ядро.)

Установленные посредством сокетов соединения позволяют процессам взаимодей­ствовать, не подвергаясь влиянию других процессов. В системе UNIX поддерживается несколько видов сокетов, использование которых, как правило, предполагает наличие сети. Локальные сокеты доступны только на локальном компьютере, и обращение к ним осуществляется через специальные объекты файловой системы, а не через сетевые пор­ты. Иногда такие сокеты называют UNIX-сокетами.

Несмотря на то что другие процессы распознают файлы сокетов как элементы ка­талога, только процессы, между которыми установлено соответствующее соединение, могут осуществлять над файлом сокета операции чтения и записи. В качестве примеров стандартных средств, использующих локальные сокеты, можно назвать системы X Win­dow и Syslog.

Локальные сокеты создаются с помощью системного вызова socket . Когда с обеих сторон соединение закрыто, сокет можно удалить командой rm или с помощью систем­ного вызова unlink .

Подобно локальным сокетам, именованные каналы обеспечивают взаимодействие двух процессов, выполняемых на одном компьютере. Такие каналы еще называют фай­лами FIFO (First In, First Out - “первым поступил, первым обслужен”). Они создаются командой mknod и удаляются командой rm .

Как и в случае локальных сокетов, реальные экземпляры именованных каналов весь­ма немногочисленны и нечасто встречаются. Они редко требуют административного вмешательства.

Именованные каналы и локальные сокеты имеют практически одинаковое назначе­ние, а их обоюдное существование сложилось исторически. Если бы системы UNIX и Linux разрабатывались в наши дни, то об этих средствах взаимодействия вопрос бы не стоял; сейчас их заменили бы сетевые сокеты.

Работа с файлами в Linux

Прежде всего рассмотрим основные команды для работы с файлами и папками. Для создания файла используется команда touch , для создания директории команда mkdir .

user@ubuntu$ touch [имя файла] – создание файла

user@ubuntu$ mkdir [имя директории] – создание директории

Удаление файлов производится с помощью команды rm. Для директорий используется та же команда, только с ключом -r (рекурсивный).

user@ubuntu$ rm [имя файла] – удаление файла

user@ubuntu$ rm -r [имя директории] – удаление директории

Посмотреть в какой директории находимся можно командной pwd . Содержимое директории просматривается командой ls, которую удобно вызывать с ключом -l для просмотра расширенной информации о каждом файле. Переход на каталог осуществляется командой cd .

user@ubuntu$ pwd – текущая директория

user@ubuntu$ ls -l [путь директории] – содержимое директории

user@ubuntu$ cd [путь директории] – перейти к директории

Операции копирования и перемещения осуществляются командами cp и mv соответственно. В Linux нет специальной команды для переименования файла, вместо этого используется mv.

user@ubuntu$ cp [копируемый файл] [директория] – копирование файла

user@ubuntu$ mv [перемещаемый файл] [директория] – перемещение файла

user@ubuntu$ mv [текущее имя файла] [новое имя файла] – переименовать файл

В этом примере мы создаем директорию test/, переходим в нее командой cd. В этой директории создаем два файла file и file2. Выводим содержимое каталога командой ls -l. Копируем файл file и присваиваем ему имя file3. Переименовываем файл file в new_file командой mv . В конце удаляем все файлы в каталог командой rm *. * – обозначает любое количество символов. Переходим на каталог выше командой cd .. и удаляем каталог /test.

Права доступа в Linux

Права доступа к файлу или каталогу можно задать с помощью команды chmod . Такое право есть лишь у владельца файла и пользователя root. В Linux каждому файлу соответствует набор прав доступа, представленный в виде 8-и битов режима. Они определяют, какие пользователи имеют права читать, редактировать и исполнять файл.

Первым аргументом команды chmod является спецификация прав доступа. Второй и последующий аргументы - это имена файлов, права доступа к которым подлежат измене­нию. При использовании восьмеричной формы записи первая цифра относится к владель­цу, вторая - к группе, а третья - к другим пользователям. Если необходимо задать биты setuid/setgid или дополнительный бит, следует указывать не три, а четыре восьмерич­ные цифры: первая цифра в этом случае будет соответствовать трем специальным битам.

В таблице показано восемь возможных комбинаций для каждого трехбитового набо­ра, где символы r, w и х обозначают право чтения, записи и выполнения соответственно.

Например, команда chmod 711 myprog предоставляет владельцу все права, а осталь­ным пользователям - только право выполнения 9 .

При использовании мнемонического синтаксиса вы объединяете множество испол­нителей (u - пользователь, g - группа или о - другой) с оператором (+ добавить, – удалить и = присвоить) и набором прав доступа. Более подробное описание мне­монического синтаксиса можно найти на man-странице команды chmod, но синтаксис всегда лучше изучать на примерах.

Часто происходит такие ситуации, когда при запуске файла он ругается на недостаток прав. Решить такую проблему можно командой sudo chmod a+x file . Команда означает, что для файла file устанавливаются права на исполнение для всех пользователей.

При наличии опции -R команда chmod будет рекурсивно обновлять права доступа ко всем файлам указанного каталога и его подкаталогов. Здесь удобнее всего придержи­ваться мнемонического синтаксиса, чтобы менялись только те биты, которые заданы явно. Например, команда
chmod -R g+w mydir добавляет групповое право записи к каталогу mydir и его содержимому, не затрагивая остальные права.


Подписывайтесь на нашу

Linux (Линукс) – это операционная система, которая на сегодняшний день является фактически единственной альтернативной заменой ОС Windows от Microsoft. Свое начало Linux берет с 1991 года, когда молодой программист с Финляндии Линус Торвальдс взялся за работу над самой первой версией системы, которая и была названа в честь его имени. Рассвет популярности Linux начался с самого его возникновения. Это связано, в первую очередь, с тем, что ядро этой ОС, как и большинство программ, написанных под нее, обладают очень важными качествами.

Ядро Ядро это операционная система низкого Машинно-зависимая часть традиционного уровня, обрабатывающая файлы, работающая с ядра ОС UNIX включает следующие компоненты: дисками, сетью и выполняющая другие необходимые операции. (пока это зависит от особенностей аппаратуры); Ядро операционной системы Linux представляет элементами собой монолитную микроядерной систему архитектуры. раскрутка и инициализация системы на низком уровне с прерываний; При компиляции ядра можно разрешить динамическую первичная обработка внутренних и внешних управление памятью (в той части, которая относится к загрузку и выгрузку очень многих компонентов ядра - особенностям аппаратной поддержки виртуальной так называемых модулей. В момент загрузки модуля памяти); его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться функции. любые экспортируемые ядром переключение контекста процессов между режимами пользователя и ядра; связанные с особенностями целевой платформы части драйверов устройств.

Файловая структура (система) /bin – основные двоичные пользовательские модули /boot – файлы статической загрузки /cdrom – исторически выбранная точка монтирования для CD-дисков /dev – файлы устройств /etc – конфигурационные файлы /home – домашние каталоги /lib – основные разделяемые библиотеки /lost+found – восстановленные файлы /media – подключаемые носители /proc – файлы ядра и процессов /root – домашний каталог пользователя root /srv – данные сервисных служб /tmp – временные файлы /usr – пользовательские двоичные файлы и данные, используемые только для чтения (показано на картинке)

Интерфейс (графическая оболочка) – это программа, организующая взаимодействие пользователя с компьютером. Обеспечивает поддержку окон, меню, иконок, мыши и других известных элементов GUI - графического интерфейса пользователя. На основе X строятся более сложные графические среды; наиболее популярные из них - KDE и GNOME. GUI - это набор иконок, меню, диалогов, панелей, окон, и других графических элементов, позволяющих пользователям легко работать с компьютером и приложениями. KDE и Gnome - интегрированные рабочие среды. Пользователи работают с элементами интерфейса и программами.

Утилиты Утилита (англ. utility или tool) - вспомогательная компьютерная программа в Встроенные в Linux программные утилиты и языки. составе g++ -GNU C++ компилятор; Perl - очень мощный скриптовый язык; g 77 - GNU FORTRAN компилятор; (параметрам, настройкам, установкам), либо делают процесс f 2 c - перекодировщик из FORTRAN в C; изменения параметров (автоматизируют его). Fort 77 - компилятор FORTRAN. Выполняет f 2 c, а затем общего программного обеспечения для выполнения специализированных типовых задач. Утилиты предоставляют доступ к возможностям Виды утилит по связи с ОС использует gcc или g++; Независимые утилиты, не требующие для своей работы операционной системы, Grep - поиск фрагмента текста в файлах, удовлетворяющего набранной маске. Маска определяется с Системные утилиты, входящие в поставку ОС и требующие её помощью стандартной системы обозначений, называемой наличия "регулярные выражения «; Виды утилит по функциям Диспетчеры файлов; Архиваторы (с возможным сжатием данных); Просмотрщики; Деинсталлятор - обеспечения [; программа для Tr - translation utility (другими словами - замена букв в текстовом файле); Gawk - GNU awk (используется для обработки форматированных текстовых файлов); удаления программного sed - утилита для обработки текстовых файлов;

/root

Это домашний каталог или Домашняя папка суперпользователя. Эта директория фактически ничем не отличается от директории обычного пользователя. Данная директория по умолчанию всегда расположена в корневом каталоге файловой системы. Это было сделано для предотвращения проблем с доступом к директории /home. В случае когда к каталогу /home по какой-то причине невозможно получить доступ, в системе всегда есть возможность залогиниться под учетной записью суперпользователя, для решения возникших проблем с доступом.

/sbin

Основные системные программы для администрирования и настройки системы (iptables, ifconfig и т.д.).

/srv

Параметры, которые специфичные для окружения системы. Чаще всего данная директория пуста.

/sys

/sys - это директория, к которой примонтирована виртуальная файловая система sysfs, которая добавляет в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. В версии ядра ниже 2.6 не использовалась.

/sys/block

/sys/block содержит директории всех блочных устройств, присутствующих в данный момент в системе.

/sys/bus

В этой директории находится список шин, определенных в ядре Linux (eisa, pci и т.д.).

/sys/class

Каталог содержит список группированных устройств по классам (printer, scsi-devices и т.д.).

/tmp

Временное хранилище данных. Аналог папки в ОС Windows - C:/Windows/Temp. Все пользователи имеют права чтения и записи в этом каталоге.

/usr

В этом каталоге хранятся все установленные пакеты программ, документация, исходный код ядра и система X Window. Все пользователи кроме суперпользователя root имеют доступ только для чтения. Может быть смонтирована по сети и может быть общей для нескольких машин.

/usr/bin

Директория дополнительных программ для всех учетных записей.

/usr/games

Каталог для размещения доступных компьютерных игр в системе.

/usr/include

Заголовочные файлы С++.

/usr/lib

Системные библиотеки для программ, расположенных в директории /usr.

/usr/local

По стандарту /usr должен быть общим для нескольких компьютеров и смонтирован по сети, а /usr/local должен содержать установленные пакеты программы только на локальной машине (к примеру, /usr - бюджет семьи, а /usr/local - личный кошелек каждого). Но чаще всего директория /usr/local используется для установки программ, которые не предназначены для конкретного дистрибутива (к примеру для пакетного дистрибутива Ubuntu в /usr находятся "родные" установленные пакеты, а /usr/local находятся собранные пакеты из исходников).



Рекомендуем почитать

Наверх