It seems that the Linux kernel (All POSIX OSs?) contains only 300+ system calls. Does this mean that any OS implementing those APIs (directly or by translation tables) can run software written for Linux (e.g. Firefox)?

If not - what is needed besides that?

Yes, this is a very basic question on a topic I'm only starting out with (OS design). Apparently it's not accepted on StackOverflow, and I was directed here instead. If it's not - please let me know. (And if so, if you know where it does belong, I'll be happy to hear.)


A minimal implementation of Linux's system calls doesn't mean that an application will run correctly. There's much to the semantics of the calls that Linux applications may assume:

  • Linux-specific ioctl and fcntl values
  • Linux-specific virtual files in /sys, /proc, etc.
  • Presence of standard programs in /bin and elsewhere
  • Semantics of running processes such as the init process and (in some cases) DBus etc.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.