Hacker News new | ask | show | jobs
by wavesum 3993 days ago
Why so many duplicates? For expample int nosys() is listed 185 times, each pointing to bsd/kern/subr_xxx.c
2 comments

Because when you remove items from that list or otherwise change the order, you break binary compatibility.

The C library specifies the index into this table when making a syscall. You don't want a situation where the C library and the kernel are mismatched and disagree about what the syscalls are.

The safe way to remove a syscall is to change it to return ENOSYS. All the syscalls that come after it in the table therefore retain the same index.

nosys() is a stub which simply [EDIT: raises SIGSYS then] fails with ENOSYS, i.e. "syscall not implemented".