4 ms·
All "work" you want to do that interfaces with anything on an OS is handed off to the kernel; want to read a file? kernel, want to sleep for a while? kernel, et
by tankenmate 4y ago
All "work" you want to do that interfaces with anything on an OS is handed off to the kernel; want to read a file? kernel, want to sleep for a while? kernel, etc. Besides things like network traffic is also asynchronous like io_uring (even if the socket() interfaces make it look somewhat synchronous). Outside of toy system asynchronicity is always a thing, especially when running on multiple cores.
I kind of get where you are coming from but at the same time, the kernel always gets the last say, so as long as io_uring has a good design and implementation it will always be just as good or bad as the OS as a whole. Whether run of the mill programmers are up to the task of being able to properly conceptualise and use such an OS is probably not the same thing.
- jeffbee 4y agoYeah but it's not well-designed, that's my point. It has obliviously shrugged off the tricky question of object lifetime, that's why it has already collected 16 different CVEs for things like use-after-free. Considering its short history, io_uring has already rocketed to the top of the list of dangerous kernel features.
- nathants 4y agowith linux 6.0, lsm got the ability to filter io_uring. deny all and carry on.
- insanitybit 4y agoCan you provide a source? Eager to read about how this is done.
- nathants 4y agohttps://github.com/torvalds/linux/blob/d47136c2801540e80f41ec7e063d8d592568ad76/include/linux/lsm_hooks.h#L1589 https://github.com/torvalds/linux/blob/d47136c2801540e80f41e...
- insanitybit 4y agoAre they just going to keep adding hooks to every new system call implemented for io_uring?
- nathants 4y agomy understanding is that this hook is the only one, but to properly secure io_uring one has to implement a check for every call here. or just disable it.