Разработка ядер и тестирование их в виртуальных машинах

Если есть только одна строка, содержащая ваш список в виде строки, и это первая строка, я бы посоветовал вам попробовать это

fil = open('y.txt', 'r', encoding="utf-8")
lis = eval(fil.readlines()[0])

, теперь вы сможете использовать список - [111 ]

Дайте мне знать, сработало ли это.

8
задан Ólafur Waage 16 March 2009 в 11:38
поделиться

5 ответов

В то время как BOCHS, кажется, лучше в сообщении, когда что-то идет ужасно неправильно с Вашей любимой ОС... это очень slooooow! Я использую VirtualPC для тестирования общего назначения и BOCHS, когда вещи становятся темными.

Кроме того, Вы будете больше, чем, вероятно, загружать ОС каждые 2 минуты, таким образом, она поможет иметь своего рода автоматизированный способ создать загрузочный образ и исчерпать Виртуальный ПК.

Я создал изображение загрузочной дискеты GRUB со всем необходимым материалом, чтобы заставить это загружать Ядро. Мусорное ведро от корня. Я использую пакетный файл, чтобы скопировать этот файл в виртуальный каталог проекта, использовать Генератор Изображения FAT для копирования моего ядра в изображение. Затем просто запустите проект VirtualPC. Vola!

Выборка от моего пакетного файла:

COPY Images\Base.vfd Images\Boot.vfd /Y
fat_imgen.exe modify Images\Boot.vfd -f Source\Bin\KERNEL.BIN
COPY Images\Boot.vfd Emulators\VirtualPC\ /Y
START Emulators\VirtualPC\MyOS.vmc

Одно последнее предложение: Установите приоритет процесса VirtualPC на низкий - доверяют мне на этом! Я был бы рад обмениваться некоторым кодом!

Инструменты: DGJPP, NASM, GRUB.
Код: osdev.org, osdever.net

11
ответ дан 5 December 2019 в 14:06
поделиться

Вы могли бы интересоваться рассмотрением HelenOS. Это с нуля микроядро, которое было портировано ко многой архитектуре (начальные загрузки очень хорошо на чистом металле) разработанные средства моделирования использования, такие как Simics и QEMU.

Мы используем статическую личинку, которая копируется в заключительный ISO во время процесса сборки. Некоторыми вещами просто должен быть тот путь, пока ОС не становится сам хостинг. Я настоятельно рекомендую не реализацию Вашей собственной библиотеки C пространства пользователя, если Вы действительно не хотите сделать все с нуля.. Вы станете сам размещающий намного раньше :)

Хотя Simics несвободен, я настоятельно рекомендую его (и его созданный в отладке/профилировании инструментов) при создании ядра. После того как у Вас есть некоторая консоль ядра и регистратор на месте, QEMU делает очень хорошее задание.

1
ответ дан 5 December 2019 в 14:06
поделиться

Это просто. Настройте виртуальную машину, запишите свое ядро, скопируйте его в виртуальную машину, загрузите виртуальную машину.

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

0
ответ дан 5 December 2019 в 14:06
поделиться

Первый вопрос, который необходимо задать сами, - то, для какой аппаратной архитектуры Вы нацелены? Я предположу ради этого обсуждения, что Вы нацелены на архитектуру IA_32, которая, вероятно, была бы мудрым выбором, поскольку существует много легко доступной документации относительно того процессора.

Если Вы будете действительно серьезно относиться к этому обязательству, то Вы определенно захотите выполнить Ваш отлаживать/кодировать/создавать/развертывать цикл против эмулятора или VM. Кто-то упомянул BOCHS, которая очень популярна. Если скорость эмуляции является Вашей вещью, существует также эмулятор под названием Qemu, который быстрее, чем BOCHS.

Я предположил бы, что Ваша среда разработки работает в соответствии с Linux или Windows, который снова, вероятно, будет мудрым выбором из-за доступной документации для тех dev сред.

Сделайте Ваш друг. Используйте его для автоматизации создавать/выполнять процесса. Я советовал бы Вам выбирать свои наборы инструментов/компиляторы впереди и проводить некоторое время, изучая их хорошо. Это сохранит Вас в конечном счете.

0
ответ дан 5 December 2019 в 14:06
поделиться

Вероятно, просто настраивание машины (x86, я предполагаю), и затем занимается расследованиями точно, как оно ведет себя во время начальной загрузки. Должно быть один или несколько файлов в файловой системе хост-машины, которые действуют как файловая система виртуальной машины, и затем необходимо было бы поместить некоторую информацию о загрузочном секторе там, которая заставляет ядро в разработке загружаться.

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

Выбирая один наугад, bochs, кажется, поддерживает редактирование загрузочного носителя от внешних использующих стандартных инструментов как dd и т.д.

0
ответ дан 5 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: