Re: "The installed loader is a binary, not a filesystem, so even minor changes require recompiling." -George W. Lucas in Absolute fBSD
- Reply: J.: "Re: "The installed loader is a binary, not a filesystem, so even minor changes require recompiling." -George W. Lucas in Absolute fBSD"
- In reply to: Jop : ""The installed loader is a binary, not a filesystem, so even minor changes require recompiling." -George W. Lucas in Absolute fBSD"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 19 Dec 2023 06:58:16 UTC
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 [bootloaders](https://en.wikipedia.org/wiki/Bootloader)and [filesystems](https://en.wikipedia.org/wiki/Bootloader), 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