[HN Gopher] Oberon, Plan 9 and Inferno (2021)
___________________________________________________________________
Oberon, Plan 9 and Inferno (2021)
Author : eterps
Score : 119 points
Date : 2022-09-04 08:57 UTC (14 hours ago)
(HTM) web link (blog.tsr-podcast.com)
(TXT) w3m dump (blog.tsr-podcast.com)
| eterps wrote:
| The article mentions:
|
| _> Slim binaries were invented by Michael Franz in the early
| 1990s. They were motivated and opposed to the fat binaries
| invented by Apple during the transition from 68k to PowerPC
| architectures. OMI provided portable code based on a compressed
| version of the abstract syntax tree._
|
| If you are interested in pursuing that topic, Vidar Hokstad wrote
| a nice blog post about it a couple of years back:
| https://hokstad.com/semantic-dictionary-encoding
| Torwald wrote:
| There was also Oberon for the Amiga.
| eterps wrote:
| Some additional info+links can be found here:
|
| https://wiki.tcl-lang.org/page/Slim+Binaries
| pjmlp wrote:
| By Oberon System 3 timeframe we had both distribution formats,
| either fully AOT compiled, or slim binaries.
| rbanffy wrote:
| IIRC, it's similar to how AS/400 binaries were distributed.
| Not sure they were compiled to native code on install or on
| first run.
| pjmlp wrote:
| TIMI isn't exactly like Oberon, because with Oberon you
| could chose, either fully native code, or in this source
| coded form, that is JITed at load time.
|
| So you can have modules fully native without any kind of
| intermediate representation, for IBM i you would need the
| cleverly named Metal C compiler for proper native code.
|
| Actually there are plenty of systems that offer AOT/JIT
| workloads, Android, Java, .NET, Common Lisp, Visual Basic
| (classical)....
|
| WebAssembly is also adopting both approaches.
| kragen wrote:
| What was the runtime performance cost of load-time JIT for
| slim binaries? What fraction of inner-loop bounds checks
| could be hoisted? What was the cost of dynamic dispatch?
|
| I'm trying to navigate similar tradeoffs for a system I'm
| prototyping now, but motivated by code footprint and safety
| rather than portability.
| eterps wrote:
| If I remember correctly this article describes some
| considerations and metrics: https://citeseerx.ist.psu.edu/v
| iewdoc/download?doi=10.1.1.10... (it has been a while since
| I read it though)
| pjmlp wrote:
| Not really sure, you can read the PhD thesis about it,
|
| https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.8
| 7...
|
| Notice that on Oberon System 3 you could decide what kind
| of optimizations would take place, section 7 on the PhD
| refers to it as further work (System 3 came later).
|
| Also a good production ready example of AOT + JIT to dive
| into as inspiration, are the latest version of Android.
| Since version 7 they rebooted the whole AOT concept, back
| to a mix of interpreter written in Assembly, JIT compiler
| with PGO, generating AOT code when the device is idle with
| help from PGO data, sharing PGO metadata with similar
| devices via Play Story.
|
| https://source.android.com/docs/core/dalvik/jit-compiler
| eterps wrote:
| I am surprised that Oberon is relatively popular on HN:
|
| https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
| pjmlp wrote:
| Because all of them represent what-ifs of how the computing
| industry could look today if their ideas would have been
| adopted in mainstream computing.
|
| Some of them actually were, however without the full package,
| they are a shadow of themselves.
| rbanffy wrote:
| Indeed. They suffered, however, from being perhaps too
| revolutionary.
|
| There was no need for vi to be a virtualisation tool instead
| of a text editor.
| pbohun wrote:
| I've done a little bit of C programming with the c libraries
| supplied by plan9port. It takes a bit of learning, but it's a
| very pleasant experience.
|
| [1] https://github.com/9fans/plan9port
| linguae wrote:
| I've been getting into Plan 9 this year; I love the simplicity of
| the design, such as the fact that nearly all system services are
| accessible through the file system. I'm running 9legacy on a
| spare Intel Core i3 mini-PC; my ThinkPad USB keyboard works very
| well with the rio and acme interfaces, which need a three-button
| mouse.
|
| Admittedly I'm also using Plan 9 as a platform for my own OS
| project; I feel I can express my ideas easier using Plan 9's
| infrastructure compared to using Linux or one of the BSDs as a
| foundation, though this comes at the cost of extensive driver and
| software support (for example, there are no Common Lisp
| implementations for Plan 9 that I'm aware of, and porting an
| existing implementation such as SBCL will be a lot of work).
| butterisgood wrote:
| Not the same I know but there's a few scheme implementations
| that work. One of them is fennel if you use the plan 9 lua port
| available for 9front.
| haolez wrote:
| I have a spare mini-PC laying around and I was wondering if any
| of these OSes might be fun to play with. I'm leaning towards
| plan9 and 9front. Plan9 seems like an engineering marvel, while
| still very simple (I've checked the source code before). I don't
| know much about 9front, but I fear that I might give up the
| simplicity of Plan9 for some level of convenience.
|
| Can anyone chime in on this topic?
| smazga wrote:
| On a spare pc I would absolutely recommend it. I have it on a
| raspberry pi and I love it. It's hard to explain, but it takes
| me back to the days when I was a kid discovering computing for
| the first time. It's just...fun.
|
| Everything feels so simple and well-designed. Once you sort of
| wrap you head around the core concepts (namespaces, what 9p
| really gives you, etc) you suddenly start seeing how crummy
| posix based systems really are.
|
| You can enable a shocking amount of functionality with little
| scripts.
|
| At my last job, I worked on a mobile banking app (mostly
| c++/java) and I developed almost exclusively in acme on my
| raspberry pi with some little scripts to use my apple laptop
| for compiling.
|
| Yeah, you'll miss out on some things (mostly web and gaming
| related) but if you're like me, your real pc will become your
| spare because you'll look for every excuse you can to do it in
| plan9 first and only use your expensive rig as a fall back.
| haolez wrote:
| Awesome! Do you use 9front?
| smazga wrote:
| Yes! The 9front crew is really good at adding stuff to keep
| the OS useful. Crypto is up-to-date, ssh plays well, ori_b
| (who also commented here) wrote a plan9 git client that
| 9front uses. 9front is the best way to go, in my opinion.
|
| It's also what sdf uses too, for what it's worth.
|
| There's a very friendly discord, but most of the old guard
| is on irc. It's...less friendly there.
| ori_b wrote:
| This is roughly how I work too; I develop Go, glue in some
| Linux for doing builds. The biggest weakness is web browsing,
| and there's a lot that could be done to glue in the hardware
| virtualization support better into the system, in the style
| of WSL, so we can run an instance of Chrome/Linux. (I would
| like to interject for a moment...). The VMX layer needs
| performance work, SVM support, and window and system
| integration out of the box.
|
| (This was posted using netsurf on 9front in a coffee shop)
| zozbot234 wrote:
| Plan9-derived OS's are at their best when used on multiple
| systems connected as a network or cluster, not just on a
| single "spare" box. What the Linux ecosystem calls
| "containerization" is part of the basic workings of the
| system, and you can use the "cpu" facility to execute
| processes remotely (perhaps via a "cloud" service) whilst
| giving them access to local resources and doing I/O on your
| local system. It's essentially aiming to create a completely
| transparent replacement for 'ssh' and its derivatives,
| including orchestration, containerization etc. frameworks.
| yjftsjthsd-h wrote:
| 9front is fine, it's just actively maintained
| pjmlp wrote:
| Oberon was quite interesting for its time, but you will get a
| hard time running it in modern hardware, even with the latest
| iteraction of it, Blue Bottle/AOS/Active Oberon, you will get a
| hard time getting ISOs.
|
| The best to look at it, partially working, are browser
| emulations,
|
| https://schierlm.github.io/OberonEmulator/
|
| Between Plan 9 and Inferno, I suggest Inferno.
|
| Descends from Plan 9, shows how the UNIX experience could be
| like when whole userspace is written in a memory safe language
| with dynamic loading and also you get to learn about Limbo
| influences Go's design.
___________________________________________________________________
(page generated 2022-09-04 23:01 UTC)