5 ms·
Can anyone give a quick summary of what makes Oberan OS interesting? Is it an RTOS? A microkernerl? What's distinctive about it?
by ducktective 6y ago
Can anyone give a quick summary of what makes Oberan OS interesting? Is it an RTOS? A microkernerl? What's distinctive about it?
- wrs 6y agoIt is a complete computing system (meaning you can do actual useful work with it) that is deliberately designed to be simple enough that a single person can understand every bit of it--processor, compiler, operating system, and applications--in a reasonable amount of time.
- andi999 6y agoCan you define 'complete'? Surely this doesnt mean including applications like 'word' or 'excel' or does it? Is a GUI part of the 'complete'? I really want to know what hides behind this term.
- johndoe0815 6y agoProject Oberon includes a GUI that in the Unix world would be described as using a tiling window manager. It doesn't include a word processor or a spreadsheet app - Oberon was created to build a workstation system, not an office machine - but a graphics editor is included. Other applications are available, of course, such as a tool for digital circuit design or an email tool. But one of the most important use cases for Oberon is probably software development - so one of the most important tools that is included with the system is the compiler.
- jonjacky 6y agoIn addition to the OS itself, the Oberon book [1] includes network, file and print servers, a mail server, a text editor, and a graphics editor capable of drawing circuit schematics. [1] https://people.inf.ethz.ch/wirth/ProjectOberon/ https://people.inf.ethz.ch/wirth/ProjectOberon/
- eterps 6y agoWhat is interesting about Oberon is that it is a complete (i.e. OS + compiler + HW) usable system that can be understood in its entirety by a single human being within one lifetime. As far as I know it's also the only system currently in existence that fullfills that promise.
- undershirt 6y agoCollapseOS is trying to meet that promise too. It’s interesting because it does unwittingly follow Wirth’s thinking. Collapse would be a consequence of allowing ourselves to not to understand our systems.
- cyberpunk 6y agoYou could have put TempleOS into that bucket too, but unfortunately the author is no longer with us. RIP Terry :(
- johndoe0815 6y agoOne interesting point about Modula and Oberon is that these systems were not only the topics of academic research (which are often quickly abandoned when the related project ends). Rather, the systems were used at ETH to educate generations of students over the period of more than a decade, running on custom-designed hardware from day one (the Ceres workstations). We arguably spend too much time teaching our students how to work with complex commercial systems (or nowadays also complex open source systems such as Linux) and should try to rely more on self-developed software which can be understood, adapted and improved in a reasonable amount of time. I'm trying to revive some of that spirit in my courses and projects. Maybe Oberon errs a bit too much on the side of simplicity. I don't think it's very problematic that the compiler doesn't implement sophisticated optimizations, but the OS part of Project Oberon does not implement memory protection (the older Ceres-based system did to some extent) or preemptive multitasking. This is appropriate considering the system's age and the constraints of the FPGA for the original RISC5 system, but due to this the OS part of Oberon is on a similar level as non-NT Windows and classic MacOS. Accordingly, it's not a very useful example design today IMHO. Other systems such as xv6 might be more appropriate here, but xv6 was never designed to be used as a desktop os for real-world use. One problem that also affects other bare-metal systems such as Lukas Hartmann's Interim OS (http://interim-os.com http://interim-os.com) or my Smalltalk-80 port (https://multicores.org/blog/smalltalk-on-a-small-computer.html https://multicores.org/blog/smalltalk-on-a-small-computer.ht...) for the Raspberry Pi, is handling the complexity of modern peripheral and communication protocols. Some of the worst "offenders" here are USB and Bluetooth, both of which require driver and protocol stack code that often has more lines of code and is more complex than the rest of the system. Ethernet and TCP/IP might be a bit more manageable, Adam Dunkels' uIP/lwIP are a good example. So, as always in system design, the art is to find the right tradeoffs. Exploring the design space here is interesting, especially within the constraints of a real-world ISA as a basis. And I think projects involving small operating systems and RISC V are lots of fun (I hope Rikke agrees ;-) - we also have students working on Plan9 and Inferno ports to RISC-V) in addition to be educationally worthwhile - IMHO an important point to keep students motivated. I think we should probably all re-read Prof. Wirths "A Plea for Lean Software" (https://cr.yp.to/bib/1995/wirth.pdf https://cr.yp.to/bib/1995/wirth.pdf) once in a while, but also consider how to apply the principles of this paper carefully instead of going for absolute minimalism. I hope that something along these lines will be a valuable learning outcome for the students working on my projects and attending my courses..
- pjmlp 6y agoBesides what others have written. It is a complete single user graphical workstation OS, written in a GC enabled systems programming language. Niklaus Wirth got his inspiration out of Mesa/Cedar during his second sabbatical at Xerox PARC (during his first one he ended up creating Modula-2 inspired by Mesa). You can see what Mesa/Cedar was capable of by checking this videos, "Eric Bier Demonstrates Cedar" https://www.youtube.com/watch?v=z_dt7NG38V4 https://www.youtube.com/watch?v=z_dt7NG38V4 The original Oberon system was a simplified version of it in more affordable hardware, then from its roots, a series of other variants were born, Oberon-2, Active Oberon, V4, System 3, Component Pascal, Zonnon, are the most well known. Eventually Niklaus Wirth decided to go back and see how much he could remove from original Oberon and still have it be a systems programming language with GC, thus Oberon-07 was born, with a couple of revisions, the latest one from 2016. Going back to the original one, this is what you got in the package: - A full stack single user graphical workstation, in a GC enabled systems programming language - The only kind of application are modules, loaded dynamically - Applications are just modules that register themselves into the system to be available on the REPL or in menus when loaded, e.g. Module.Command will load Module and call the procedure named Command, which can then be fed data from the REPL, mouse selection or selected application window - This brings dynamism similar to Smalltalk and Lisp machines where you get access to whole OS and each application is extensible At a given point during the 90's the ETHZ IT department had plenty of people using Oberon based workstations. For a couple of screenshots about Oberon System 3 and Active Oberon, with links about Xerox PARC related stuff have a look at https://www.progtools.org/article.php?name=oberon§ion=compilers&type=tutorial https://www.progtools.org/article.php?name=oberon§ion=co...
- a9h74j 6y agoWith a view to a portable environment, I was thinking earlier today that it would be nice to have a second, all-in-one application to use over different OS environments, to complement a modern browser. Something with a file explorer, editor, support for scripts -- and possibly extensions. It appears non-native Oberon could be a fit to that; the lack of an up-to-date browser would not be a weakness.
- pjmlp 6y ago
- carapace 6y agoOberon OS plus the "Gadgets" widget lib is unequaled in UI design in my opinion.
- pjmlp 6y agoNot unequaled, it has a certain Amiga OS feel actually. System 3 https://www.progtools.org/compilers/tutorials/oberon/oberon-system3.jpg https://www.progtools.org/compilers/tutorials/oberon/oberon-... Amiga Workbench 3.0 https://www.gregdonner.org/workbench/wb_30.html https://www.gregdonner.org/workbench/wb_30.html However I do get your point.
- carapace 6y agoI never got to use Amiga Workbench 3.0. The thing about OberonOS with Gadgets was that it provided a very clean and simple way to embed widgets in documents and have them work across the whole system (kind of like CORBA.) See the "Inspector" panel in the Oberon screenshot? That's editing some widget live. https://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture https://en.wikipedia.org/wiki/Common_Object_Request_Broker_A...
- pjmlp 6y agoI know, I used Native Oberon back in the day. :) Yes, those ideas are similar to ToonTalk (on Sun), CORBA, COM/DCOM/OLE, DBus,... just done in a more easier and approachable way. I also happened to be the only PC dude among a circle of Amiga owning friends, so I know it relativity well. Amiga had lots of good stuff, including a similar feature, and the ability to script whole applications via ARexx. I advise a reading of https://datagubbe.se/ltmag/ https://datagubbe.se/ltmag/
- carapace 6y agoAh, a man of culture. I should have guessed. :) I got to see an Amiga in action when I visited a friend who lived in England. It was soooooo awesome. (I had to cut my teeth on an IBM PCjr.)
- JNRowe 6y agoThere were a bunch of insightful comments when the wikipedia articles was discussed here last year¹. Some about Oberon in particular, and some about the surrounding ecosystem and history. ¹ https://news.ycombinator.com/item?id=21383016 https://news.ycombinator.com/item?id=21383016
- sparkie 6y agoOberon: The overlooked Jewel has been posted here a few times: http://people.cs.ksu.edu/~danielwang/Investigation/System_Security/download.pdf http://people.cs.ksu.edu/~danielwang/Investigation/System_Se...
- lproven 6y agoThis is the best single-page intro I've seen: http://ignorethecode.net/blog/2009/04/22/oberon/ http://ignorethecode.net/blog/2009/04/22/oberon/