... assembly1
Real mode was not one of the strongest points of the GNU assembler, not until recent versions. Therefore two other assemblers have been used for real-mode programs such as boot loaders. These are as86 (in use by LILO and until recently by the real mode code in the Linux kernel) and nasm (in use by SYSLINUX).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... systems2
For an interesting example see the file sector.S in the diagnose subdirectory of the LILO boot loader. The SYSLINUX program does almost the same thing, but really loads just the first part of the second stage loader, which in turn loads the rest.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... decompressed3
At this point we are not in a position to use BIOS anymore and the kernel console driver has not been initialized yet. The decompressor contains a very primitive screen output routine, so it can show the ``Uncompressing Linux'' message.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 19924
In fact shoelace is even older, but who has heard of that?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.