Project Oberon

Impossible? Had we not designed compilers, operating systems, and document editors in small teams? And had I not repeatedly experienced that an inadequate and frustrating program could be programmed from scratch in a fraction of source code used by the original design? Our brain-storming continued, with many intermissions, over several weeks, and certain shapes of a system structure slowly emerged through the haze. After some time, the preposterous decision was made: we would embark on the design of an operating system for our workstation (which happened to be much less powerful than the one used for my rectangle-pushing) from scratch.
Download the PDF edition of this classic book today!

via Heiko Wengler in the discussion forum. (Thanks!!)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

But the Oberon system is quite primitive.

Although the book is a good read, the oberon system seems quite primitive:

1) it is a single process system.
2) it is a single user system.
3) the display does not have overlapped windows.
4) the networking is not TCP/IP (from what I have understood, I may be wrong).
5) the file system is flat.

With such simple requirements, it's dead easy to do an operating system with GUI and a compiler. Compare that to a modern PC, with thousands of peripherals, tens of interfaces, lots of different buses, with various networking options, with multimedia, with networked gui, and you can see that the knowledge obtained from this book is almost useless in today's environments.

By which you mean "modern PC

By which you mean "modern PC environments". It might be an entirely practical and sensible thing to do if you're targetting games consoles, for example.

Re: But the Oberon system is quite primitive.

But you do realise that the project "was undertaken by the authors in the years 1986-89"? The first edition of the book was published in 1992.

If you are looking for a current OS project in the spirit of Oberon, see Bluebottle.

Bluebottle

Gah!!!! My eyes!!!

Has anyone let them know that their use of small serifed white text on bright blue background makes their pages almost illegible? In addition, the gray links prvide even less contrast and *are* illegible. It looks interesting, but would probably look a lot more intersting if I could actually read what they had to say.

Re: Bluebottle

Well, the website style reflects the default window manager theme of Bluebottle, see Bluebottle Picture Gallery. Though, "the window manager supports XML definable styles as well as style plug-ins."

Maybe it is...

I think I might read that book a little. Maybe Oberon the system is quite primitive, but at least it's a break from the C+Unix hegemony.

I don't know the exact protection mechanism in the OS, and being single-process and single-user it might indeed not have any, but nonetheless it's an OS written in a strongly typed OO language, which might be interesting.

I'm not overly excited about Modula or Oberon the language, but reading about the actual construction of software in them might prove entertaining at least.

The "protection mechanism"

The "protection mechanism" is the type safety of Oberon, the implementation language.

Simplicity was the goal

The book begins with Einstein's quote about as-simple-as-possible-but-not-any-simpler. Reading the book, I was struck time and again at how simple many things are (graphics, networking, memory allocation) if they're done at the correct level in the software architecture. After years of C coding where you're always working "around" some other piece of code, or driver, or protocol, seeing Oberon was a long drink of cool water.

Yes, Oberon itself is not very useful because of its primitiveness. That is partially due to the philosophy of extreme simplicity, but also because the system was planned as whatever Wirth and a colleague could get done in a limited amount of time (several months, I believe).

It's a great demonstration of the benefits of refactoring. Oberon shows that almost anything can be written in clean & simple way.

The Right Abstractions

Your comment has been kicking around in my head for quite a while now. I wonder how much knowledge and experience is out there already that technical folks could extract and share?