7 ms·
Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)
- eterps 6mo agoThis is great! I remember running System 3 on a 386 back when MS-DOS was king.
- Rochus 6mo agoThanks. There is actually also an i386 version of the system in the repository, where I modified the kernel so it runs with Multiboot, making installations much easier. An essential achievement for both platforms were the stand-alone tools, i.e. I can compile and link the whole Oberon system on Linux or any other platform (see https://github.com/rochus-keller/op2/ https://github.com/rochus-keller/op2/). I even implemented an IDE which I used for the development (see https://github.com/rochus-keller/activeoberon/ https://github.com/rochus-keller/activeoberon/).
- anta40 6mo agoCool. Is macOS (Apple Silicon) also supported? If not, well there's another reason to have a Linux VM ready :)
- Rochus 6mo agoTechnically yes, but since Apple locked down their OS completely, you might have to compile the tools yourself on your machine so the OS allows them to start at all.
- zephyrwhimsy 6mo ago[dead]
- tomcam 6mo agoSo good to see Oberon this accessible! Mad props!
- ike____________ 6mo agoThank you, I've never heard of the Oberon os before.
- Rochus 6mo agoOberon is both a programming language and an operating system used mostly for teaching, much like e.g. xv6 or xinu. Similar to the latter, Wirth has written text books about the system, some of which can be downloaded for free (see https://projectoberon.net/ https://projectoberon.net/ for the PDF links).
- spijdar 6mo agoOh, this is something I'm going to have to try. Excellent work! I have to ask, since people who'd know will probably be here, what's the "ten thousand foot view" of Oberon today? I'm aware of the lineage from Pascal/Modula, and that it was a full OS written entirely in Oberon, sort of akin to a Smalltalk or Lisp machine image. What confuses me is the later work on Oberon seems to be something of a cross between a managed runtime like Java or dot net, and the Inferno OS, where it can both run hosted or "natively". Whenever I've skimmed the wikipedia or web pages I've been a bit confused.
- foruhar 6mo agoSmalltalk too was originally a full OS running on bare metal back in the Xerox Alto days (1972-ish).
- Rochus 6mo agoThe "OS" (or rather "kernel") was actually the VM which was implemented in microcode and BCPL. The Smalltalk code within the image was completely abstracted away from the physical machine. In today's terms it was rather the "userland", not a full OS.
- EffCompute 6mo agoIt's refreshing to see Oberon getting some love on the Pi. There’s a certain 'engineering elegance' in the Wirthian school of thought that we’ve largely lost in modern systems. While working on a C++ vector engine optimized for 5M+ documents in very tight RAM (240MB), I often find myself looking back at how Oberon handled resource management. In an era where a 'hello world' app can pull in 100MB of dependencies, the idea of a full OS that is both human-readable and fits into a few megabytes is more relevant than ever. Rochus, since you’ve worked on the IDE and the kernel: do you think the strictness of Oberon’s type system and its lean philosophy still offers a performance advantage for modern high-density data tasks, or is it primarily an educational 'ideal' at this point?
- 6mo ago
- alterom 6mo agoI still hope to see the world where Oberon is the future (and present) of OS and programming language design, and I know very little about it. Thanks to your work, that's about to change. Thank you times a thousand <3
- cyberax 6mo ago> I still hope to see the world where Oberon is the future (and present) of OS and programming language design I see you're into horror stories. Oberon is absolutely a horrible language. It's an example of how you can screw up a good language by insisting on things that were important in 1960-s. Like not allowing multiple returns (not multiple return _values_ but multiple returns).
- Rochus 6mo agoShow me significant concepts implemented in today's languages which cannot directly be traced back to "things that were important in 1960-s" or seventies ;-)
- cyberax 6mo ago"Traced back" is fine. We can trace back the size of the Shuttle's boosters to the width of the roads in the Roman Empire. Insisting that the problems of 1960 are the only thing that matters, and MUST be solved dogmatically is not.
- Rochus 6mo agoWell, a lot of ideas (and I mean really a lot) from the sixties are still very relevant today, and indeed, there are also problems discovered in the sixties still waiting for a solution. We don't have to live in the past, but many "new" things aren't actually new, or are not better just because they are new.
- cyberax 6mo ago
- dharmatech 6mo agoThe Oberon user interface inspired Acme on Plan 9. Oberon is a very nice, fun and cozy system and environment for programming. I lived in it for a few months back around 2010 and it was a joy.
- cmrdporcupine 6mo agoI often think this style of UI -- tiled text windows but with mouse and graphics interaction (similar to emacs actually) -- is what we should be using for the coding agents we're all using now. I'd like to be able to dock panels of information, live-edit pieces of code instead of just "accept? Y/N", have side interactions, have real scroll bars and proper clipboards, even a live REPL alongside. Instead we get Claude Code's janky "60fps TUI" full of bugs and barely interactive.
- deleted 6mo ago[deleted]
- rcarmo 6mo agoThis is lovely. And I bet it is very fast on that hardware, all things considered.
- Rochus 6mo agoThe system is up extremenly fast (compared to Linux), but then it takes pretty long to find the USB hub and the keyboard/mouse. Maybe I can still speed this up.
- chinabot 6mo agoI'm going to try and give it a go on a zero2 I have lying around. Thanks, this is exactly what I come to hacker news for.
- Rochus 6mo agoCool, tell me whether it worked. Unfortunately my mini HDMI adapter is broken and I have to wait for the new to arrive. But I already soldered the headers to the UART pins and observed the system start which looked as it should.
- butterisgood 6mo agoHave always been fond of Oberon! I would love to have A2/ActiveOberon/BlueBottle or whatever the name of the day is on a small native machine as well. Great Stuff!
- Rochus 6mo agoThanks. The A2 Fox compiler actually has an ARM backend, so I would be surprised if nobody has migrated it to the Raspi yet. The 2003 version of AOS/Bluebottle (not A2) is on my list of interesting sytems, particularly because it supports multicore hardware.
- musicale 6mo agoDoes Oberon still require capitalized keywords? That always seemed to be emphasizing the wrong thing: IF disaster THEN abort;
- Rochus 6mo agoYes, the original Oberon (which the system is based on) has upper-case keywords (and some other orthodoxies). If you are looking for something more modern, go to https://github.com/rochus-keller/oberon https://github.com/rochus-keller/oberon, https://github.com/rochus-keller/luon https://github.com/rochus-keller/luon or https://github.com/rochus-keller/micron https://github.com/rochus-keller/micron.
- pjmlp 6mo agoYes, like Modula-2 as well. However, people always forget we don't program in Notepad, rather programmer editors that are able to do automatic capitalisation of keywords. It is a non problem, like discussion of parentheses or white space in programming languages that require them.
- tengwar2 6mo agoDoes the editor in this environment do automatic capitalisation? I have to say that when I used Modula-2, editors were very simple and banging away on the shift key or caps lock was a real irritation.
- pjmlp 6mo agoNot directly if I remember correctly, but there are OS formatting tools. Windows IDE tooling for Modula-2, or using something like XEmacs/Emacs or Brief.
- musicale 6mo ago> OS formatting tools. Not directly if I remember correctly, but there are OS formatting tools I would call that an extra compiler pass to fix the SHOUTING syntax.
- zephyrwhimsy 6mo ago[dead]
- pjmlp 6mo agoThis is great, especially being System 3, given the nice user experience Oberon eventually morphed into. In System 3 with the Gadgets system it was already starting to feel like a proper mainstream OS, instead of the plain black and white, without framework like experience from the initial Project Oberon, even thought it was a technological achivement already, with a memory safe systems language. I prefer the path taken down by Active Oberon, however that doesn't seem to also get that much love nowadays, and is much more complex to explore than System 3. For those that not know it, it already had something like OLE (inspired by how Xerox PARC did it with Cedar), an AOT/JIT compilation system (with slim binaries for portability), and everything on a memory safe systems language.
- Rochus 6mo agoThanks. Preparations for the migraion of AOS/Bluebottle are underway. Concerning memory safety: it's only memory safe if you don't use the SYSTEM module features, and OberonSystem 3 (and later) heavily depend on those features.
- pjmlp 6mo agoSure, but that in the end is what matters with memory safe systems languages, reduction of attack surface and easy to spot when safety is being disabled. Alternative being Assembly written primitives, like in Smalltalk originally. Blue book description.
- Rochus 6mo agoThere are better alternatives than assembly. The Oberon approach would already benefit if low-level code no longer operates behind the compiler's back and instead supports full type checking. My new Micron language provides this.
- pjmlp 6mo agoSure, in theory we could do NEWP style, where everything needed for lowlevel is provided as intrisics, and Assembly isn't even available. However this doesn't seem to be a solution that many are keen on going through. How is Micro doing it?
- devcraft_ai 6mo ago[dead]
- swiftcoder 6mo agoI was about 5 links deep before I figured out what Oberon actually was. A high-level explainer at the top of the readme would be really nice for folks who aren't already familiar with the Oberon ecosystem
- Rochus 6mo agoA good opportunity to consult wikipedia once again (https://en.wikipedia.org/wiki/Oberon_(operating_system) https://en.wikipedia.org/wiki/Oberon_(operating_system)), or to ask your trusted LLM.
- loneboat 6mo agoPasting a Wikipedia link or saying "just ask an LLM" only helps out the one instance of someone not knowing. I did the same thing as the OP you're replying to. They're right - a brief summary in the readme would be a near zero-effort permanent fix to people who stumble on your project and dont know what Oberon is.
- luismedel 6mo agoHonest question. Where does one stop clarifying things?
- wk_end 6mo agoOne of the basic principles of communication is that you have a mental model of the person you're communicating with and are phrasing what you want them to understand in terms that you think they'll understand. So whenever you're writing something - anything - you should be writing with a target audience in mind, and stop explaining right around the point where you believe that your target audience doesn't need further explanation. Of course it's normal for there to be a disconnect between your assumptions about your target audience and reality. In a real conversation this happens all the time and it's no big deal. When something's written and especially when it's printed it can be a bit more of a problem, so maybe better to err on the side of over-explaining. Also a good reason to have editors and proofreaders. But I'm rambling a bit. In this case, the link was posted to HN by the author, so the author might have had "average HN reader" in mind. Oberon never really achieved success outside of a particular niche in academia, so unless they went to ETH Zurich I personally wouldn't expect someone - even someone in tech - to know about it.
- alex38928392 6mo agoImpressive work. Native boot on Raspberry Pi without emulation is a rare thing to see working cleanly. How's the performance compared to running Oberon on a standard x86 setup? And does this open up the possibility of running it headless as a small server?
- rootbear 6mo agoWill this image also work on the 3B+? I have a spare one of those that I can try this out on.
- justin66 6mo agoThis is a really cool thing. Thanks Rochus. The Oberon language and the Oberon System were featured in Byte Magazine several times, most notably in Dick Pountain's articles: https://vintageapple.org/byte/pdf/199103_Byte_Magazine_Vol_16-03_Network_Management.pdf https://vintageapple.org/byte/pdf/199103_Byte_Magazine_Vol_1... https://vintageapple.org/byte/pdf/199305_Byte_Magazine_Vol_18-06_Pentium.pdf https://vintageapple.org/byte/pdf/199305_Byte_Magazine_Vol_1... https://vintageapple.org/byte/pdf/199501_Byte_Magazine_Vol_20-01_Small_Office_Big_Business.pdf https://vintageapple.org/byte/pdf/199501_Byte_Magazine_Vol_2... Spotting similarities betwen the appearance of the Oberon System and Plan 9, or Oberon syntax bits that were used in later languages, is left as an exercise for the reader.
- Rochus 6mo agoIt really is a pretty exciting project, even if I do have a few more gray hairs now (at least the ones that are left). Thanks for the Byte magazine references; I wasn't aware of these articles; very interesting to read how people experienced this technology in the nineties.
- inveflo 6mo ago[dead]