Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ANSWERS.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
833 Кб
Скачать
☆
  1. Множественность файловых систем (fs) современных ос. Файловые системы ос Windows: fat12, fet16, fat32, cdfs, ntfs (ntfs5), сетевые fs. Диспетчер файловых систем (ifs ), драйверы fs.

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

Ext2/3 - Этот тип файловой системы разработан специально для Linux и традиционно используется на большинстве Linux-систем. Фактически в названии «Ext2/3» объединены названия двух вариантов этой файловой системы. Ext3 отличается от Ext2 только поддержкой журналирования, в остальном они одинаковы и легко могут быть преобразованы одна в другую в любой момент без потери данных. Обычно предпочтителен вариант с журналированием (Ext3) в силу его большей надёжности. При высокой параллельной дисковой загрузке производительность Ext3 снижается, что выражается в снижении скорости операций с диском и повышении значения нагрузки на систему (Load Average).

ReiserFS - Файловая система этого типа похожа скорее на базу данных: внутри неё используется своя собственная система индексации и быстрого поиска данных, а представление в виде файлов и каталогов — только одна из возможностей использования такой файловой системы. Традиционно считается, что ReiserFS отлично подходит для хранения огромного числа маленьких файлов. Поддерживает журналирование.

XFS - Файловая система, наиболее подходящая для хранения очень больших файлов, в которых постоянно что-нибудь дописывается или изменяется. Поддерживает журналирование. Лишена недостатков Ext3 по производительности, но при её использовании выше риск потерять данные при сбоях питания (в том числе и по причине принудительного обнуления повреждённых блоков в целях безопасности; при этом метаданные файла обычно сохраняются и он выглядит как корректный). Рекомендуется использовать эту файловую систему с проверенным аппаратным обеспечением, подключенным к управляемому источнику бесперебойного питания (UPS).

SWAPFS - Этот тип файловой системы находится на особом положении — он используется для организации на диске области подкачки (swap). Область подкачки используется в Linux для организации виртуальной памяти: когда программам недостаточно имеющейся в наличии оперативной памяти, часть рабочей информации временно размещается на жёстком диске.

JFS - Разработана IBM для файловых серверов с высокой нагрузкой: при разработке особый упор делался на производительность и надёжность, что и было достигнуто. Поддерживает журналирование.

В Linux поддерживается, кроме собственных, немало форматов файловых систем, используемых другими ОС. Если способ записи на эти файловые системы известен и не слишком замысловат, то работает и запись, и чтение, в противном случае — только чтение (чего нередко бывает достаточно). Файловые системы перечисленных ниже типов обычно присутствуют на разделах диска, принадлежащих другим операционным системам.

FAT12/FAT16/FAT32 - Эти файловые системы используются в MS-DOS и разных версиях Windows, а также на многих съёмных носителях (в частности, на дискетах и USB-flash). Linux поддерживает чтение и запись на эти файловые системы.

NTFS - Файловая система NTFS изначально появилась в системах Windows NT, но может использоваться и другими версиями Windows (например, Windows 2000). В Linux NTFS поддерживается на чтение и на запись.

Драйверы файловых систем - При эксплуатации ОС может возникнуть необходимость монтировать файловыесистемы, отличающиеся от ``родной'' ФС. Особенно часто она возникает ворганизациях, где используются ОС нескольких разных типов.Да и в организациях, работающих с монокультурой MS DOS/MS Windows,такая потребность возникает все чаще. Во-первых, доступ к файлам на файловомсервере осуществляется существенно иными способами, чем к файлам на локальномдиске, даже если на сервере стоит та же ДОС с той же ФС типаFAT. Во-вторых, дисководы для CD-ROM становятся все дешевле ираспространяются все шире. При этом стандартная ФС на CD-ROM - вовсе неFAT.

Решение этой проблемы приходит в голову сразу - необходим драйвер файловойсистемы со стандартным интерфейсом, подобный драйверу внешнего устройства.Естественно, набор функций такого драйвера должен быть существенно иным:

mount - монтирование ФС.В зависимости от типа ФС параметры этой функции должны различаться.Для ФС на локальных дисках достаточно передать системный идентификатормонтируемого диска. Для ФС на удаленной машине мы должныпередать сетевой адрес этой машины и имя требуемой файловой системы.Во многих случаях проводится различие между монтированием ФС длячтения/модификации или только для чтения: при монтировании с модификациейустанавливается флаг загрязнения (dirty flag) ФС);

umount - размонтирование ФС;

GetFreeSpace или df - получение информации о ФС: общее пространство,свободное пространство, количество файлов и т.д;

FindFirst/FindNext или opendir/readdir - функции для чтения изкаталога. Считанную информацию необходимо привестик формату, принятому в данной ОС. В частности, может оказаться необходимымсократить и/или преобразовать считанные имена файлов. Например, драйверHPFS, используемый в эмуляторе MS DOS, в системеOS/2 не выполняет такого преобразования. В результатеDOS-овские программы не видят файлов и каталогов с длинными именами;

access - проверить существование файлаи возможность доступа к нему в заданном режиме, например, для чтения или длязаписи;

stat - функция для получения информациио файле с заданным именем. Драйвер ФС должен считать доступную информацию офайле и привести ее к принятому в ОС формату. При этом, возможно,придется проигнорировать часть считанной информации, а другую часть, напротив,драйвер вынужден сочинять сам. Так драйвер файловой системы FATв ОС семейства Unix вынужден сочинять идентификатор хозяина файла,права доступа и т.д.;

open - открыть существующий или создать новый файл с заданным именем;

read и write - функции считывания данных из файла и записив него;

lseek - позиционирование в файле;

lock - функция (в действительности, набор функций) блокировки длясинхронизации доступа к файлу или его участкам. Подробнее о них см. вп. 4.3.3. При работе с локальными ФС операции блокировки могутпрослеживаться ядром системы и не доходить до драйвера ФС, но при работес разделяемыми по сети ФС блокировки необходимо отслеживать на уровнепротокола разделения файлов, поэтому драйвер сетевой ФС обязанзнать о блокировках.

close - закрыть файл;

delete или unlink - удалить файл или его имя;

link - создать связь с файлом (новое имя). Далеко не все ОС иФС поддерживают эту операцию;

mkdir - создать каталог;

rmdir - удалить каталог. Обычно разрешено удаление только пустыхкаталогов.

Кроме собственно драйвера ФС, для ее полноценной поддержки нужны следующиепрограммы:

• программа создания ФС - mkfs или FORMAT;

• программа контроля и починки ФС - fsck или CHKDSK;

• программа fstyp, которая смотрит на диск и пытается определить,``ее" это диск или не ее. Она полезна при монтировании ФС савтоматическимопределением ее типа;

• программа mount, которая принимает из командной строки зависящиеот типа ФС параметры, проверяет их допустимость и инициализируетдрайвер ФС.

Например, дистрибутив ОС UnxiWare 2.0 фирмы SCO,основанной на UNIX System V R4.2,содержит драйверы следующих файловых систем:

memfs - файловая система, размещающая файлы в оперативной памяти.Может рассматриваться как эквивалент виртуального диска в MS DOS.

dosfs - файловая система FAT.

XENIX - файловая система, используемая ОС Xenix.Эта ФС по структуре похожа на остальные ФС ОС семейства Unix,но не поддерживает символических связей и ограничивает длину имени файла12 символами. Неустойчива к сбоям.

s5 - ``классическая'' ФС, сохранившаяся почти без измененийс самых ранних версий системы - s5, по-видимому, означаетUnix System 5. Ограничивает имя файла 14 символами.Неустойчива к сбоям.

ufs - файловая система, разработанная в университете Беркли,известная также как FFS (Fast File System) и Berkley FS.Является основной ФС в большинстве версий BSD UNIX и поддерживаетсямногими другими ОС семействаUnix.Имеет более высокую производительность, чем s5, в первую очередьза счет разбиения таблицы инодов и списка свободных блоковна участки (группы цилиндров). Такое разбиение уменьшаетперемещение головки дисковода при обращении к системным ипользовательским данным. Поддерживает дисковые квоты -ограничения на объем дискового пространства, занятого файламитого или иного пользователя.Ограничивает имя файла размером блока (обычно 512 символов).Неустойчива к сбоям.

bfs - Boot File System - загрузочная файловая система.Эта ФС имеет очень простую структуру, отчасти похожую на файловую системуRT-11: все файлы в ней обязаны занимать непрерывноепространство. Такая структура упрощает первичный загрузчик системы,которому теперь не нужно разбираться в каталогах и инодах.bfs имеет довольно низкую производительность и требует длительнойпроцедуры размонтирования, если в нее были записаны новые данные.Фактически, при таком размонтировании происходит операция сжатия ФС,эквивалентная команде SQEESE в RT-11. Используется дляхранения ядра системы, и нескольких конфигурационных файлов, используемыхпри загрузке. Все эти данные считываются только при загрузке системы иперезаписываются только при изменениях конфигурации ядра, поэтому высокаяпроизводительность от этой ФС не требуется.

vxfs - устойчивая к сбоям ФС Veritas с регистрациейнамерений.Версия, входящая в стандартную поставку системы, журналирует толькосистемные структуры данных.За отдельную плату можно приобрести ``продвинутую'' версиюVeritas, которая обеспечивает журналирование пользовательскихданных.

cdfs - Файловая система ???, используемая на CD-ROM.

nfs - Network File System - драйвер файловой системы, обеспечивающийразделение файлов с использованием сетевого протокола TCP/IP.Протокол NFS был предложен фирмой Sun Microsystemsв середине 80-х гг. и в настоящее время поддерживается практически всемичленами семейства Unix.NFS-клиенты и NFS-серверы реализованы также дляVMS, Windows NT, Novell Netware,OS/2, MacOS, MS/DR DOS иWindows 3.x/95.

rfs - Remote File Sharing - использование удаленной UNIX-системы вкачестве файлового сервера. Этот протокол был разработан фирмойAT&T в 80-е гг. и пригоден только для соединения системUNIX System V.

nucfs - NetWare Unix Client File System. Этот драйвер предназначендля присоединения к файловым серверам Novell Netware. Он входитв состав системы UnixWare, поставляемой фирмой SCO,но не в остальные версии UNIX SVR4.

Любопытно, что даже MS/DR DOS версий выше 3.30 имеют возможностьустанавливать драйвер файловой системы. Такой драйвер может быть реализованпутем перехвата недокументированных функций прерывания 0x2F -группы функций ``Network Redirector'' и ``IFS''. Таким образом реализованряд сетевых клиентов для MS/DR DOS.К сожалению, авторы не смогли найти полноценного описания этих функций.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]