embedded Squeak for UNIX + bootable demo

Marcus Denker marcus at ira.uka.de
Sat Jan 16 13:29:37 UTC 1999


On Fri, Jan 15, 1999 at 09:58:01PM -0500, Paul Fernhout wrote:
> Peter William Lount wrote:
> > Ok. I decompressed the zip file and ran the rawrite2.exe as follows:
> >         rawrite2 -f sqdemo~1.ima
> 
> Thanks for the pointer. I wasn't sure how to do this.
>
Linux: dd if=sq-demo.image of=/dev/fd0  

> Of course, if you want the GUI primitives, mouse support, etc. you would
> need that code from the VM for a UNIX/Linux port. However, the LINUX
> distribution he uses may not include a display driver (like VGA
> support). Also, I wonder if it would still fit on a disk if it needed
> display drivers, the GUI code, mouse drivers, etc. ? Probably? 

Yep. The Kernel on the Demo-disk includes drivers for Serial Ports
and PS2-mice. (low-level, via /dev/psaux or /dev/ttyS0).
I tried to compile it with VESA-SVGA framebuffer support, but somehow
it doesn't work. (It should display a nice Pinguin-Logo while booting...) 

About the framebuffer (from Linux-Documentation):
------------------------------------------------

|The frame buffer device provides an abstraction for the graphics hardware.
|It represents the frame buffer of some video hardware and allows application
|software to access the graphics hardware through a well-defined interface,
|so the software doesn't need to know anything about the low-level (hardware
|register) stuff.
|
|The device is accessed through special device nodes, usually located in the
|/dev directory, i.e. /dev/fb*.
|
|
|
|As you already know, a frame buffer device is a memory device like /dev/mem
|and it has the same features. You can read it, write it, seek to some location
|in it and mmap() it (the main usage). The difference is just that the memory
|that appears in the special file is not the whole memory, but the frame buffer 
|of some video hardware.

I think the DEC-Itsy port of Squeak uses the Linux-framebuffer to do
graphics... is the source available somewhere?
And someone is working on a libGGI port, which will use the framebuffer.

> Is there a full GUI Squeak on a LINUX floppy already? 
I haven't seen one... The main problem is that the GUI-enabled
Linux VM does graphics via the X-Window System. And X is VERY LARGE.

> > Where is more information about your demo?
I'l add more documentation and release a new demo soon...

> 
> I assume Marcus must have linked the Embedded Squeak output file with
> the Linux kernel directly, and then compressed the entire thing, and
> put  it on a standard release floppy. I'm not sure what it would take to
> do this, presumably some base Debian Linux sources and GCC and GZIP? 
> Marcus -- am I close? 
> 
Close... but actually it is a bit more complicated:
(I described this in the "SqueakOS"-thread some days ago:)

The disk is a modified Debian rescue-floppy. 

The disk is DOS-formated:

 Volume in drive A is LINUX BOOT 
 Volume Serial Number is 2410-07EF
 Directory for A:/

ldlinux  sys      4528 11-04-1996   0:35 
linux           311330 01-10-1999  12:12 
syslinux cfg       158 01-10-1999  13:34 
squeak   txt       215 01-10-1999  13:36 
readme   txt       886 01-18-1997  15:37 
f1       txt       308 01-10-1999  13:37 
f10      txt       717 01-18-1997  15:37 
f2       txt       143 01-10-1999  13:38 
root     bin    620459 01-15-1999  23:04 
syslinux exe     11938 01-18-1997  15:37 
rdev     sh        115 01-18-1997  15:37 
       11 file(s)           950 797 bytes
                            503 808 bytes free

The linux-loader "ld-linux.sys" boots the Kernel (linux 2.2pre5)

The Linux kernel (file "linux") is compiled
with Serial/PS2 Mouse support and VESA Framebuffer Graphics.
(and not much else, e.g. no sound, no network)
The kernel is gzip-compressed and decompresses itself
on startup.
Building a new Kernel is described in the file "readme.txt"

File root.bin is a gzip-compressed MINIX filesystem image,
it is decompressed into a ram-disk by the kernel.

The Minix-Filesysten contains the following files:

total 23
drwxr-xr-x   2 root     root        20032 Jan 15 23:01 dev
drwxr-xr-x   2 root     root         1312 Jan 15 23:01 sbin

dev:
total 5
..... many device files....

sbin:
total 906
-rwxr-xr-x   1 root     root       924240 Jan 15 23:01 init


"init" is the statically linked embedded Squeak. 
The kernel looks for a executable called "init" and runs
it. (init is normally the programm that starts up a Unix-system)

How to access the Minix-filesystem (from Linux):
-----------------------------------------------

mount -t msdos /dev/fd0 /floppy/
cp /floppy/root.bin root.bin.gz
gunzip root.bin.gz
mount -t minix -o loop root.bin /mnt

..... now the image is mounted at /mnt and can be
edited.

installing a new root.bin:

umount /mnt
gzip root.bin
cp root.bin.gz /floppy/root.bin
umount /floppy

-- 
Marcus Denker marcus at ira.uka.de fon at home:(0721)614235 @work:(0721)608-2749  
Smalltalkers do: [:it | All with: Class, (And love: it)]





More information about the Squeak-dev mailing list