Almost native Gforth

Combines the drawbacks of a hosted Forth with those of a native Forth!

What is it?

It's a bootable system that uses the Linux kernel to talk to the hardware and runs Gforth (and only Gforth) on top of it (as init process). Also, for a sense of purity, no other executables are provided. And because of lazyness (to make a selection) no Forth source code is provided, either.

The floppy version

The present instance is based on tomsrtbt-2.0.103 and Gforth-0.6.2 and runs in 8MB. The basis is still visible in various places, e.g., the greeting message (it is not really a full tomsrtbt version, but my feeble attempt to change the message did not succeed).

After booting the root file system contains the /dev tree from the original tomsrtbt plus the following files:

-rwxr-xr-x    1 root     root       471781 Apr  6  2001 /lib/ld-linux.so.2
-rwxr-xr-x    1 root     root      1236396 Apr  6  2001 /lib/libc.so.6
-rwxr-xr-x    1 root     root        79024 Apr  6  2001 /lib/libdl.so.2
-rwxr-xr-x    1 root     root       143712 Apr  6  2001 /lib/libm.so.6
-rwxr-xr-x    1 root     root        92352 Dec 23 16:15 /sbin/gforth
lrwxrwxrwx    1 root     root            6 Dec 23 16:16 /sbin/init -> gforth
-rwxr-xr-x    1 root     root       190796 Dec 23 14:52 /usr/local/lib/gforth/0.6.2/gforth.fi

The CD version

The CD version is based on RIP-11.4 and Gforth-0.6.2 and boots in 16MB. The basis is still visible in various places, e.g., the grub menu (just select the line below the one you start in to start Gforth).

After booting the root file system contains the /dev tree from the original RIP, a similar /lib tree as shown above, a normal installation of Gforth-0.6.2 in /usr/local/, and a link from /sbin/init to /usr/local/bin/gforth.

What can you do with it?

What is it good for?

It's just a demonstration of the principle. I would not recommend it for any serious use, but some people have been asking for native Forths on PCs, and they might be interested (although there's probably still too much hosting going on for them).

Disadvantages of the current version

How to create a boot floppy

Under Linux:
wget http://www.complang.tuwien.ac.at/forth/gforth/almost-native/angf-0.1.tar.gz
tar xvfz angf-0.1.tar.gz
cd angf-0.1
#put a good floppy disk with no or expendable contents in drive
./install.s
There is no support for making boot floppies with other OSs at the moment.

How to create a boot CD

Download the ISO image, and burn it to the CD as an image (not as a file). On Linux, you can do it somewhat like this:
wget http://www.complang.tuwien.ac.at/forth/gforth/almost-native/angf-0.1-rip.iso
#Use "cdrecord -scanbus dev=ATAPI" to find out which dev to use
#Insert "blank=fast" if you use a CDRW
cdrecord dev=ATAPI:0,0,0 angf-0.1-rip.iso

Anton Ertl
[ICO]NameLast modifiedSizeDescription

[DIR]Parent Directory  -  
[   ]angf-0.1-rip.iso27-Dec-2004 16:50 7.0MCD version
[CMP]angf-0.1.tar.gz23-Dec-2004 18:42 1.7MFloppy version, install from Linux

Apache/2.2.22 (Debian) DAV/2 mod_fcgid/2.3.6 PHP/5.4.36-0+deb7u3 mod_python/3.3.1 Python/2.7.3 mod_ssl/2.2.22 OpenSSL/1.0.1e mod_perl/2.0.7 Perl/v5.14.2 Server at www.complang.tuwien.ac.at Port 80