Я хочу перенести ядро xnu
на архитектуру ARM с конечной целью - иметь возможность запускать полное ядро внутри Qemu. Хотя я понимаю, что это очень сложная задача, я все же хочу попробовать ее.
Насколько мне известно, вы должны написать точку входа для ядра ( osfmk / arm / start.s
), где вы выполняете общую инициализацию (MMU и PlatformExpert), после чего Kext Подсистемы / IOKit могут быть запущены и загружают специфичные для ЦП расширения (например, ловушки, GPIO, часы), которые либо предварительно связаны с двоичным файлом, либо загружаются загрузчиком (, потому что ядро не может взаимодействовать с файловой системой из-за NAND расширения пока не доступны ).
Хотя у меня есть общее представление о том, как работают процессоры ARM, я даже не знаю, с чего начать работу с портом xnu
, потому что не совсем уверен, как:
osfmk / kern
работает). machine_startup ()
); ] osfmk / platform_name
, но некоторые из них должны быть интегрированы в osfmk / kern
и другие). Есть ли какие-нибудь достойные руководства по портированию ядра XNU (или, по крайней мере, Mach ) на разные платформы, как и руководства для Linux?