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
.
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