OSDev
http://osdev.su/

Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"
http://osdev.su/viewtopic.php?f=5&t=621
Страница 1 из 2

Автор:  gaghyp [ 24 авг 2012, 15:24 ]
Заголовок сообщения:  Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"

На сайте osdev предлагаются минимальный примеры ОС. Как ни гуглю, не могу найти (действительно) минимального примера VMM/hypervisor, который для простоты использовал бы аппаратную виртуализацию процессора и мог бы запустить и мониторить 2+ ОС того же минимального уровня. vmm - это, конечно, ещё не ОС, но уже и не БИОС - т.е. формально не специфика osdev. Но тогда какого сайта? Спец. ресурсов, посвящённых исключительно написанию vmm, я не встречал, поэтому всё же наконец-то пробую спросить у вас.

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

Автор:  Yoda [ 24 авг 2012, 15:29 ]
Заголовок сообщения:  Re: Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"

Проблема заключается в том, что помимо процессора необходимо виртуализировать и всё аппаратное обеспечение компьютера. Тут два пути – либо пытаться разделить доступ к существующему железу, решая вопросы конфликтов доступа к нему с разных ОС, либо предоставлять ОСям некое виртуальное железо, которое необходимо эмулировать.

Автор:  D-S [ 24 авг 2012, 15:31 ]
Заголовок сообщения:  Re: Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"

А я всегда считал,что VMM это Virtual memory manager. Наверно отстал от жизни...

Автор:  SII [ 24 авг 2012, 15:32 ]
Заголовок сообщения:  Re: Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"

Причём разделить железо в общем случае невозможно, а виртуализировать на ПК -- крайне сложно.

Автор:  gaghyp [ 24 авг 2012, 18:14 ]
Заголовок сообщения:  Re: Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"

Yoda писал(а):
необходимо виртуализировать и всё аппаратное обеспечение компьютера

Я как раз хочу увидеть hello world, поэтому явно упомянул, что запускать под монитором буду hello world OS. Да, ввод с клавы и примитивный вывод на экран нужны. Может ещё таймер и последовательный порт, но не более.
D-S писал(а):
А я всегда считал,что VMM это Virtual memory manager. Наверно отстал от жизни...

Вот зная, что пишу на OSdev, и расшифровал, что имею ввиду ;) Раз всё ещё хелловорлда для VMM нет, то ещё точно не так отстал.
SII писал(а):
Причём разделить железо в общем случае невозможно, а виртуализировать на ПК -- крайне сложно.

Учитывая упомянутый мною случай, при переключении ОС управление клавой, видео-выводом переходят активной ОС. Остальные ОС работают себе, могут считать чего, но при обращении к не хелловордно-разделяемым ресурсам получают нефатальный отказ или просто вызов блокируется до переключения в эту хелловордную ОС.

Автор:  Yoda [ 24 авг 2012, 18:25 ]
Заголовок сообщения:  Re: Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"

gaghyp писал(а):
Я как раз хочу увидеть hello world, поэтому явно упомянул, что запускать под монитором буду hello world OS. Да, ввод с клавы и примитивный вывод на экран нужны. Может ещё таймер и последовательный порт, но не более.

А выводить "Hello, World!\n" куда? В вакуум? (виртуализация видеоадаптера - весьма непростая задача).
А грузить образ ОС откуда? Тоже из вакуума? (виртуализация ATA/SATA/FDD...)

Автор:  pavia [ 24 авг 2012, 18:44 ]
Заголовок сообщения:  Re: Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"

Давайте прикинем что нам надо натурализовать? Что-бы запустить 2 ОС паролельно.
RAM - легко
CMOS - легко
RTC - легко
PIT - легко
PIC - легко
DMA - легко
CPU - трудно
PCI - легко/средне
HDD - средне
BIOS - трудно
видео карта. - средне
сетевая карта - средне
клавиатура - легко
мышь - легко

9х5
4х30
2х100

За год можно сделать минимальный гипер визор. Но лучше взять готовое. быстрее будет.

Нужно взять готовую ОС.
Взять готовую виртуальную машину.
И присобачить драйвер который и будет гипервизором. Он будет перехватывать обращения к запрещённым командам и портам и передавать в виртуалку. Т.е по факту будем виртуализовать только CPU.

Автор:  SII [ 24 авг 2012, 18:50 ]
Заголовок сообщения:  Re: Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"

Видюху, даже простую (типа VGA) -- отнюдь не просто. Ну а современные и вовсе близко к невозможному -- хотя б из-за отсутствия документации. А вот процессор эмулировать как раз особых проблем не составляет -- даже такой дурной, как ИА-32.

Автор:  pavia [ 24 авг 2012, 18:59 ]
Заголовок сообщения:  Re: Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"

Видюху как раз таки несложно. К ней доступ в нормальных ОС идёт через БИОС. Документация есть.
Плюс основные порты. Остальное потом можно доделать. А вот проц, как раз сложнее там фигни много всякой документация неверна или неточна.

Автор:  SII [ 24 авг 2012, 19:10 ]
Заголовок сообщения:  Re: Virtual Machine Monitor (VMM) уровня "Здравствуй мир!"

У каких это осей доступ обычно через БИОС? У МС-ДОС? Даже у хелловорлд-осей, скорей всего, доступ будет в видеопамять. Ну а если делать что-то серьёзнее, чем древний VGA, то сразу проблемы, ведь даже у доисторических S3 были уже примитивные функции ускорения. О современных же графически процессорах и говорить нечего.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/