эмулятор x86 для обучения встраиваемой разработке - PullRequest
8 голосов
/ 17 января 2010

Я хочу узнать больше о внутренней работе компьютера, чтобы расширить свои знания о развитии встроенных систем.

На работе я никогда не связываюсь с деталями низкого уровня (такими как GDT, загрузчик кода из флэш-памяти в RAM и т. Д.), Так как все это уже написано.

Я бы предпочел не покупать другое оборудование в настоящее время. Есть ли эмулятор и очень простая ОС, с которой я могу поиграть, чтобы справиться со всеми этими низкоуровневыми аспектами встроенного программирования? Есть ли учебник, который поможет мне настроить очень простую встроенную среду (установить сегменты памяти, GDT, перейти в защищенный режим и выполнить main())

Ответы [ 4 ]

6 голосов
/ 17 января 2010

Обычные подозрения для эмуляторов x86 будут Bochs и QEMU .

Возможно, вы также захотите взглянуть на руководство по разработке ядра Джеймса Моллоя и ресурсы, на которые оно ссылается.

2 голосов
/ 17 января 2010

Для нашего курса по операционным системам в настоящее время мы используем игрушечную ОС под названием КАРТОФЕЛЯ . Это довольно простой и AFAIK, основанный на учебниках по ядру Джеймса Моллоя. Вы могли бы взглянуть на это здесь .

Кроме того, я могу порекомендовать форумы Wiki и на OSdev.org.

Счастливого взлома! :)

Редактировать: Хорошую информацию об архитектуре x86 можно найти в томе 3 руководства Intel IA-32 Architectures Software для разработчиков . В томе 1 представлена ​​базовая архитектура, а в томе 2 вы найдете полную ссылку на набор инструкций по сборке x86.

1 голос
/ 18 января 2010

Возможно, вам лучше использовать настоящую встроенную машину. Среда разработки для Arduino очень дорого стоит, и вы начинаете работать над металлом: http://www.sparkfun.com/commerce/product_info.php?products_id=9284

AVR - разумное начало в этом пространстве, а x86 - нет.

1 голос
/ 17 января 2010

В разработке встроенных систем эмулятор имеет очень специфическое значение; Вы на самом деле говорите о "симуляторе"? Но если вы разрабатываете на x86, и имитатор набора команд не нужен и ограничен, когда вы можете вместо этого использовать виртуальную машину.

На самом деле, если вы хотите " очень простую встроенную среду ", вы бы не выбрали x86. Начальная загрузка и настройка этих сложных устройств (и связанных с ними наборов микросхем и памяти) нетривиальна.

Если ваша платформа x86, то самое простое - использовать виртуальную машину, работающую на реальном x86. Самая гибкая и надежная виртуальная машина доступна бесплатно от VMWare , а другая бесплатная от Microsoft . Виртуальный ПК Microsoft, тем не менее, оптимизирован для работы под Windows, поэтому заставить Linux работать на нем может быть проблематично, не говоря уже о некоторой нише ОСРВ.

...