Review of
Operating Systems
This page is under constant construction.
Please help me enrich it,
by sending annotations to existing pointers,
new pointers,
and the usual feedback.
Please tell me about any other interesting
pointer you know, that may relate somehow (anyhow) to the Tunes project...
Contents
This index favors original and research operating systems.
In each category, systems are listed in alphabetical order.
Of course, do not forget languages
that are another side of computing systems.
Free OSes
Original Free OS Projects
-
Aegis is
an OS based upon the idea of an "ExoKernel"
(much like the NoKernel idea behind Tunes:
there is no more runtime kernel in the OS,
which yields up to 10000% performance gain).
Also see D. Engler's page
-
The BatOS
project of an OS written in BETA
from the Czech Republic.
- The Cache kernel
- Choices,
an OO OS in C++ (yuck).
- Jonathan S. Shapiro's
EROS:
Extremely Reliable OS
-
The Flux project
at university of Utah tries to build
an OS toolkit
where you could make your own OS from bricks.
It is also developing its own Fluke microkernel on top.
-
The
Fox
project from CMU to write an OS using (an extension to)
the programming language SML.
-
Grasshopper,
the orthogonally persistent distributed OS from Australia
(mirror in UK;
also
here)
-
L3 and L4
by Jochen Liedtke at GMD
are microkernels to demonstrate how optimizing performance
requires OS kernels to be completely hardware-dependent,
and even CPU-version dependent in a same family of CPUs.
-
Jecel's
Merlin
project of a SELF-based OS
(and here
a paper about it).
-
Mungi is the OS project that originally proposed
a one global distributed shared memory
(starting with 64-bit virtual address space).
-
Off
is a distributed microkernel that transparently
migrates light-weight processes ("shuttles") over the network,
communicating by distributed IPC ("Portals"),
in a one global distributed shared memory space.
By Francisco J. Ballesteros & Luis L. Fernandez
at University Carlos III of Madrid.
C/Web literate programming sources available.
Reminds of the Mungi project...
-
The Opal project.
- Pegasus
-
The PUMA
project from New Mexico.
- The SCOUT project.
- The Sombrero project.
-
SPIN
OS from University of Washington
-
SPINE is
a distributed adaptable operating system being built
by researchers at the Systems Software Research Group
from the University of Illinois at Urbana-Champaign
and the Systems and Communications Group
from the Universidad Carlos III - Madrid.
- The Sprite
OS from UCB.
-
OGI's Synthetix
project of fine-grained incremental partial evaluation in OS kernels.
-
The irish Tigger
project is developing a framework for the construction of a family
of distributed object-support platforms.
-
Tunes,
the very project hosting this page,
encompasses an OS project, mind you,
even if it goes far beyond a mere conventional operating system.
Free Unix akins and likes
- The BSD family used to be the reference for Unix systems.
Since then, the standard has become POSIX,
and 4.4BSD has split into lots of diverging projects,
supporting tens of platforms:
386BSD,
FreeBSD,
NetBSD (now replaced by OpenBSD?),
Lites
(binary compatible with the above),
OpenBSD,
etc (?).
I am incapable of saying which is which,
what are the differences,
which projects are still active,
better than others, etc.
Here is a
comparison of FreeBSD and NetBSD
- GNUStep
is a project to implement a free clone of NeXTStep
(a FAQ
here).
[Pointer update:
GNUStep.org,
and a european mirror]
- The HURD is the OS from the
GNU project,
also built on top of GNU Mach4
(alpha release here)
- Linux
is a free POSIX.1 compliant UNIX(tm) implementation
written by Linus Torvalds and lots of people on the Internet.
-
Though it was originally developed for 32 bit intel PCs,
it now also runs on
Alpha (64 bit!),
Sparc,
m68k [runs on
Atari and Amiga (also
here);
development underway for
Mac
(also here),
and for
NeXT Cube],
PowerMac
(including a version on top of the Mach microkernel
mklinux)
and other
PowerPC
(also here),
MIPS,
HPPA (with mklinux),
and more (?)
with lots of other ports
in progress,
including
16-bit i8086
(aka ELKS),
ARM,
VAX,
etc
-
Here are some canonical Linux WWW pages:
linux.org (slow),
linux.org.uk (fast, but in UK),
sunsite.unc.edu,
linuxhq.com,
redhat.com,
debian.org...
-
Documentation can be found from the
The Linux Documentation Project (LDP),
an effort to produce a series of books/articles/manuals
to document Linux.
(the LDP page also has many links to other Linux related sites).
Linux Manual pages WWW access can be found
here.
- For us Kernel Hackers, here is the online
Kernel Hacker's Guide
-
If you seek help on Linux,
you should first check all the documentation above.
Also, individual packages have READMEs, FAQs,
and local documentation that you should check
(sometimes only available in the source distribution,
not in binary packages).
If you still don't succeed after carefully reading
the docs many times, you might ask for help
on one of the IRC networks:
LinPeople
(channel #natter),
Undernet (channel #Linux),
EFnet (channel #Linux),
DALnet (channel #Linux),
Linuxnet (channel #Linux),
etc.
-
For those will little memory
Linux-lite
is a package that runs an old but an stable linux version (1.09)
on as few as 2MB!
[the biggest problem with it is having to find
those deprecated a.out binaries]
-
Finally, people who want to develop a graphics system
on their OS should definitely have a look at the
Linux project and standard to be,
GGI (the Generic Graphic Interface).
WWW pages:
at synergy,
Andy Beck's page,
Willie Daniel's page, and
Berlin's
- Linux is not just a fun OS.
it has lots applications in the so-called
"Real-World",
from running Internet servers,
to managing computers in a hospital
to growing plants in the space shuttle!
- The USENIX conference now includes a very active
UseLinux dedicated forum,
and other computer conferences/meetings follow.
- Mach
is a free microkernel upon which many unix clones are built
(the most common Mach-based OSes are
the BSD family of Unix systems,
but there is also a version of Linux
on top of Mach, MkLinux).
-
The original
CMU Mach
project is now ended with Mach3
(see
Published and Unpublished Mach Papers).
Two different groups are working
on two divergent further versions of it:
- The Open Software Foundation is officially developing
its version of (free) Mach,
MK4,
for use by its members' (commercial) OSes.
- Mach4 is now developed by GNU as the continued basis
for the HURD, its free microkernel-based OS.
-
The
Flexmach project itself tries to implement
objects above Mach in C++ (yuck)
according to the related
OMOS
model and implementation over plain unix.
(people at University of Utah have stopped maintaining
Mach4, as their terminated Flexmach,
and concentrate on their new
Flux project and Fluke micorkernel)
- Andy Valencia's
VSTa
fine Plan9-inspired but free open-developped
microkernel-based OS; its
- mailing list archive and its
distribution
(also a french mirror
here).
Educational OSes
These are instructional OSes developed and used in some Universities
for their OS courses. They are freely available, and have some docs, too.
In portable C, unless stated otherwise.
- Minix
is Andy Tanenbaum's famous unix-like OS.
- NachOS
from Berkeley,
demonstrates the principles of the traditional unix-like model.
- Topsy
by George Fankhauser is a microkernel,
ported to the R3000 architectures
(for which emulators exist).
Popular Commercial OSes and their clones
Original contributions from Commercial systems
- AmigaOS
-
Andy Tanenbaum's
Amoeba
is the reference among distributed OSes,
which is why even though it's originally an academic system,
it seems to cost a lot.
(new address
here?).
To take full advantage of its distributed programming model,
related programming language
Orca
is being codevelopped.
-
Sony CSL's
Aperios (formerly Apertos),
a Reflective OO OS
- Be's BeOS.
- GEOS
(also at Geoworks,
here and
there)
is some very fine OO OS for various kinds of computers (including PCs),
that comes with a GUI and various office applications.
One of its most notable aspects is that it isn't a resource pig:
it already provided a GUI to 8-bit computers (C64, C128, Apple ][),
and multitasks fine even on 8088 computers
(but takes advantage of intel 32-bit mode when available).
It has consequently been ported successfully to various
hand-held platforms.
- MacOS8,
the next version of Apple's highly proprietary system,
will finally not be based on the
Copland development project,
but on a cross with NeXTStep called
Rhapsody.
Here
is a good page about finding real OS software for MacIntoshes.
Conversely, ARDI
is selling a MacOS emulator for PCs
(more or less System 6/7 compatible):
Executor.
- Multics
(also a mirror in UK)
is the great OS whose design began in the late 60's,
and that was supplanted by Unix,
despite Multics was much better designed,
because Unix stubborn design was more adapted
to the very resource-poor architectures of the time.
- Apple's
Newton
Operating System.
- Microware's OS-9 real-time OS,
still in good shape after so many years.
- RISC-OS
(see newsgroups comp.sys.acorn.*),
(a french mailing list
here
-- subscribe to here),
is the nifty OS that runs on
Acorn's ARM-based RISC PC.
Remember how they were the first to introduce inexpensive RISC
technology into consumer electronics
to compete with the usual bloated designs?
See also their
Thumb technology.
- Tao OS
is the only OS that currently can distribute code on heterogeneous
underlying networks
(here their internet contact,
and an old
introduction
to Tao OS).
Was renamed Tao OS from TAOS because of legal problems.
- The Taligent company
is the result of some counter-nature cross between Apple and IBM ;-)
it works on a brand new operating system,
the CommonPoint application system,
that attempts to change the basic programming paradigm,
and which has been released on top of AIX in summer '95
(expected on top of OS/2 in '96).
To know more about it, you can browse the first two chapters of
the book Inside Taligent Technology by
Sean Cotter
Commercial Unices and beyond
Lots of commercial vendors base their system
on the Unix family of design, as standardized in POSIX.
The existence of free Unix systems
like the great Linux
forces them to find justifications for charging so much
for systems that were so lame;
hence, recently, significant OS research has been done
by commercial companies, even though the benefit
for users and developers is not obvious,
as "protected" research is by definition not beneficial to people.
- Chorus
(see its
FAQ)
is a commercial micro-kernel rival to Mach.
- Inferno
is a networked OS
from Bell labs and its limbo language,
successor of Plan9,
the system that reinvented scoping
for coarse-grained objects
(my, after they ignored it for 25 years,
which resulted in the whole world having
systems deprived of it,
the guys from Bell-labs rediscover it. All praise Hell-lahs!)
- MachTen
is a commercial version of BSD4.3 using Mach on 680x0 MacIntoshes.
There are free alternatives to it,
like MacBSD.
- Plan9 OS, or what Unix should have been
(by AT&T from where Unix came).
It's a commercial OS, but freely available for academic use.
See its
FAQ.
It got everything right as for proposing a uniform
system interface
(the dynamic, per-process name->channel "filesystem" thing)
but is still wrong by using a low-level programming language
with coarse-grained system abstractions.
(another page
here)
See its successor, Inferno.
- QNX
is a an effective, scalable, POSIX emulation capable,
message passing, micro-kernel based, real-time, distributable, OS
that has proven successful in the embedded market
and/or on ix86 systems.
See their
QNX papers.
(I should check the following old links to see if they still exist:
here)
- Solaris-MC:
Sun is working in making a distributed OS out of Unix.
- Sun's
Spring
System
DOS-class systems and extensions
Because DOS has been such a phenomenon in OS history,
despite its absolute lamedom,
it ought to have a place here.
Rather, alternative solutions ought...
- A well-known company in Seattle has produced and mismaintained
the most crappy OS ever, known as DOS.
The dreaded name need not be mentionned here.
-
The
FreeDOS
project for a free DOS clone,
based on Pat Villani's
DOS-C kernel.
It currently works,
though not compatible with all known DOS extensions
and undocumented features (that some apps require).
There will soon be a freedos.org.
- Of course, there exist lots of DOS emulators
for lots of non-DOS systems.
For instance,
Linux has
quite a good free
DOS emulator
running on i386 architectures (also runs under *BSD).
But it is actually a hardware emulator,
and requires that you use an actual DOS software
(e.g. OpenDOS or FreeDOS) to run on top of the virtualized hardware.
Newer versions of DOSEMU will be released as a bundle with FreeDOS.
- Caldera
has released
OpenDOS 7.01,
an almost freely available version of DOS
based on DR-DOS sources and Netware enhancements.
It's basically the very stable and complete DR-DOS
implementation of DOS,
with some networking and multitasking capability, ROMability, etc.
They say they will soon release the OpenDOS sources
in an effort to promote open development.
Binaries and sources would be free to all,
but a (small) fee would be required
from commercial people redistributing it.
Caldera also sue the above-mentionned Seattle-based company
for unfair competition practice
in forcing people and vendors not to buy DR-DOS,
at the time it was way ahead their version 4 and 5 of DOS.
Caldera is working together with
DJGPP developers and
there's an
Unofficial OpenDOS page
FAQ
here and
there.
- IBM's OS/2 is an OS that's halfway between DOS and Unix
(some say the best of both world, others say the worst).
It can emulate most DOS programs seamlessly,
has a nice GUI (users say),
but is not well commercialized.
FTP sites for OS/2 software:
Hobbes,
FTP-OS/2
- PTS-DOS is
a (commercial) DOS clone from Russia.
- Mike Podanovsky's
RxDOS is
a (commercial) DOS clone
as described and available in the author's book "Dissecting DOS".
- TSX-32 is
a 32-bit (commercial) OS for PCs
with small memory requirements that can also emulate DOS
(and run Windows ?).
Losedoze-class systems
The same company consistently produces the worst wimpy OS,
hence this section...
OS Related Pointers
- Indices about OSes and related subjects:
- Here are pointers to threads packages (not up-to-date):
- Threads have a yucky standard:
the POSIX 1003.4a (now renamed 100x.y) pthreads package.
Here are some implementations:
- The Linux free OS is now supporting
pthreads in the kernel.
- Chris Provenzano has implemented
MIT pthreads implementation of
the POSIX.
His homepage also includes partial docs for the package.
Complete docs can only be ordered from the IEEE
- the Florida State University also
has its own FSU Pthreads library for Sparc and now ix86 architectures,
available by FTP
as part of the POSIX/ADA Run-Time (PART) project.
- Other, commercial OSes, do that too, of course,
but they won't fix bugs remotely as fast as
the Linux community can.
Complete official specs for pthreads can only be bought
directly from the ISO or through vendors
of commercial implementations;
but you can get free unofficial partial docs from other places.
- David Keppel's minimalistic
QuickThreads package
(a portable abstraction of just the machine-dependent parts
of a threads package, for many architectures),
and accompanying
tech report.
- Stephen Crane's
lwp ("light-weight processes") package.
- Elan Feingold's minimalist
ethreads package.
- Here are pointers to packages for distributed/parallel computing (not up-to-date):
- Concert
by University of Illinois at Urbana-Champaign
is a parallel programming environment
using languages Concurrent Agregates or ICC++
(parallel extensions of OO Lisp and C++ respectively).
"Both are fine-grained object-oriented language based on
the actor model. These languages also support aggregates
(collections), multi-access abstractions, and allow both
data and task parallelism to be exploited seamlessly."
- Arjuna
from the University of Newcastle upon Tyne (England),
is allegedly THE programming system
for reliable distributed computing,
but is built as a set of C++ classes.
- OZ++ is also a freely available object package to allow
world-wide upgradable modular distributed computing.
- Chant: A Talking Threads Package.
It's a package that extends existing threads package
(well, pthreads) with inter-thread communication support,
even if threads run on distinct processes or computers.
That is, a very low-level package for parallel computing.
- Here are some research laboratories interested in
operating systems (send me more addresses):
- Here is some code that you can link into your OS
and relieve you from the hassles of blindly getting it to boot,
by providing you boot software and basic I/O:
-
The Flux project's
OS toolkit
I've been told that Flux OS kit is the most complete
to help build a full OS even though you know little about it,
and that even for newbies,
transforming a Unix program into a standalone OS
was a matter of hours, using it.
But it's no more available until the next release
that has been delayed sine die
with lots of promises of an even better toolkit.
Of course, if you're in a hurry, you could beg the authors to
let you peek at their present or previous code;
or you could pick an
old unofficial second-hand archive.
- GRUB
the generic boot loader.
It's the one used by the HURD,
and it can also boot *BSD, Linux, DOS, and more.
It's got facilities for accessing the filesystem at boot time,
so you can safely write your loader as just another 32-bit process.
- SOLO
the ShagOS boot loader,
includes useful debugging features.
SOLO not only includes boot-time filesystem access,
but extended IO and debugging facilities;
might be great to hack your kernel.
Its license is now unrestricted,
so that you can now freely use it and distribute it with your code.
SOLO is definitely worth a look.
- Here are some sources of inspiration for people developping
a 32-bit OS on PC's:
- DOS extenders in the
x2ftp archive
(some interesting docs around, too, particularly the PCGPE)
(French mirror here)
- Some 32-bit FORTH systems from the
taygeta archive
- David Lindauer's
LS-DOS
- Nathan Hawkins'
Radix
- os-dev page for the intel architecture
- The Linux
Assembly-HOWTO
about better (more portable, maintainable, seamlessly integrated)
ways to include assembly code in your projects.
- and of course, the code for all the
free OSes above,
including Tunes.
- Other OS projects and mailing-lists you could join:
Of course, I'd encourage you to join
Tunes if you are looking for a deep rethinking of an OS,
VSTa if you like custom microkernel-based message passing,
GNU HURD if you like the new wave for computer tradition,
Linux if you like the old traditional unixish approach.
Also, GGI might interest those who like video tweaking.
OS-DeViLs seems to federate low-level PC OS hackers,
while LispOS gathers high-level language gurus.
But if none of these please you,
if you like doing things from almost scratch,
here are projects that might interest you (in alphabetical order):
-
Daniel Vila's
Akula
-
Alaric B. William's
ARGON
(has got a mailing list)
-
Graham's,
Jesse's,
Mark's, and
Peat's
AtomOS
-
Roland Nilsson's
Avanté
(mailing list here)
-
Brand Huntsman's
Brix OS
-
DemOS Project
for crazy demo coders.
-
Samuel A. Falvo II's
Dolphin
-
EOS
(ask Cleo Saulnier)
- Reece Sellin's and
Davis Ray Sickmon, Jr's
Freedows Project for an OS that would be binary-compatible
with multiple existing OSes including Windows
(also
here).
-
Lewis A. Sellers "Minimalist"'s
Grail Millenium
- Bradley A. Burns'
Indigo
- LispOS
has just appeared as a project to revive the still unequalled
systems that ran on Lisp Machines of the past,
this time making it free and running on standard/cheap hardware,
instead of proprietary and requiring non-standard/expensive hardware.
Relevant pages at
cathcart.sysc.pdx.edu,
neosoft.com, and
eval-apply.com.
Those interested in the discussions may read the
archives
of the mailing-lists, or subscribe to them:
lispos,
and
lispvm.
-
Julian R. Hall's
Moscow
-
Cal Folds'
NXS
-
Joel Utting's
OS
-
"Joker" Josh MacDonald's
OSDEV
- OS-DeViLs project
is a federation of people hacking new OSes,
so they can debate ideas,
exchange experiences, and share code.
- Prool's Proolix is yet another Unix clone project
for the old 8086 PCs, from former USSR.
- Frank Barrus'
ShagOS
is a (running) OO system based on a message passing kernel.
-
Bart Sekura's
TINOS
- Hardware information
Efficiency-aware OS implementors must have some idea
of how the underlying hardware behaves.
- The cheapest bang/buck for a complete system currently is
available through old or new PC computers.
Hence, OS programmers might be interested to get the CPU specs
directly from the chip builders:
pentium manuals,
and other stuff from
Intel,
Cyrix,
AMD
I've also been taught about
386intel.txt
- The CPU Info Center
covers all mainstream CPUs in the current competition.
- But MISC technology is not mainstream yet,
though very promising, and already the best
computation-horse-power/electric-power-consumption ratio.
See
Jeff Fox's page,
the
MISC mailing list
(now at
Elijah labs)
or iTV's page.
(the
SISC312
seems around the same design, too)
- The Chip Directory
talks about chips in general, CPU included,
but not exclusively
- For a historical point of view,
check this page about
Great Microprocessors of the Past and Present
- Other OS-related pages
More netsurfing
To Do on this page
- Actually review these OSes, do not merely point to them. Gasp.
- Talk about the open development model, as used in Linux.
- Send a note to all the OS pages that do not cite us.
- Differentiate full OSes from OS-less kernels,
putting two entries when the kernel could be used without the OS,
even though only one OS currently exists over it.
- Add these
-
SPACE
- GLOBE
as well as to all pages pointed in various OS indexes...
- bibliographic pointers from the OS FAQ:
cstr,
German Bib,
Arizonian Bib,
bibliographies,
UFS 93.
- HOPE
- Nectar IO
- Prefetching
- refdbms
- Find out more about
STAPLE,
a persistent lazy-functional-language based project
(FTP).
- FTP sites with OS-related stuff: in
France,
England,
Taiwan.
- FTP pointers from the OS FAQ:
Clouds,
Cronus,
Guide,
Horus,
Isis
(also here),
X kernel.
-
Rumor, a user-level version of Ficus, an optimistically
replicated file system (see
for
a summary of Ficus and for a
description of Rumor). Unfortunately, Rumor is not yet being
distributed.
- Books:
-
"OS Concepts and design" by Milan Milenkovic
- at AT&T, Mr Douglis' CCache paper (?)
- Brian Bershad or
Calton Pu
- Doug Jensen:
dynamic real-time distributed computer systems
- Neutrino: POSIX in 64K
- oslr2
is an idea of an OS much like IBM's VM/CMS:
provide people with a low-level
virtual hardware abstraction facility
that multitasks by spawning itself.
- Aditya Bansod's
OSS and
OSS2
are operating system simulators for Windows
that implement their own OS ontop,
and provide abstraction for local processes.
- Dave Hudson's
Artemis,
and now,
Constellation
-
VINO (at Harvard)
-
NOW (at Berkeley)
-
JavaOS
-
Nicklaus Wirth's
Oberon
is not only a language, but also an OS...
- kudermann
- altop
- pagan
- siteos
- os
- pOS
- AROS
- OS developer's homepage
- AROS Amiga Replacement OS
- The Nextwork OS Project
- DVM
-
Back to the
Review subproject.
Page Maintainer:
Faré
-- rideau@clipper.ens.fr