POSIX emulation

libphoenix provides POSIX API enabling users to build and run portable POSIX applications. The emulation layer is built upon Phoenix-RTOS native messaging API and a dedicated server (posixsrv).

The purpose of posixsrv is to store data that can be shared between processes, i.e.:
- keep track of file descriptors and their mapping to open files
- manage standard IPC mechanisms: pipes, UNIX sockets
- provide UNIX 98 pseudoterminals
- dispatch events for efficient poll()-like functions

It also registers and handles special files, such as /dev/null or /dev/random.

In the current implementation some parts of posixsrv functionality is kept inside the kernel and accessed using a set of system calls. Future implementations will instead delegate requests directly to posixsrv.

Source code

The source code of posixsrv is available on github and can be obtained using the following command:

git clone https://github.com/phoenix-rtos/phoenix-rtos-posixsrv