update DBG_DISCARD macro to allow the compiler to see the argument for compile-time...
[gpxe.git] / index.xhtml
blobf5f0e41325225d7ba6010efe1297b327e2810153
1 <blockquote>
2 <h2 class="c6">About EtherBoot</h2>
4 <p class="c7">Etherboot is a software package for creating ROM
5 images that can download code over an Ethernet network to be
6 executed on an x86 computer. Many network adapters have a socket
7 where a ROM chip can be installed. Etherboot is code that can be
8 put in such a ROM. Etherboot is normally used for for booting PCs
9 diskless. This is useful in various situations, for example:</p>
11 <ul class="c11">
12 <li>An X-terminal.</li>
14 <li>Clusters of compute servers.</li>
16 <li>Routers.</li>
18 <li>Various kinds of remote servers, e.g. a tape drive server that
19 can be accessed with the RMT protocol.</li>
21 <li>Machines doing tasks in environments unfriendly to disks.</li>
23 <li>A user platform where remote partitions are mounted over the
24 network and you are willing to accept the lower speed compared to
25 disk.</li>
27 <li>Maintaining software for a cluster of equally configured
28 workstations centrally.</li>
29 </ul>
31 <p class="c7">Etherboot can boot computers faster than from a disk
32 because there are no delays in spinning up disks, etc. A moment's
33 calculation will show that even with a 10Mbit Ethernet, sending a
34 500kB kernel will take only a couple of seconds typically. With
35 100Mbit Ethernet it gets even better.</p>
37 <p class="c7">Compared to booting from solid-state devices, e.g.
38 Flash disks, Etherboot has the advantage of centralising software
39 adminstration, the tradeoff being the dependence on a server. This
40 can be partly alleviated by providing redundant servers.</p>
42 <p class="c7">Etherboot can work with RAM disks, NFS filesystems,
43 or even local disks, if desired. It's a component technology and
44 can be combined with other technologies to do things the way you
45 want.</p>
47 <p class="c7">Etherboot is usually used to load Linux, FreeBSD or
48 DOS. However the protocol and boot file formats are general, so
49 there is no reason why it could not be used to load arbitrary
50 images to a PC, including other OSes.</p>
52 <p class="c7">Etherboot is Open Source under the GNU General Public
53 License Version 2 (GPL2).</p>
55 <p class="c7">The components needed by Etherboot are</p>
57 <ul class="c11">
58 <li>A bootstrap loader, usually in an EPROM on a network card, or
59 installed in the flash BIOS, but could be put anywhere in the
60 address space the BIOS probes in. For testing this could be put on
61 a floppy disk or a hard disk partition. Some configurations may
62 even be always run from a floppy disk (e.g. temporary testing
63 setups or pedagogic uses).</li>
65 <li>A DHCP or bootp server, for returning an IP address and other
66 information when sent a MAC (Ethernet card) address.</li>
68 <li>A tftp server, for sending the kernel images and other files
69 required in the boot process. Alternatively, Etherboot can boot
70 from an NFS mount.</li>
72 <li>A Linux or FreeBSD kernel.</li>
74 <li>Optionally, a NFS server, for providing the disk partitions
75 that will be mounted if Linux or FreeBSD is being booted.</li>
77 <li>Optionally, a RAM disk contained in the loaded image. This can
78 be the initial RAM disk if desired.</li>
80 <li>Software tools for building the download image, and tools for
81 debugging.</li>
82 </ul>
83 </blockquote>