The Tunes i386 Subproject


Contents of the i386 Subproject

Here are the current contents of this i386 project:

NOTE: existing code and corresponding technical comments lie in directory src/LLL/i386 of the source distribution.
You may also want to look go back to the Tunes LLL subproject, or to the main Tunes page, or to the Tunes Subproject page.


Goals for the i386 subproject

The i386 subproject aims at implementing the Tunes project on "industry standard" computers equipped with an Intel 80386 or compatible 32 bit CPU.
The implementation should be faithful to the LLL specifications, and device drivers should be provided to allow basic memory management, human interaction, and access to mass storage.


Implementation Ideas

Use of the MMU

Run most code in ring 0 to reduce all the I/O and ring switching overhead. This is safe because we use safe code. If some features of paging (write-protect) in code 0 is not possible (386 computers), use ring 1 with IO rights (IOPL).
Use segments only as a way to achieve quick pointer arithmetics for large objects worth the descriptor table mangling and all the overhead resulting from different memory management.
Emulation boxes and other unsecure programs of course use ring 3.
Small programs (most of them) don't need a full personal address space and share their MMU pagetables with their calling program. If a program grows large, migration can still make a full task for it.
Programs that we know will be large and little interacting with other (or not be trusted) will be given an address space for them alone. There must be some way to share code whatsoever. The first thing an experienced user may want to do is create a task for him alone.
paging can be used to use wired service address valid both in PL0 as well as other levels.

DOS emulation

Run DOS in real low memory, even if using vm86 mode, so DOS programs can use DMA and such. Perhaps even run in true real-mode.
Here are a few trick to free as much DOS memory as possible:


i386 Difficulties


The Bootstrap Sequence

Only the very first steps of the boot sequence have already been implemented, and the initial kernel is still to complete.


Modules


Bibliography

See the OS page of Review subproject, particularly the Code section.


To Do on this page


Back to the Tunes LLL subproject.


Page Maintainer:
Faré -- rideau@clipper.ens.fr