| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |