klange / toaruos

A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.
https://toaruos.org/
University of Illinois/NCSA Open Source License
6.03k stars 475 forks source link

Fix all modules to support loading after boot #176

Closed klange closed 5 years ago

klange commented 5 years ago

Currently, several modules (especially driver modules) have issues with page mappings the require them to be loaded at boot. These can be fixed by either ensuring that they only access these memory regions in their own tasklets or by adding an interface to add global mappings after we've already started more processes.

If this is fixed, we can load driver modules after boot based on PCI-detected hardware from userspace, which would be neat.

klange commented 5 years ago

Specifically:

klange commented 5 years ago

Preallocating the page tables for higher memory worked to resolve this issue, but I don't think it's a good long-term solution.