Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Запись.чтения файла на аппараттном уровне?


Автор: Dreamuchiy 8.11.2008, 17:48
Как считать файл в буффер или записать в файл из буфера в 32-х разрязном режиме и на аппаратном уровне, поскольку ось не будет использоваться. Точнее хотелось бы зузнать порты ввода/вывода и какойнибудь простой пример

Автор: dumb 9.11.2008, 01:34
на аппаратном уровне нет никаких файлов.

Автор: xRudik 9.11.2008, 23:48
Тут все сложнее чем кажется... Все дело в том что на аппаратном уровне такие устройства как винчестер могут нам только прочитать сектор, записать сектор и получить параметры устройства(понятное дело что намного больше функций, но то что касается файловых систем только 3). Собственно как прочитать и как записать сектор нормально описано на http://www.wasm.ru/article.php?article=atazen01. Есть ещё комитет стандартов по командам ата\сата на http://t13.org/.
Такие понятия как "раздел", "папка" и "файл" нам предоставляет ОС(Вин, Лин, Дос - не важно). Собственно одна из подзадач ОСей и ей предоставления удобного АПИ для приложений. На практике же все сложнее. Есть например устройство физическое как винт, на него ОСь вешает драйвер, который позволяет читать и писать сектора. Потом поверх этого драйвера вешается другой драйвер, который может прочитать при помощи первого драйвера нулевой сектор, разобрать MBR и зарегистрировать новые, уже логические устройства как разделы. На каждый раздел вешается ещё драйвер файловой системы, который собственно может читать и записывать в файловую систему. Каждая файловая система по разному устроена и универсальных методов для чтения файлов нет, но тем не менее можно самому реализовать все 3 драйвера если разделы будут FATовские. Пример чтения файла из дискеты в FAT есть на сайте http://flatassembler.net/examples/phboot.zip. Достаточно изменить чтение секторов на порты ввода\вывода.
Удачи.

Автор: Dreamuchiy 19.11.2008, 23:55
Спасибо за полезную инфу ! Хотелось бы еще узнать по поводу файловой системы винды NTFS.  В принципе то я знал что все основывается ана секторах, дорожках и тп. Просто не было инфы. Я нашел благодаря одному участнику этого форума пару книжек Кулакова. к СОЖАЛЕНИЮ В ЭЛЕКТРОННОМ ВИДЕ. Но тем не менее читать можно, хоть и не очень удобно. Там одна книга посвящена чисто дискам, другая по юсб, клаве, видео и сетевухам. Но почемуто нигде я не нашел описания на NTFS. я пишу свою ось и хочу что бы она читала многие файловые системы и в первую очередь это конечно FATы и NTFS, нУ и сd-ромовские тоже.

Автор: Mikl_ 20.11.2008, 04:23
Dreamuchiy, ты для начала напиши ось которая работала бы с одной файловой системой -- заработает -- продолжишь свои изыскания дальше -- иначе не напишешь ничего, если будешь пытаться написать в одиночку и с минимумом знаний написать OS Windows Vista  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)