Читать «Linux. От новичка к профессионалу.Денис Колисниченко» онлайн - страница 65

Автор неизвестен

4.2.4. Стандартные каталоги Linux Файловая система любого дистрибутива Linux содержит следующие каталоги: □ / — корневой каталог;

□ /bin — стандартные программы Linux (cat, ср, Is, login и т. д.); □ /boot — каталог загрузчика, содержит образы ядра и Initrd, может содержать

конфигурационные и вспомогательные файлы загрузчика; □ /dev — файлы устройств;

□ /etc — конфигурационные файлы системы;

□ /home — домашние каталоги пользователей;

□ /lib — библиотеки и модули;

□ /lost+found — восстановленные после некорректного размонтирования файловой системы файлы и каталоги;

□ /misc — может содержать все, что угодно, равно как и каталог /opt; □ /mnt — обычно содержит точки монтирования;

□ /ргос — каталог псевдофайловой системы procfs, предоставляющей информацию о процессах;

□ /root — каталог суперпользователя root;

□ /sbin — каталог системных утилит, выполнять которые имеет право пользователь root;

□ /tmp — каталог для временных файлов;

□ /usr — пользовательские программы, документацию, исходные коды программ и ядра;

□ /var — постоянно изменяющиеся данные системы, например, очереди системы печати, почтовые ящики, протоколы, замки и т. д.

4.3. Внутреннее строение файловой системы Что такое файловая система? Можно встретить различные определения, и все они будут правильные. Наиболее точным я считаю следующее:

Файловая система — это способ представления информации на носителе данных, а также часть операционной системы, обеспечивающая выполнение операции над файлами.

Из приведенного определения ясно, что файловая система состоит из двух частей, двух уровней: уровня представления данных и набора системных вызовов для ра-боты с этими данными.

Любая операционная система может работать с разными файловыми системами — например, со своей основной файловой системой и с файловой системой компакт- дисков (ISO 9660). Задача операционной системы заключается в предоставлении пользователю стандартного интерфейса, позволяющего ему обращаться к каждой файловой системе, не вникая в ее особенности. Например, в Linux для открытия файла служит системный вызов open () — программа просто вызывает open () , пере-дав ему имя файла, а на какой файловой системе расположен этот файл — дело третье.

Рассмотрим схему архитектуры файловой системы (рис. 4.2): верхние два элемен-та — это пользовательский уровень, все последующие — уровень ядра. Приложение может использовать функции glibc (библиотека GNU С ) или же на-прямую системные вызовы ядра — тут уж как будет угодно программисту. Исполь-зовать функции glibc удобнее, но, вызывая непосредственно системные вызовы, — например, open(), read(), write(), close( ) , — можно немного повысить производи-тельность приложения — ведь вы минуете glibc, которая все равно использует те же системные вызовы.