Основываясь на архитектурах树莓派3 и ARMv8-AArch64 , внедрено ядро микро операционной системы.
Проект организован в виде overview + subprojects . overview хранит весь код. Каждый subproject использует эти коды в соответствии с его собственными потребностями, включая фильтрацию ненужных файлов (исключая их из компиляции).
Проект разработан с использованием современного языка C++ , а основной целевой архитектурой является ARMv8 . Компилятор, используемый проектом, является g++ , поэтому код будет содержать некоторые синтаксические расширения g++ , такие как __attribute__ , __asm__ .
Кроме того, компиляция
Этот проект основан на eclipse ( version > = 4.6.3 ). При компиляции вам нужно использовать соответствующую версию eclipse . В Windows , Linux или MacOS выберите File -> Open Projects from File System -> Нажмите Directory , выберите каталог, где находится проект, и открыть -> Finish
Проект имеет несколько подпроектов, в основном: host , qemu_virt , raspi3 и user_space .
Соответствующие цели (архитектура) этих конфигураций: разработка на основе операционной системы хоста (в основном используется для тестирования управления памятью и других независимых от архитектуры функций), разработка на основе моделирования QEMU (используемое для тестирования виртуальной памяти, прерывания и т. Д.), Развитие на основе Raspberry Pi 3 (используется для полной версии) и программу в пространстве пользователя.
Все подпроекты расположены под субпроектами.
Проект настроил некоторые специальные строительные цели. См. Build Targets для проекта.
В ядре избегать использования глобальных переменных может фактически использовать специально для инициализации всех глобальных переменных, которые необходимо определить. Эти переменные удобны для использования только потому, что они уже выделяли пространство в течение периода компиляции. Если вам нужно использовать его, определите его один раз в определении и переопределите его один раз в функции инициализации.
Если конфигурация проекта изменена, новая командная строка должна быть перезапущена, потому что все среды Eclipse будут экспортированы.
Обзор прогресса в проекте Ссылка на прогресс ogress_current.md
Справочная запись записи проекта_NOTE.MD
Структура и конфигурация подпроектов см. В субпроектах/readme.md
В процессе (может быть, MIT-LICENCE, но может быть снова закрыт, теперь он наполовину открыт и наполовину закрытый).
Нет, сделайте это Posix вместо этого.
Следуйте некоторым правилам кодирования, на которые здесь можно ссылаться
Прочитайте документ, который может быть опубликован позже
Использование QEMU для отладки некоторой программы демонстрации
Попробуйте изменить код ядра, повторить.
Затем git добавить -a && git commit && git push!
Смотрите здесь, также см. Внешний документ.
RSP3-Armv8-Baremital, оригинальный проект.
Linux, Linux, официально.
Qemu, эмулятор, который очень помогает.
GVISOR, пользовательский пространство ядра, от Google, в Go.
Пользовательский режим Linux (UML), как говорится в его названии.
X2, древнее ядро на Бох.
Учебник RASPI3, BZT, очень полезный для начинающих.
ARMV8 Hello World, Hello World Пример для ARMV8, основанный на QEMU, полезно для начинающих.