← Back to context

Comment by snvzz

2 years ago

>Could be possible to modify lone to run on bare metal instead. Perhaps by replacing the Linux system call code with BIOS I/O functions and replacing the Linux process entry point code with boot code that initializes the CPU and hardware.

Just don't make the mistake golang made. In most systems, the "stable interface to the kernel" isn't the syscall, but the c library.

(re: golang on openbsd)

Absolutely. I've written about this topic and how Linux is different:

https://www.matheusmoreira.com/articles/linux-system-calls

My plan is to target Linux exclusively.

  • I have always found it absurd that Linux insists on stable syscall ABI, and yet does not have a standard driver API.

    Hopefully, the world will migrate to a better system at some point. It will be exactly the opposite: It will not provide a stable syscall ABI, and it will have a standard driver API.

    Incidentally, it'll be microkernel, multiserver.

    Many articles will then be written about the maintenance burden Linux had, and how we should have done this much earlier.

    • I think it's pretty great.

      Unstable kernel ABI gives the Linux kernel enormous leverage: device makers either upstream their drivers under the GPL or they get left behind.

      Stable userspace ABI gives people like me the complete freedom to build anything on top of Linux. I can just discard stuff like glibc and build my lisp user space for the fun of it. Rust programmers can do the same.