LINUX GAZETTE

[ Prev ][ Table of Contents ][ Front Page ][ Talkback ][ FAQ ][ Next ]

"Linux Gazette...making Linux just a little more fun!"


HAL 91 - a minimalistic Linux distribution

By Matthias Arndt


Table of Contents

Introduction

Recently, I started studiying computer sciences in conjuction with economics at the Technical University of Clausthal.

I met another Linux enthusiast, Christian Perle. He told me about one of his ongoing projects. And that one was maintaining the HAL91 Linux distribution..

This article should be a short description of what is HAL91 and where could it be used for.
Please contact the maintainer of HAL91, Christian Perle, for further information.

I just want to tell you about its existence...

What is HAL91?

In short, a quote of the HAL91 boot message:

_/  _/ _____/ _/        _____/  __/ http://home.sol.no/~okolaas/linux/hal91/
_/  _/ _/  _/ _/        _/  _/  __/            -=[ Floppy Linux ]=-
_____/ _____/ _/   ___/ _____/   _/                 ver 0.2.0
_/  _/ _/  _/ _/            _/   _/             okolaas@online.no
_/  _/ _/  _/ _____/        _/   _/          (c) 1998 0yvind Kolaas

HAL91 is a minimalistic Linux distribution that fits on one floppy disk (1.44MB).

Special about HAL91 is that it comes along with a whole set of useful utilities for maintaining and troubleshooting a linux system, including some limited networking support.

The HAL91 Project was started by Oyvind Kolaas but Christian Perle is now the maintainer of the HAL91 distribution.

Features of HAL91

In order to keep HAL91 as small as possible the whole HAL91 system currently uses the libc5.

Kernel 2.0.36 is the current kernel version.

HARDWARE REQUIREMENTS:
You just a need a minimal system with a 386 processor and 8MB of RAM. HAL91 comes along with harddisk and CD-ROM support but it runs directly from floppy out of a RAM disk.
A special feature of HAL91 is the included minimal support for NE2000 compliant network hardware and the ability to establish a PPP connection over a null modem cable (via the ppp-nullmodem script).

The following programs and tools are included with the HAL91 distribution.

tool/programDescription
bash bourne again shell
bunzip2 uncompress bzip2 files
bzip2 compress files to .bz2
cat concatenate files
chmod change file permissions
chown change file ownerships
chroot change root filesystem
cp copy files
dd read/write devices and files
df show free disk space
dir show contents of directory (symlinked to ls)
dmesg show kernel messages
du show disk usage
e2fsck check/repair an ext2 filesystem
elvis clone of the vi editor
fdisk partition hard disks
free show memory statistics
ftp ftp client
grep search for patterns in files (symlinked to rgrep)
gunzip uncompress gzip files
gzip compress files to .gz
halt halt the system
hostname show/set hostname
ifconfig configure network devices
init.net simple script for configuring ethernet
insmod load kernel modules
less display files
ln create links
loadkeys load keymaps
ls list contents of directory
lsmod show loaded kernel modules
mkdir create directories
mke2fs create an ext2 filesystem
mknod create special device files
mkswap set up swap partition
more display files (symlinked to less)
mount mount filesystem
mv rename/move files
ncp server/client to copy files/directories over network
npoll receive stdin over network (symlinked to ncp)
npush send stdin over network (symlinked to ncp)
open open virtual consoles
ping send ICMP requests
ppp-nullmodem simple script for PPP using nullmodem cable
pppd PPP daemon
ps show process status
reset clear the screen
rgrep search for patterns in files
rm remove files/directories
rmmod remove kernel modules
route configure network routes
sh bourne shell (symlinked to bash)
sleep pause for a specified time
swapoff turn off swap (symlinked to swapon)
swapon turn on swap
sync synchronize cache with disks
tar tape archiver
telnet remote login client
tr translate characters in files
umount unmount filesystem
update automatic syncing of filesystems
vi vi editor (symlinked to elvis)
zcat concatenate gzip compressed file (symlinked to gzip)
zless display gzip compressed files

(And this fits on a single floppy disk!)

The HAL91 floppy is bootable. Just insert it into your floppy drive and start your computer.

The bootloader LOADLIN is also included with the HAL91 floppy. You can launch HAL91 directly from a running DOS.

All visible files on the HAL91 floppy are on a VFAT file system. You can inspect the disk and even copy its contents (with losing the ability to boot directly from it) to anywhere using a DOS or Windows compatible system.

Kernel features of HAL91

HAL91's kernel configuration is shown in the file kconf on the disk:

#
# Automatically generated by make menuconfig: don't edit
#

#
# Code maturity level options
#
# CONFIG_EXPERIMENTAL is not set

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
# CONFIG_KERNELD is not set

#
# General setup
#
CONFIG_MATH_EMULATION=y
CONFIG_NET=y
# CONFIG_MAX_16M is not set
CONFIG_PCI=y
CONFIG_SYSVIPC=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_ELF=y
CONFIG_KERNEL_ELF=y
CONFIG_M386=y
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M686 is not set

#
# Floppy, IDE, and other block devices
#
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_IDE=y
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_BLK_DEV_IDE_PCMCIA is not set
CONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
# CONFIG_BLK_DEV_RZ1000 is not set
# CONFIG_BLK_DEV_TRITON is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_LOOP_ROOT=y
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_HD is not set

#
# Networking options
#
# CONFIG_FIREWALL is not set
# CONFIG_NET_ALIAS is not set
CONFIG_INET=y
# CONFIG_IP_FORWARD is not set
# CONFIG_IP_MULTICAST is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_IP_ACCT=y
# CONFIG_IP_ROUTER is not set
# CONFIG_NET_IPIP is not set
# CONFIG_INET_PCTCP is not set
# CONFIG_INET_RARP is not set
# CONFIG_NO_PATH_MTU_DISCOVERY is not set
CONFIG_IP_NOSR=y
CONFIG_SKB_LARGE=y
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_AX25 is not set
# CONFIG_NETLINK is not set

#
# SCSI support
#
# CONFIG_SCSI is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
# CONFIG_PLIP is not set
CONFIG_PPP=y
# CONFIG_SLIP is not set
# CONFIG_NET_RADIO is not set
CONFIG_NET_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_PCI is not set
CONFIG_NET_ISA=y
# CONFIG_LANCE is not set
# CONFIG_AT1700 is not set
# CONFIG_E2100 is not set
# CONFIG_DEPCA is not set
# CONFIG_EWRK3 is not set
# CONFIG_EEXPRESS is not set
# CONFIG_HPLAN_PLUS is not set
# CONFIG_HPLAN is not set
# CONFIG_HP100 is not set
CONFIG_NE2000=y
# CONFIG_SK_G16 is not set
# CONFIG_NET_EISA is not set
# CONFIG_NET_POCKET is not set
# CONFIG_TR is not set
# CONFIG_FDDI is not set
# CONFIG_ARCNET is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
#
# CONFIG_CD_NO_IDESCSI is not set

#
# Filesystems
#
# CONFIG_QUOTA is not set
# CONFIG_MINIX_FS is not set
# CONFIG_EXT_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_XIA_FS is not set
CONFIG_NLS=y
CONFIG_ISO9660_FS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
# CONFIG_UMSDOS_FS is not set
CONFIG_VFAT_FS=y
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_KOI8_R is not set
CONFIG_PROC_FS=y
# CONFIG_NFS_FS is not set
# CONFIG_SMB_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set

#
# Character devices
#
CONFIG_SERIAL=y
# CONFIG_DIGI is not set
# CONFIG_CYCLADES is not set
# CONFIG_STALDRV is not set
# CONFIG_RISCOM8 is not set
CONFIG_PRINTER=y
# CONFIG_SPECIALIX is not set
# CONFIG_MOUSE is not set
# CONFIG_UMISC is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_FTAPE is not set
# CONFIG_APM is not set
# CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set

#
# Sound
#
# CONFIG_SOUND is not set

#
# Kernel hacking
#
# CONFIG_PROFILE is not set

HAL91 - what to do with it?

In short, you could use HAL91 as a rescue and trouble shooting disk. It comes along with all needed tools and it runs out of the box without requiring the hard disk to run.

The included tools can be used for network trouble shooting.

HAL91 can be used as a boot image for bootable CD-ROMs and it could be used as a base Linux to install another Linux.

Last but not least, it is a very good starting point for learning about the creation of a running distribution.

Related links

Here, you may find links to the homepage of the HAL91 project.

NOTICE: The webpage mentioned in the current HAL91 boot message does not exist anymore.

written with permission of Christian Perle


Copyright © 2000, Matthias Arndt. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

[ Prev ][ Table of Contents ][ Front Page ][ Talkback ][ FAQ ][ Next ]