Полагаю, вопрос будет касаться конкретной ОС, поэтому я рассмотрю следующие сценарии:
- Windows (NTFS)
- OSX (HFS)
- Linux (ext2,ext3,ext4)
Каждая операционная система имеет свою файловую систему по умолчанию, с которой она работает (OSX, я полагаю, имеет только один доступный выбор). Я заметил несколько утилит для ОС, чтобы читать различные файловые системы (что, очевидно,НЕТчасть ядра), что заставило меня задуматься: являются ли операции с файловой системой функцией драйвера (т.е. потенциально модульными) или они действительно являются частью ядра?
решение1
В Linux, когда вы компилируете ядро самостоятельно, у вас есть возможность скомпилировать поддержку для каждой доступной файловой системы (ext2, ext3, ext4, reiserfs или JFS, например) отдельно в виде модулей или внутри ядра. Я не пробовал, работает ли это при компиляции в виде модулей, но предполагаю, что это точно не будет работать для файловой системы загрузочного раздела, но может работать для других.
Для Windows или OSX идей нет.
решение2
решение3
Для Linux и OSX (насчет Windows не уверен) вы можете взглянуть наФайловая система в пользовательском пространствеиMacFuse. Это позволяет писать реализации FS не в ядре, а как драйверы пользовательского пространства, что, естественно, гораздо менее опасно.