cl91 / NeptuneOS

Neptune OS: A Windows NT personality for the seL4 microkernel
GNU General Public License v3.0
370 stars 11 forks source link

Move module loading into client side (ntdll) entirely. #11

Closed cl91 closed 4 months ago

cl91 commented 2 years ago

Now that the client side SEH and file systems are both done, server shouldn't need to know about the client module list (LDR_DATA_TABLE_ENTRY etc). Remove the LDRP_LOADED_MODULE data structure (and possibly LOADER_SHARED_DATA).

On the other hand, loading dlls on the server side saves a lot of context switches, so this is something we need to thing about. There is no obvious advantage of client side loading (it slightly simplifies server code --- however the same logic needs to be implemented in client side anyway, so there is a conservation of trouble here).

Relocation is always done on client side. We need to restore the page protections at the end of a load. This was left unimplemented.

cl91 commented 4 months ago

Done in v0.2!