Минималистичная операционная система: дисковый Ввод/Вывод и файловая система

Реализация драйвера для виртуального диска virtio-blk через virtqueue обеспечивает взаимодействие с дисковыми устройствами. Драйвер использует дескрипторы для управления операциями чтения и записи. Подключение virtio-blk к QEMU производится через опции командной строки, что позволяет использовать образ диска. Инициализация устройства требует последовательной установки его статусов, а virtqueue, в свою очередь, нуждается в выделении памяти и уведомлении устройства о ее адресе.
Минималистичная операционная система: дисковый Ввод/Вывод и файловая система
Изображение носит иллюстративный характер

Обмен данными с диском включает создание запроса, заполнение дескрипторов, уведомление устройства и ожидание завершения. Цепочка дескрипторов определяет области данных и их атрибуты. При чтении данные копируются в буфер, при записи – из него. Управление дескрипторами требует внимания к их состоянию для обработки нескольких одновременных запросов.

Файловая система на основе формата tar хранит данные и метаданные файлов в последовательности пар «заголовок — данные». Инициализация файловой системы заключается в чтении диска в память и интерпретации заголовков tar для извлечения файлов. Функция oct2int преобразует восьмеричные значения размеров файлов. Для записи содержимое файловой системы в формате tar формируется в буфере и затем записывается обратно на диск.

Системные вызовы readfile и writefile позволяют приложениям работать с файлами, используя соответствующие функции ядра. Для корректной работы ядра с памятью пользовательских приложений необходима установка бита SUM в регистре sstatus. Отладка включает в себя анализ таблиц страниц и проверку содержимого памяти.


Новое на сайте

20065[b]СПКЯ стало СПМЯ: почему переименование болезни, затрагивающей миллионы женщин, заняло... 20064[b]Почему великая пирамида Гизы пережила все землетрясения за 4500 лет[/b] 20063[b]Генетика Homo erectus: что зубная эмаль рассказала о наших предках[/b] 20062[b]Кости в бухте эребус: что кости моряков Франклина рассказывают спустя полтора века[/b] 20061[b]Крупнейший плавучий ветрогенератор в мире: Китай испытывает установку у берегов... 20060[b]Карие глаза младенца стали индиго после лечения от COVID-19[/b] 20058[b]Почему серебряная чаша с Афиной пролежала в немецком лесу две тысячи лет?[/b] 20057[b]Дыра в атмосфере солнца: вспышка достигла пика и может зажечь полярное сияние[/b] 20056[b]Динго возрастом 950 лет: кто и зачем кормил могилу животного сотни лет?[/b] 20055[b]Томоэ гозэн: женщина-самурай, которая существовала на самом деле[/b] 20054[b]Что видели астронавты «Аполлона-12» над лунным горизонтом?[/b] 20053[b]Восковой блокнот на латыни и шёлковая туалетная бумага: кто посещал средневековый... 20052[b]Хантавирус на борту: 41 человек под наблюдением после рейса MV Hondius[/b] 20051[b]Зелёные камни в пещере Пиренеев: четыре тысячи лет медной металлургии[/b]
Ссылка