Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Project Oberon - The Design of an Operating System, a Compiler, and a Computer (ethz.ch)
166 points by __mp on Dec 1, 2013 | hide | past | favorite | 26 comments


What makes the new version of this cool (for starters):

> The decision for a new processor was expedited by the possibility to implement it, that is, to make it concrete and available. This is due to the advent of programmable gate arrays (FPGA), allowing to turn a design into a real, functioning processor on a single chip. As a result, the described system can be realized using a low-cost development board. This board, Xilinx Spartan-3 by Digilent, features a 1-MByte static memory, which easily accommodates the entire Oberon System, incuding its compiler. It is shown, together with a display, a keyboard and a mouse in the photo below.


But can't you only clock a design on a Spartan-3E at 300MHz maximum?


Given that Oberon was originally designed to run on a 10MHz CPU, that won't be much of a problem :)


Wow, such a small system, an ARM port would be nice.


The ARM family is the problem in that case. There's so much variation among the different versions that drivers are an issue. There is a version of the Oberon language, Astrobe, that runs on the a few of the smaller chips, created by CFB Software, but it's not a full operating system. http://www.astrobe.com/default.htm


I can't offer a URL but I thought Wirth ported Oberon to some sort of ARM processor (in the last ten years or so) to control an RC airplane or some such.


If anyone cares about Oberon on ARM, look here, the linked articles with "Helicopter" in the title tell the tale:

http://www.inf.ethz.ch/personal/wirth/Oberon/index.html

I suppose one could email Dr. Wirth asking for the source code but in reality, you'd be better off forking a newer version of Oberon. It should be as easy to port as a compiler can be.


Wirth likes to design computer architectures to go with the languages he creates (he's got a EE undergrad). He did (at least) p-Machine & p-Code (Pascal virtual machine), Lilith (2901-based bit-slice graphical workstation implementing a Modula-2 virtual machine) and Ceres (a series of ns32000 based workstations running Oberon). He's been into FPGAs for a while. Smart guy.


Also, a language.

Oberon-2 language has Pascal-like syntax, with Java-like features (classes, single inheritance, interfaces, garbage collector, sane module system instead of includes). Unlike Java, no VM is required, at least in the system that I used. Like Java and unlike C, it is impossible to write unsafe code accidentally - you have to go out of your way to access unallocated memory regions or break type safety.

Decent module system and straightforward grammar has also allowed writing simple and very fast compilers. It was fun to work with.


Until a few years ago, Oberon-2 was the programming language of choice in the first year of CS at my university (except for a small course on C++). They use Python and more C++ now.


Modula-2 and Oberon-2 as first procedural and first OO language in my university as well (in Soviet Russia, no less :) )


I learned Modula-2 in my university (UMA, Spain) around 2000. they changed to C++ a year later. Even now days all the pseudocode used by many courses is strong inspired in Modula-2.


My Intro to Operating Systems class was in Modula-2 circa 1988. I really liked it. I was lucky enough to subsequently spend quality time with Modula-2 on the 8051 and Modula-3 on Ultrix (which was a really nice evolution of the language). Shame that line of innovation has withered.


We also programmed in Oberon at varsity. I think oberon with scheme and c would be a great set of 3 languages to teach from school level through till end of undergrad at varsity.


Java's VMs are just an implementation issue, there are plenty of native compilers to choose from.

Having said this, I really enjoyed it working with Oberon, it showed to me how one can implement a fully working desktop system in a GC enabled systems programming language.

I have used the original version, System 3 and Active Oberon aka AOS.

Sadly the industry is still stuck in C land for such tasks.


BTW, as far as I understand Project Oberon uses Oberon language, not Oberon-2. Main thing - there is no inheritance and instance methods, they are achieved via aggregation and function tables.


Oberon-2 was used as basis and extended for Active Oberon, the sucessor OS.

Not sure about EthOS though.


EthOS was Oberon-2 if I am not mistaken. The paper discussed in this link though still uses Oberon (even though paper was updated in 2013).


"Mostly thanks to the regularity of the RISC instruction set, the size of the compiler could be reduced significantly. It now measures less than 2900 lines of program and compiles itself in about 3 seconds, which is proof of its efficiency. The entire system compiles itself in less than 10 seconds."

Very nice indeed.


Wirth had (has?) a famous heuristic where he would reject any optimization of the compiler that didn't make it faster to compile itself. Since optimizations add code and thus cost something to compile, this is a clever way of testing cost/benefit.


It's a small internet. I started the older version of this book yesterday after this [ https://www.youtube.com/watch?v=mFo6eyEsDoA ] talk on user interfaces referenced it.

So far it's a wonderful read, and a good example of thoughtful systems design... Incidentally, it's also shows one of the real benefits of Literate Programming, cause although the source itself doesn't really concern me, the text is gold.


Yes, I'm totally impressed by the conciseness of the book and the added code.


Many parts with Oberon system would have been perfect for passing code around in the the Internet. The one pass compiler, for example, was lightening fast and compact.

I think Oberon system is worth of study.


Yes: Michael Franz, one of Wirth's PhD students, now a professor at UC Irvine, implemented such a system back in the 90's: http://www.jucs.org/jucs_4_5/open_standards_beyond_java/Fran...


Specially to learn that safe systems programming is possible, instead of spreading the school of C.


It would be nice to see Oberon ported to MIPS. maybe the PIC32 would be a good target.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: