Bonum Certa Men Certa

The UEFI hype and Microsoft's lies

posted by Roy Schestowitz on Mar 03, 2025,
updated Mar 04, 2025

Wow Retro Speech Bubble

By Sami Tikkanen

More than a year ago I wrote a document that I named "UEFI fact sheet". The purpose was to create a more truthful counterpart to a similarly named document which the UEFI forum was spreading on various Internet sites. For a long time my document was the first search result on most search engines when searching for "UEFI fact sheet". Recently I noticed that Bing (which is owned and maintained by Microsoft) had put my document to the second page of search results, and the first result now points to a disinformation document that is published by the UEFI forum.

For some reason the UEFI firmware is often being advocated by telling actual lies about both UEFI and BIOS, which is supposedly meant to be completely replaced by UEFI. Although these lies are technically not true, they have somehow achieved the status of an "official truth", to such extent that those claims are now everywhere and it is easier to find online sources that support them than it is to find those that don't. Those lies are being spread in such a determined manner that if you try to correct those claims in the articles of the Finnish Wikipedia, the changes are immediately reverted and you even get personally attacked by the user who reverted the changes.

In general the most hardworking UEFI advocates seem to be people who don't do stuff like install alternative operating systems on their computers. They certainly don't write computer code that would have something to do with the motherboard's firmware or interface with the peripheral devices.

The need for UEFI-type motherboard firmware is usually reasoned with seven main arguments:

- BIOS does not support hard disks that are larger than two terabytes (2 TB).

- BIOS supports only 512 bytes long sectors.

- BIOS supports only MS-DOS-style partitioning scheme, and doesn't allow the use of GPT partitioning.

- BIOS supports only four partitions.

- BIOS is insecure.

- BIOS is 16-bit. UEFI is either 32- or 64-bit, so UEFI must be better.

- UEFI is extensible, unlike BIOS.

None of those claims can withstand a closer scrutiny. Let's go through them all in detail.

"BIOS does not support hard disks that are larger than two terabytes (2 TB)."

When Microsoft claims that BIOS is limited to hard disks of two terabytes in size, they actually mean that Windows is limited to that size when it is installed to a computer that has BIOS. For some reason Microsoft has always hardcoded their operating systems to use some specific partition table: MS-DOS has its own partition table, which is also used by all Windows versions, if the firmware type is BIOS. If the computer has a UEFI firmware, the Windows versions newer than Windows 7 use GPT partitioning. Windows 7 and older versions cannot boot from UEFI at all. Microsoft's operating systems don't support other partitioning schemes than those two. The MS-DOS partition table doesn't support partitions that are larger than 2 TB.

For the original IBM PC BIOS the maximum size of a hard disk is 8,4 GB, assuming that the sector size is 512 bytes. That was more than enough at the time. During the 90s the actual sizes of hard drives were rapidly approaching that limit and something had to be done. In 1995 the BIOS specification was appended with "Enhanced Disk Drive Specification" which added the support for 64-bit sector indexing, which also works better with non-spinning disks that don't have a physical CHS* geometry. It means that a storage device can now have 264 blocks, which leads to the largest possible drive size of 8'589'934'592 terabytes with block size of 512 bytes. Currently hard drives use only 48 physical bits for actually addressing the sectors, so the limits of the current BIOS interface are not going to be a problem in the near future.

Often this claim also comes in a different form: "BIOS cannot boot from a larger partition than 2 TB." Of course that's also not true, because BIOS does not care at all about how the drive is partitioned - BIOS only reads the first sector from the drive and executes it as a computer code if it has a boot sector signature.

Actually UEFI is in this sense more limited than BIOS, because UEFI needs to have a FAT32 filesystem on the EFI partition, which makes it practically impossible to boot from a media that does not support random access (such as tape drives).

"BIOS supports only 512 bytes long sectors."

The original IBM PC BIOS supports all sector sizes from 128 bytes to 64 kilobytes. The only limitation is that the sector size must be a power of two, or else the "Disk Base Table" cannot show the exact sector size.

This was also fixed by the Enhanced Disk Drive specification that was mentioned in the previous chapter. It added a "Get Drive Parameters" function that tells the sector size by one byte precision. The claim that BIOS would be limited to 512 byte sectors is not true.

"BIOS supports only MS-DOS-style partitioning scheme, and doesn't allow the use of GPT partitioning."

This claim is also a lie. BIOS doesn't actually "support" any partitioning scheme at all - instead BIOS is completely partition-agnostic and does not care at all how the drive is (or isn't) partitioned. Therefore using GPT partitioning with BIOS is very well possible and most operating systems can do it.

Actually UEFI is again the more limited system here. According to its specification, UEFI supports booting only from drives that have either GPT- or MS-DOS-style partitioning scheme. Most UEFI implementations support only GPT partitioning. BIOS makes it possible to use also other partitioning schemes than those two. ST-DOS, an operating system that I wrote, uses its completely own partitioning scheme, which is so portable that by using it it's possible to copy the entire contents of the physical drive to a larger drive without changing anything. With GPT partitioning it is not possible.

ST-DOS's partitioning scheme also supports an unlimited amount of partitions, and the maximum size of a partition is (216)*(264)*(28) bytes which results in 281'474'976'710'656 terabytes. Unfortunately UEFI doesn't work with ST-DOS's partitioning scheme because UEFI is hardcoded to only GPT and MS-DOS partitionings.

"BIOS supports only four partitions."

This claim is based on the previous claim, which implicates that BIOS is somehow hardcoded to support only MS-DOS's partition table, which can only divide the disk to four partitions. Therefore the claim is not true.

"BIOS is insecure."

This claim is probably based on the assumption that security can always be improved by adding some cryptography. That's why UEFI has a functionality called "Secure Boot", which checks that the digital signature of the bootable program binary (which is usually the bootloader of an operating system) before running it. In practice it has been proven to be nearly impossible to create an actually working implementation of Secure Boot, and UEFI firmwares have been suffering from ridiculous security vulnerabilities that have rendered the whole Secure Boot completely ineffective.

Secure Boot only checks the EFI binary that is loaded from the EFI partition. It doesn't detect much more probable threats, such as changes in the actual operating system's filesystem made by some malware program in an attempt to start itself during the early initialization phase of the operating system. In addition to that most motherboards allow changing the CMOS settings programmatically from the operating system itself, which means that any malware code with sufficient permissions can easily just turn off the whole Secure Boot functionality.

In practice the only guaranteed-to-work way to protect the boot security is to physically write protect the boot media containing the operating system, the firmware ROM chip and also the CMOS chip that contains the firmware settings. Actually that's how it was done before the UEFI buzz became mainstream.

"BIOS is 16-bit. UEFI is either 32- or 64-bit, so UEFI must be better."

Intel's x86-family CPUs have many different operating modes. They start up in the so-called "real mode", where the operand size is 16 bits. The programmer can then chance the operating mode to whatever they like the most. Most modern operating systems use either 32- or 64-bit CPU modes. x86 CPUs have also the so-called "operand size prefix", which allows using 32-bit general purpose registers while the CPU is in 16-bit real mode.

In Turing-complete systems the bit width does not limit in any way what can be done with the computer. Either BIOS nor UEFI doesn't do anything that would greatly benefit from larger bit width of the default operand size. The BIOS interface had to be made for some specific CPU mode, and for historical reasons that CPU mode is the 16-bit real mode. It makes it possible to call the BIOS services from every CPU mode, be it a 16-, 32- or 64-bit mode - therefore it makes sense that the BIOS API of the IBM PC compatible computers is 16-bit. Some BIOS services temporarily switch the CPU to 32-bit mode.

In UEFI's marketing material it is often stated to somehow be UEFI's benefit that the CPU "is already in 32-bit mode" when loading an operating system. In practice switching the CPU mode is such a small part of initializing an operating system that it is utterly insignificant. At most this makes it more difficult to load 16-bit operating systems.

"UEFI is extensible, unlike BIOS."

Again a lie. BIOS has been extensible from the very start and it has been defined in its specification. Practically every graphics card has a BIOS extension on its ROM chip, as well as disk controller cards and network adapters that support booting from network. IBM has released instructions for making BIOS extensions in their book "IBM Personal System/2 and Personal Computer BIOS Interface Technical Reference" in chapter 4-12 Adapter Rom.

Why does this all matter?

The actions of those who spread the marketing lies of UEFI are unethical for many reasons. First of all, lying is bad. It is especially bad when it is done in an attempt to achieve financial gain. Microsoft has implemented an artificial limitation to their operating system, to create an artificial compatibility mismatch between old computers with BIOS firmware and new computers with UEFI firmware. The same operating systems cannot be used on them both anymore. This is how people are being forced to buy new computers when there is nothing technically broken with the old one.

Spreading erroneous assumptions about technology is harmful. The IT industry is already in crisis because of the lack of skilled labour. New junior programmers cannot code anymore because they don't know what they are doing. In school world, concepts are either not taught at all or they are taught in some twisted way wrong.

UEFI's marketing lies are very likely to cause more confusion and misconceptions to people who aim at becoming IT professionals. They need to manually learn away from these misconceptions, which is usually harder after having already once adopted the wrong information as the truth. The industry is in a particular need of developers who are able to do kernels, drivers and other low-level program components, and not many new ones aren't being graduated anymore. The development has taken an unsustainable route and any marketing buzz that contains technically untruthful claims always makes it worse.

In addition to all that, the transition from BIOS to UEFI in the motherboard firmwares has made it difficult (and in many cases impossible) to boot other operating systems and programs than Microsoft Windows. With BIOS you can boot any operating system without having to do any tricks - all you need to do is to insert a bootable disk in a drive and the computer boots from that disk regardless of what type of partition table or filesystem is used by the operating system to be booted. With computers that have UEFI just disabling the Secure Boot is often already very difficult, and it may completely prevent technically less adept people from installing alternative operating systems.

BIOS is an abbreviation of words "Basic Input/Output System". In practice it means firmware that offers runtime services for the operating system to do basic things like write text on the screen, read keystrokes from the keyboard and read and write to the persistent storage media. IBM PC is not the only computer platform that has BIOS-like runtime services on its ROM. BIOS has made it possible for computer hobbyists to create own operating systems without having to separately write drivers for all different models of graphics cards, disk controllers and keyboard interfaces - the driver code has been a part of the motherboard's ROM firmware and abstracted behind the calls to the BIOS runtime services. UEFI doesn't offer any helpful runtime services, so it will also make indie operating system development so laborious that people will mostly just stop doing it. And it will make the lack-of-skill crisis of the IT industry even worse.

____

* Cylinders, heads, sectors.


Addendum/correction (04/03/2025): BIOS does NOT have a 2 TB limit for hard drive size. That is Microsoft's propaganda. The 2TB partition size limit comes from the so-called MBR partitioning scheme that was designed by IBM in the 80s and Microsoft started using it in their PC-DOS 2.0 operating system. BIOS is in fact a much older thing than that. BIOS does not care about partitioning - the disk may have any partitioning scheme (MBR, GPT or any other) or may not be partitioned at all and BIOS can still boot from it just fine.

Other Recent Techrights' Posts

Double-Dipping the Docket for Microsoft Glory and Censorship of Microsoft Critics
same lawyer, same barrister, all US, all Microsoft
IBM: Less Than a Month's Severance for Each Decade of Service
Yes, decade!
The EPO, Europe's Largest Patent Office, Admits Outsourcing to Microsoft Slop
Their sole goal is to make more money
 
Microsoft's "FUD-as-a-Service" (Against Linux) Not Functioning Well
This is the kind of contribution companies like Microsoft and Google have to offer to society
Betanews Becoming a Slopfarm is "Betanews Growing Alongside You", According to Betanews
Their first 'article' in over two weeks is 52% "AI-generated" (slop), 33% mixed (edited slop), 18% human-written, says an advanced scanner.
Coffee Day and LLM Sloppers
The LLM slop "bros" are a lot like fake-money bros; they lie to people, they boast that they lie to people, and they're generally bad people, BS artists in colloquial terms
TheLayoff Censorship of IBM Threads Has Gone Truly Ludicrous
we do not argue that TheLayoff should not cull LLM slop
More Stallmanites Added to FSF Board and Summer Fundraiser Commences
There's some good news from the FSF
Gemini Links 17/06/2025: Consistency and Notes About NixOS
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Monday, June 16, 2025
IRC logs for Monday, June 16, 2025
July 2 2025 Would Not be First Big Wave of Microsoft Layoffs Before Major National Holiday
July 2 or 3 mark the start of a very long weekend in the US
IDG's NetworkWorld Seems to Have Just Become LLM Slop
If IDG (now controlled by China) does that in at least one site, why not the rest? Only a matter of time?
Gemini Links 16/06/2025: Free Lunches and Bookmarklet for Mastodon
Links for the day
Gemini Protocol Turns 6 on Friday
Active (online) Gemini capsules are estimated by Lupa at over 3,000
Taking a Lesson From Denmark and Greenland? Iceland Shows New Lows for Windows, All-Time Highs for GNU/Linux
If Microsoft sabotages systems of judges at the Hague (in order to appease the insane man who wanted to invade Greenland), why won't its neighbour Iceland take note?
BetaNews Has Just Deleted Its Latest 'Article' or Got Cracked Again and Restored From Outdated Backup Again
BetaNews seems to be in some serious trouble right now
Software Freedom is "Activism" Because the Corporate Agenda Revolves Around Bribery, Deceit, and Betrayal
At the end Software Freedom will win because it's on the same side as truth and lawfulness
Links 16/06/2025: EchoLeak and NASA Teaming up With India
Links for the day
The Better the Understanding or the More Nations Understand the Threat Posed by Microsoft, the Faster It'll be Eradicated
We believe that the thing to advocate is self-hosting and Free software... A lack of simplicity or absence of alternatives is a form of vendor lock-in
A Week of Sunlight
They say transparency is like sunlight to a vampire
"Linux" Sites That Went Astray
there are even worse things than shutdowns
Links 16/06/2025: Climate, Wildfires, Breaches, and Monopolies
Links for the day
Links 16/06/2025: Summer in Finland and Misunderstandings
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Sunday, June 15, 2025
IRC logs for Sunday, June 15, 2025
Gemini Links 15/06/2025: Rainy Season and OpenDocument Format (ODF)
Links for the day
Links 15/06/2025: Military Games, Parade, and Actions
Links for the day
Links 15/06/2025: Windows TCO, Openwashing, and Wars
Links for the day
Gemini Links 15/06/2025: "AI Fatigue and Crappiness"
Links for the day
When Abusive Law Firms (Working for Microsofters Against Us) Assert That Someone Writing in Social Media About Himself is Confidential Information
There was no reason to throw "GDPR" into 2 SLAPPs; they know it, but the goal was to increase the cost of a Defence and lessen the incentive to challenge the SLAPPs
Microsoft Attack Dogs Against Watchdogs and Guard Dogs in Software
Last year Microsofters hired attack dogs or "guns for hire"
Slop Cannot Replace Domain Expertise
All this "AI" hype (it's not even intelligence, it's all a misnomer, as many of us have insisted all along) will fizzle and be written off as a failed experiment
IBM's Fresh 'PIPs' (Action Before Layoffs)
At times like these, even once-reputable employers resort to PIPs and other procedures/tricks for denial of workers' rights
Microsoft is a Problem Not Just for Denmark
Every country should consider what Denmark is doing, why Denmark is doing it, and then do the same
The Slopfarms' Self Detonation
If more sites like BetaNews go under, then maybe we can still salvage some of the Web
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Saturday, June 14, 2025
IRC logs for Saturday, June 14, 2025