[squeak-dev] SqueakNOS on XO (was Re: Summe of Code 2008 Project ideas)

Bert Freudenberg bert at freudenbergs.de
Thu Mar 6 07:29:59 UTC 2008

On Mar 5, 2008, at 22:29 , Jecel Assumpcao Jr wrote:

> Bert Freudenberg wrote:
>> Well, if it performs acceptable on the B2, it will fly on the
>> production machines :)
> In terms of performance, it should be very close to what the included
> eToys achieve now on the two machines, so we can even run some
> benchmarks and have an idea of what the improvement would be. Note  
> that
> the extra memory wouldn't help since even 128MB is far more RAM than
> this system would need.
> A B2 version of SqueakNOS might not run correctly on newer models  
> due to
> hardware differences (Geode NX vs GX, camera interface and other
> changes). But it would be easy to make any necessary changes.
> For the initial port, I was thinking of a "proof of concept" where the
> graphics code would be patched to work at 1200x900 instead of 1024x768
> and the rest would be unchanged. If the keyboard and mouse work (and
> they probably would) then this would already allow some interesting
> demos. None of the rest of the hardware would work.
> The milestone that would move SqueakNOS from a cute demo to a  
> practical
> alternative is being able to save an image. The project stalled before
> that was achieved. Everything that needs to be devoloped can be  
> done at
> the Smalltalk level - you don't need any changes to the VM after it is
> basically working. But without being able to save you are limited to a
> painful cross development cycle: see some bug or improvement, make
> change, test it, go back to the PC, type the change once again,  
> save the
> image, create a new bootable disk, boot the XO again and see if the
> change was properly incorporated. It would be much nicer (and make the
> difference between the project actually moving forward or staying  
> as it
> is now) to: see some bug or improvement, make change, test it and save
> image.
> The gain in productivity would be comparable to OLPC moving from the
> cross development with LinuxBIOS to native development with
> OpenFirmware. Behold, the power of the interactive prompt!
> The internal Flash should be off limits, for now. So saving images  
> means
> either a USB drive (very complex drivers), using the wifi network  
> (very
> complex drivers in addition to USB and a TCP/IP stack) or a SD card
> (most likely the simplest option). I would start out with multiple raw
> partitions to get as quickly as possible to the point of native
> development and then would code a FAT file system using that,  
> eventually
> moving to saving on regular files.
> After that things should move much faster, and it would be possible to
> add the camera, USB and the most popular types of devices, the  
> internal
> wifi and so on.

Well, I actually would cheat a bit (if you would call it cheating).  
OFW has all the drivers (including touchpad, keyboard, NAND, USB  
drives, filesystems, Wifi, TCP/IP, Camera), and exposes them to the  
OS. So you only need one little simple driver to access the OFW  
device tree, and you should be good.

Some friends at the U of Magdeburg experimented with Squeak in Linux  
framebuffer mode (no X11), and found that it performs worse. That's  
because the X11 driver uses Geode-specific accelerations - these  
might be worth to access natively.

- Bert -

More information about the Squeak-dev mailing list