OSDev http://osdev.su/ |
|
Разработка драйвера FAT32 http://osdev.su/viewtopic.php?f=7&t=405 |
Страница 1 из 1 |
Автор: | Kriks87 [ 20 мар 2011, 15:29 ] |
Заголовок сообщения: | Разработка драйвера FAT32 |
Всем доброго времени суток! Я новичок, поэтому заранее извиняюсь, если мой вопрос кому-то покажется глупым или ламерским. Имеется самописное ядро ОС, которое содержит менеджер памяти, умееть обрабатывать аппаратные и программные прерывания. Также данное ядро содержит драйвер IDE дисков, который предоставляет функции идентификации IDE дисков и чтения/записи сектора диска. Для этого ядра необходимо разработать драйвер для взаимодействия с файловыми системами (создание, запись, чтение файла, вывод списка файлов и т.д.). Для начала была взята файловая система FAT32 ввиду своей простоты. Одним словом, мне необходимо реализовать простейшие функции для работы с FAT32, предоставляемые данным ядром. Подскажите, каким образом должно осуществляться взаимодействие разрабатываемого драйвера FAT32 с драйвером IDE диска, к примеру, при реализации функции создания файла? Подскажите, существуют ли какие-то готовые решения драйверов FAT32 с открытыми исходниками или может быть кто-то уже занимался подобной проблемой? Подскажите также, какие статьи/книги можно почитать для прояснения данной задачи. Всем большое спасибо! |
Автор: | SII [ 20 мар 2011, 17:52 ] |
Заголовок сообщения: | Re: Разработка драйвера FAT32 |
Уж исходники Линуха, в т.ч. поддержки ФАТ32, точно открыты, как и спецификация FAT32. Ну а подсказать, как организовать взаимодействие и т.п., невозможно в принципе: это зависит от внутреннего устройства системы, от используемой в ней модели ввода-вывода и т.п. Одним из важнейших и сложнейших в реализации компонентов ОС является диспетчер (менеджер) ввода-вывода, который как минимум принимает от польозовательских программ запросы на выполнение операций ввода-вывода, выполняет их стандартную обработку (например, проверяет корректность указанных в запросе данных -- адреса и длины буфера, кода функции ввода-вывода и т.д.), находит драйвер, который отвечает за управление устройством, которому адресован запрос, передаёт запрос драйверу, в дальнейшем помогает ему выполнять ввод-вывод (предосталяя ряд стандартных подпрограмм), а в конце возвращает код завершения запроса и другую информацию пользовательской программе. Диспетчер ввода-вывода отвечает и за взаимодействие драйверов между собой. Думаю, Вам лучше для начала попробовать более-менее разобраться в драйверной модели Винды (WDM -- не путать с объектно-ориентированной WDF, появившейся в Висле и на самом деле являющейся надстройкой над WDM: без знания последней невозможно по-настоящему понять, как именно реализован ввод-вывод). |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |