[HN Gopher] Project Oberon: Design of an operating system, a com...
___________________________________________________________________
Project Oberon: Design of an operating system, a compiler, and a
computer [pdf]
Author : JoachimS
Score : 169 points
Date : 2024-01-04 16:59 UTC (6 hours ago)
(HTM) web link (people.inf.ethz.ch)
(TXT) w3m dump (people.inf.ethz.ch)
| zengid wrote:
| RIP Prof Wirth
|
| Side note: can we get a better tag on this to show it's a PDF
| file? I think the source is reputable but I always freak out when
| a url goes to a pdf.
| forgotpwd16 wrote:
| Usually links leading to pdf are denoted with [pdf] at the end.
| zengid wrote:
| it wasn't formatted like this at the time
| userbinator wrote:
| The URL already ends in .pdf .
| i_don_t_know wrote:
| That's only the first half of the book. You can find all parts
| and software at: https://people.inf.ethz.ch/wirth/ProjectOberon/
| jll29 wrote:
| p. 59-75 covers the fast implementation of piece lists (recently
| covered on HN).
|
| (Just saying because there were many threads on how to represent
| text buffers for fast editing on HN:
|
| https://news.ycombinator.com/item?id=15381886
| https://news.ycombinator.com/item?id=11244103
| https://news.ycombinator.com/item?id=14129543
| https://news.ycombinator.com/item?id=15387672
| https://news.ycombinator.com/item?id=14046446 )
| zvmaz wrote:
| > The largest chapter of the 1992 edition of this book dealt with
| the compiler translating Oberon programs into code for the
| NS32032 processor. This processor is now neither available nor is
| its architecture recommendable. Instead of writing a new compiler
| for some other commercially available architecture, I decided to
| design my own in order to extend the desire for simplicity and
| regularity to the hardware. The ultimate benefit of this decision
| is not only that the software, but also the hardware of the
| Oberon System is described completely and rigorously. The
| processor is called RISC. The hardware modules are decribed
| exclusively in the language Verilog.
|
| I wonder how it compares to Nand To Tetris. Other than that, it
| seems really interesting. Has anyone read it?
| 082349872349872 wrote:
| It's much less pedagogical than Nand to Tetris; if you need the
| background, read that first, then read this.
|
| (he eventually ported the hardware description to his own HDL,
| Lola)
| i_don_t_know wrote:
| Project Oberon describes the final system as it is. It's not a
| tutorial that takes you step by step from the basics to a
| complete system.
| hnthrowaway0328 wrote:
| Nand2Tetris is the perfect introduction project of this field
| that spans Hardware, OS and compiler design. That said, I
| completed the project and found it lacking depths and in-depth
| investigation of all topics. But this is what makes it the
| perfect introduction project.
|
| The University of Tokyo has a similar project that I believe
| can serve as a stepping stone. Check out the CPU experiment:
| https://ytsmiling.tech/2017/04/02/cpuex.html
|
| If you don't like it (probably due to lack of documentation),
| at this stage you can also design your own projects. Basically
| a CPU sub-project that uses Verilog or any HDL, which leads to
| an OS and compiler project.
| retrac wrote:
| As another user said, it's not oriented towards a beginner. You
| would want some, maybe most, of the background in NAND 2 Tetris
| first. Chapter 16 about that mentioned processor for example,
| and it just throws you in the deep end with the Verilog code.
| Here's the CPU interface with the system bus, the registers,
| and how the multiplier unit works.
|
| The good part is the commentary about the design decisions and
| trade-offs. That is invaluable, because it is the wisdom of
| Niklaus Wirth, towards the end of his career, drawing on a
| lifetime of experience. He was one of those rare polymaths,
| with a broad and deep understanding, of both the circuitry, and
| the more abstract parts of CS. He always generalized, tried to
| understand the principle, and places things in their historical
| context and explains how they developed. Because it's Wirth,
| the history lesson is often based on personal experience. It
| produces a good synthesis, in my opinion. For example:
|
| > The second [interface] (MouseX) is included here for
| historical reasons. It was used by the computer Lilith in 1979,
| and used the same Mouse as its ancestor Alto (at PARC, 1975).
| It is distinguished by a very simple hardware without its own
| microprocessor, which is currently contained in most mice. This
| goes at a cost of a 9-wire cable. But today, microprocessors
| are cheaper than cables. We include this interface here,
| because it allows for a simple explanation of the principle of
| pointing devices.
| pjmlp wrote:
| After this follow up on the Oberon System 3, with its Gadgets
| component model, and a mix of JIT/AOT compilers,
|
| "The Oberon companion - a guide to using and programming Oberon
| System 3"
|
| https://www.semanticscholar.org/paper/The-Oberon-companion-a...
|
| You can access the source code from Rochus fork,
|
| https://github.com/rochus-keller/OberonSystem3
|
| Or the Active Oberon evolution, although not directly done by
| Niklaus Wirth,
|
| https://gitlab.inf.ethz.ch/felixf/oberon
|
| Screenshots and OS Manual,
|
| https://gitlab.inf.ethz.ch/felixf/oberon/-/blob/main/ocp/Doc...
|
| Or Component Pascal and Blackbox IDE, created by a startup out of
| ETHZ
|
| https://blackboxframework.org/index.php
| Rochus wrote:
| The Active Oberon evolution started with the Active Object
| System (AOS) and the Bluebottle window manager; the source code
| of the last "Current" release can be accessed e.g. here:
| https://github.com/OberonSystem3/AOS_Bluebottle_Sources. If you
| want to study the source code, you can use this tool:
| https://github.com/Rochus-Keller/ActiveOberon.
| guidoism wrote:
| I re-typeset the text in TeX and have a nicer looking PDF for
| those that care: https://github.com/guidoism/tex-oberon
| zvmaz wrote:
| I really liked reading the README. It shows that you are
| passionate about Project Oberon and the book. This in turn
| motivates me to read it. Thank you for your work.
| sydbarrett74 wrote:
| Thank you for your hard work and dedication in keeping this
| alive.
| loup-vaillant wrote:
| Awesome! I'm guessing there's a not-too-hard way to change
| change the paper format? I'm thinking of going to A5 so I can
| bind myself a nice book.
| ikhare wrote:
| Back when I took compilers in college we wrote a compiler for
| Oberon. I couldn't quite find my original class site, but this
| one seems roughly right (from a few years before I took the
| class): https://cseweb.ucsd.edu/~wgg/CSE131B/
|
| It was a great teaching language.
| I_am_tiberius wrote:
| In an interview with Niklaus he was talking about a 500 page
| document...
| fmeyer wrote:
| The idea of an education computer is bugging my mind in the last
| 5 years.
|
| If you consider modern hardware and OS is practically impossible
| to have a simple enough machine that you could teach the young
| generation. Fantasy consoles like pico-8 are good options for
| programming, but not for understanding the hardware underneath.
| That way you still have school who use old architectures for
| teaching.
___________________________________________________________________
(page generated 2024-01-04 23:00 UTC)