Может кому-то будет интересно. Вынул из ядра 47k строк кода, для того чтобы запустить ls (из состава BusyBox). Т.е. в текущем виде код стартует, распаковывает корневую файловую систему и ее можно увидеть с помощью единственных реализованных системных вызовов. Интересно было реализовать механизм инициализации памяти, прерываний и т.д.
one file linux
Simple OS for ARM64 (aarch64) architecture.
* Follow standard guide to prepare build and test environment (for ordinary ARM64 Kernel)
* Run ./build_it.sh
* Run qemu
qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -nographic -smp 1 -m 512 -kernel ./arch/arm64/boot/Image --append "console=ttyAMA0"
* Only couple syscall now working: for testing enter ls
* Close qemu by CTRL-A and X after that
С английским у меня не очень, если где-то в приведенном описании написал ерунду, прошу сообщить. Планирую опубликовать посты на буржуйских ресурсах, чтобы найти единомышленников. Может получится довести до ума систему в учебных целях.
P.S. Код ужасен. При компиляции, сыпется куча ворнингов.