Чтение онлайн

на главную - закладки

Жанры

Linux программирование в примерах

Роббинс Арнольд

Шрифт:

8.1.2. Обзор различных типов файловых систем

ЗАМЕЧАНИЕ. Обсуждение в данном разделе специфично для Linux. Однако, у многих современных систем Unix также есть сходные особенности. Мы рекомендуем вам изучить документацию своей системы.

Исторически V7 Unix поддерживал лишь один тип файловой системы; вспомогательные данные и организация каталогов каждого из разделов были структурированы одним и тем же способом. 4.1 BSD использовал файловую систему с такой же как у V7 структурой, но с размером блока 1024 байта вместо 512 байтов. 4.2 BSD ввело «файловую систему BSD», которая разительно изменила расположение индексов и данных на диске и дала возможность использовать гораздо большие размеры блоков. (В общем, использование больших протяженных блоков данных обеспечивает лучшую производительность, особенно для чтения файлов.)

Вплоть до 4.3 BSD и System V Release 2 в начале и середине 1980-х системы Unix продолжали поддерживать один тип файловой системы. Для переключения компьютера от одной файловой системы на другую [77] приходилось сначала резервировать каждую файловую систему на среду архивирования (9-дорожечную ленту), обновлять систему, а затем восстанавливать данные.

В середине 1980-х Sun Microsystems разработала архитектуру ядра, которая сделала возможным использование нескольких архитектур файловой системы в одно и то же время. Этот проект был реализован в их операционной системе SunOS, сначала для поддержки сетевой файловой системы Sun (Network File System — NFS). Однако, как

следствие, стало возможным также поддерживать несколько архитектур на диске. System V Release 3 использовала сходную архитектуру для поддержки удаленной файловой системы (Remote File System — RFS), но она продолжала поддерживать лишь одну архитектуру на диске. [78] (RFS никогда широко не использовалась и сейчас является лишь исторической сноской.)

77

Например, при обновлении VAX 11/780 с 4.1 BSD до 4.2 BSD — Примеч. автора.

78

System V Release 3 поддерживала два различных размера блоков: 512 байтов и 1024 байта, но в остальном организация диска была той же самой — Примеч. автора.

Общий дизайн Sun стал популярным и широко реализовывался в коммерческих системах Unix, включая System V Release 4. Системы Linux и BSD используют разновидность этого дизайна для поддержки множества форматов файловых систем на диске. В частности, обычным для всех разновидностей Unix на платформе Intel x86 является возможность монтирования файловых систем MS-DOS/Windows FAT, включая поддержку длинных имен, а также форматированные в соответствии с ISO 9660 CD-ROM.

Linux имеет несколько собственных (т.е. размещаемых на диске) файловых систем. Наиболее популярными являются файловые системы

ext2
и
ext3
. Однако, доступно значительно больше файловых систем. Сведения о большинстве из них вы можете найти в каталоге
/usr/src/linux/Documentation/filesystems/
(если вы установили исходный код ядра). В табл. 8.1 перечислены имена различных файловых систем с кратким описанием каждой из них. Сокращение «RW» означает «чтение/запись», a «RO» означает «только чтение».

Таблица 8.1. Поддерживаемые ядром файловые системы Linux (ядро 2.4.x)

Имя Режим Описание
afs
RW Andrew File System (файловая система Andrew)
adfs
RW Acorn Advanced Disc Filing System (расширенная дисковая файловая система Acorn)
affs
RO, RW Amiga Fast File system (быстрая файловая система Amiga) Режим «только для чтения» в противоположность режиму «для записи и чтения» зависит от версии файловой системы
autofs
RW Файловая система для взаимодействия с демоном автоматического монтирования
befs
RO Файловая система BeOS. Помечена как программное обеспечение альфа.
bfs
RW SCO UnixWare Boot File system (загрузочная файловая система SCO Unix).
binfmt-misc
RW Специальная файловая система для запуска интерпретаторов компилированных файлов (например, файлов Java)
efs
RW Файловая система, разработанная для варианта Unix SGI, названного Irix
coda
RW Экспериментальная распределенная файловая система, разработанная в CMU [79]
cramfs
RO Небольшая файловая система для хранения файлов в постоянной памяти (ROM).
devfs
RW Способ динамического предоставления файлов для
/dev
(устарело).
devpts
RW Специальная файловая система для псевдотерминалов.
ext2
RW Вторая расширенная файловая система. Файловая система по умолчанию для GNU/Linux, хотя некоторые дистрибутивы используют теперь
ext3
.
ext3
RW Файловая система
ext2
с журналированием
hfs
RW Hierarchical File System (иерархическая файловая система) Apple Mac OS.
hpfs
RW High Performance File System (высокопроизводительная файловая система) OS/2.
intermezzo
RW Экспериментальная распределенная файловая система для работы в отсоединенном от сети состоянии. См веб-сайт InterMezzo (
http://www.inter-mezzo.org
)
jffs
RW Journalled Flash File system (журналируемая файловая система с групповой записью/считыванием, для встроенных систем)
jffs2
RW Journalled Flash File system 2 (тоже для встроенных систем)
iso9660
RO Файловая система ISO 9660 для CD-ROM. Поддерживаются также расширения Rock Ridge, заставляющие выглядеть использующие их CD-ROM как нормальная файловая система (но только для чтения).
jfs
RW Journalled File System (журналируемая файловая система) IBM для Linux.
ncp
RW Протокол Novell NCP для NetWare; клиент удаленной файловой системы.
ntfs
RO Поддержка файловой системы NTFS Windows
openpromfs
RO Файловая система
/proc
для PROM на системах SPARC
proc
RW Доступ
к информации о процессах и ядре
qnx4
RW Файловая система QNX4 (небольшой операционной системы реального времени)
ramfs
RW Файловая система для создания RAM-дисков.
reiserfs
RW Развитая журналируемая файловая система
romfs
RO Файловая система для создания простых RAM-дисков только для чтения.
smbfs
RW Поддержка клиента для файловых систем SMB (разделяемых файлов Windows)
sysv
RW Файловые системы System V Release 2, Xenix, Minix и Coherent. coherent, minix и xenix являются псевдонимами
tmpfs
RW Файловая система электронного диска, поддерживающая динамический рост.
udf
RO Формат файловой системы UDF, используемый в DVD-ROM
ufs
RO, RW Быстрая файловая система BSD, на современных системах с доступом для чтения и записи.
umsdos
RW Расширение
vfat
, заставляющее выглядеть ее подобно файловой системе Unix
usbfs
RW Специальная файловая система для работы с устройствами USB. Первоначальным именем было
usbdevfs
, это имя до сих пор появляется, например, в выводе
mount
vfat
RW Все варианты файловых систем FAT MS-DOS/Windows Компонентами являются
msdos
и
fat
vxfs
RW Журналируемая файловая система Veritas VxFS.
xfs
RW Высокопроизводительная журналирующая файловая система, разработанная SGI для Linux. См веб-сайт XFS (
http://oss.sgi.com/projects/xfs/
)

79

Университет Карнеги-Меллона — Примеч. перев.

Не все из этих файловых систем поддерживаются командой

mount
; список поддерживаемых см. в mount(8).

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

ext3
; у нее преимущество обратной совместимости с существующими файловыми системами
ext2
, очень просто конвертировать файловые системы туда-сюда между этими двумя видами (См. tune2fs(8).) ReiserFS и XFS также имеют своих твердых сторонников.

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

fat
,
msdos
,
umsdos
и
vfat
все разделяют общий исходный код. В общем, можно использовать
vfat
для монтирования разделов Windows FAT-32 (или другой FAT-xx), a
umsdos
, если нужно использовать раздел FAT в качестве корневой файловой системы для GNU/Linux.

Файловые системы Coherent, MINIX, первоначальной System V и Xenix все имеют сходные структуры на диске. Тип файловой системы

sysv
поддерживает все из них; четыре имени
coherent
,
minix
,
sysv
и
xenix
являются псевдонимами один для другого. Имена
coherent
и
xenix
в конечном счете будут удалены.

Быстрая файловая система BSD в течение нескольких лет успешно развилась. Файловая система

ufs
поддерживает операции чтения/записи для версий, начиная с 4.4 BSD, которая является основой для трех широко распространенных операционных систем BSD: FreeBSD, NetBSD и OpenBSD. Она поддерживает также операции чтения/записи для файловой системы Sun Solaris как для SPARC, так и для систем Intel x86. Первоначальный формат BSD и формат операционной системы NeXTStep поддерживаются в режиме только для чтения.

Обозначения «RO» для

befs
и
ntfs
означают, что файловые системы этих типов можно смонтировать и читать, но в них невозможно записать файлы или удалить из них файлы. (Со временем это может измениться; проверьте документацию своей системы.) Файловые системы
cramfs
,
iso9660
,
romfs
и
udf
отмечены «RO», поскольку лежащее в их основе средство по своей сути является устройством только для чтения.

Две файловые системы, которых больше не существует, это

ext
, которая была оригинальной расширенной файловой системой, и
xiafs
, которая расширяла оригинальную файловую систему MINIX для использования длинных имен и больших размеров файлов,
xiafs
и
ext2
появились примерно в одно время, но
ext2
в конечном счете стала доминирующей файловой системой. [80]

80

Источник:

http://www.ife.ee.ethz.ch/music/software/sag/subsection2_5_4_3.html
Примеч. автора.

8.1.3. Монтирование файловых систем:

mount

Команда

mount
монтирует файловые системы, соединяя их содержимое в системную иерархию файлов в их точках монтирования. Под GNU/Linux это иногда запутано, поскольку приходится иметь дело со всеми известными типами файловых систем и их опциями. Обычно запустить
mount
может лишь
root
, хотя в некоторых случаях можно сделать исключения, как в случае, обсуждаемом далее в главе.

Файловую систему вы указываете с помощью опции

– t
:

mount [опции] устройство точка_монтирования

Например (

#
является приглашением для
root
):

# mount -t iso9660 /dev/cdrom /mnt/cdrom /* Монтировать CD-ROM */

# mount -t vfat /dev/fd0 /mnt/floppy /* Монтировать гибкий диск MS-DOS */

# mount -t nfs files.example.com:/ /mnt/files /* Монтировать файловую систему NFS */

Поделиться:
Популярные книги

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Сердце Дракона. Том 11

Клеванский Кирилл Сергеевич
11. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.50
рейтинг книги
Сердце Дракона. Том 11

Первый среди равных. Книга IV

Бор Жорж
4. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга IV

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Мастер Разума IV

Кронос Александр
4. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума IV

Авиатор: назад в СССР

Дорин Михаил
1. Авиатор
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Авиатор: назад в СССР

Кадры решают все

Злотников Роман Валерьевич
2. Элита элит
Фантастика:
боевая фантастика
попаданцы
альтернативная история
8.09
рейтинг книги
Кадры решают все

Плеяда

Суконкин Алексей
Проза:
военная проза
русская классическая проза
5.00
рейтинг книги
Плеяда

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Ученик. Книга 4

Первухин Андрей Евгеньевич
4. Ученик
Фантастика:
фэнтези
5.67
рейтинг книги
Ученик. Книга 4

Законник Российской Империи. Том 3

Ткачев Андрей Юрьевич
3. Словом и делом
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
5.00
рейтинг книги
Законник Российской Империи. Том 3

Ваше Сиятельство 7

Моури Эрли
7. Ваше Сиятельство
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Ваше Сиятельство 7

Война

Валериев Игорь
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
5.25
рейтинг книги
Война

Младший сын князя. Том 4

Ткачев Андрей Юрьевич
4. Аналитик
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Младший сын князя. Том 4