QEMU Virtio-BLK странные ограничения - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь написать чистую ОС, ориентированную на qemu, с помощью virtio диска.

Для начала все, что я хочу сделать, это прочитать сектор с моего необработанного диска. Я настроил virtq с одной записью, выполняющей чтение с диска, перечислил ее в доступном виде и ткнул в слот уведомлений, но там говорилось: «virtio-blk отсутствующие заголовки». Если посмотреть в исходном коде, это означает, что либо не было дескрипторов записи, ни дескрипторов чтения. Ну, мне нужен только дескриптор read (то есть устройство-запись), но я неохотно сделал другой, но все равно он сработал, если я не связал их вместе, что также видно в источнике. В этот момент я установил размер записи равным нулю, но затем явно недоволен тем, что он равен нулю.

Я действительно не хочу делать запись на диск, и я не знаю, почему он так крутит мою руку. Кто-нибудь знает, как попросить, чтобы qemu virtio-blk действительно, честно просто прочитал?

1 Ответ

0 голосов
/ 27 августа 2018

Я понял это. Заголовок должен быть читаемым устройством, то место, куда должны попадать данные, должно быть записываемым устройством, а байт состояния должен быть записываемым устройством. Вот почему должен быть по крайней мере один из каждого и почему они должны прийти в таком порядке. Разумное кодирование предполагает, что бит посередине является третьим дескриптором, поэтому он может обслуживать как сценарии чтения с диска, так и записи на диск.

...