Writing a BIOS bootloader for 64-bit mode from scratch
11–20 of 82 posts
Re: Writing a BIOS bootloader for 64-bit mode from scratch
#12Earlier quoted context omitted.
BIOS is deprecated. All of its functionality on new motherboards is basically emulated via the UEFI; and it's certainly not being extended upon. Deprecated doesn't mean deleted, it just means "no longer updated/developed with a goal towards removal".
This killed FreeDOS (and presumably all the other *DOS as well) on modern hardware unfortunately. It was fun as long as it lasted. I do not know what the next-best single-user, single-process, non-bloated OS would be to run on modern hardware that still has some reasonably modern software and can be used for distraction-free (hobby) development the way FreeDOS could.
Re: Writing a BIOS bootloader for 64-bit mode from scratch
#13Does this boot procedure work with EFI/UEFI ? If so, does UEFI supervisor emulate swithing real/protected/long modes or does it go in real hardware ?
I've written about creating a UEFI bootloader (for my hobby OS) here: https://0xc0ffee.netlify.app/osdev/05-bootloader-p1.html
Re: Writing a BIOS bootloader for 64-bit mode from scratch
#14They all seem to be steps needed for backwards compatibility.
Could Intel just provide a flag, command, to start in the right mode from the beginning.
Or just remove all the backwards compatibility.
I think I remember doing some research and ARM64 has some of the same issues.
Are there any CPUs that are designed from scratch as 64 bit it will not have any need for backwards compatibility and would enter the required state by default?
I guess sthat was the goal / design of Itanium?
are made to start in the desired 64 bit state from th
Re: Writing a BIOS bootloader for 64-bit mode from scratch
#15All to me entirely unnecessary steps required to get the CPU into the correct mode is astounding. They all seem to be steps needed for backwards compatibility. Could Intel just provide a flag, command, to start in the right mode from the beginning. Or just remove all the backwards compatibility. I think I remember doing some research and ARM64 has some of the same issues. Are there any CPUs that are designed from scr…
Re: Writing a BIOS bootloader for 64-bit mode from scratch
#16All to me entirely unnecessary steps required to get the CPU into the correct mode is astounding. They all seem to be steps needed for backwards compatibility. Could Intel just provide a flag, command, to start in the right mode from the beginning. Or just remove all the backwards compatibility. I think I remember doing some research and ARM64 has some of the same issues. Are there any CPUs that are designed from scr…
> X86S is a legacy-reduced-OS ISA that removes outdated execution modes and operating system ISA.
> The presence of the X86S ISA is enumerated by a single, main CPUID feature LEGACY_REDUCED_ISA in CPUID 7.1.ECX[2] which implies all the ISA removals described in this document. A new, 64-bit “start-up” interprocessor interrupt (SIPI) has a separate CPUID feature flag.
[0] https://cdrdv2.intel.com/v1/dl/getContent/776648 [pdf warning]
Re: Writing a BIOS bootloader for 64-bit mode from scratch
#17Earlier quoted context omitted.
This killed FreeDOS (and presumably all the other *DOS as well) on modern hardware unfortunately. It was fun as long as it lasted. I do not know what the next-best single-user, single-process, non-bloated OS would be to run on modern hardware that still has some reasonably modern software and can be used for distraction-free (hobby) development the way FreeDOS could.
Linux in single user mode
Re: Writing a BIOS bootloader for 64-bit mode from scratch
#18Re: Writing a BIOS bootloader for 64-bit mode from scratch
#19Earlier quoted context omitted.
Linux in single user mode
That's still multi-process though, there's an awful lot of background tasks running in pretty much every non-fossil kernel version, not to mention userspace daemons (udev, dbus, dhcp) without which most normal userspace stuff doesn't even work.
Re: Writing a BIOS bootloader for 64-bit mode from scratch
#20Earlier quoted context omitted.
That's still multi-process though, there's an awful lot of background tasks running in pretty much every non-fossil kernel version, not to mention userspace daemons (udev, dbus, dhcp) without which most normal userspace stuff doesn't even work.
None of that exists in single user. When you say init=/bin/foo, then that's it, the only process is /bin/foo.