Vision - 4zau/rust-vfs GitHub Wiki
О проекте
Наш проект это разработка виртуальной файловой системы (VFS) на Rust для учебного ядра wb26-kernel-prototype. VFS должна предоставить единый интерфейс работы с файлами и каталогами и объединить подключённые файловые системы в общее дерево путей.
Сначала мы создадим самостоятельный работающий макет, проверим его архитектуру и поведение, а затем адаптируем разработанные компоненты для работы в ядре.
Проблема
Файловые системы могут по-разному хранить данные и организовывать доступ к ним. Для ядра нужен общий слой, через который можно искать, открывать, читать и изменять файлы независимо от способа хранения данных.
VFS должна отделить общие правила работы с файлами от операций конкретной файловой системы. Это позволит развивать файловую подсистему и добавлять новые реализации через согласованный интерфейс.
Риски
Проект зависит от разработки подключения внешних устройств ядра. Если не доделают данный функционал, то мы не сможем полностью реализовать наш проект.
Подключение файловых систем будет завивисть от доступных библиотек. Если они дефектны, то мы не сможем проверить и реализовать VFS в полной мере.
Цель проекта
Создать понятную, расширяемую VFS, которая обеспечивает основные файловые операции и может использоваться как в самостоятельном макете, так и в ядре.
Предлагаемое решение
Работу начнём с изучения подходов Linux, Solaris, MINIX и ESP-IDF. По результатам сравнения определим, какие идеи подходят для масштаба нашего ядра, и обоснуем выбранную архитектуру.
Первой файловой системой станет MemFS. Она позволит проверять VFS без диска и драйверов устройств.