Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.58.39.23] |
|
Сообщ.
#1
,
|
|
|
не знаю, в тот ли раздел залез, но это ничего
так вот, что-то меня потянуло на эти вот вещи, вроде фс. а оно и понятно - на системщика учусь так вот, в чём суть - в начале чего-то (диска, файла), где расположена сия фс, находится структура - ну в ней хранится сигнатура, размер блока, количество блоков\свободных блоков и длина FAT (в блоках) далее - инфо о фате - размер кластера, их кол-во, сколько свободно, максимальное количество возможных файлов, ну а далее уже - записи о каждом файле (название, длина в кластерах (кол-во _полных_ кластеров), остаток (длина_файла - длина_в_кластерах*размер_кластера), первый кластер). возникает вопрос - ну знаю я первый кластер файла, а как узнать, где его второй кластер, третий и т.д.? ну не понимаю -) в фате хранить это по-моему неразумно - очень много места съестся, а как иначе - не знаю. поможите ) зы. не ругать! придумал сам =) |
Сообщ.
#2
,
|
|
|
На диске как бы есть два списка, первый FAT - где как раз хранятся данные (12 , 16 или 32 бит) о следующем секторе файла или значение от 0FF8h до 0FFFh (конец файла); а второй список - каталог файлов который состоит из 32 байтных записей, корневой каталог размещается в фиксированном месте на диске, в нем среди записей размещаються и записи про подкаталоги. А подкаталоги выглядят как обычные файлы, и размещаются в произвольных секторах диска.
Чет, я уж и сам запутался :) |
Сообщ.
#3
,
|
|
|
ты не понял суть моего вопроса
я хочу узнать, где можно хранить информацию о кластерах, принадлежащих файлам? в таблице размещения файлов по-моему всё это хранить неразумно -) |
Сообщ.
#4
,
|
|
|
в фат16 это, вроде, в директории хранится.
|
Сообщ.
#5
,
|
|
|
программисты, блин -)
|
Сообщ.
#6
,
|
|
|
Я ж и говорю, информация храниться только о первом кластере файла, а продолжение хранится к каждому кластеру диска(в не зависимости от файла!) ???
|
Сообщ.
#7
,
|
|
|
это ж что получается - мне от каждого кластера придётся откусить по 4 байта?
вот гадство -) |
Сообщ.
#8
,
|
|
|
Извини немного непонятно выразился, отбирается по 8 байт на каждый кластер(две копии ФАТА), но храниться все в одном месте в начале диска
|
Сообщ.
#9
,
|
|
|
спроси в ассембреном разделе...
имхо в фате на каждый кластер (512 байт) выделяется 4 байта... в каталоге(директории) для каждого файла хранится адрес первого кластера. в фате этому кластеру соотв 4байта, в которых лежит адрес следующего кластера этого файла, или oxfff если это последний кластер файла . это в фат16, В 32 СЛОЖНЕЕ |
Сообщ.
#10
,
|
|
|
Если я правильно понял, речь идёт о разработке файловой системы.
Так вот, если ты выбрал кластерную организацию памяти, то ты вынужден где-то хранить адреса кластеров данного файла - либо в массиве, либо в связном списке. В любом случае тебе понадобится столько ячеек с адресами (размер ячеек зависит от способа адресации и, возможно, максимально допустимым размером раздела) кластеров, сколько файл будет занимать. Т.е. - либо "откусывать" олт каждого кластера, либо хранить где-то таблицу (не обязательно по типу FAT). |
Сообщ.
#11
,
|
|
|
угу, ты правильно меня понял
в последние дни вот сижу и думаю... |