1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
<html>
<head>
<title>NethackBootdisk</title>
<meta name="author" content="Reiner Herrmann">
<meta name="keywords" content="nethack, bootdisk, nehabodi, floppy, linux, busybox, uclibc">
</head>
<body>
<h1>NeHaBoDi</h1>
<hr><a href="http://sourceforge.net/projects/nehabodi">Project page</a> - <a href="http://sourceforge.net/project/showfiles.php?group_id=125889">Download</a><hr><br>
<b>General description</b><br>
NeHaBoDi (NethackBootdisk) is a very small <a href="http://www.kernel.org">Linux</a> distribution, containing the famous role playing game <a href="http://www.nethack.org">Nethack</a>.<br>
Nevertheless it is completely fitting onto a single 1.44 MB floppy.<br>
So you just have to insert the disk, boot the computer and are able to play a round ;)<br><br>
I started this project to learn something about the Linux bootprocess and how real distributions are working.<br>
A nice side effect is, that I am now able to play my favorite game at computers on which I am not able to install additional software ;)<br><br>
You can also test the floppy image by using the CPU emulator <a href="http://fabrice.bellard.free.fr/qemu/">QEMU</a> (<i>qemu -fda filename.img -boot a</i>).<br><br><br>
<b>Technical details</b><br>
This distribution is using a Linux kernel in version 2.4.28, because it is much smaller than the recent 2.6 series.<br>
To save space for nethack, I left features and drivers out, that are not really needed.<br>
Busybox is used to provide the programs required for login (init, getty, login) and a small shell (lash).<br><br>
The complete rest of the disk-space is used by Nethack and its datafile.<br>
Nethack was patched with the hpmon and menucolor patches (I cannot play without them ;D) (you can find these patches via <a href="http://www.google.com">Google</a>).<br><br>
The applications have been compiled with <a href="http://gcc.gnu.org">GCC</a> 3.4.4pre.<br>
Busybox and Nethack are linked statically against uClibc to hold the binary size small.<br>
The Linux kernel is optimized for i686 platforms to hold down the size (I needed nearly every byte...).<br>
UPX (1.92) was used to compress the Nethack binary. Though UPX is also supporting bzImage compression, I was not able to boot with a compressed kernel and init did not want to start with a compressed Busybox.<br>
If you have suggestions for saving more space, please report them.<br><br>
To correctly copy the image onto a floppy, use the following command:<br>
<i>dd if=filename.img of=/dev/fd0</i><br>
(That works only at Unix systems. Use <a href="http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm">rawrite</a> for use with Windows)<br><br><br>
<b>Legal issues</b><br>
Nethack is licensed under the terms of the <a href="http://www.nethack.org/common/license.html">Nethack General Public License</a>.<br>
The Linux kernel and busybox are licensed under the terms of the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</a>.<br>
The rest of this project (bootscript and configuration files) is public domain and can be used for whatever you want ;)<br><br><br>
<b>Projects that made this project possible</b>
<ul>
<li><a href="http://www.nethack.org">Nethack</a></li>
<li><a href="http://www.kernel.org">Linux</a></li>
<li><a href="http://www.busybox.net">Busybox</a></li>
<li><a href="http://www.uclibc.org">uClibc</a></li>
<li><a href="http://upx.sourceforge.net">UPX</a></li>
<li><a href="http://www.tldp.org/HOWTO/Bootdisk-HOWTO/">Bootdisk howto</a></li>
</ul><br>
<hr><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=125889&type=2" width="125" height="37" border="0" alt="SourceForge.net Logo" /></a>
</body>
</html>
|