Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Алгоритмы > файловая система


Автор: DEiL 30.08.02, 21:21
не знаю, в тот ли раздел залез, но это ничего :)

так вот, что-то меня потянуло на эти вот вещи, вроде фс. а оно и понятно - на системщика учусь :)
так вот, в чём суть -
в начале чего-то (диска, файла), где расположена сия фс, находится структура -
ну в ней хранится сигнатура, размер блока, количество блоков\свободных блоков и длина FAT (в блоках)
далее - инфо о фате - размер кластера, их кол-во, сколько свободно, максимальное количество возможных файлов, ну а далее уже - записи о каждом файле (название, длина в кластерах (кол-во _полных_ кластеров), остаток (длина_файла - длина_в_кластерах*размер_кластера), первый кластер). возникает вопрос -
ну знаю я первый кластер файла, а как узнать, где его второй кластер, третий и т.д.? ну не понимаю -) в фате хранить это по-моему неразумно - очень много места съестся, а как иначе - не знаю. поможите :))

зы. не ругать! придумал сам =)

Автор: patap 31.08.02, 20:29
На диске как бы есть два списка, первый FAT - где как раз хранятся данные (12 , 16 или 32 бит) о следующем секторе файла или значение от 0FF8h до 0FFFh (конец файла); а второй список - каталог файлов который состоит из 32 байтных записей, корневой каталог размещается в фиксированном месте на диске, в нем среди записей размещаються и записи про подкаталоги. А подкаталоги выглядят как обычные файлы, и размещаются в произвольных секторах диска.
Чет, я уж и сам запутался  :)

Автор: DEiL 01.09.02, 12:38
ты не понял суть моего вопроса :)
я хочу узнать, где можно хранить информацию о кластерах, принадлежащих файлам?
в таблице размещения файлов по-моему всё это хранить неразумно -)

Автор: purpe 01.09.02, 17:58
в фат16 это, вроде, в директории хранится.

Автор: DEiL 01.09.02, 18:59
программисты, блин -)

Автор: patap 01.09.02, 20:47
Я ж и говорю, информация храниться только о первом кластере файла, а продолжение хранится к каждому кластеру диска(в не зависимости от файла!)  ???

Автор: DEiL 02.09.02, 06:37
это ж что получается - мне от каждого кластера придётся откусить по 4 байта?
вот гадство -)

Автор: patap 02.09.02, 19:06
Извини немного непонятно выразился, отбирается по 8 байт на каждый кластер(две копии ФАТА), но храниться все в одном месте в начале диска

Автор: Demo_S 02.09.02, 19:42
спроси в ассембреном разделе...
имхо в фате на каждый кластер (512 байт) выделяется 4 байта...
в каталоге(директории) для каждого файла хранится адрес первого кластера.
в фате этому кластеру соотв 4байта, в которых лежит адрес следующего кластера этого файла, или oxfff если это последний кластер файла .
это в фат16, В 32 СЛОЖНЕЕ

Автор: volatile 09.09.02, 23:00
Если я правильно понял, речь идёт о разработке файловой системы.
Так вот, если ты выбрал кластерную организацию памяти, то ты вынужден где-то хранить адреса кластеров данного файла - либо в массиве, либо в связном списке. В любом случае тебе понадобится столько ячеек с адресами (размер ячеек зависит от способа адресации и, возможно, максимально допустимым размером раздела) кластеров, сколько файл будет занимать. Т.е. - либо "откусывать" олт каждого кластера, либо хранить где-то таблицу (не обязательно по типу FAT).

Автор: DEiL 10.09.02, 16:48
угу, ты правильно меня понял :)

в последние дни вот сижу и думаю...

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)