Microkernel thing OS experiment (Zig ⚡)
1const std = @import("std"); 2const os = @import("os.zig"); 3 4export fn _start() callconv(.c) noreturn { 5 // _ = os.syscall1(SYS_poke, 0xB16B00B5BADBABE); 6 // _ = os.syscall1(SYS_exit, 0x69696969); 7 asm volatile ("int3"); 8 asm volatile ( 9 \\ mov $0x69696969, %%rdi 10 \\ xor %%rsi, %%rsi 11 \\ xor %%rbx, %%rbx 12 \\ mainloop: 13 \\ xor %%rax, %%rax 14 \\ delayloop: 15 \\ inc %%rax 16 \\ cmp $0x4000000, %%rax 17 \\ jnz delayloop 18 \\ inc %%rbx 19 \\ syscall 20 \\ jmp mainloop 21 ); 22 23 die(); 24} 25 26pub inline fn die() noreturn { 27 while (true) {} 28} 29 30pub const SYS_exit = 0x420; 31pub const SYS_poke = 0x69;