Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #31, ИЮНЬ 2003 г.

ГДЕ ОСы ФАЙЛЫ ПРЯЧУТ. Современные файловые системы

Andrew Fadeev

Спецвыпуск Xakep, номер #031, стр. 031-014-1


(andrewf@ukr.net)

Пользование компьютером давно стало делом не хитрым. Возишь себе мышкой, тыкаешь в кнопочки, и исполняются твои желания.

Раз - вот твой музыкальный архив. Два - отсортировал по имени файла. Три - посмотрел, какой из них записал последний. Тебе-то удобно, а в это время твоя операционка жужжит и потеет, раскладывая всю инфу по полочкам, как многорукий Шива. Поэтому, как Винни-Пух ходил смотреть, где пчелы мед держат, мы пойдем смотреть, где ОСы файлы хранят, в подвалы системы - будем бурить пласт "жестко-диска".

МНОГО СИСТЕМОК, ХОРОШИХ И НЕ ОЧЕНЬ

Нефти нам, конечно, не обломится, но много интересного и полезного узнаем. Из операционок сегодня у нас трескают траву, наивно полагая, что они гости в ресторане, а вовсе не заправские подопытные кролики в лаборатории, Windows и Linux. Так уж повелось, что под названием "Вынь" подразумевают два разных семейства окончатых: Win9x и WinNT. Так что кроликов у нас три, столько и будет файловых систем. FAT/FAT32, NTFS и ext2fs.

ПРИНЦИПЫ

Сначала несколько слов, общих для всех систем. Информация на винте хранится поделенной на блоки данных (data blocks, или кластеры). Эти блоки имеют одинаковый размер, и файл может занимать один или несколько блоков, но не половинку или сколько-то с половинкой. Отсюда первый принцип - чем больше блок данных, тем сильнее расходуется место на жестком диске при хранении файлов. То есть если файл 1 килобайт, а блок 16 кило - то 15 из них уйдут налогом. Маленьких кластеров надо больше, а, следовательно, и больше таблица их расположений. Так что тут надо искать золотую середину. И второе. Логически жесткий диск может быть разбит на несколько разделов (partitions). Различные файловые системы представляют это деление пользователям по-разному. FAT показывает пользователю разделы как разные объекты - диск C:, D: и т.д. Ext2 идет другим путем: каждый раздел прикручивается (то есть монтируется) как поддиректория к общему корню "/". NTFS поддерживает оба варианта, разве что корень тут все равно называется C:.

EXT2FS - ПИНГВИНЫ ЕСТЬ ТУТ

Эволюция UNIXоподобных знала много систем хранения файлов, но пока для линуха самой распространенной есть эта. Не так давно появилась ее третья версия, дающая некоторые преимущества, однако отличий не так много - ext2 довольно-таки продвинутая система. С разделами под ext2 разобрались чуть выше, теперь заглянем глубже.

А теперь начинается сказка про Кощея Ивановича Б., так что пристегнись. Каждый и-нод содержит 15 указателей на блоки данных. Но блок данных маленький, а файл большой. Поэтому 14-ый указатель (непрямой указатель) связан с непрямым блоком, к которому подключены блоки данных. А 15-ый указатель (дважды непрямой указатель) соединен с дважды не прямым блоком, к которому подключены непрямые блоки, в которые воткнуты блоки данных, в доме, который построил Джек. Вот такая вот сказочка про коробку с зайцем, в котором утка, в которой яйцо. А в яйце уже не первый год бушуют звездные войны. Если кто сейчас задается вопросом, в чью голову пришла такая организация, - отвечаю: гражданину Франции по имени Remy Card.

Содержание  Вперед на стр. 031-014-2