Layout in Memory
sf.net Project Page
Email the Author
A Semi-Socratic overview of
The Seed Project
- What's this "seed project" all about, anyway?
Well... It's about making a single-address-space operating system built around a persistant linear object store, with event-based pre-emptive-multitasking, but without a traditional kernel or filesystem, in which the locus of system security has been moved to capability-based on-the-fly object permission checking and tight control over the system assembler.
- Not only is that a long and clumsy sentence, but it is filled with buzzwords and obscure jargon! Surely you can give a more comprehensible summary?
Sure. The Seed Project is about having fun, learning stuff, and creating an interesting, but very weird, operating system from the ground up. It is being implemented in NASM assembler, and tested in Bochs.
- That's better - but can you describe in architectural terms makes Seed so weird?
It might help to describe a running Seed system as a whole. A running Seed system contains volumes, which contain objects. A "volume" in Seed consists of a flat address space - RAM, hard drive partitions, CD-ROMs, network-accessable address spaces, and even CPU caches could perhaps be abstracted into Seed volumes. Volumes contain objects like the system contains volumes. One might compare volumes to filesystems or databases, and objects to files in a filesystem, or values in a database.
- So all these volumes contain different objects?
Well, not quite - volumes can be thought of as caches for each other. Presumably, RAM (a volume) would cache objects from the hard drive (a volume), which would cache objects from the network (a volume). The volumes would be searched in order of priority - if an object isn't present in RAM, it might be on a hard drive, so the hard drives get checked next. This kind of transparent, uniform caching makes virtual memory unnecessary - or rather, it supercedes virtual memory, swap files, filesystems, and databases, and combines all their advantages into one structure, called a persistant linear object store.
- That's pretty damn weird.
I warned you =) Regardless, you may want to examine the Terms and Definitions page, or the Memory Layout/System Organization Page for more elaboration on the above themes.
- Noted. Have you anything to add?
I welcome feedback, and can be contacted at
sayke at gmx point net - hopefully humans can parse that, but spambots can't. Thanks for paying attention to this, and I hope you found it illuminating in some sense!