4 ms·
IMhO, experimental OSes greatly benefits from supporting _some_ way of running _some_ Linux binaries - it solves the bootstrap problem and makes it so much easi
by FullyFunctional 4y ago
IMhO, experimental OSes greatly benefits from supporting _some_ way of running _some_ Linux binaries - it solves the bootstrap problem and makes it so much easier to explore the system.
OT: I always felt the synchronous system call model is very dated. All high performance systems I know of (say, GPUs, NVMe, NFSv4, etc) all use a similar async command list model. Each exchange package up as much as possible and more work is done per context switch. Instead in Linux we just get an ever growing list of compound system calls (like pwritev, pwrite64, renameat). There's some hope with io_uring and ebpf, but it really should just be general mechanism. There's no need for a context switch outside of exceptions (like page fault) or blocking on completions for commands.
- anonymousDan 4y agoWhat do you mean by a 'compound' system call out of interest? Something that should by rights be split into multiple simpler calls?
- wyldfire 4y agoThose system calls shown as examples pass a list of buffers to be read into / written from. [1] https://man7.org/linux/man-pages/man2/readv.2.html https://man7.org/linux/man-pages/man2/readv.2.html
- meltedcapacitor 4y agoIsn't io_uring that general mechanism? One could probably implement a Linux-compatible kernel that only implements io_uring (and only whatever sync calls are required to set it up). May not run many precompiled executables at the moment but maybe an interesting research direction.
- mrtweetyhack 4y ago[dead]