4.6 Файловые системы

4.6.1 Что такое файловая система?

Файловая система - это методы и структуры данных, которые

используются операционной системой для хранения файлов на диске

или его разделе. О файловой системе также говорят, ссылаясь на

раздел или диск, используемый для хранения файлов или тип файловой

системы.

Нужно видеть разницу между диском или разделом и


- 40 -

установленной на нем файловой системой. Некоторые программы

(например, программы установки файловой системы) при обращении к

диску или разделу используют прямой доступ к секторам. Если на

этом месте была файловая система, то она будет серьезно

повреждена. Большинство программ взаимодействуют с диском

посредством файловой системы, и, следовательно, их работа будет

нарушена, если на разделе или диске никакая система не установлена

(или тип файловой системы не соответствует требуемуму).

Перед тем, как раздел или диск могут быть использованы в

качестве файловой системы, она должна быть инициализирована, а

требуемые данные перенесены на этот диск. Этот процесс называется

созданием файловой системы.

У большей части файловых систем UNIX сходная структура, а их

некоторые особенности очень мало различаются. Основными понятиями

являются: суперблок, индексный дескриптор (inode), блок данных,

блок каталога и косвенный блок. В суперблоке содержится информация

о файловой системе в целом, например, ее размер (точная информация

зависит от типа файловой системы). В индексном дескрипторе

хранится вся информация о файле, кроме его имени. Имя файла

хранится в блоке каталога, вместе с номером дескриптора. Запись

каталога содержит имя файла и номер индексного дескриптора

соответствующего файла. В этом дескрипторе хранятся номера

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

файла. В inode есть место только для нескольких номеров блоков

данных, однако, если требуется большее количество, то пространство

для указателей на блоки данных динамически выделяется. Такие блоки

называются косвенными. Для того, чтобы найти блок данных, нужно

сначала найти его номер в косвенном блоке.

В файловых системах UNIX обычно имеется возможность создания

дыр в файлах (это можно сделать с помощью команды lseek(2), см.

руководство). Это означает, что файловая система предоставляет

ложную информацию о том, что в каком-то месте в файле содержатся

нулевые байты, но в действительности для этого не выделяются

сектора (это означает, что файл будет занимать несколько меньше

места на диске). Это часто используется особенно в небольших


- 41 -

двоичных программах, библиотек Linux, в некоторых базах данных и в

других отдельных случаях. (Дыры реализуются хранением специального

значения в косвенном блоке или индексном дескрипторе вместо адреса

блока данных. Это специальное значение показывает, что для данной

части файла блоки данных не размещены и, следовательно, что в

файле есть дыра.)

Использование дыр достаточно эффективно. На компьютере с

общим дисковым пространством в 200 Мб, простые измерения

показывают, что применение дыр дает экономию в 4 Мб. Однако, эти

измерения проводились на системе, где было установлено

относительно мало программ и отсутствовали файлы баз данных. Метод

измерения дыр рассмотрен в приложении B.

4.6.2 Типы файловых систем

Linux поддерживает несколько типов файловых систем. Наиболее

важные из них рассмотрены ниже.

minix Считается самой старой и самой надежной файловой системой,

но достаточно ограниченной в своих возможностях (у файлов

отсутствуют некоторые временные параметры, длина имени файла

ограничена 30-ю символами) и доступных объемах (максимум 64 Мб на

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

xia Модифицированная версия системы minix, в которой увеличена

максимальная длина имени файла и размер файловой системы, хотя она

не pеализует никаких новых возможностей.

ext2 Наиболее богатая функциональными возможностями файловая

система из семейства совместимых с Linux. На данный момент

считается самой популярной системой. Она разработана с учетом

совместимости с последующими версиями, поэтому для установки новой

версии кода системы не требуется устанавливать ее заново.

ext Предыдущая версия системы ext2, не совместима с последующими

версиями. В настоящее время она очень редко включается в пакеты

новых поставляемых систем, т.к. большинство пользователей сейчас


- 42 -

пользуются системой ext2.

В дополнение к рассмотренным выше, в Linux включена поддержка

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

другими операционными системами. Эти файловые системы работают

также, как и описанные выше, кроме того, что их функциональные

возможности могут быть значительно ограничены по сравнению с

возможностями, обычно предоставляемыми файловыми системами UNIX.

msdos Обеспечивается совместимость с системой MS-DOS (а также

OS/2 и Windows NT).

umsdos Расширяет возможности драйвера файловой системы MS-DOS

для Linux таким образом, что при работе в Linux, имеется

возможность работы с именами файлов нестандартной длины, просмотра

прав доступа к файлу, ссылок, имени пользователя, которому

принадлежит файл, а также оперирование с файлами устройств. Это

позволяет использовать обычную систему MS-DOS, так, как если бы

это была система Linux. Таким образом, исключается необходимость

создания отдельного раздела для Linux.

iso9660 Стандартная файловая система для CD-ROM. Довольно

популярное развитие стандарта CD-ROM, выполненное Rock Ridge'м,

которое обеспечивает автоматическую поддержку имен файлов

нестандартной длины.

nfs Сетевая файловая система, обеспечивающая разделение

одной файловой системы между несколькими компьютерами для

предоставления доступа к ее файлам со всех машин.

hpfs Файловая система OS/2.

sysv Файловые системы System V/386, Coherent и Xenix.

Также существует файловая система proc, которая обычно

доступна через каталог /proc. В действительности, она не является

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


- 43 -

Эта система позволяет получить доступ к определенным структурам

данных ядра, к таким, как список процессов (отсюда название). Все

эти структуры выглядят как файловая система и ими можно

оперировать обычными средствами работы с файловой системой.

Например, для получения списка всех процессов, используется

следующая команда:

ttyp5 root ~ $ ls -l /proc

total 0

dr-xr-xr-x 4 root root 0 Jan 31 20:37 1

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 63

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 94

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 95

dr-xr-xr-x 4 root users 0 Jan 31 20:37 98

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 99

-r--r--r-- 1 root root 0 Jan 31 20:37 devices

-r--r--r-- 1 root root 0 Jan 31 20:37 dma

-r--r--r-- 1 root root 0 Jan 31 20:37 filesystems

-r--r--r-- 1 root root 0 Jan 31 20:37 interrupts

-r-------- 1 root root 8654848 Jan 31 20:37 kcore

-r--r--r-- 1 root root 0 Jan 31 11:50 kmsg

-r--r--r-- 1 root root 0 Jan 31 20:37 ksyms

-r--r--r-- 1 root root 0 Jan 31 11:51 loadavg

-r--r--r-- 1 root root 0 Jan 31 20:37 meminfo

-r--r--r-- 1 root root 0 Jan 31 20:37 modules

dr-xr-xr-x 2 root root 0 Jan 31 20:37 net

dr-xr-xr-x 4 root root 0 Jan 31 20:37 self

-r--r--r-- 1 root root 0 Jan 31 20:37 stat

-r--r--r-- 1 root root 0 Jan 31 20:37 uptime

-r--r--r-- 1 root root 0 Jan 31 20:37 version

ttyp5 root ~ $

(В действительности, должно быть еще несколько файлов, не

соответствующих процессам, однако, этот пример немного укорочен.)

Хотя система /proc и называется файловой, ни одна ее часть не

взаимодействует с диском. Она существует только в представлении

ядра и при попытке обращения к какой-либо ее части, создается


- 44 -

впечатление, что эта часть где-то существует, хотя в

действительности это не так. Даже если существует файл /proc/kmem

в несколько мегабайт, он не занимает места но диске.

4.6.3 Какую файловую систему устанавливать?

Обычно мало смысла в пpименении нескольких разных файловых

систем. В настоящее время наиболее популярной считается система

ext2fs и, возможно, является наилучшим выбором. В зависимости от

различных параметров (скорость, производительность, надежность,

совместимость и др.) может оказаться, что установка другой

файловой системы будет более приемлемым вариантом.


Информация о работе «Руководство Системного администратора Linux»
Раздел: Информатика, программирование
Количество знаков с пробелами: 186775
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
185828
0
0

... которая состоит из личных каталогов пользователей. Разделение может существенно отличатся от выше указанного в зависимости от работы системного администратора и конфигурации аппаратного обеспечения. В главе 5 сруктура файловой системы рассматривается более подробно (см. также Linux Filesystem Standard).   Глава 3 Запуск Системы и Перезагрузка В этой главе описывается то, ...

Скачать
68677
0
1

... каталог с логом непосредственно пользователем root и убедиться, что доступ для самого пользователя в заданный каталог разрешен. Заключение В данной работе была освещен Security-Enhanced Linux — линукс с улучшенной безопасностью. Достоинства данной технологии очевидны, т.к. он базируется на принципе наименьших прав, т.е. запущенному процессу дается именно столько прав, сколько ему требуется. ...

Скачать
59923
0
1

... отладочной информации; - use_uid — определение принадлежности на основании текущего идентификатора пользователя, а не того, что был назначен ему при входе в систему; - trust — в случае принадлежности пользователя к группе wheel возвращать значение УСПЕХ (SUCCESS), а не ИГНОРИРОВАТЬ (IGNORE); - group=xxx — использовать для авторизации GID ххх, а не GID группы wheel; - deny — меняет смысл ...

Скачать
145783
2
7

... работы за компьютером, а также методы и средства, позволяющие свести к минимуму риск облучения при работе за компьютером. Заключение В данной работе был выполнен обзор средств безопасности, которыми располагает операционная система Linux для безопасного функционирования как в качестве пользовательской системы, так и в качестве сервера. В работе были рассмотрены следующие темы: ·     Обзор ...

0 комментариев


Наверх