From cf5672399eedbfc231fbf650e9bfb944f34e87a2 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Wed, 17 Sep 2025 18:10:33 -0400 Subject: kern: init: Load /usr/sbin/init after boot Signed-off-by: Ian Moffett --- src/sys/os/os_init.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/sys/os/os_init.c b/src/sys/os/os_init.c index 3772229..f244a75 100644 --- a/src/sys/os/os_init.c +++ b/src/sys/os/os_init.c @@ -1,14 +1,17 @@ #include #include #include +#include #include #include +#include #include #include #include #include struct pcore g_bsp; +struct proc g_rootproc; static void boot_print(void) @@ -23,6 +26,9 @@ boot_print(void) __dead void main(void) { + struct loaded_elf elf; + struct pcore *core; + int error; acpi_early_init(); @@ -37,6 +43,17 @@ main(void) bsp_ap_startup(); sched_init(); + core = this_core(); + proc_init(&g_rootproc, 0); + core->curproc = &g_rootproc; + + error = elf_load("/usr/bin/init", &g_rootproc, &elf); + if (error < 0) { + panic("could not load init\n"); + } + + md_set_ip(&g_rootproc, elf.entrypoint); + md_proc_kick(&g_rootproc); panic("end of kernel reached\n"); for (;;); } -- cgit v1.2.3