#include "core/syscall.h" #include "arch/traps.h" .code64 .section .text .global start start: lea init(%rip), %rdi lea argv(%rip), %rsi mov $SYS_exec, %rax syscall exit: mov $SYS_exit, %rax syscall jmp exit // The kernel's very first exec. There is no fallback and there deliberately // is not one: /bin/init was the older, hardcoded fork-a-shell process 1, it was // unreachable from the day this string changed, and an unreachable fallback is // a thing that rots rather than a thing that saves you. init: .string "/bin/schinit" .p2align 3 argv: .quad init .quad 0