Эксперимент по созданию ядра мобильной операционной системы

Сегодня я расскажу о своем эксперименте по созданию ядра мобильной операционной системы с нуля. Основная цель — это, конечно, интерес и развлечение. В процессе я наткнулся на множество статей о разработке десктопных ОС и решил попробовать свои силы с мобильной платформой. Для этого мне понадобится смартфон с разблокированным загрузчиком и возможность подключения UART-адаптера. Я выбрал Xiaomi Redmi Note 7 с ARMv8 архитектурой, так как для него доступны исходники ядра.

Процесс загрузки начинается с выполнения встроенного кода Primary Bootloader, который затем передает управление вторичному загрузчику. Затем загружается Application Bootloader, который подготавливает ядро к запуску. Я использую язык Rust для написания ОС, а сборку проекта проверял на Ubuntu.

Ядро будет полностью самодельным, без использования Android или Linux. Для создания минимального образа потребуется упаковать ядро в формат Android Boot Image. Процесс включает в себя сборку, сжатие и добавление DTB файла.

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

Понравилась статья? Поделиться с друзьями: