Home Research Teaching Personal Resume Blog

Operating Systems

I've been a pasionate of Operating Systems since I met them by the first time back in 1988 from the hand of the venerable book Operating Systems writen by Madnickand Donovan [1].

I've always considered that the most insteresign issues in computer sciences and in software architecture and design, emerges withing the field of operating systems. 

Readings

  1. Madnick, S. E. and Donovan, J. J.,Operating Systems. 1st. McGraw-Hill, Inc, 1974
  2. Per Brinch Hansen, Classical Operating Systems: From Batch Processing to Distributed System, Springer-Verlag, 2000. Chapter 1, The Evolution of Operating Systems, can be read online.

Vintage Operating Systems


Some classic operating systems have an enduring appeal in terms of the elegance of its design, or the way the introduced concepts and  practice that are still valid. 

Multics 

Multics (Multiplexed Information and Computing Service) was a mainframe timesharing operating system that began at MIT as a research project in 1965. It was an important influence on operating system development. The last running Multics installation was shut down on Octuber 31, 2000.

Multics' code had been recently released as open source.

Some interesting links about Multics:
Multics community
Multics on the Wikipedia.
Myths about Multics (see why it was't a failure, as many Unix followers still think)
Technical papers online

OS/360 (and its succesors)

OS/360 was the first in a long lineage (started in 1964), which still persists, of commercial operating systems developed by IBM  for its S/360 mainframe computers. It can considered the first modern operating system,  offering the kind of interactive environment and usability by means of utility programs which will become the standard for subsequent operating systems including Unix.

It is famous for its reliability and high performance.

Links:
An introduction (original documentation from IBM)
Entry page in the Wikipedia

Plan 9

Plan 9  is a distributed operating system, developed as the successor to Unix by the Computing Sciences Research Center at Bell Labs in the the mid 80's. Its name is a tribute the the series B movie "Plan 9 From Outer Space"

It intended to address some important design problems in Unix, introduciong an uniform access model for devices like network cards and graphic displays, eliminating the need for superuser, simplified syscalls, and many others.. It also introduced some interesting new feature: each user or process can have its own view of the file system, regardless of the actual structure, which facilitate the migration of applications and users from one machine to another. Also, it integrated files offered by remote servers over ftp as part of the file system mounting it as a ftp file system.  See Eric S. Raymond's paper "Plan 9: The Way the Future Was", (see reference below), for a more extensive discussion of features.

Plan 9 was used for educational and commercial purposes during the 90's. In 2000, the commercial usage was dropped and the systems was released as open source. As Eric S. Raymond said:
"Plan 9 failed simply because it fell short of being a compelling enough improvement on Unix to displace its ancestor. Compared to Plan 9, Unix creaks and clanks and has obvious rust spots, but it gets the job done well enough to hold its position. There is a lesson here for ambitious system architects: the most dangerous enemy of a better solution is an existing codebase that is just good enough."

Some links related to Plan9
Project's site
Plan 9 in the Wikipedia
Plan 9: The Way The Future Was
Browsable source code


Mach Kernel


Mach was an operating system micro kernel developed at the Carnegie Mellon University from 1985 to 1994. The design of Mach centered along two basic objectives: become a replacement of Unix kernel and allow its extension as a distributed and massively parallel system. Its souce code was released under the Mach 3.0 license.

As for Unix the basic abstraction was "everthing is a file", for Mach the basic abstraction was "everything is a process". Process interacted using a port based inter process communication mechanism, which allowed both local and distributed communications transparently.  

Another interesting feature of Mach was the revision of the memory management mechanisms, which allowed the implementation of user level memory management policies as well as the transparent implementation of distributed shared memory systems. 

Even when its development  stoped nearly 15 years ago, Mach and its derivatives has influenced (and in come cases are part of) important commercial operating systems like NextStep and OSX.

Interestingly, the two project leaders, Richard Rashid and Avie Tevanian had been involved in the technology research and innovation in Microsoft Research and Apple, respectively.

Some links related to Mach
Mach Project home page
Mach: A Foundation for Open Systems
A list of publications
Entry in the Wikipedia
Annex on Mach in the Operating Systems book by Silberschatz

Innovative Operating Systems


Even when Operating Systems seam to be stagnated since late 80's, with little innovation in their fundamental concepts, there are some interesting emergent approaches that might  lead to the next generation of OS. 

Singularity 

Singularity is a Microsoft Research  to build a highly-dependable operating system in which the kernel, device drivers, and applications are all written in managed code. Please don't be fooled by  the "Microsoft" tag. 

It has been released under the Microsoft Research License Agreement  for non comercial use. Notice this IS NOT a true Open Source license.

Singularity project site
Singularity: Rethinking the Software Stack (introductiory paper, very informative)
Source code