Boot word definition

The calculator fan malfunctioned and I survived by plugging the USB SSD from the PC laptop into the mac mini which easily works. 🤤

But I got stuck wondering the correct wording of it all. What boots, what's booting, whats being booted?
Is the boot process simply slang for starting -all of it-?
Or is there a straight culprit?

Suspects
Suspect 1: The machine.
Suspect 2: The drive with the software on.
Suspect 3: The OS on the drive.
Suspect 4: raffle claiming he just booted something, but he seems unsettled somehow. Says he's been doing it for decades.
Suspect 5: The bootloader. Merely "loads" the boot?
 
Is the boot process simply slang for starting -all of it-?
Yes, no, a bit. Depends on the context really (which point of view, the computer or the OS). Boot process from the system's point of view, the system powering on, do its POST, find attached disks, and depending on the type of boot (UEFI/BIOS) it will load and execute specific things on those disks. The boot process from the system's point of view ends here.

The boot process of the OS begins at this point, the kernel is loaded and activated, the kernel itself loads init(8), init(8) then starts /etc/rc boot script. This triggers an avalanche of other rc.d(8) scripts to be executed, some of those scripts set things up (networking for example), others start services (ssh, dhclient, etc).

It's a complex, multi-stage, process.

The bootloader. Merely "loads" the boot?
On FreeBSD, yes. Other operating systems do things differently. The primary goal of the bootloader is to load and execute loader(8) (UEFI skips the boot loader stage and loads loader.efi(8) directly). loader(8) presents the familiar option screen, with the BSD logo, it eventually loads the kernel and activates it. Then the kernel takes control of the system and does the rest.
 
Didn't it come from Baron von Munchausen, bootstrappinhg himself out of a well?
That's where the term originally comes from, the system's point of view actually. A "hen & egg problem": How to load the very first program into a blank machine when it's a program that's needed to do the loading?
But raffle4's question clearly pointed to the details of what the boot process includes, which SirDice pretty good summarized, and splitted into system and OS.
 
That's where the term originally comes from, the system's point of view actually. A "hen & egg problem": How to load the very first program into a blank machine when it's a program that's needed to do the loading?
But raffle4's question clearly pointed to the details of what the boot process includes, which SirDice pretty good summarized, and splitted into system and OS.
It was an imulsive reply.
For PC's, I think most of it is unnecessary. The industry wants software to be hardware to keep control above the operator. After hardware POST, what's needed more of hard static procedures than copying a blob of executable data that's the first program to the start of the RAM and run it? After that, everything could be software that continues to the chosen startup screen.
It took way too long for PC's to boot from a memstick. It has been blocked for years by the BIOS, which can also be considered a program but it's "ROM" for reasons. Interesting that this read-only data cen be overwritten with updates anyway,,,
 
For PC's, I think most of it is unnecessary. The industry wants
For the origins of "booting" you need to go way - way - longer backwards than USB, even way before Microsoft or Apple even existed. Those first boot-programs were just a couple of bytes. Even "modern" very first system's bootprograms weren't that much longer. MBR were 512 Byte, not all containing code for booting.

However, to me when I think of booting, my picture is less of the Münchhausen tale, but more like to thread a film into a projector. Anyone still remembers old analog movies, like the home video variant "Super 8" may get what I mean. It's the same principle with passing a thread into a needle's eye, but I prefer the picture of a film, or take a punched tape, 'cause it contains information. So the crucial act of booting to me is to get the reader ("projector") grabs the tape/"film" right and pull it in. Once you managed that, the tape is pulled in and can load anything, any additional more complex program doing more complex loading routines loading other programs and data etc.
 
For the origins of "booting" you need to go way - way - longer backwards than USB, even way before Microsoft or Apple even existed. Those first boot-programs were just a couple of bytes. Even "modern" very first system's bootprograms weren't that much longer. MBR were 512 Byte, not all containing code for booting.
What I mean is that the actual hardware requirements to make a PC start up is less than 1% of the constructs that modern boards have. It needs the initial data in memory, that's it. Software can do the rest. Everything that can be changed is software. The term "booting" is highly commercial. It implies that starting up a computer is computer-science level complex.
 
What is booting is the software being run on the cpu, which is the bootloader, eventually leading to a running operating system. There has to be a starting point, and 'booting' it comes from the old military motto "to pull yourself up by your bootstraps", meaning to get started with something. At least, that's one interpretation I have heard. Another is to give the machine a kick to start it up, as you used to do when banging an old valve tv hard with your hand to get it working, or kicking over a motorbike engine to get it started. And the very first sector of executable code loaded from the active mass storage device (the 'boot disk') is the "boot record". 😁
 
I have a vague memory that the term boot is derived from days of yore when you started the day by putting your boots on.

After power on there is a small slice of code that is being run to either find "something else" to start or give error messages. The "something else" to start can be network boot or a device boot where device can be drive or peripheral (usb) or anything that goes.

Personally I like to think that the small slice of code (BIOS/UEFI) is the actual bootstrapping and the rest is loading.

/grandpa
 
Suspect 1: The machine.
Suspect 2: The drive with the software on.
Suspect 3: The OS on the drive.
Suspect 4: raffle claiming he just booted something, but he seems unsettled somehow. Says he's been doing it for decades.
Suspect 5: The bootloader. Merely "loads" the boot?
Boot the machine: Passes POST, ready to run something.
Boot the drive: Device loaded something off of the drive and ran it.
Boot the OS: Login prompt
Boot something: You can use it (failing to boot isn't booting: Machine boots, OS does not, etc. Boots to recovery, not OS, etc)
Boot the bootloader: Yeah, well, what are you gonna do now?

Context dependent.
 
It's amazing how other words from computing and data-comms have leaked into common language usage; some other examples are 'bandwidth', as in "I don't have the bandwidth right now", 'parse', as in "I can't parse your email", 'input' as in "thank you for your input"... etc. I even hear journalists talking about 'negative' or 'positive' - 'feedback loops' without understanding the engineering sense of the term, when what they actually mean is the opposite of the engineering sense. I'm sure there are lots of others!
 
It might be interesting to discuss the distinction between cold and warm boots.
Indeed. How do devices keep their firmware after warm reboot. I always wondered. A reboot is not what you think it is...

Example: Wifi Card works on FreeBSD after warm reboot from Windows(dual boot) but not on FreeBSD cold start. Firmware blob on card is surviving reboot.
 
Indeed. How do devices keep their firmware after warm reboot. I always wondered. A reboot is not what you think it is...

Example: Wifi Card works on FreeBSD after warm reboot from Windows(dual boot) but not on FreeBSD cold start. Firmware blob on card is surviving reboot.
Ha. Finally a question that anyone doing embedded stuff and bootloaders can answer :)
A lot of times it comes down to how a physical device is wired. A lot of devices have a "RESET" line, which if one pulls it active (may be high, maybe low), puts the device into a power on state. On a "system" with lots of devices and lots of reset lines, they are usually all tied together to a single input signal. That is typically triggered on power cycle.

Warm reboot: most of the time that is the CPU simply going back to starting address and executing from there. Often does not touch the global reset line, so all peripheral devices are basically starting from their last state. That includes WiFi card booted on Windows and firmware surviving a warm reboot into FreeBSD.
Suspend/Resume on laptops can be viewed as a variant of a warm reboot.
So the OS need to distingush between cold (power cycle) and warm reboots. Cold, assume everything is cold, must initialize everything on every piece of hardware. Warm, OS should reset/reinitialize a lot of registers, but often don't and just assume good to go. That's where you wind up with things that work correctly after a power cycle but not a warm reboot; assumption of initial state.

The above is my simplified description based on my experience; others may have different thoughts.
 
It's amazing how other words from computing and data-comms have leaked into common language usage; some other examples are 'bandwidth', as in "I don't have the bandwidth right now", 'parse', as in "I can't parse your email", 'input' as in "thank you for your input"... etc! i even hear journalists talking about 'negative feedback loops' without understanding the engineering sense of the term, when what they actually mean is negative opinions about something, or disagreeing with someone. I'm sure there are lots of others.
English words, for english speaking people. Imagine the situation in Italy (for example). We have adopted it in our language and for lot of them `transformed` in italian, like `to grab` -> `grabbare`, `to download` -> `downloddare`, `to boot` -> `boottare` (`boottare` spoken as `buttare` that in Italy is `to throw away`). I personally for some of that words don't instantly remember the italian word, like `grabbare` in italian is `afferrare`, I continue to say `grabbare`.
 
A lot of devices have a "RESET" line
That makes sense. I think that devices use different methods for storing the firmware.
Some PCI devices have NVRAM and that stores firmware and some devices load the firmware onto device at bootup via the driver..

Chelsio cards use NVRAM and the driver checks the version on the card and updates it automatically if driver uses newer one.
Much like Broadcom/LSI cards act.
Intel Wifi cards don't seem to store the firmware and it is loaded at cold bootup via he driver.

I used to believe firmwares were loaded into memory... I am not so sure about that now.
 
  • Like
Reactions: mer
A "hen & egg problem": How to load the very first program into a blank machine when it's a program that's needed to do the loading?

Depends on what the machine is. Answer post 70s is simple - the CPU knows where to look at.

In IBM PC the 8088 CPU has a 'reset vector' of 0xFFFFFFF0, the CPU will execute instruction available at that address, which is bound to BIOS ROM.
In turn the BIOS will initialize a lot of stuff but not the hard drive - the BIOS will see if there are mapped devices at certain addresses and thus execute another ROM, a HDD controller one, which will initialize the hard disk and modify BIOS interrupt vectors to provide a callback, and jump back to BIOS ROM return point. At this time the BIOS can try to "boot", and if it cannot do it over FDD it will jump to HDC's vector to do it. In turn the disk drive code residing in the ROM transfers sector 0 to RAM and jumps to it. At this point the software on the boot medium takes over.

It's all a pretty straight process which is nowadays much more elaborate but basically the same.

This principle requires a digital data bus and devices that can electronically latch onto it. It was basically enabled by 74LS series stuff cheaply.

The term booting is much older, when computers had to be prepared for hours to be put to operation. There were no BIOS and no operating systems to speak off, you had to prep up the computer to start executing something from punched tape or such.
 
Some interesting reading :-)
It seems 'boot' and 'bootstrap' has a multitude of meanings!
See also: Master Boot Record.
And at the first time I've learned about starting up of computers, term "boot" was NOT used, but "bootstrapping". And later, stupid guys started calling "bootstrapping" as "boot". Just shortened. So exactly the same, as computer terms.

Note that 446bytes are insufficient to actually and fully control disk controllers, so disk BIOS calls are used.
FreeBSD implementation for MBR scheme here.
And for GPT scheme (Protective MBR) used for legacy BIOS here.
These are too small to understand filesystems, so partition boot codes (for MBR scheme) or freebsd-boot partition is required. Then it calls loader.
Of course, UEFI boot differs from it.
 
Back
Top