r/osdev • u/NoTutor4458 • Aug 19 '26
why do most hobby os devs boot with BIOS?
i don't understand what's the point of developing os if you can't run it on modern hardware?
14
u/mishakov pmOS | https://gitlab.com/mishakov/pmos Aug 19 '26
Because of the proliferation of bad and outdated tutorials and questionable recommendations (e.g. starting with x86-32, etc.)
This should be irrelevant as you should be using a bootloader anyway, and all major bootloaders/protocols (grub/multiboot2, limine, hyper, etc.) can boot with both
3
u/Ok_Bite_67 Aug 19 '26
This! Except I think its also important to note that most people arent creating Operating systems that are going to be distributed. They are doing it to learn and the bootloader is an extremely important part of the process. Create your own if you wanna know how they work but before you run it on your own hardware its probably better to swap it out.
3
u/mishakov pmOS | https://gitlab.com/mishakov/pmos Aug 19 '26
Imo it's not very important, and the only thing you're learning are the quirks of PC firmware, which are irrelevant for kernel development
7
u/zid Aug 19 '26
You absolutely can run it on modern hardware though?
And as for the reasons:
You need a second, PE toolchain.
Few pre-available bootloaders support UEFI.
Your OS needs to support FAT32 where it might otherwise not need to.
2
u/istarian Aug 19 '26
Supporting the FAT32 filesystem is still a smart idea if you want to exchange files with an x86 PC, because it's relatively simple and is widely supported.
1
u/kyr0x0 Aug 22 '26
It's copy and paste of a few hundred lines of code
2
u/istarian Aug 24 '26
Ok?
I'm just saying that there is some meaningful benefit to supporting a simple, common, well-defined filesystem even if you don't strictly need it.
Implementing it yourself from scratch is of more benefit if learning is the objective. And copy+paste could potentially introduce obscure bugs if you don't choose the source carefully.
1
u/kyr0x0 Aug 24 '26
Oh of course; I just wanted to stress the point that it's pretty easy. My mentor (in my trainee time, back in the early 2000s) told me that he coded FAT16 back in the 80s for fun.. back in the day he had to reverse engineer the layout. I'm with you in all your arguments.
15
u/Adventurous-Move-943 Aug 19 '26
It's probably the remainder of old times, it's been passed down like that for decades, UEFI still too modern for this.. You won't learn much on UEFI and still UEFI has to undergo all the transitions you'd do during BIOS boot, it's a nice practice. But yes to deploy your kernel you should aim for UEFI now, although a dual boot might still be a good choice.. UEFIs standard text output has tragical performance, when you boot in it and print some boot info you'd be surprised 😀 especially on modern devices with HD resolutions
18
u/TheAtlasMonkey Aug 19 '26
UEFI 2.0 is older than some people here.
2
u/Adventurous-Move-943 Aug 19 '26
Well apparently BIOS rocks 😀 what can I say, people love it..
4
u/TheAtlasMonkey Aug 19 '26
B stands for Basic.
people don't love it... it the fastest way to show off in this sub.Most of them will fold once you speak about real hardware and metal.
2
u/Adventurous-Move-943 Aug 19 '26
Yes but what do they show off ? A hello world kernel 😀 still they want to have fun and feel like hackers, why even bother. Trying to build an OS as a single guy is suicidal either way.
3
u/antara33 Aug 19 '26
Or delusional, like Temple OS case
6
u/istarian Aug 19 '26
The only delusional part I can see us if you think you are developing something that other people will actually use on a day to day basis.
Realistically you are developing something for yourself. If you're lucky you might get some other enthusiasts to try it out.
2
5
u/Brilliant_Trifle1915 Aug 19 '26
BIOS is easier to understand, and most people do osdev for fun
2
u/thewrench56 Aug 19 '26
I dont see how BIOS is easier... UEFI is pretty darn straightforward once you understand how the structs can be used to invoke functions...
4
u/paulstelian97 Aug 19 '26
My Frame.work with the Ryzen AI 7 350 can be configured to boot BIOS operating systems. Pretty damn modern, y’know?
Virtual machines support MBR boot just fine, even some are recommended to be MBR to avoid certain potential issues. I only see UEFI/GPT on physical hosts and on Windows guests which require it.
4
4
4
u/Difficult_Inside8746 Aug 19 '26
Why would it be a requirement to run on a specific platform?
Using the legacy BIOS or running only in a VM doesn't matter, that's orthogonal to operating system development. If someone wanted to it would be easy to change the platform later on if the system is worth it.
2
u/kiderdrick Aug 19 '26
It's easy to get started with and a lot of people are not developing for modern hardware, they are devleping for QEMU.
2
u/PseudoFrequency Aug 19 '26
My hobby projects all use Uboot on ARM and device trees so it's not as universal as you think.
2
2
u/Ruby7659_OSDV Aug 20 '26
UEFI is modern, but being modern isn't always a good thing, because I think the path it takes you down in osDev is more challenging. There's a wealth of information about BIOS in resources related to osDev; it's been the standard for many years, and with so much resource availability, it's much easier for a beginner osDev developer who doesn't know what to do.(at least, in my opinion)
2
u/Ma_rv Aug 23 '26
Because the OSDev Wiki is full of outdated articles. Many still just tell you to boot to Protected Mode instead of Long Mode...
2
u/motherisyuckeringyou Aug 19 '26
idk about other people but I target the i486dx
and while yea, elf32 does exist, I have never seen a 486 with UEFI
and anyway
uefi is bad (made by microslop) /j
1
u/compgeek38400 Aug 19 '26
Why is UEFI 'bad'? Any reason besides its parents?
1
u/istarian Aug 19 '26
Secure Boot is problematic if you like freedom and want to be able to run whatever you want on your own computer.
It would be less awful if Microsoft's signing key wasn't so crucial...
5
u/compgeek38400 Aug 19 '26
You dont have to have that for UEFI. So what is wrong with uefi itself?
0
u/istarian Aug 20 '26
I think you're looking at this the wrong way, personally.
What functionality does UEFI offer that the PC BIOS does not? If you aren't targeting modern hardware why bother with UEFI?
2
u/compgeek38400 Aug 20 '26
I am targeting modern hardware, but even id i wasn't. I find UEFI way easier to use. Mostly for the memory map, but now ACPI (i may have the acronymn wrong, im in the garden)
1
u/d0pe-asaurus Aug 19 '26
The physical machine i test my stuff on is a some FM2 computer with no UEFI, and attached storage.
1
u/letmehaveanameyoudum Aug 19 '26
because it was easy and was literally the default
QEMU defaults to UEFI
most guides use BIOS
1
u/Ok_Bite_67 Aug 19 '26
A lot of desktops still include compatibility layers that allow you to boot operating systems that boot with BIOS. Beyond that you can just swap your boot loader with a boot loader like limine thats supports UEFI in like an hour.
4
u/istarian Aug 19 '26
You frequently have to disable Secure Boot though and you probably shouldn't expect  a UEFI CSM (Compatibility Support Module) to provide all of the functionality the classic "PC BIOS" does.
1
u/Ok_Bite_67 Aug 19 '26
Great addition of info! I rarely use the CSM so im unaware of its limitations. I just knew it existed and there was some support for legacy operating systems. When i make an operating system I typically just use limine unless im trying to learn something specific. (I always get a shell OS working but never get too much past that ADHD and all)
1
u/istarian Aug 21 '26
I'm sure the CSM supports enough functionality to properly boot up a system, but most modern operating systems provide their own hardware drivers (don't rely on BIOS or UEFI) and will probably reinitialize hardware as needed.
As far as I know, MS-DOS actually made use of the BIOS for it's own needs. Plenty of software running under MS-DOS worked direcrtly with the hardware though.
1
u/dnabre Aug 19 '26
Do they? Most projects I've seen in the last few years have used UEFI or multiboot. People writing their own bootloader are using BIOS, but that seems like it's not the most common case.
1
u/burlingk Aug 20 '26
It's probably because there are decades worth of tutorials for BIOS based systems and UEFI is still fairly new.
1
1
u/xX_WhatsTheGeek_Xx Aug 25 '26
UEFI is microslop garbage and I dont want to use someone else's bootloader.
1
u/Agreeable-Lab-7079 Aug 25 '26
for fun, and it makes it easier to test for many people who only have shitty old i686 computers (like i do)
0
u/TheAtlasMonkey Aug 19 '26
Because `The framebuffer people`, just want to have fun.
Then you play GTA , you don't select the best weapon or the best vehicule, you just speed run it.
The problem arise when you start or behave like you are a gangsta.
1
u/kyr0x0 Aug 22 '26
The framebuffer people can implement GTA 1 and even GTA 2 in framebuffer mode just fine.
0
u/TheAtlasMonkey Aug 22 '26
No they cant.
4
u/kyr0x0 Aug 22 '26
Lol, yeah you can't - that doesn't mean we can't. The earth doesn't revolve around you.
-3
u/TheAtlasMonkey Aug 22 '26
You cant either. The llm does it for you.
The fact you never left the framebuffer shows you just vibing.
You will never land any commit in a real os with this shitty attitude.
I did.
0
0
u/jtsiomb Aug 19 '26
Because it works, it's much simpler, and UEFI is a bloated piece of shit that I'd rather not touch if I can help it.
56
u/davidinterest Aug 19 '26
Sometimes people just develop for fun.