Portable Operating System Interface (POSIX)

Saw this term before. Read it again in an NVIDIA documentation page.

POSIX is a family of standards specified by the IEEE Standard.

Linux and POSIX?

While Linux is not “certified” as POSIX-compliant, it implements many of the POSIX standards

A POSIX-compliant operating system implements the APIs, utilities, and shell behavior defined by the POSIX standards. Compliance ensures that software written to target POSIX APIs can run on any compliant system with minimal or no modifications. The core areas that POSIX covers include:

  1. File System Operations: Standard interfaces for working with files and directories (open(), read(), write(), close(), stat(), etc.).
  2. Process Control: APIs for creating and managing processes (fork(), exec(), wait(), etc.).
  3. Inter-Process Communication (IPC): Mechanisms like pipes, message queues, semaphores, and shared memory (pipe(), msgget(), shmget(), etc.).
  4. Signals: Support for signal handling and delivery (kill(), signal(), sigaction(), etc.).
  5. Threads: Multithreading via POSIX Threads (pthread_create(), pthread_join(), etc.).
  6. Terminal I/O: Standardized behavior for terminal input and output (tcsetattr(), tcgetattr(), etc.).
  7. Networking: Sockets for network communication (socket(), bind(), listen(), connect(), etc.).