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
|