darlingserver/duct-tape
Ariel Abreu d9bf20afc9
Implement remote mmap/munmap + various fixes
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)
2022-02-17 19:12:44 -05:00
..
defines Initial commit 2022-01-18 00:46:28 -05:00
include/darlingserver Implement remote mmap/munmap + various fixes 2022-02-17 19:12:44 -05:00
internal-include/darlingserver/duct-tape Implement remote mmap/munmap + various fixes 2022-02-17 19:12:44 -05:00
src Implement remote mmap/munmap + various fixes 2022-02-17 19:12:44 -05:00
xnu Implement remote mmap/munmap + various fixes 2022-02-17 19:12:44 -05:00
CMakeLists.txt Implement remote mmap/munmap + various fixes 2022-02-17 19:12:44 -05:00
Makefile Initial commit 2022-01-18 00:46:28 -05:00
README.md Initial commit 2022-01-18 00:46:28 -05:00

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.