Re: "The installed loader is a binary, not a filesystem, so even minor changes require recompiling." -George W. Lucas in Absolute fBSD

From: J. <redc3ll_at_protonmail.com>
Date: Tue, 19 Dec 2023 13:23:53 UTC
Dear everyone,

Thank you so much for not only all the insightful, but also all the kind and welcoming reactions.
Out of respect I wanted to respond indepthly to every bit of content replied to my initial question, but I notice that as a neophyte I need to take my time to read through all the material, references, and look up those terms I do not yet understand. Looking up these terms will of course branch off into other terms I need to look up, and hence it will be a while before each answer given via this mailing list will be received to its fullest capacity. Trying to respond indepthly right now would be premature and form a dysfunctional conversation. However, you have given me a foundation and references to further my learning. I hope I may respond to the answers on a later time, should I be ready by the time and feel compelled to ask a bit more, or simply surmise my understanding of their words and test it against their knowledge. Of course, your time/space, energy/effort and attention are respected as limited and will not be called upon needlessly.

Thank you and yours sincerely,

J.

Sent with [Proton Mail](https://proton.me/) secure email.

On Tuesday, 19 December 2023 at 07:58, David Christensen dpchrist@holgerdanske.com wrote:

> On 12/18/23 12:17, Jop wrote:
>
>> Hello everyone,
>>
>> I have just begun my journey into FreeBSD using George W. Lucas' Absolute FreeBSD 3rd edition. My question is about chapter 4 Start Me Up! The Boot Process, page 51.
>> I was befuddled by a statement he made, likely due to my IT nescience.
>> To my confusion, Lucas states:
>>
>>>> A BIOS has all sorts of limitations. The boot loader must reside in a very specific section of the disk. BIOS can’t boot from disks larger than 2.2TB. The target boot loader must be smaller than 512KB—huge by 1980
>>>> standards, yes, but paltry today. :::The installed loader is a binary, not a filesystem, so even minor changes require recompiling :::.
>>
>> Though this aspect of his introduction to FreeBSD is not about FreeBSD directly, it seems vital for me to understand this correctly so that I can aptly understand FreeBSD as a sheer operating system and how an operating system boots. I was confused about Lucas' description because he is implying there are some conditions in which a bootloader can be an actual filesystem. This appears very illogical to me, as to me he seems to be saying the loader itself should be something like FAT32, UFS, or ZFS. Though filesystems, if my understanding is correct, help us organise our data, they do not themselves contain data but rather offer an organised space for that data, like a library with empty bookshelves that we are ourselves to fill. Hence, if that "library" does not contain a bit of data (e.g. the bootloader) that tells the BIOS how to boot the operating system, the operating system cannot boot. Hence, it is logically implied that the bootloader cannot be called in itself a filesystem—not just sometimes under some conditions, but ever.
>> As I trust Lucas' expertise, how have I misread him? What is he actually trying to say?
>>
>> I have searched online, and read a Wiki on bootloadersand filesystems, only to have my asinine interpretation confirmed.
>>
>> Now, one a second note, I am new to the FreeBSD community, I have not before used mailing lists, and the FreeBSD forums were down. I understand IT communities can be strict about what and how things are communicated, and I hope i have done right by sending this email. I hope that I have done sufficient research by searching online, consulting the WiKi pages, the mailing list archives, and of course Lucas' book. I hope that my question is on-topic enough and that my beginner-level will not stagnate the flow of your erudite communications. Should I have not utilised this mailing list properly, kindly accept my apologies and let me know.
>>
>> Sincerely,
>>
>> J.
>
> Hello. :-)
>
> "IBM Personal Computer", "IBM PC compatible computer", "x86 computer",
> "amd64 computer', "x86_64 computer", etc., have evolved significantly
> over the past 42 years, as have the details of booting their disk
> operating systems. I believe Lucas' prose is intended to give the
> reader a sense of the issues involved when booting via BIOS, while
> avoiding the confusing evolution of details.
>
> As for Lucas' last sentence, I agree that the bootloader code is a
> binary (machine code program) and that its creation or modification
> would typically involve a compiler (or assembler). As for file systems,
> it helps to see the other half of the coin:
>
> https://en.wikipedia.org/wiki/Master_boot_record
>
> Note that the bootstrap code is located within the MBR, the MBR is
> located within the first disk block, and the slices, partitions, and
> file systems are located within subsequent disk blocks. So, the MBR and
> the bootstrap code exist outside of any file system; you will never see
> them with ls(1), etc..
>
> af3e is the best single resource I know of for learning FreeBSD. But, I
> would not worry about understanding everything on the first reading.
> Install a hypervisor on your computer, create a virtual machine, install
> FreeBSD, and work your way through the book and the VM at the same time.
> Take snapshots of the VM as you go; revert when needed. RTFM. STFW.
> Re-read previous sections. Post questions here or elsewhere. After a
> while, things will start to make sense.
>
> David