Нашей операционной системе понадобился календарь. До сего момента у нас был штамп времени -- число секуд с момента включения, а тут вдруг понадобилось хронологический порядок человеку демонстрировать в понятных для человека условных единицах...
Файловая система опирается на понятие "блочного устройства". Не важно какой природы носитель, круглый или квадратный, жесткий или твердый, крутится или нет, -- все они для файловой системы равны. Драйвер должен уметь сохранить и прочитать один блок с носителя. Блок по стандарту равен 512 байт. Современные микросхемы NAND Flash в одном корпусе, в одной микросхеме, содержат до 4-х кристаллов памяти с независимым управлением, у каждого кристалла свой буфер обмена. В такой конфигурации можно начинать запись на второй кристалл не дожидаясь завершения процедуры записи или стирания на первом кристалле.
Файловую систему отлаживать в аппаратуре сложно, поскольку от неё будет зависеть жизнеспособность устройства. Так что, пришлось нашим написать полнофункциональный эмулятор файловой системы. Эмулятор - это приложение для Пк под управлением Windows или Linux. Приложение построено как архиватор, оно создает архив, образ диска, в формате нашей файловой системы. Затем архив можно распаковать, поизучать его содержимое и внутреннюю структуру. В конце концов смоделировать множество тестовых ситуаций и поизучать её поведение под отладчиком.
Файловая система -- это вам не просто так. Система FAT саморегуляцией не обладает, а как следствие накапливаются фрагментированные файлы. Множество фрагментов замедляет работу файловой системы. В нашей системе мы уделяли отдельное внимание вопросам саморегуляции на разных уровнях.
Решения... Рассказать в двух словах не получается.
Сегодняшний день -- день рождения новой ФС. Предлагаю отметить его ликованием. Наконец-то мы завершили процесс разработки и уже не осталось сомнений -- файловой системе быть!