Разработка минимальной операционной системы
Необходимо создать с нуля простую, но функциональную операционную систему, способную загружаться и работать с файловой системой. Проект разбит на два крупных этапа: создание базовой ОС и реализация файловой подсистемы.
Этап 1: Создание базовой операционной системы
Требуется реализовать загрузку и запуск минимального ядра.
Основные шаги:
- Написание загрузочного сектора (bootloader) на ассемблере в файле
boot.asm. - Разработка минимального ядра на языке C в файле
kernel.c. - Создание пользовательского скрипта линковки (
linker.ld) и линковка ядра. - Преобразование скомпилированного ELF-файла в чистый бинарный формат.
- Формирование образа загрузочного диска и создание ISO-образа для тестирования.
- Запуск и отладка системы в эмуляторе (QEMU или VirtualBox).
Этап 2: Реализация файловой системы FAT
Необходимо интегрировать в ОС поддержку чтения и записи файлов через файловую систему FAT.
Задачи по файловой системе:
- Определение структур данных для работы с FAT12/16/32.
- Реализация низкоуровневых функций чтения и записи секторов диска.
- Написание кода для чтения FAT-таблицы и разбора цепочек кластеров.
- Создание функций для чтения существующего файла по цепочке кластеров.
- Реализация возможности создания и записи нового файла на диск.
- Организация работы с корневым каталогом.
Интеграция в ядро:
Разработанные модули необходимо подключить к основному ядру ОС:
- Модуль для работы с диском (
disk.c). - Модуль реализации FAT (
fat.c). - Модуль для работы с каталогами (
dir.c). - Создание интерфейса базовых файловых операций: open, read, write.
Общее требование: Проект должен быть выполнен в сжатые сроки, с акцентом на работоспособность и четкую структуру кода.