rustboot
rustboot copied to clipboard
Figure out a sane memory API
We have a few abstractions for both physical and virtual memory management. Some methods (set, set_addr) need a second thought and documentation, whereas identity_map needs improvement.
Both i686 and ARM use paging schemes with two levels.
Perhaps use slices and iterators for virtual memory manipulation?
- [ ] Implement intrusive linked lists for BuddyAllocator and VmAreas: https://gist.github.com/bgamari/6a4e3d7673e71704c302
- [ ] Implement demand paging and CoW.
The Linux kernel uses a list of vm_area_structs that hold all information stored in the architecture-specific page table and everything else needed to fully describe a memory area.
http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory/