ls, cd and so on. Small tools with limited features. Unix approach.

Something like ls still relies on sys-calls. If they change in the future someone would have to still update it right?

So even if you have a working C-compiler in the far future, so that you can compile ls on new operating systems or whatever, even this simple application requires maintenance?

> relies on sys-calls

No, the rely on POSIX[1][2]. Syscalls are an implementation detail handled by the compiler. Programs (like 'ls' and the rest of coreutils) that conform[3] to the POSIX standard should continue to work in future POSIX compatible operating systems.

If future operating systems deliberately introduce changes that break POSIX, then some work will be required to port the programs to the new environment. However, this type of porting process is really implementing a new feature. The original finished version isn't affected and shouldn't need maintenance.

[1] https://en.wikipedia.org/wiki/POSIX

[2] Other standards are also important, but I am only mentioning POSIX for brevity.

[3] https://github.com/coreutils/coreutils "Like the rest of the GNU system, these programs mostly conform to POSIX, with BSD and other extensions."