The achilles heel of the current system is its underutilization of protected mode services. The calls to the BIOS need to be eliminated. It is the continuing need for BIOS services that prevents the operating system from switching to protected mode and staying there. Once the BIOS services are no longer needed, more memory can be used. In fact, the whole physical memory of the machine can be used in protected mode. Presently there are regions which must be avoided to prevent corrupting the BIOS data structures and the real-mode interrupt vector tables.
Task switching now is handled by the Berkeley nachos code. The Intel processor provides a task switching service (which requires cumbersome ``Task Switch State'' objects and other oddities) that is not used in the current implementation. While it is not an easy thing to implement, it would be a useful exploration of the hardware architecture to implement switching through hardware support. It is arguable how much the nachos system would benefit from this, however, since thread switching currently works. Perhaps, all that would be necessary is to set up the CPU to use ``Task Switch State'' hardware when servicing protected mode interrupts.
Protection ``rings'' are provided by the Intel platform, as well. These allow a kernel process to run in a protected memory space while user processes run in a different memory space. System calls and privileges can be implemented using Intel-specific mechanisms. This, too, would be a useful excursion into the workings of the Intel architecture. The separation between kernel and user processes is non-existent currently. It should be possible to replace the simulated paging mechanisms with real ones.