где можна почитать про написание вирт. машин а также взаимодействие с ними, интересна теор. часть и практическая??
Есть три(2 с половиной) способа : 1) Смотреть исходники и документацию(обычно ее мало) на проекты с открытым кодом. 2) Подключится в один из этих проектов. 3) Быстро прочитать и понять intel manuals и наняться в коммерческую контору, ибо по другому вас к документации не допустят.
виртуальная машина - вариант конечного автомата, начальные состояния которого определяются п-кодом этой виртуальной машины. те теория вм (железных хард или софт процессоров/мк тоже) == теория автоматов первые виртуальные машины, а в какойто мере и часть современных эмулируют некий, не обязательно существующий, не обязательно полностью, процессор наиболее простые п-код машины работают на основе стека, обратной польской нотации и словарей (переменные/функции). таких машин подавляющее большинство. чтоб потренироваться в понимании их работы неплохо попрограммировать на форте/постскрипте. есть и более простые и боле совершенные архитектуры, но их лучше рассматривать опосля для начала (после разборок/сборок автоматов ак до 10сек на все про все и чтения всяких книг по написанию компилеров (в основном на ен)), таки да, как советует valterg, стоит посмотреть сорцы какой нибудь очень простой вм. в сети довольно часто попадаются учебные интерпретаторы. гдето и у меня валялось несколько. и чтото вспоминается, что в книжке "программное окружение юникс" кернигана и пайка поэтапно, в куче глав, приводится разработка простого интерпретируемого языка. те фронтенда этого языка + виртуальной машины к нему. фронтенд на яцц.
только щас сообразил, что разговор о х86-пс виртуализации.. извините, перепутал. есть сорцы борща, кемы и vx32. vx32 не полноценная виртуалка, а библиотека для виртуализации x86-32. умеет лоадить ельф-файлы
XshStasX если бы все так просто. проэмулить х86 это только начало. вам надо проэмулить какойнить комплект железа. незаметно для того что вы гонять потом будете
А кто-то знает хотяб базовые примеры, эмуляци, тоесть литерату для старта(пусть даже на анг. языке) ?
XshStasX это у вас лабы такие? туторов - "пишем пс - виртуалку на 1, 2, 3" нету. если об этом и писалось чтото дельное, то немного и отрывками. отрывки эти искать.. ну я вам дал наводку для начала парой постов вверх. вообще, эмули применяются не только в виртуалках. эмуль проца - это фактически 1) структура представляющая регистровую структуру проца 2) декодер (дизассемблер) команд 3) куча функций вызываемых декодером. по функции на команду (включая ее варианты) эмуль компа - это 1) массив эмулирующий память 2) набор перехватчиков для эмуляции портов устройств 3) блок для эмуляции прерываний/исключений 4) всякие биосы и прочее эмуль проца лучше промоддить готовый. если не хотите готовый - я б вам советовал эмулировать какойнить минимально достаточный постарее. например, 486 с железом тоже самое. чем проще и старее, тем больше вероятности, что вы доживете до конца работ. например, чипсет к 486 на иса плате. видюха - строгая стандартная вга или веса в 24рех битном страничном режиме одного разрешения буков по такому железу вы найдете. возможно, и экзампловых эмулей тоже