mirror of
https://github.com/darlinghq/darlingserver.git
synced 2024-11-23 12:29:41 +00:00
d9bf20afc9
The most important change here is the ability to perform `mmap` and `munmap` in managed Darling processes. This is enabled via the new S2C call system. Other notable changes: * Move the server socket to the prefix root because launchctl clears `var/run` on startup * Create an IPC importance structure for each duct-taped task; this is required by `ipc_importance_send` * Initialize the MPSC thread deallocation daemon; this is also used by turnstiles * Clean up a thread's timers and waits when destroying it * Check whether we should actually block in `thread_block_parameter` before doing so; this helps avoid missed wakeups * Support creating kernel threads without immediately starting them * Update a thread's address when receiving a message from it; this fixes an issue with keeping an outdated thread address when a process performs an exec (since we re-use its main thread) |
||
---|---|---|
.. | ||
defines | ||
include/darlingserver | ||
internal-include/darlingserver/duct-tape | ||
src | ||
xnu | ||
CMakeLists.txt | ||
Makefile | ||
README.md |
darlingserver Duct Taping
The purpose of this subproject is to use a significantly stripped down version of XNU's own kernel code coupled with some glue/duct-tape code to simulate the necessary parts of a normal XNU kernel environment for the code to work properly to implement things like Mach IPC.