Linux Kernel (Ядро линукса) (часть 2)


Роль виртуальной файловой системы (VFS)

Виртуальная система, также известная под названием виртуальный переключатель файловых систем (Virtual Filesystem Switch, VFS), является программным слоем ядра, который обрабатывает все системные вызовы, имею
щие отношение к стандартной файловой системе Unix. Его основное достоинство состоит в предоставлении общего интерфейса к нескольким видам файловых систем.

Представим, например, что пользователь вводит следующую команду:
$ср /floppy/TEST /tmp/test
где /floppy— точка монтирования дискеты MS-DOS, a /tmp— обычный каталог файловой системы Second Extended Filesystem (Ext2). Слой VFS является абстрактным слоем между прикладной программой и реализациями файловых систем Следовательно, программа ср не обязана знать типы файловых систем файлов /floppy/TEST и /tmp/test. Она просто взаимодействует с VFS при помощи системных вызовов Unix, известных каждому, кто программировал в этой ОС Код,

Файловые системы, поддерживаемые VFS, можно разбить на три основных класса:

- Дисковые файловые системы — эти файловые системы управляют пространством на локальном диске или памятью в каком-либо устройстве, эмулирующем его (например, USB флэш-накопителе). Вот некоторые из хорошо известных дисковых файловых систем, поддерживаемых VFS:
• файловые системы для Linux, такие как широко распространенная Second Extended Filesystem (Ext2), недавно появившаяся Third Extended Filesystem (Ext3), а также Reiser Filesystem (Reiser FS)1;
• файловые системы для различных вариантов Unix, такие как sysv (System V, Coherent, Xenix), UFS (BSD, Solaris, NEXTSTEP) файловая система MINIX, а также VERITAS VxFS (SCO UnixWare);
• файловые системы Microsoft, такие как MS-DOS, VFAT (Windows 95 и последующие версии) и NTFS (Windows NT 4 и последующие версии);
• файловая система ISO 9660 (бывшая High Sierra Filesystem) для компакт-диска и файловая система Universal Disk Format (UDF) для DVD;
• прочие проприетарные файловые системы, например, OS/2 (HPFS) от IBM, Apple Macintosh (HFS), Amiga Fast Filesystem (AFFS) и Acorn Disk Filing System (ADFS);
• дополнительные журналируемые файловые системы, ведущие свое происхождение от систем, отличных от Linux, например, JFS фирмы IBM и XFS фирмы SGI.
- Сетевые файловые системы — эти файловые системы обеспечивают простой доступ к файлам на других компьютерах, объединенных в сеть. Примерами известных сетевых файловых систем, поддерживаемых VFS, являются NFS, Coda, AFS (Andrew filesystem), CIFS (Common Internet File System, Общая файловая система Интернета), используемая в Microsoft Windows, и NCP (NetWare Core Protocol) от фирмы Novell.
- Специальные файловые системы — эти файловые системы не управляют пространством на диске ни локально, ни удаленно. Типичным примером специальной файловой системы является /ргос (см. разд. "Специальные файловые системы" далее в этой главе).

В этой книге подробно описываются только файловые системы Ext2 и Ext3 прочие файловые системы не рассматриваются из-за недостатка места.
каталоги Unix образуют дерево с корневым каталогом /. Корневой каталог находится в корневой файловой системе, которой в Linux обычно является Ext2 или Ext3. Все остальные файловые системы могут быть смонтированы” в подкаталогах корневой файловой системы.

Когда файловая система смонтирована в каталоге, содержимое каталога в родительской файловой системе более не доступно, поскольку каждый путь, включая точку монтирования, будет ссылаться на смонтированную файловую систему. Однако после размонтирования файловой системы содержимое оригинального каталога снова становится доступным. Эта несколько неожиданная особенность файловых систем Unix используется системными администраторами для сокрытия файлов: они просто монтируют файловую систему на каталог, содержащий файлы, которые необходимо скрыть.
Дисковая файловая система обычно хранится на реальном блочном устройстве, например, на жестком диске, дискете или компакт-диске. Полезной особенностью VFS в Linux является возможность работы с виртуальными блочными устройствами, например, /dev/loopO. Этим можно воспользоваться для монтирования файловых систем, хранящихся в обычных файлах. Например, пользователь может защитить свою личную файловую систему, сохранив ее зашифрованную версию в обычном файле.

Первая виртуальная файловая система появилась в SunOS фирмы Sun Microsystems в 1986 г. С тех пор большинство файловых систем Unix включает в себя VFS. Однако VFS операционной системы Linux поддерживает самый широкий диапазон файловых систем.

Предыдущая страница | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | Следующая страница




Возможно, Вас также заинтересует:

ОС Knoppix - это Linux без про...

ВведениеЕсли вы цените свое время, умеете считать деньги и знаете стоимость информации, то эта книга...

Linux Kernel (Ядро линукса) (ч...

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

Linux Kernel (Ядро линукса) (ч...

Копирование при записи В системах Unix первых поколений создание процесса было реализовано довольно...

Linux Kernel (Ядро линукса) (ч...

Буферы блоков и головы буферовУ каждого буфера есть дескриптор голова буфера, имеющий тип buffer...