System calls

User space code interacts with the objects in kernel space using system calls. Zircon has system calls to perform low-level operations such as:

  • Memory management
  • Task and process management
  • Inter-process communication (IPC) and synchronization
  • Exception handling
  • Hardware support services (clocks, entropy, device I/O)

User space processes access system calls through libzircon.so — a virtual Dynamic Shared Object (vDSO). The Zircon vDSO is a shared library in ELF format that the kernel maps into the address space of each new process. This library is considered “virtual” because it is exposed directly by the kernel image rather than being loaded from a file.

Most system calls operate directly with one or more handles — process-local references to objects living in kernel space represented as a 32-bit integer (zx_handle_t). Each handle declares the privileges, or rights, the holder has to perform actions on the handle itself or the referenced object.