Squeak as Operating System
Last updated at 1:58 am UTC on 11 February 2014
There have been a number of ports of Squeak to machines without a separate underlying operating system.
For x86 PC
Some notes on these systems at CoreSqueak
For other systems
Squeak was ported to ARM based machines at Interval, and some details about the technical aspects can be read here. The actual hardware was demonstrated at the '97 OOPSLA.
See The Squeak Box and A Squeak PC for the installation of Squeak on a Mini ITX by Dan Ingalls to run his weatherstation. This ran Squeak in userland on top of a modified (cut down) linux kernel.
Shown at OOPSLA / Splash '97:
Up on the Podium, we had a little board with about 6 chips and a PCMCIA ROM card on it. It had wires coming from a battery and going to a little 1/2 VGA color LCD display. The heart of the board was a Mitsubishi M32R/D chip which combines a RISC processor with 2MB of on-chip RAM, all on one chip.
The Mits folks (a research group in Mountain View California) had interfaced the Squeak API to their BIOS and *bingo* in a few weeks they had a Squeak computer.
We booted the board and showed the screen by overhead camera, but didn't have time to show much running. The board runs everything you would expect: factorial, warpBlt, even real-time music synthesis. – Dan Ingalls
The background is the Mitsubishi has a nifty single-chip RISC computer that integrates RAM on the same chip as the CPU. But they didn't have any software for it. So they got a bright summer intern named Curtis Wickman to port Squeak to it.
Curtis had to write all the device drivers from scratch, including a display driver, the mouse and keyboard handlers, a Flash RAM file system, a loader, and sound output.
This took four to six weeks, I think. However, we were then able to put a generic Squeak image onto it and it looked and behaved exactly as it does on a PC or Macintosh. Even though we knew intellectually that this would be the case, it was somewhat mind-bending when Alan grabbed the mouse during our demo began doing an unrehearsed demo and everything worked perfectly!
The amount of code required for this "bare machine" implementation is quite modest; 2000 lines of C and a hundred or so of assembly code, as I recall. – John Maloney