O.S. Evaluations

Kyriakos Lakkas (klakkas@cs.ucsd.edu)
Tue, 18 Apr 2000 09:16:00 -0700

D. D. Redell, Y. K. Dalal, T. R. Horsley, H. C. Lauer, W. C. Lynch, P. R. McJones, H. G. Murray, and S. C. Purcell, "Pilot: An Operating System for a Personal Computer," Communications of the ACM, Vol. 23, No. 2, February 1980, pp. 81-92.

This paper presents what looks like the first Operating System for a Personal Computer. It goes through all the different aspects of an O.S.; file allocation, Virtual Memory usage, I/O interface, communication protocols and process handling, along with details on their implementation.

The authors seem to be fet up with the O.S.'s for multi-user computers, so they present an extremely simple approach towards all the issues that they have to deal with (using as "excuse" the fact that previous solutions are an overkill for a P.C.). So, Pilot lacks any aspect of protection from malicious programs (virus attacks were obviously not considered at that time), allows user to directly handle most I/O devices (hard disc excluded) and in general provides only primitives for diffent operations, rather that complete solutions. This way, almost everything has to be done by high-level programming.

Finishing the paper, I am left with a question in mind; "What the heck is Mesa???"

Jeffrey Chase, Henry Levy, Michael Feeley, and Edward Lazowska, "Sharing and Protection in a Single Address Space Operating System," ACM Transactions on Computer Systems, November, 1994.

This second paper describes Opal, a single address space Operating System, that forms a new approach on how to use address space. Opal emerged with the appearance of 64-bit address space architectures and tried to take advantage of the much more space now provided for the O.S. and the applications. It's major backthrough is the shift from private address space to shared address space. The paper discusses in depth the procedure of this shifting, along with the tradeoffs and the pros/cons of each approach.

A really nice feature of Opal is the decoupling of the address from the access; every thread can address all data, but can only access data allowed by its protection domain. Two other key observations is that the use of pointers is now much simpler, and data sharing is accomplished without the "expensive" use of pipes, files or messages.

Thanks,
Kyriakos Lakkas.