Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Okay, how do you propose to talk to your kernel then?


Who wants a kernel? Distribute a bootable unikernel image that can be talked to via gRPC or something.

Obviously there are plenty of things you can't build that way (e.g. drivers), but for a server application that's intended to be accessed over the network anyway, like Clickhouse, I'm increasingly thinking that's the way to go.


Over an spsc queue (unfortunately you cannot mmap this way yet, and you cannot set up the spsc queue itself this way)


Io_uring?


Your kernel will likely have well defined interfaces. You don't need libraries to talk to the kernel.


But how can you use those interfaces without an ABI?

Fundamentally, an ABI is the way you define interfaces.


Except for Linux, those well-defined interfaces sit behind a C API.


Not really - Linux syscalls are stable, so you are free to run your binary with a statically compiled libc and never touch the installed one. You can also handcraft your syscalls in assembly.

This will not work on Windows, where the kernel API is a DLL and syscall numbes are routinely changed.


That's what I said - on Linux the syscall API is stable while on all other OSes you have to go through libc to talk to the kernel.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: