Tuesday, March 21, 2017

Real PharoNOS

A few years back there was a Squeak project called "SqueakNOS" about a Squeak Smalltalk system that did not require an underlying operating system. The idea was that you can boot into the Smalltalk image without an underlying separate OS. So that means that nearly anything is based on/implemented in Smalltalk (drivers, etc) and Smalltalk becomes the OS itself. I was fascinated by this idea when an initial SqueakNOS system was available and if you follow my blog regulary you may remember that I also reported about it's resurrection in 2006.

For Pharo Smalltalk later there was a similar project (at least with a similar name and idea) called "PharoNOS" by Mike Filonov (from pharocloud.com) to boot a Pharo system in seconds. Mike provided an ISO that you could easily boot on a machine or in a virtual environment like VirtualBox or other.
But Mikes approach was not like the original "do it all in Smalltalk" project for Squeak as his "PharoNOS" variant used a TinyCore Linux with pure X server underneath and Pharo was running on top in fullscreen. Nonetheless I liked it too as I was able to boot a Pharo in seconds now without having to install a separate operating system. Nice for kiosk systems and others.

But meanwhile also the original SqueakNOS (the Squeak system with no operating system) was ported to Pharo as "PharoNOS" and you can really have a "Pharo with No Operating System": Read more if you are interested as it was announced this week.

While all this is primarily x86 based work one could think about an ARM solution. Some pieces are already there: remember that Pharo had NativeBoost allowing to generate and run machine code in Smalltalk.

For the general Pharo release Native Boost required lots of knowledge and was hard to maintain as a general FFI interface - so it was replaced by a unified solution already (UFFI) in Pharo 5.

But NativeBoost was based on AsmJIT for Pharo which if I remember correctly already had some support for ARM assembly. So maybe this work could be resurrected too and be used as a base to boot a Pharo on an ARM machine without any OS underneath. So let the ideas flow...

No comments: