4 ms·
I teach using xv6 and would add a couple more items to what others have already pointed out. They mainly come down to simplifications that remove distractions f
by _russross 6y ago
I teach using xv6 and would add a couple more items to what others have already pointed out. They mainly come down to simplifications that remove distractions from the core ideas:
* The system assumes a fixed amount of RAM and a fixed memory layout, so there is no discovery process and no adaptive code to go with it
* The process table is just a small array--no dynamic allocation necessary, and the system can just do a linear search to find an unused entry
* The userspace is simplified. There is a single stack (no threads) of fixed size, mapped memory starts at address 0, and memory is layed out so that only a single number is required to track the size of the entire address space: the size is the top of mapped memory.
Simple data structures are used everywhere, and the emphasis is always on clarity, not efficiency or flexibility.