OSDev

для всех
Текущее время: 28 апр 2024, 15:27

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как ограничить Bochs режимом intel 8086
СообщениеДобавлено: 02 окт 2013, 12:09 

Зарегистрирован: 05 сен 2013, 10:01
Сообщения: 8
Всем доброго времени суток!

Есть установщик Minix3, который может установить систему даже на intel 8086. (так заявлено)
Как сделать так чтобы при установке он воспринял процессор виртуальной машины Bochs как 8086 и
установил соответствующий вариант системы?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 окт 2013, 20:21 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
Разве minix, тем более 3 (!), работает не в защищенном режиме? Которого в 8086 не было и в помине? Может имеется в виду всё же х86?

8086 - это реальный режим с 20-разрядной адресной шиной, максимум 1 Мб ОЗУ, адресуемой сегментами по 64 Кб. Миникс там просто не сможет работать. Скорее всего имеется в виду 80x86 под которым понимают, в контексте установки minix, семейство процессоров начиная с 386. Minix - это микроядро, которым Таненбаум усилино тыкал в Торвальдса во время их известной перепалки, а соотвественно использует все плюшки защищенного 32-разрядного режима


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 окт 2013, 04:36 

Зарегистрирован: 05 сен 2013, 10:01
Сообщения: 8
Точно...
Проц должен быть не ниже 80386.
А вот компилятор может быть и 16-разрядным, поэтому в исходниках
постоянно и натыкаюсь на условную компиляцию.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 окт 2013, 06:47 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
Что касается собственно поднятого вопроса, то таки да, в Bochs есть возможность эмулировать именно нужный проц
Bochs User Manual. Chapter 4. Setup писал(а):
4.2.5. cpuid

Example:

cpuid: level=6, mmx=1, sep=1, sse=sse4_2, apic=xapic, aes=1, movbe=1, xsave=1

This defines features and functionality supported by Bochs emulated CPU:

level

Set emulated CPU level information returned by CPUID. Default value is determined by configure option --enable-cpu-level. Currently supported values are 5 (for Pentium and similar processors) and 6 (for P6 and later processors).

family

Set family information returned by CPUID. Default family value determined by configure option --enable-cpu-level.

model

Set model information returned by CPUID. Default model value is 3.

stepping

Set stepping information returned by CPUID. Default stepping value is 3.

vendor_string

Set the CPUID vendor string returned by CPUID(0x0). This should be a twelve-character ASCII string.
.
.
.

и это далеко не полный список параметров, которые можно задать для CPU в Bochs. Полный - тут

Что касается используемого мною QEMU, то там есть параметр запуска -cpu которым можно включить необходимый проц, например так у меня стартует qemu для отладки

Цитата:
$ qemu-system-x86_64 ~/PhantomEx/hdd/hdd.img -m 1024 -cpu pentium2 -rtc base=localtime -S -s > /dev/null &


У других ВМ возможности выбора архитектуры CPU ещё более скоромные. Бокс канеш впереди планеты всей, если бы ещё такой медленный он не был...

Однако, Bochs эмулирует процессоры начиная с 386, так что посмотреть 8086 и 80286 на нем не выйдет, а жаль - с познавательной точки зрения меня лично интересует защищенный режим в процессоре 286


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 окт 2013, 01:14 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 209
> если бы ещё такой медленный он не был...
Вечный trade-off между точностью и скоростью, всё норм.
> а жаль - с познавательной точки зрения меня лично интересует защищенный режим в процессоре 286
Экая некрофилия в сочетании с мазохизмом. Что ж, у меня первая мысль - попробовать DosBox, не удивлюсь если там PM16 работает. А, хотя если тебе надо чтобы при этом он полностью работал как 286 (без возможностей 386), то хм, вопрос. Когда-то давно были реальные железки с этим, но раздал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 окт 2013, 01:54 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
maisvendoo писал(а):
Однако, Bochs эмулирует процессоры начиная с 386, так что посмотреть 8086 и 80286 на нем не выйдет, а жаль - с познавательной точки зрения меня лично интересует защищенный режим в процессоре 286

Но в i386 поддерживается защищённый 16-битный режим i286 в полном объёме, можно использовать. Причём защищённый режим у них очень разный. Для чистоты эксперимента можно в компиляторе своей ОС задать тип целевого процессора i286, тогда всё будет точно 16-битное, без вариантов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 окт 2013, 08:43 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 209
> Но в i386 поддерживается защищённый 16-битный режим i286 в полном объёме, можно использовать.
Казалось бы, и во всех последующих тоже. Но есть нюанс. Например, что настоящий реальный режим был только у первых 8086/8088 (ну и 80186), а дальше (с i386 точно) уже идёт аппроксимация реального с помощью средств защищённого ( http://www.os2museum.com/wp/?p=319 ). Быть может, между PM16 286 и PM16 последующих процессоров есть какая-то разница. Быть может, дело лишь в наборе инструкций. В общем, интересный вопрос - зачем maisvendoo хочет ограничиться 286, если фичи его можно использовать и на последующих.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 окт 2013, 10:12 

Зарегистрирован: 31 июл 2013, 09:40
Сообщения: 28
А бочс юзает интерпретацию или JIT-компиляцию инструкций?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 окт 2013, 10:28 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 209
А книжку почитать? Интерпретацию, но с весьма хитрыми^W эффективными оптимизациями.
http://bochs.sourceforge.net/How%20the% ... dition.pdf
http://bochs.sourceforge.net/Virtualiza ... _Final.pdf

И почему "или"? Обычно подходы сочетают. Хотя всякое бывает, например, в v8 говорят что нет интерпретации вообще, только два JIT-компилятора.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 окт 2013, 14:27 

Зарегистрирован: 31 июл 2013, 09:40
Сообщения: 28
За ссылочки спасибо. Просто я до этого писал только интерпретатор игрушечного языка на dotNet, поэтому "или".

Кстати, "или" ещё потому, что непонятно, как работает JIT с самомодифицирующимся кодом.

----UPDATE------
Понял, как


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

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


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

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


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

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