How did Linux/xBSD boot before GRUB?












14














According to Wikipedia, GRUB was released in 1995. By that point Linux and xBSD existed for several years. I know early Unix versions were tied to hardware in the 70s and 80s, but Linux and xBSD were free to distribute and install. Which begs the question how would you boot Linux back then? Were distributions shipping with their own implementations of bootloaders?










share|improve this question




















  • 14




    Umm... You weren't around when LILO was the only Linux bootloader? And I've never used LILO nor Grub on my BSD systems. Which one are you interested in? See e.g. biosboot(8).
    – Kusalananda
    yesterday






  • 5




    @Kusalananda Unfortunately, I cared more about toys and drawing Ninja Turtles than pipes,execs, and shells back then :) I'm interested in general history, not specific bootloader. From the page you've linked I see OpenBSD has biosboot for two architectures, i386 and amd64. Does that mean OpenBSD specifically had to target the architectures instead of having one, unifying tool ?
    – Sergiy Kolodyazhnyy
    yesterday










  • The first-stage bootloader would be different for each architecture (only i386 and amd64 has a "bios" BIOS anyway). Have a look at NetBSD if you're interested in more exotic architectures than the bog standard PC.
    – Kusalananda
    yesterday








  • 1




    @SergiyKolodyazhnyy: there are still boot loaders for other architectures, most notably U-Boot, for embedded systems.
    – ninjalj
    yesterday






  • 1




    @Kusalananda I don't think LILO ever was the only Linux bootloader. As far as I know the loader built into kernel images predates LILO, and by the time support for the built in loader was discontinued there were at least a handful of other bootloaders around.
    – kasperd
    19 hours ago
















14














According to Wikipedia, GRUB was released in 1995. By that point Linux and xBSD existed for several years. I know early Unix versions were tied to hardware in the 70s and 80s, but Linux and xBSD were free to distribute and install. Which begs the question how would you boot Linux back then? Were distributions shipping with their own implementations of bootloaders?










share|improve this question




















  • 14




    Umm... You weren't around when LILO was the only Linux bootloader? And I've never used LILO nor Grub on my BSD systems. Which one are you interested in? See e.g. biosboot(8).
    – Kusalananda
    yesterday






  • 5




    @Kusalananda Unfortunately, I cared more about toys and drawing Ninja Turtles than pipes,execs, and shells back then :) I'm interested in general history, not specific bootloader. From the page you've linked I see OpenBSD has biosboot for two architectures, i386 and amd64. Does that mean OpenBSD specifically had to target the architectures instead of having one, unifying tool ?
    – Sergiy Kolodyazhnyy
    yesterday










  • The first-stage bootloader would be different for each architecture (only i386 and amd64 has a "bios" BIOS anyway). Have a look at NetBSD if you're interested in more exotic architectures than the bog standard PC.
    – Kusalananda
    yesterday








  • 1




    @SergiyKolodyazhnyy: there are still boot loaders for other architectures, most notably U-Boot, for embedded systems.
    – ninjalj
    yesterday






  • 1




    @Kusalananda I don't think LILO ever was the only Linux bootloader. As far as I know the loader built into kernel images predates LILO, and by the time support for the built in loader was discontinued there were at least a handful of other bootloaders around.
    – kasperd
    19 hours ago














14












14








14


3





According to Wikipedia, GRUB was released in 1995. By that point Linux and xBSD existed for several years. I know early Unix versions were tied to hardware in the 70s and 80s, but Linux and xBSD were free to distribute and install. Which begs the question how would you boot Linux back then? Were distributions shipping with their own implementations of bootloaders?










share|improve this question















According to Wikipedia, GRUB was released in 1995. By that point Linux and xBSD existed for several years. I know early Unix versions were tied to hardware in the 70s and 80s, but Linux and xBSD were free to distribute and install. Which begs the question how would you boot Linux back then? Were distributions shipping with their own implementations of bootloaders?







boot-loader history






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 9 hours ago









Boann

1557




1557










asked yesterday









Sergiy KolodyazhnyySergiy Kolodyazhnyy

8,46312254




8,46312254








  • 14




    Umm... You weren't around when LILO was the only Linux bootloader? And I've never used LILO nor Grub on my BSD systems. Which one are you interested in? See e.g. biosboot(8).
    – Kusalananda
    yesterday






  • 5




    @Kusalananda Unfortunately, I cared more about toys and drawing Ninja Turtles than pipes,execs, and shells back then :) I'm interested in general history, not specific bootloader. From the page you've linked I see OpenBSD has biosboot for two architectures, i386 and amd64. Does that mean OpenBSD specifically had to target the architectures instead of having one, unifying tool ?
    – Sergiy Kolodyazhnyy
    yesterday










  • The first-stage bootloader would be different for each architecture (only i386 and amd64 has a "bios" BIOS anyway). Have a look at NetBSD if you're interested in more exotic architectures than the bog standard PC.
    – Kusalananda
    yesterday








  • 1




    @SergiyKolodyazhnyy: there are still boot loaders for other architectures, most notably U-Boot, for embedded systems.
    – ninjalj
    yesterday






  • 1




    @Kusalananda I don't think LILO ever was the only Linux bootloader. As far as I know the loader built into kernel images predates LILO, and by the time support for the built in loader was discontinued there were at least a handful of other bootloaders around.
    – kasperd
    19 hours ago














  • 14




    Umm... You weren't around when LILO was the only Linux bootloader? And I've never used LILO nor Grub on my BSD systems. Which one are you interested in? See e.g. biosboot(8).
    – Kusalananda
    yesterday






  • 5




    @Kusalananda Unfortunately, I cared more about toys and drawing Ninja Turtles than pipes,execs, and shells back then :) I'm interested in general history, not specific bootloader. From the page you've linked I see OpenBSD has biosboot for two architectures, i386 and amd64. Does that mean OpenBSD specifically had to target the architectures instead of having one, unifying tool ?
    – Sergiy Kolodyazhnyy
    yesterday










  • The first-stage bootloader would be different for each architecture (only i386 and amd64 has a "bios" BIOS anyway). Have a look at NetBSD if you're interested in more exotic architectures than the bog standard PC.
    – Kusalananda
    yesterday








  • 1




    @SergiyKolodyazhnyy: there are still boot loaders for other architectures, most notably U-Boot, for embedded systems.
    – ninjalj
    yesterday






  • 1




    @Kusalananda I don't think LILO ever was the only Linux bootloader. As far as I know the loader built into kernel images predates LILO, and by the time support for the built in loader was discontinued there were at least a handful of other bootloaders around.
    – kasperd
    19 hours ago








14




14




Umm... You weren't around when LILO was the only Linux bootloader? And I've never used LILO nor Grub on my BSD systems. Which one are you interested in? See e.g. biosboot(8).
– Kusalananda
yesterday




Umm... You weren't around when LILO was the only Linux bootloader? And I've never used LILO nor Grub on my BSD systems. Which one are you interested in? See e.g. biosboot(8).
– Kusalananda
yesterday




5




5




@Kusalananda Unfortunately, I cared more about toys and drawing Ninja Turtles than pipes,execs, and shells back then :) I'm interested in general history, not specific bootloader. From the page you've linked I see OpenBSD has biosboot for two architectures, i386 and amd64. Does that mean OpenBSD specifically had to target the architectures instead of having one, unifying tool ?
– Sergiy Kolodyazhnyy
yesterday




@Kusalananda Unfortunately, I cared more about toys and drawing Ninja Turtles than pipes,execs, and shells back then :) I'm interested in general history, not specific bootloader. From the page you've linked I see OpenBSD has biosboot for two architectures, i386 and amd64. Does that mean OpenBSD specifically had to target the architectures instead of having one, unifying tool ?
– Sergiy Kolodyazhnyy
yesterday












The first-stage bootloader would be different for each architecture (only i386 and amd64 has a "bios" BIOS anyway). Have a look at NetBSD if you're interested in more exotic architectures than the bog standard PC.
– Kusalananda
yesterday






The first-stage bootloader would be different for each architecture (only i386 and amd64 has a "bios" BIOS anyway). Have a look at NetBSD if you're interested in more exotic architectures than the bog standard PC.
– Kusalananda
yesterday






1




1




@SergiyKolodyazhnyy: there are still boot loaders for other architectures, most notably U-Boot, for embedded systems.
– ninjalj
yesterday




@SergiyKolodyazhnyy: there are still boot loaders for other architectures, most notably U-Boot, for embedded systems.
– ninjalj
yesterday




1




1




@Kusalananda I don't think LILO ever was the only Linux bootloader. As far as I know the loader built into kernel images predates LILO, and by the time support for the built in loader was discontinued there were at least a handful of other bootloaders around.
– kasperd
19 hours ago




@Kusalananda I don't think LILO ever was the only Linux bootloader. As far as I know the loader built into kernel images predates LILO, and by the time support for the built in loader was discontinued there were at least a handful of other bootloaders around.
– kasperd
19 hours ago










3 Answers
3






active

oldest

votes


















33














The first Linux distribution I used back in the 90s (Slackware 3.0 IIRC) used LILO as a bootloader. And many distros used LILO for years even when GRUB was becoming the "default" bootloader.



Moreover, in the early years of Linux it was common to boot Linux from another OS (i.e. DOS or Windows) instead of relying on a bootloader/dual booting. For example there was loadlin.



Don't forget Syslinux, which is a simpler boot loader often used for USB self-bootable installation/recovery distros. Or Isolinux (from the same project) used by many "Live" distros.



Keep in mind that today GRUB can be used to load many operating systems, while LILO was more limited, and specifically targeted at Linux (i.e. LInux LOader), with some support for dual booting to Windows.
GRUB is very useful for dual/multi booting because of its many configurable options, scripting capabilities, etc...

If you just want a single OS on your machine "any" (i.e. whichever bootloader is the default for your Linux/BSD distribution) should be enough.






share|improve this answer























  • I know I used to dual boot back in the lilo day and load Windows with it. I don't remember how anymore (it's been ages) so maybe it just passed me on to some Windows tool to boot the OS.
    – terdon
    yesterday










  • @terdon yes, I dual booted with LILO, too. But it was quite limited (i.e. no UEFI support IIRC) and sure it gave me LOTS of headaches back then (with frequent reformatting, too). GRUB is way better ;)
    – Mr Shunz
    yesterday








  • 2




    @MrShunz: there was no UEFI back then. Booting windows was just a matter of adding an entry of e.g. other=/dev/hda1 with table=/dev/hda to lilo.conf, and lilo would just transfer control to the boot sector at hda1, knowing the partition table would be at hda.
    – ninjalj
    yesterday










  • @ninjalj Yes, back then there was no (U)EFI. But LILO was still wide in use when UEFI became mainstream, and its lack of support for was one of the causes that made GRUB a better alternative (there was an ELILO project with support for UEFI IIRC).
    – Mr Shunz
    yesterday






  • 1




    You used to be able to get NTLDR to load LILO; see jaeger.morpheus.net/linux/ntldr.php; I discovered the same independently, back in the day.
    – Roger Lipscombe
    yesterday



















18














LILO was the de-facto standard for booting Linux on PCs before Grub, from a very early stage (MCC, one of the first Linux distributions, used it). Various other bootloaders were used contemporaneously. Loadlin was quite common; it booted Linux from DOS, and was even used in some configurations with umsdos to host a Linux environment in a DOS file system... Another common configuration didn’t involve a bootloader at all: the kernel could boot itself from a floppy, and most Linux users kept a known-good pair of “boot and root” floppies, one containing the kernel, the other a basic root file system for rescue purposes.



There were a number of ways of using other operating systems’ bootloaders to boot Linux too; for example, OS/2’s boot manager, or Windows NT’s NTLDR.



Other systems had their own bootloaders:





  • SILO on SPARC (Sun workstations and others);


  • PALO on PA-RISC (HP workstations);

  • YaBoot and Quik on PowerPC;

  • aBoot and MILO on Alpha...


Even nowadays Grub isn’t the only bootloader you’ll see. While having the kernel boot directly from floppy is no longer very useful (I haven’t checked whether it’s still possible, assuming you can build a kernel small enough to fit on a floppy), it can boot directly from EFI (which is effectively its own small operating system designed to load other operating systems, as is Grub). On many smaller systems (embedded systems, single-board computers...) you’ll find U-Boot. (And there’s also an EFI layer for U-Boot.)






share|improve this answer























  • The PowerPC architecture is also interesting because some motherboards had a Turing-complete BIOS - Openfirmware (basically the Forth programming language with some preinstalled functions). This allowed booting directly from BIOS without bootloader if you know how to configure your BIOS
    – slebetman
    12 hours ago










  • Hey, just curious, NTLDR can load linux kernel directly? I heard that NTLDR can chainloader grub4dos and then load the linux kernel.
    – 炸鱼薯条德里克
    9 hours ago



















7














Up through mid 2.6 kernels, the x86 kernel was directly bootable if copied onto a floppy disk (as though it were a disk image).



This was, in fact, the original way of booting Linux.



If you look at the header of an x86 kernel today you see an error message that says booting from floppies like that doesn't work anymore.






share|improve this answer





















  • On the other hand, the x86 kernel is now directly bootable if given to an UEFI firmware. So there's still a stub bootloader tacked in front of the kernel, just a different type...
    – grawity
    16 hours ago










  • @grawity: Are you sure you don't mean x64?
    – Joshua
    16 hours ago










  • While it's primarily used for x64, the built-in stub loader appears to be compatible with 32-bit EFI if the kernel itself is 32-bit, according to documentation in the arch/x86/Kconfig. (Additionally, "On the x86 and ARM platforms, a kernel zImage/bzImage can masquerade as a PE/COFF image, thereby convincing EFI firmware loaders to load it as an EFI executable" according to the doc file.)
    – grawity
    16 hours ago












  • @grawity I looked at a recent kernel image and I saw that it starts with the two characters MZ, which signals an EXE format file. At position 510 I saw two bytes with hexadecimal values 55 and AA, which signals that this is a PC boot record. If used as a boot record it will execute from the beginning of the block, so the two bytes MZ would actually be executed as 8086 code. They probably don't do anything harmful, so it's still possible to make it work as a boot record. I don't know if there are more magic numbers in there, which I didn't notice.
    – kasperd
    3 mins ago











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f492966%2fhow-did-linux-xbsd-boot-before-grub%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























3 Answers
3






active

oldest

votes








3 Answers
3






active

oldest

votes









active

oldest

votes






active

oldest

votes









33














The first Linux distribution I used back in the 90s (Slackware 3.0 IIRC) used LILO as a bootloader. And many distros used LILO for years even when GRUB was becoming the "default" bootloader.



Moreover, in the early years of Linux it was common to boot Linux from another OS (i.e. DOS or Windows) instead of relying on a bootloader/dual booting. For example there was loadlin.



Don't forget Syslinux, which is a simpler boot loader often used for USB self-bootable installation/recovery distros. Or Isolinux (from the same project) used by many "Live" distros.



Keep in mind that today GRUB can be used to load many operating systems, while LILO was more limited, and specifically targeted at Linux (i.e. LInux LOader), with some support for dual booting to Windows.
GRUB is very useful for dual/multi booting because of its many configurable options, scripting capabilities, etc...

If you just want a single OS on your machine "any" (i.e. whichever bootloader is the default for your Linux/BSD distribution) should be enough.






share|improve this answer























  • I know I used to dual boot back in the lilo day and load Windows with it. I don't remember how anymore (it's been ages) so maybe it just passed me on to some Windows tool to boot the OS.
    – terdon
    yesterday










  • @terdon yes, I dual booted with LILO, too. But it was quite limited (i.e. no UEFI support IIRC) and sure it gave me LOTS of headaches back then (with frequent reformatting, too). GRUB is way better ;)
    – Mr Shunz
    yesterday








  • 2




    @MrShunz: there was no UEFI back then. Booting windows was just a matter of adding an entry of e.g. other=/dev/hda1 with table=/dev/hda to lilo.conf, and lilo would just transfer control to the boot sector at hda1, knowing the partition table would be at hda.
    – ninjalj
    yesterday










  • @ninjalj Yes, back then there was no (U)EFI. But LILO was still wide in use when UEFI became mainstream, and its lack of support for was one of the causes that made GRUB a better alternative (there was an ELILO project with support for UEFI IIRC).
    – Mr Shunz
    yesterday






  • 1




    You used to be able to get NTLDR to load LILO; see jaeger.morpheus.net/linux/ntldr.php; I discovered the same independently, back in the day.
    – Roger Lipscombe
    yesterday
















33














The first Linux distribution I used back in the 90s (Slackware 3.0 IIRC) used LILO as a bootloader. And many distros used LILO for years even when GRUB was becoming the "default" bootloader.



Moreover, in the early years of Linux it was common to boot Linux from another OS (i.e. DOS or Windows) instead of relying on a bootloader/dual booting. For example there was loadlin.



Don't forget Syslinux, which is a simpler boot loader often used for USB self-bootable installation/recovery distros. Or Isolinux (from the same project) used by many "Live" distros.



Keep in mind that today GRUB can be used to load many operating systems, while LILO was more limited, and specifically targeted at Linux (i.e. LInux LOader), with some support for dual booting to Windows.
GRUB is very useful for dual/multi booting because of its many configurable options, scripting capabilities, etc...

If you just want a single OS on your machine "any" (i.e. whichever bootloader is the default for your Linux/BSD distribution) should be enough.






share|improve this answer























  • I know I used to dual boot back in the lilo day and load Windows with it. I don't remember how anymore (it's been ages) so maybe it just passed me on to some Windows tool to boot the OS.
    – terdon
    yesterday










  • @terdon yes, I dual booted with LILO, too. But it was quite limited (i.e. no UEFI support IIRC) and sure it gave me LOTS of headaches back then (with frequent reformatting, too). GRUB is way better ;)
    – Mr Shunz
    yesterday








  • 2




    @MrShunz: there was no UEFI back then. Booting windows was just a matter of adding an entry of e.g. other=/dev/hda1 with table=/dev/hda to lilo.conf, and lilo would just transfer control to the boot sector at hda1, knowing the partition table would be at hda.
    – ninjalj
    yesterday










  • @ninjalj Yes, back then there was no (U)EFI. But LILO was still wide in use when UEFI became mainstream, and its lack of support for was one of the causes that made GRUB a better alternative (there was an ELILO project with support for UEFI IIRC).
    – Mr Shunz
    yesterday






  • 1




    You used to be able to get NTLDR to load LILO; see jaeger.morpheus.net/linux/ntldr.php; I discovered the same independently, back in the day.
    – Roger Lipscombe
    yesterday














33












33








33






The first Linux distribution I used back in the 90s (Slackware 3.0 IIRC) used LILO as a bootloader. And many distros used LILO for years even when GRUB was becoming the "default" bootloader.



Moreover, in the early years of Linux it was common to boot Linux from another OS (i.e. DOS or Windows) instead of relying on a bootloader/dual booting. For example there was loadlin.



Don't forget Syslinux, which is a simpler boot loader often used for USB self-bootable installation/recovery distros. Or Isolinux (from the same project) used by many "Live" distros.



Keep in mind that today GRUB can be used to load many operating systems, while LILO was more limited, and specifically targeted at Linux (i.e. LInux LOader), with some support for dual booting to Windows.
GRUB is very useful for dual/multi booting because of its many configurable options, scripting capabilities, etc...

If you just want a single OS on your machine "any" (i.e. whichever bootloader is the default for your Linux/BSD distribution) should be enough.






share|improve this answer














The first Linux distribution I used back in the 90s (Slackware 3.0 IIRC) used LILO as a bootloader. And many distros used LILO for years even when GRUB was becoming the "default" bootloader.



Moreover, in the early years of Linux it was common to boot Linux from another OS (i.e. DOS or Windows) instead of relying on a bootloader/dual booting. For example there was loadlin.



Don't forget Syslinux, which is a simpler boot loader often used for USB self-bootable installation/recovery distros. Or Isolinux (from the same project) used by many "Live" distros.



Keep in mind that today GRUB can be used to load many operating systems, while LILO was more limited, and specifically targeted at Linux (i.e. LInux LOader), with some support for dual booting to Windows.
GRUB is very useful for dual/multi booting because of its many configurable options, scripting capabilities, etc...

If you just want a single OS on your machine "any" (i.e. whichever bootloader is the default for your Linux/BSD distribution) should be enough.







share|improve this answer














share|improve this answer



share|improve this answer








edited yesterday

























answered yesterday









Mr ShunzMr Shunz

3,21911925




3,21911925












  • I know I used to dual boot back in the lilo day and load Windows with it. I don't remember how anymore (it's been ages) so maybe it just passed me on to some Windows tool to boot the OS.
    – terdon
    yesterday










  • @terdon yes, I dual booted with LILO, too. But it was quite limited (i.e. no UEFI support IIRC) and sure it gave me LOTS of headaches back then (with frequent reformatting, too). GRUB is way better ;)
    – Mr Shunz
    yesterday








  • 2




    @MrShunz: there was no UEFI back then. Booting windows was just a matter of adding an entry of e.g. other=/dev/hda1 with table=/dev/hda to lilo.conf, and lilo would just transfer control to the boot sector at hda1, knowing the partition table would be at hda.
    – ninjalj
    yesterday










  • @ninjalj Yes, back then there was no (U)EFI. But LILO was still wide in use when UEFI became mainstream, and its lack of support for was one of the causes that made GRUB a better alternative (there was an ELILO project with support for UEFI IIRC).
    – Mr Shunz
    yesterday






  • 1




    You used to be able to get NTLDR to load LILO; see jaeger.morpheus.net/linux/ntldr.php; I discovered the same independently, back in the day.
    – Roger Lipscombe
    yesterday


















  • I know I used to dual boot back in the lilo day and load Windows with it. I don't remember how anymore (it's been ages) so maybe it just passed me on to some Windows tool to boot the OS.
    – terdon
    yesterday










  • @terdon yes, I dual booted with LILO, too. But it was quite limited (i.e. no UEFI support IIRC) and sure it gave me LOTS of headaches back then (with frequent reformatting, too). GRUB is way better ;)
    – Mr Shunz
    yesterday








  • 2




    @MrShunz: there was no UEFI back then. Booting windows was just a matter of adding an entry of e.g. other=/dev/hda1 with table=/dev/hda to lilo.conf, and lilo would just transfer control to the boot sector at hda1, knowing the partition table would be at hda.
    – ninjalj
    yesterday










  • @ninjalj Yes, back then there was no (U)EFI. But LILO was still wide in use when UEFI became mainstream, and its lack of support for was one of the causes that made GRUB a better alternative (there was an ELILO project with support for UEFI IIRC).
    – Mr Shunz
    yesterday






  • 1




    You used to be able to get NTLDR to load LILO; see jaeger.morpheus.net/linux/ntldr.php; I discovered the same independently, back in the day.
    – Roger Lipscombe
    yesterday
















I know I used to dual boot back in the lilo day and load Windows with it. I don't remember how anymore (it's been ages) so maybe it just passed me on to some Windows tool to boot the OS.
– terdon
yesterday




I know I used to dual boot back in the lilo day and load Windows with it. I don't remember how anymore (it's been ages) so maybe it just passed me on to some Windows tool to boot the OS.
– terdon
yesterday












@terdon yes, I dual booted with LILO, too. But it was quite limited (i.e. no UEFI support IIRC) and sure it gave me LOTS of headaches back then (with frequent reformatting, too). GRUB is way better ;)
– Mr Shunz
yesterday






@terdon yes, I dual booted with LILO, too. But it was quite limited (i.e. no UEFI support IIRC) and sure it gave me LOTS of headaches back then (with frequent reformatting, too). GRUB is way better ;)
– Mr Shunz
yesterday






2




2




@MrShunz: there was no UEFI back then. Booting windows was just a matter of adding an entry of e.g. other=/dev/hda1 with table=/dev/hda to lilo.conf, and lilo would just transfer control to the boot sector at hda1, knowing the partition table would be at hda.
– ninjalj
yesterday




@MrShunz: there was no UEFI back then. Booting windows was just a matter of adding an entry of e.g. other=/dev/hda1 with table=/dev/hda to lilo.conf, and lilo would just transfer control to the boot sector at hda1, knowing the partition table would be at hda.
– ninjalj
yesterday












@ninjalj Yes, back then there was no (U)EFI. But LILO was still wide in use when UEFI became mainstream, and its lack of support for was one of the causes that made GRUB a better alternative (there was an ELILO project with support for UEFI IIRC).
– Mr Shunz
yesterday




@ninjalj Yes, back then there was no (U)EFI. But LILO was still wide in use when UEFI became mainstream, and its lack of support for was one of the causes that made GRUB a better alternative (there was an ELILO project with support for UEFI IIRC).
– Mr Shunz
yesterday




1




1




You used to be able to get NTLDR to load LILO; see jaeger.morpheus.net/linux/ntldr.php; I discovered the same independently, back in the day.
– Roger Lipscombe
yesterday




You used to be able to get NTLDR to load LILO; see jaeger.morpheus.net/linux/ntldr.php; I discovered the same independently, back in the day.
– Roger Lipscombe
yesterday













18














LILO was the de-facto standard for booting Linux on PCs before Grub, from a very early stage (MCC, one of the first Linux distributions, used it). Various other bootloaders were used contemporaneously. Loadlin was quite common; it booted Linux from DOS, and was even used in some configurations with umsdos to host a Linux environment in a DOS file system... Another common configuration didn’t involve a bootloader at all: the kernel could boot itself from a floppy, and most Linux users kept a known-good pair of “boot and root” floppies, one containing the kernel, the other a basic root file system for rescue purposes.



There were a number of ways of using other operating systems’ bootloaders to boot Linux too; for example, OS/2’s boot manager, or Windows NT’s NTLDR.



Other systems had their own bootloaders:





  • SILO on SPARC (Sun workstations and others);


  • PALO on PA-RISC (HP workstations);

  • YaBoot and Quik on PowerPC;

  • aBoot and MILO on Alpha...


Even nowadays Grub isn’t the only bootloader you’ll see. While having the kernel boot directly from floppy is no longer very useful (I haven’t checked whether it’s still possible, assuming you can build a kernel small enough to fit on a floppy), it can boot directly from EFI (which is effectively its own small operating system designed to load other operating systems, as is Grub). On many smaller systems (embedded systems, single-board computers...) you’ll find U-Boot. (And there’s also an EFI layer for U-Boot.)






share|improve this answer























  • The PowerPC architecture is also interesting because some motherboards had a Turing-complete BIOS - Openfirmware (basically the Forth programming language with some preinstalled functions). This allowed booting directly from BIOS without bootloader if you know how to configure your BIOS
    – slebetman
    12 hours ago










  • Hey, just curious, NTLDR can load linux kernel directly? I heard that NTLDR can chainloader grub4dos and then load the linux kernel.
    – 炸鱼薯条德里克
    9 hours ago
















18














LILO was the de-facto standard for booting Linux on PCs before Grub, from a very early stage (MCC, one of the first Linux distributions, used it). Various other bootloaders were used contemporaneously. Loadlin was quite common; it booted Linux from DOS, and was even used in some configurations with umsdos to host a Linux environment in a DOS file system... Another common configuration didn’t involve a bootloader at all: the kernel could boot itself from a floppy, and most Linux users kept a known-good pair of “boot and root” floppies, one containing the kernel, the other a basic root file system for rescue purposes.



There were a number of ways of using other operating systems’ bootloaders to boot Linux too; for example, OS/2’s boot manager, or Windows NT’s NTLDR.



Other systems had their own bootloaders:





  • SILO on SPARC (Sun workstations and others);


  • PALO on PA-RISC (HP workstations);

  • YaBoot and Quik on PowerPC;

  • aBoot and MILO on Alpha...


Even nowadays Grub isn’t the only bootloader you’ll see. While having the kernel boot directly from floppy is no longer very useful (I haven’t checked whether it’s still possible, assuming you can build a kernel small enough to fit on a floppy), it can boot directly from EFI (which is effectively its own small operating system designed to load other operating systems, as is Grub). On many smaller systems (embedded systems, single-board computers...) you’ll find U-Boot. (And there’s also an EFI layer for U-Boot.)






share|improve this answer























  • The PowerPC architecture is also interesting because some motherboards had a Turing-complete BIOS - Openfirmware (basically the Forth programming language with some preinstalled functions). This allowed booting directly from BIOS without bootloader if you know how to configure your BIOS
    – slebetman
    12 hours ago










  • Hey, just curious, NTLDR can load linux kernel directly? I heard that NTLDR can chainloader grub4dos and then load the linux kernel.
    – 炸鱼薯条德里克
    9 hours ago














18












18








18






LILO was the de-facto standard for booting Linux on PCs before Grub, from a very early stage (MCC, one of the first Linux distributions, used it). Various other bootloaders were used contemporaneously. Loadlin was quite common; it booted Linux from DOS, and was even used in some configurations with umsdos to host a Linux environment in a DOS file system... Another common configuration didn’t involve a bootloader at all: the kernel could boot itself from a floppy, and most Linux users kept a known-good pair of “boot and root” floppies, one containing the kernel, the other a basic root file system for rescue purposes.



There were a number of ways of using other operating systems’ bootloaders to boot Linux too; for example, OS/2’s boot manager, or Windows NT’s NTLDR.



Other systems had their own bootloaders:





  • SILO on SPARC (Sun workstations and others);


  • PALO on PA-RISC (HP workstations);

  • YaBoot and Quik on PowerPC;

  • aBoot and MILO on Alpha...


Even nowadays Grub isn’t the only bootloader you’ll see. While having the kernel boot directly from floppy is no longer very useful (I haven’t checked whether it’s still possible, assuming you can build a kernel small enough to fit on a floppy), it can boot directly from EFI (which is effectively its own small operating system designed to load other operating systems, as is Grub). On many smaller systems (embedded systems, single-board computers...) you’ll find U-Boot. (And there’s also an EFI layer for U-Boot.)






share|improve this answer














LILO was the de-facto standard for booting Linux on PCs before Grub, from a very early stage (MCC, one of the first Linux distributions, used it). Various other bootloaders were used contemporaneously. Loadlin was quite common; it booted Linux from DOS, and was even used in some configurations with umsdos to host a Linux environment in a DOS file system... Another common configuration didn’t involve a bootloader at all: the kernel could boot itself from a floppy, and most Linux users kept a known-good pair of “boot and root” floppies, one containing the kernel, the other a basic root file system for rescue purposes.



There were a number of ways of using other operating systems’ bootloaders to boot Linux too; for example, OS/2’s boot manager, or Windows NT’s NTLDR.



Other systems had their own bootloaders:





  • SILO on SPARC (Sun workstations and others);


  • PALO on PA-RISC (HP workstations);

  • YaBoot and Quik on PowerPC;

  • aBoot and MILO on Alpha...


Even nowadays Grub isn’t the only bootloader you’ll see. While having the kernel boot directly from floppy is no longer very useful (I haven’t checked whether it’s still possible, assuming you can build a kernel small enough to fit on a floppy), it can boot directly from EFI (which is effectively its own small operating system designed to load other operating systems, as is Grub). On many smaller systems (embedded systems, single-board computers...) you’ll find U-Boot. (And there’s also an EFI layer for U-Boot.)







share|improve this answer














share|improve this answer



share|improve this answer








edited yesterday

























answered yesterday









Stephen KittStephen Kitt

165k24366446




165k24366446












  • The PowerPC architecture is also interesting because some motherboards had a Turing-complete BIOS - Openfirmware (basically the Forth programming language with some preinstalled functions). This allowed booting directly from BIOS without bootloader if you know how to configure your BIOS
    – slebetman
    12 hours ago










  • Hey, just curious, NTLDR can load linux kernel directly? I heard that NTLDR can chainloader grub4dos and then load the linux kernel.
    – 炸鱼薯条德里克
    9 hours ago


















  • The PowerPC architecture is also interesting because some motherboards had a Turing-complete BIOS - Openfirmware (basically the Forth programming language with some preinstalled functions). This allowed booting directly from BIOS without bootloader if you know how to configure your BIOS
    – slebetman
    12 hours ago










  • Hey, just curious, NTLDR can load linux kernel directly? I heard that NTLDR can chainloader grub4dos and then load the linux kernel.
    – 炸鱼薯条德里克
    9 hours ago
















The PowerPC architecture is also interesting because some motherboards had a Turing-complete BIOS - Openfirmware (basically the Forth programming language with some preinstalled functions). This allowed booting directly from BIOS without bootloader if you know how to configure your BIOS
– slebetman
12 hours ago




The PowerPC architecture is also interesting because some motherboards had a Turing-complete BIOS - Openfirmware (basically the Forth programming language with some preinstalled functions). This allowed booting directly from BIOS without bootloader if you know how to configure your BIOS
– slebetman
12 hours ago












Hey, just curious, NTLDR can load linux kernel directly? I heard that NTLDR can chainloader grub4dos and then load the linux kernel.
– 炸鱼薯条德里克
9 hours ago




Hey, just curious, NTLDR can load linux kernel directly? I heard that NTLDR can chainloader grub4dos and then load the linux kernel.
– 炸鱼薯条德里克
9 hours ago











7














Up through mid 2.6 kernels, the x86 kernel was directly bootable if copied onto a floppy disk (as though it were a disk image).



This was, in fact, the original way of booting Linux.



If you look at the header of an x86 kernel today you see an error message that says booting from floppies like that doesn't work anymore.






share|improve this answer





















  • On the other hand, the x86 kernel is now directly bootable if given to an UEFI firmware. So there's still a stub bootloader tacked in front of the kernel, just a different type...
    – grawity
    16 hours ago










  • @grawity: Are you sure you don't mean x64?
    – Joshua
    16 hours ago










  • While it's primarily used for x64, the built-in stub loader appears to be compatible with 32-bit EFI if the kernel itself is 32-bit, according to documentation in the arch/x86/Kconfig. (Additionally, "On the x86 and ARM platforms, a kernel zImage/bzImage can masquerade as a PE/COFF image, thereby convincing EFI firmware loaders to load it as an EFI executable" according to the doc file.)
    – grawity
    16 hours ago












  • @grawity I looked at a recent kernel image and I saw that it starts with the two characters MZ, which signals an EXE format file. At position 510 I saw two bytes with hexadecimal values 55 and AA, which signals that this is a PC boot record. If used as a boot record it will execute from the beginning of the block, so the two bytes MZ would actually be executed as 8086 code. They probably don't do anything harmful, so it's still possible to make it work as a boot record. I don't know if there are more magic numbers in there, which I didn't notice.
    – kasperd
    3 mins ago
















7














Up through mid 2.6 kernels, the x86 kernel was directly bootable if copied onto a floppy disk (as though it were a disk image).



This was, in fact, the original way of booting Linux.



If you look at the header of an x86 kernel today you see an error message that says booting from floppies like that doesn't work anymore.






share|improve this answer





















  • On the other hand, the x86 kernel is now directly bootable if given to an UEFI firmware. So there's still a stub bootloader tacked in front of the kernel, just a different type...
    – grawity
    16 hours ago










  • @grawity: Are you sure you don't mean x64?
    – Joshua
    16 hours ago










  • While it's primarily used for x64, the built-in stub loader appears to be compatible with 32-bit EFI if the kernel itself is 32-bit, according to documentation in the arch/x86/Kconfig. (Additionally, "On the x86 and ARM platforms, a kernel zImage/bzImage can masquerade as a PE/COFF image, thereby convincing EFI firmware loaders to load it as an EFI executable" according to the doc file.)
    – grawity
    16 hours ago












  • @grawity I looked at a recent kernel image and I saw that it starts with the two characters MZ, which signals an EXE format file. At position 510 I saw two bytes with hexadecimal values 55 and AA, which signals that this is a PC boot record. If used as a boot record it will execute from the beginning of the block, so the two bytes MZ would actually be executed as 8086 code. They probably don't do anything harmful, so it's still possible to make it work as a boot record. I don't know if there are more magic numbers in there, which I didn't notice.
    – kasperd
    3 mins ago














7












7








7






Up through mid 2.6 kernels, the x86 kernel was directly bootable if copied onto a floppy disk (as though it were a disk image).



This was, in fact, the original way of booting Linux.



If you look at the header of an x86 kernel today you see an error message that says booting from floppies like that doesn't work anymore.






share|improve this answer












Up through mid 2.6 kernels, the x86 kernel was directly bootable if copied onto a floppy disk (as though it were a disk image).



This was, in fact, the original way of booting Linux.



If you look at the header of an x86 kernel today you see an error message that says booting from floppies like that doesn't work anymore.







share|improve this answer












share|improve this answer



share|improve this answer










answered 18 hours ago









JoshuaJoshua

1,099712




1,099712












  • On the other hand, the x86 kernel is now directly bootable if given to an UEFI firmware. So there's still a stub bootloader tacked in front of the kernel, just a different type...
    – grawity
    16 hours ago










  • @grawity: Are you sure you don't mean x64?
    – Joshua
    16 hours ago










  • While it's primarily used for x64, the built-in stub loader appears to be compatible with 32-bit EFI if the kernel itself is 32-bit, according to documentation in the arch/x86/Kconfig. (Additionally, "On the x86 and ARM platforms, a kernel zImage/bzImage can masquerade as a PE/COFF image, thereby convincing EFI firmware loaders to load it as an EFI executable" according to the doc file.)
    – grawity
    16 hours ago












  • @grawity I looked at a recent kernel image and I saw that it starts with the two characters MZ, which signals an EXE format file. At position 510 I saw two bytes with hexadecimal values 55 and AA, which signals that this is a PC boot record. If used as a boot record it will execute from the beginning of the block, so the two bytes MZ would actually be executed as 8086 code. They probably don't do anything harmful, so it's still possible to make it work as a boot record. I don't know if there are more magic numbers in there, which I didn't notice.
    – kasperd
    3 mins ago


















  • On the other hand, the x86 kernel is now directly bootable if given to an UEFI firmware. So there's still a stub bootloader tacked in front of the kernel, just a different type...
    – grawity
    16 hours ago










  • @grawity: Are you sure you don't mean x64?
    – Joshua
    16 hours ago










  • While it's primarily used for x64, the built-in stub loader appears to be compatible with 32-bit EFI if the kernel itself is 32-bit, according to documentation in the arch/x86/Kconfig. (Additionally, "On the x86 and ARM platforms, a kernel zImage/bzImage can masquerade as a PE/COFF image, thereby convincing EFI firmware loaders to load it as an EFI executable" according to the doc file.)
    – grawity
    16 hours ago












  • @grawity I looked at a recent kernel image and I saw that it starts with the two characters MZ, which signals an EXE format file. At position 510 I saw two bytes with hexadecimal values 55 and AA, which signals that this is a PC boot record. If used as a boot record it will execute from the beginning of the block, so the two bytes MZ would actually be executed as 8086 code. They probably don't do anything harmful, so it's still possible to make it work as a boot record. I don't know if there are more magic numbers in there, which I didn't notice.
    – kasperd
    3 mins ago
















On the other hand, the x86 kernel is now directly bootable if given to an UEFI firmware. So there's still a stub bootloader tacked in front of the kernel, just a different type...
– grawity
16 hours ago




On the other hand, the x86 kernel is now directly bootable if given to an UEFI firmware. So there's still a stub bootloader tacked in front of the kernel, just a different type...
– grawity
16 hours ago












@grawity: Are you sure you don't mean x64?
– Joshua
16 hours ago




@grawity: Are you sure you don't mean x64?
– Joshua
16 hours ago












While it's primarily used for x64, the built-in stub loader appears to be compatible with 32-bit EFI if the kernel itself is 32-bit, according to documentation in the arch/x86/Kconfig. (Additionally, "On the x86 and ARM platforms, a kernel zImage/bzImage can masquerade as a PE/COFF image, thereby convincing EFI firmware loaders to load it as an EFI executable" according to the doc file.)
– grawity
16 hours ago






While it's primarily used for x64, the built-in stub loader appears to be compatible with 32-bit EFI if the kernel itself is 32-bit, according to documentation in the arch/x86/Kconfig. (Additionally, "On the x86 and ARM platforms, a kernel zImage/bzImage can masquerade as a PE/COFF image, thereby convincing EFI firmware loaders to load it as an EFI executable" according to the doc file.)
– grawity
16 hours ago














@grawity I looked at a recent kernel image and I saw that it starts with the two characters MZ, which signals an EXE format file. At position 510 I saw two bytes with hexadecimal values 55 and AA, which signals that this is a PC boot record. If used as a boot record it will execute from the beginning of the block, so the two bytes MZ would actually be executed as 8086 code. They probably don't do anything harmful, so it's still possible to make it work as a boot record. I don't know if there are more magic numbers in there, which I didn't notice.
– kasperd
3 mins ago




@grawity I looked at a recent kernel image and I saw that it starts with the two characters MZ, which signals an EXE format file. At position 510 I saw two bytes with hexadecimal values 55 and AA, which signals that this is a PC boot record. If used as a boot record it will execute from the beginning of the block, so the two bytes MZ would actually be executed as 8086 code. They probably don't do anything harmful, so it's still possible to make it work as a boot record. I don't know if there are more magic numbers in there, which I didn't notice.
– kasperd
3 mins ago


















draft saved

draft discarded




















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f492966%2fhow-did-linux-xbsd-boot-before-grub%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to reconfigure Docker Trusted Registry 2.x.x to use CEPH FS mount instead of NFS and other traditional...

is 'sed' thread safe

How to make a Squid Proxy server?