Memory management is subject to the following considerations:
- Where to put the kernel code and data (you do not want to overwrite this)
- Where to put the GDT and IDT
- Where to put the memory "page directory" (full 4GB directory == 8 MB)
- The ratio between kernel space vs. user space (linux = 1:3)
- How to implement an optimal "malloc" routine
- Page swapping (but not required, a kernel may also fault)
- Optimization of the above requirements, like is done in Linux > 2.4
- Memory page sharing through copy-on-write for example (by default the process shares the same code + data, but on any attempt to write to the page, the kernel makes a copy of that page)
As said before, this is not going to be anything big, but will greatly assist in understanding other OS's a lot better. Maybe even I could use this knowledge to jump-start another project for a limited device and make the machine do something really specific in an easy way.
G>
No comments:
Post a Comment