
OberonStation, an Oberon RISC workstation - sinrostro
http://oberonstation.x10.mx
======
nickpsecurity
The best start you can get at a system that you fully understand and know
isn't subverted. Then, once you know HW design, you can take the next step by
putting it on your own ASIC. Matter of fact, Wirth's early systems ran well on
old tech. Can use a pretty old process node. :)

~~~
amenghra
How do you know the thing which takes your design and "builds" (i.e. machine
which places physical components) or "compiles" (i.e. the thing which moves
bits into an fpga) things isn't subverted?

~~~
pjtr
Perhaps you can adapt "Diverse Double-Compiling" to "Diverse Double-
Manufacturing"? [http://www.dwheeler.com/trusting-
trust/](http://www.dwheeler.com/trusting-trust/)

~~~
Jach
I had the same thought. I think the hardest part could be "diffing" the
outputs, though. Is some particular difference within expected parameters, or
can you really detect that hidden bit of metal on layer 5 of the board?
Interestingly I stumbled upon this:
[http://www.sandia.gov/mstc/fabrication/index.html](http://www.sandia.gov/mstc/fabrication/index.html)

~~~
nickpsecurity
Didn't know they had a rad-hard, S-ASIC offering. Thanks for the link.

------
sinrostro
There are many FPGA devboards with dynamic RAM. This appears to be the only
board with 32-bit 10ns static rams, required for Oberon.

It is unique in its ability to boot Oberon in 1 second, straight out of the
box.

~~~
pjtr
Why is static ram required for Oberon?

A quick googling found this:
[https://lists.inf.ethz.ch/pipermail/oberon/2015/008083.html](https://lists.inf.ethz.ch/pipermail/oberon/2015/008083.html)

But I don't really understand the explanation. Does DRAM need software
support? Would performance just be unacceptable?

~~~
pdw
The Verilog code for an acceptably efficient DRAM controller would be larger
and more complicated than the Verilog code for the entire current system put
together. It's not a good fit for a project that seeks simplicity.

~~~
sklogic
Why do you care about efficiency? Use all your block rams for a cache to
mitigate the dram inefficiency, and use the simplest possible controller. They
can be quite simple, really, see this one for example:
[https://github.com/fpga-logi/logi-
hard/blob/master/hdl/inter...](https://github.com/fpga-logi/logi-
hard/blob/master/hdl/interface/SDRAM_Controller.vhd)

~~~
pdw
That's still more than twice as long as the current largest module, and now
you need to add caches to the system. (To be clear, I'm not involved in
Oberon's design, I'm just explaining the reasoning as I understand it.)

~~~
sklogic
Understandable. OTOH, it brings such a design much closer to the realistic
hardware, making it a more valuable teaching tool. Understanding the cache is
important.

------
cpayne
What do you _do_ with one of these things? I get the concept of totally
understanding the hardware & software, but once you bootup, then what? Are you
presented with a command prompt? Can you use it for an IoT?

Or (on the software side) is its purpose to understand how compilers work?

~~~
sinrostro
It has an interesting GUI. Text is live (as in everything can be a menu), and
selections can become objects of commands.

See
[http://ignorethecode.net/blog/2009/04/22/oberon/](http://ignorethecode.net/blog/2009/04/22/oberon/)

~~~
885895
>Oberon’s «desktop» is an infinitely large two-dimensional space on which
windows (and documents, since the distinction becomes meaningless in some
ways) can be arranged [...] When people held presentations using Oberon, they
would arrange all slides next to each other, zoom in on the first one, and
then simply slide the view one screen size to the right to go to the next
slide.

It is commonly said that Plan 9 from Bell Labs is more UNIX than UNIX. This
idea of sliding the view along an infinite plane, in turn, seems to me even
more UNIX than anything I've seen or heard of. Not having used -- and in fact
only having heard of in passing -- Oberon before, I can't comment on how Unixy
the remainder of the system is, but none-the-less, this right here seems to
capture the essense of UNIX. In all the times I have been impressed by well
composed presentations, never have I questioned the need for "tricks" like
screenshots and videos to get a coherrent presentation of interactive tasks or
information from software external to whatever tool was being used to run the
presentation.

~~~
renox
I'm not so sure: the simplicity of the concept is nice but is-it really
simple/nice to use?

I imagine that you could get lost quite easily in an infinite plane, so you'd
need to be able to zoom out to find your windows but if you have too many
windows opened then you have to zoom out so much than it's becoming hard to
see which windows is what..

Workspaces seems a better way to organize your windows (even though it can
also be difficult to find the workspace which contain the window you want).

~~~
885895
When I think about zooming, I think of how Google maps work and also about
responsive web design. That is to say, having differing amounts of information
show at different zoom levels. It was my impression that this is how the
Oberon desktop works but I may be mistaken in that assumption.

At 1:1, imagine a regular view.

Below some threshold effective resolution, imagine condensed information.
Instead of miniature, unreadable windows, one might display a simplified view,
say a Metro-style color coded box with -- relative to box size -- a big icon
and document title.

Below yet another threshold, condense more, using conventional icons instead
of Metro.

At lowest zoom level, display a one-dimensional list of everything. Searchable
of course.

------
coldtea
Where's pjmlp?

~~~
vezzy-fnord
Lamenting the loss of Xerox PARC, I'd assume.

------
RexRollman
Despite booting and testing Oberon on more than one occasion, I have
personally never found a use for it. That said, it makes me happy to see
people tinkering and creating things like this.

~~~
nickpsecurity
Root of trust on air gapped system. It meets the verification requirements,
it's portable, and is a start on the safety requirements. :)

------
ori_b
Neat, but disappointing that it's using VGA and PS/2 instead of something that
plugs into peripherals that I own. Wish I could play with it.

~~~
rjsw
I'm sure ETH Zurich would be happy to receive your patches to add a USB stack
and EDID parser written in Oberon.

~~~
ori_b
Might be fun. My spare-time projects fully support Plan 9, why not muck around
with another zombie OS? EDID parsing should be easy, but the USB stack will be
painful. And supporting "real" video hardware would be a pain. I'd have to
figure out if it can run it on some hardware I own first, though.

Realistically, though, this is likely to fall by the wayside, since I only
have so many hours a day coding, and enough of it is spent at work.

~~~
sinrostro
Oberon is a pretty interesting system to muck with.

Another approach is to blackbox USB and HDMI, and consider them outside the
project, much like the VGA monitor or whatever is in the keyboard to send PS/2
signals. You can connect to spare IOs on the FPGA board with 'blackbox'
hardware, as long as protocols are simple and open.

~~~
nickpsecurity
Exactly. I often recommend that anyway. Let's you offload all the interrupts
and often plenty pre-processing. And microcontrollers with onboard peripherals
are more numerous, powerful, and cheap than ever before. So many possibilities
there.

I downloaded as much of the source of Bluebottle as I can. I'm glad the OP
gave me the link to the modern one. I'll get it too. Think I might try to
retarget it in one of the safer languages, secure hardware (eg Cambrige CHERI
processor), or certified compilers. Oberon is the kind of thing a one-man
project can make progress on. On other side, I think I recently saw another
team quit after little progress on rewriting NetBSD in something safer. ;)

~~~
pyvpx
what were they re-writing NetBSD in? can you share a link to more information?

~~~
nickpsecurity
I don't have the link anymore. Doesn't matter. Despite NetBSD's portability
and good design, it was simply too complicated and connected to C style for
them to pull off the re-write. Oberon, on the other hand, has the whole OS
written in a type-safe language with good modularity and is a lot simpler.
Should be a much easier re-write.

------
e12e
Very nice. Afraid I won't be able to get one now, but for those that want to
play now, and keep the real thing on a wish list, apparently there's (at least
one) an emulator:

[https://github.com/pdewacht/oberon-risc-
emu](https://github.com/pdewacht/oberon-risc-emu)

Exited to see people keep working on stuff like this.

------
coderjames
This looks pretty awesome, I might have to pick one up. Always wanted to play
with a real, native Oberon.

------
tomcam
This is literally a dream come true for me. But the PayPal link doesn't work
for the assembled version. Help!

~~~
sinrostro
PayPal is down. Come back later.

~~~
sinrostro
PayPal is back up.

~~~
tomcam
Duly ordered! I am beyond stoked.

------
JulianMorrison
A FPGA, huh? Interesting, why not just target ARM? I doubt that's going
anywhere soon.

~~~
sinrostro
I imagine Prof. Wirth must have thought that 32032 wasn't going anywhere soon
20 years ago.

As I see it, the ARM instruction sets (note the use of plural) are a moving
target (look at Cortex chips with Thumb2 only). They are far from RISC if you
count them, and the instruction encoding is horrendulous.

It's like saying "why not target Windows? I doubt that's going anywhere soon"

With FPGAs, your only risk is that the manufacturer discontinues the chip you
targeted, and you can then target another brand with the same (or nearly the
same) HDL code.

~~~
nickpsecurity
100% spot on assessment! Wirth thought ahead well enough last time in making
it modular and simple enough to easily port. They thought even better by
putting it on a FPGA. And also with CPU and components simple enough to
implement on ASIC with old node (350nm or 180nm). That's inexpensive enough to
be crowd-funded.

Need the I/O stuff, etc to be implemented for the node, too, though...

~~~
sinrostro
Thanks. And I didn't even mention security in ARM chips (or lack thereof)

