Linux apps
How existing Linux programs are planned to run on DurgX.
Important
Linux compatibility is planned. It is not available in v0.1-alpha.
DurgX's kernel does not speak Linux. A separate program, the POSIX shim, receives a Linux program's system calls and translates them.
| A Linux program asks to | The shim does |
|---|---|
| read, write or open files | Sends the request to the file system server. |
| map memory | Uses the native memory mapping call. |
| create a process or thread | Sets up a new task with the right capabilities. |
| wait on a lock (futex) | Uses a native lock. |
| wait for events (epoll) | Uses the ring readiness mechanism. |
The first target is statically linked programs built with the musl C library.
Note
Because translation happens outside the kernel, a bug in it cannot crash the kernel.