Minios-это миниатюрное ядро операционной системы для учащихся разработки операционной системы, которое может работать на 32-разрядном процессоре архитектуры x86. Minios фокусируется на изучении и исследовании основных концепций и основных принципов в разработке операционной системы, а также реализует различные основные подсистемы или модули в операционной системе на основе общего оборудования.
Популярные ядра операционной системы, такие как Linux и FreeBSD, хороши, но они не подходят для начинающих в разработке ядра. С одной стороны, эти ядра операционной системы развивались в течение многих лет и накопили огромное количество кода (ранняя версия Linux Kernel v2.6.12, выпущенного в 2005 году, уже имела около 4 миллионов строк кода). С другой стороны, из -за потребностей приложений в производственных средах эти коды ядра содержат большое количество деталей, которые не связаны с основными принципами операционной системы, что для начинающих трудно понять ключевые моменты. Поэтому, начиная с простого ядра операционной системы с небольшим количеством кода, используя короткое время, чтобы ознакомить себя и овладеть основными понятиями и основными принципами поля разработки ядра операционной системы, овладеть этими основными знаниями до определенного уровня, а затем посвятить себя развитию практических ядров, таких как Linux, является относительно реалистичной и неприятной стратегией для начинающих Kernel. Даже если вы не планируете участвовать в разработке ядра, изучение некоторых базовых знаний о операционной системе с помощью простого в запуска поможет вам написать более надежные и выполняющие приложения.
Minios разрабатывается в основном на основе языка C и языка x86, а используемые инструменты разработки включают:
Среди них Binutils представляет собой набор инструментов для использования двоичных файлов, включая инструменты для создания статических библиотек, инструменты для полосок для удаления таблиц символов из двоичных файлов, чтобы уменьшить размер файла и т. Д.
Minios в настоящее время начинается с дискет -диска, а процесс запуска:
Поскольку Minios является ядром операционной системы для учащихся, в настоящее время он работает в основном в виртуальных машинах, с дополнительными виртуальными машинами, включая Bochs и QEMU.
Запустить Minios в Бохсах
sudo apt-get install bochs под системой Ubuntu для его установки. Сначала вы можете скачать исходный код BOCHS, а затем скомпилировать и установить его. Вы можете выбрать нужную версию BOCHS при установке через исходный код.tar zxvf misc/80m.img.tar.gz . , и распаковывать изображение жесткого диска из пакета сжатия изображения жесткого диска.bochs в текущем каталоге, чтобы запустить виртуальную машину Bochs. Bochs сначала прочтет информацию о конфигурации из файла BOCHSRC, а затем подтвердит информацию о приглашении на выполнение, предоставленную BOCHS, чтобы Minios запустить в BOCHS.Запустить Minios в Qemu
sudo apt-get install qemu-system-x86 в системе Ubuntu для установки, или вы можете загрузить исходный код QEMU для компиляции и установки.tar zxvf misc/80m.img.tar.gz . , и распаковывать изображение жесткого диска из пакета сжатия изображения жесткого диска../launch-qemu.sh в текущем каталоге, чтобы запустить виртуальную машину Qemu, а затем Minios начнет работать непосредственно в QEMU. Виртуальная машина QEMU не использует файл конфигурации, такой как BOCHSRC. Информация о конфигурации указана через параметры командной строки. Script Launch-Qemu.sh содержит используемые в настоящее время параметры конфигурации. Minios можно отладить на уровне сборки, используя функцию отладки, включенную в Bochs или QEMU, но этот метод отладки не очень удобен для использования, потому что программа сборки длинная и трудная для чтения. К счастью, и Bochs, и QEMU имеют встроенную поддержку GDB. Объединяясь с функцией удаленной отладки, предоставленной GDB, Minios можно отлаживать в исходном коде C.
Отладка Minios с Bochs+GDB
./launch-bochs-gdb.sh в справочнике источника Minios. Скрипт работает с Shell запускать GDB в новом окне терминала и загрузить версию отладки двоичного файла ядра.target remote :2345 в командном интерфейсе GDB, чтобы установить соединение с BOCHS.Отладка Minios с QEMU+GDB
./launch-bochs-gdb.sh в справочнике источника Minios. Скрипт работает с Shell запускать GDB в новом окне терминала и загрузить версию отладки двоичного файла ядра.target remote :1234 в командном интерфейсе GDB, чтобы установить соединение с QEMU. # 编译 MiniOS 内核和用户程序 init,并写入到软盘镜像 a.img 中
make image
# 清除所有 .o 目标文件
make clean
# 清除所有 .o 目标文件和可执行文件
make realclean