OSDev

для всех
Текущее время: 30 апр 2024, 06:13

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 24 авг 2012, 15:24 

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 15:29 
Аватара пользователя

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

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 15:31 
Аватара пользователя

Зарегистрирован: 14 май 2012, 22:17
Сообщения: 101
А я всегда считал,что VMM это Virtual memory manager. Наверно отстал от жизни...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 15:32 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Причём разделить железо в общем случае невозможно, а виртуализировать на ПК -- крайне сложно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 18:14 

Зарегистрирован: 24 авг 2012, 15:10
Сообщения: 7
Yoda писал(а):
необходимо виртуализировать и всё аппаратное обеспечение компьютера

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 18:25 
Аватара пользователя

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

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

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 18:44 
Аватара пользователя

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

9х5
4х30
2х100

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 18:50 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Видюху, даже простую (типа VGA) -- отнюдь не просто. Ну а современные и вовсе близко к невозможному -- хотя б из-за отсутствия документации. А вот процессор эмулировать как раз особых проблем не составляет -- даже такой дурной, как ИА-32.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 18:59 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 19:10 

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB