| ▲ | PhilipRoman 8 hours ago | |||||||||||||||||||||||||
I think the number is mostly meaningless even if we ignore whether they're distinct or not. Consider ioctl() - it's a single syscall but if I remember correctly the number of subcommands is in the thousands. | ||||||||||||||||||||||||||
| ▲ | Joker_vD 8 hours ago | parent | next [-] | |||||||||||||||||||||||||
Yes, the ioctl has been notorious for sneaking in arbitrary amount of functionality into the kernel space, and serving generally as a kitchen sink: "You can rarely convince Linus to make a new syscall, but making a new ioctl is much easier". That's still one syscall though. And how do you even compare how the distinct the syscalls are (e.g., pipe() and open() are about 70% similar)? And after that, what do you do with this metrics? How do you sum it up? Again, pipe() and open() are 70% similar — does that mean we have 1.3 syscalls instead of 2? | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | adrian_b 8 hours ago | parent | prev [-] | |||||||||||||||||||||||||
That's right. Moreover, for a large number of traditional Linux syscalls (including the many variants of read/write/send/recv) there are now better alternatives that are invoked as subcommands of a single syscall: io_uring_enter. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||