OSDev

для всех
Текущее время: 01 май 2024, 23:28

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Разработка драйвера FAT32
СообщениеДобавлено: 20 мар 2011, 15:29 

Зарегистрирован: 20 мар 2011, 15:28
Сообщения: 1
Всем доброго времени суток! Я новичок, поэтому заранее извиняюсь, если мой вопрос кому-то покажется глупым или ламерским. Имеется самописное ядро ОС, которое содержит менеджер памяти, умееть обрабатывать аппаратные и программные прерывания. Также данное ядро содержит драйвер IDE дисков, который предоставляет функции идентификации IDE дисков и чтения/записи сектора диска. Для этого ядра необходимо разработать драйвер для взаимодействия с файловыми системами (создание, запись, чтение файла, вывод списка файлов и т.д.). Для начала была взята файловая система FAT32 ввиду своей простоты. Одним словом, мне необходимо реализовать простейшие функции для работы с FAT32, предоставляемые данным ядром. Подскажите, каким образом должно осуществляться взаимодействие разрабатываемого драйвера FAT32 с драйвером IDE диска, к примеру, при реализации функции создания файла? Подскажите, существуют ли какие-то готовые решения драйверов FAT32 с открытыми исходниками или может быть кто-то уже занимался подобной проблемой? Подскажите также, какие статьи/книги можно почитать для прояснения данной задачи. Всем большое спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка драйвера FAT32
СообщениеДобавлено: 20 мар 2011, 17:52 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Уж исходники Линуха, в т.ч. поддержки ФАТ32, точно открыты, как и спецификация FAT32. Ну а подсказать, как организовать взаимодействие и т.п., невозможно в принципе: это зависит от внутреннего устройства системы, от используемой в ней модели ввода-вывода и т.п.

Одним из важнейших и сложнейших в реализации компонентов ОС является диспетчер (менеджер) ввода-вывода, который как минимум принимает от польозовательских программ запросы на выполнение операций ввода-вывода, выполняет их стандартную обработку (например, проверяет корректность указанных в запросе данных -- адреса и длины буфера, кода функции ввода-вывода и т.д.), находит драйвер, который отвечает за управление устройством, которому адресован запрос, передаёт запрос драйверу, в дальнейшем помогает ему выполнять ввод-вывод (предосталяя ряд стандартных подпрограмм), а в конце возвращает код завершения запроса и другую информацию пользовательской программе. Диспетчер ввода-вывода отвечает и за взаимодействие драйверов между собой.

Думаю, Вам лучше для начала попробовать более-менее разобраться в драйверной модели Винды (WDM -- не путать с объектно-ориентированной WDF, появившейся в Висле и на самом деле являющейся надстройкой над WDM: без знания последней невозможно по-настоящему понять, как именно реализован ввод-вывод).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB