3 | Содержание
| 5
Файловая система.
1. Собственной файловой системы у Колибри нет, стандартно используется FAT,
есть чтение с NTFS, делается поддержка файловой системы ext2 (на данный
момент реализовано чтение каталогов).
2. Управляющих блоков для файлов нет. При всех операциях с файлами
приложение задаёт полное имя файла (а ядро, соответственно, это полное имя
каждый раз разбирает).
3. В Колибри файл - это всегда файл на диске (возможно, на рамдиске), другие
сущности файловыми API не адресуются.
4. API файловой системы - функция 70 (с
соответствующими подфункциями, описана в документации). Кроме того, есть
некоторое количество устаревших функций, удаляемых по мере обновления
приложений на (относительно) новую 70-ю.
5. Ограничений доступа нет (всё, что в принципе можно сделать, может сделать
любое приложение). Соответственно и авторизации нет.
6. Запись есть только на FAT. Освобождение дискового пространства
заключается просто в пометке соответствующих кластеров в таблице FAT как
свободных. Выделение нового дискового пространства делается покластерно,
для нахождения очередного свободного кластера [fs/fat32.inc, get_free_FAT
для жёстких дисков; fs/fat12.inc, floppy_extend_file для дискет;
blkdev/rd.inc, ramdisk_extend_file для рамдиска] сканируется таблица FAT на
предмет поиска кластеров, помеченных в таблице FAT как свободные; для FAT12
(дискет и рамдиска) сканируется таблица от начала до конца, для FAT16 и
FAT32 (жёстких дисков) есть внутренняя переменная - номер кластера, с
которого начинается поиск, и каждый следующий поиск начинается с кластера,
следующего за предыдущим найденным свободным (и здесь поиск, дойдя до конца,
продолжается с начала тома); в случае с FAT32 начальное значение этой
переменной берётся из сектора FSInfo (из структуры файловой системы) и
сохраняется там же. Кроме того, для FAT32 изменение размера свободного
пространства записывается в соответствующем поле в секторе FSInfo
[fs/fat32.inc, add_disk_free_space].
7. Основная система - FAT, с NTFS и EXT2 есть только чтение, соответственно
журналирования нет.
3 | Содержание
| 5
Pterox' DocPack R6. Last Edition: 29.05.2010. История выпусков