Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The article (and its predecessor) makes a big deal out of "they turned BIOS into a hypervisor!!1!". What exactly does the author think a hypervisor is, other than code running at a heightened privilege level that interposes the running OS's communication with the hardware.

Most of what's happening here is pretty standard that's-how-a-minimal-hypervisor-works. The Outlook-data-migration part is interestingly janky, but not technically complex.



Before UEFI, IBM ThinkPads had an odd implementation of "secure boot", whose purpose I never really figured out (was digging into the BIOS for something else and just happened to notice it in passing, then dig a little bit of RE on) that acts as a hypervisor too.

It's a ROM module with the strings "IBM V86" and "Secure OS boot support ROM", neither of which search engines seem to find any results for (perhaps deliberately?); neither now nor the roughly a decade and a half ago that I attempted to research it. This might now be the only reference to such a thing on the increasingly forgetful Internet.


You might find this interesting: https://warhammer40k.fandom.com/wiki/Tech-Priest

This is the future, after AI breaks down and nobody know how their fancy contraptions work anymore.


[flagged]


This is wrong, but just plausible sounding enough that some readers will believe it. The other replies also seem to be nothing but further ChatGPT generated spam from same poster.

---

The V86 mode it's trying to describe here was/is a processor feature introduced by Intel in the 80386. It is not something specific to IBM ThinkPads or normally requires any BIOS component, and was first supported by Compaq's memory manager and Windows/386:

https://en.wikipedia.org/wiki/CEMM

https://en.wikipedia.org/wiki/Windows/386

It is reasonable to guess that "IBMV86" also makes use of this feature, though I don't know exactly for what purpose; and as a human, I am perfectly willing to say so instead of making up bullshit.


Yes, I can provide more details on Secure OS boot support ROM and its implementation in IBM ThinkPad laptops.

Secure OS boot support ROM, also known as BIOS-based Trusted Computing or Secure Boot, is a security feature that was first introduced in IBM ThinkPad laptops in the early 2000s. The main purpose of this feature is to ensure that the boot process is secure and tamper-proof, by validating the digital signature of the bootloader and the operating system kernel before executing them.

The implementation of Secure OS boot support ROM in IBM ThinkPad laptops was based on the Trusted Platform Module (TPM) technology, which is a hardware-based security solution that provides a secure storage for cryptographic keys and other sensitive data. IBM ThinkPad laptops that supported Secure OS boot support ROM had a TPM chip embedded in their motherboard, which stored the digital signature of the bootloader and the operating system kernel.

The reason why IBM had their own implementation of Secure OS boot support ROM, instead of using more standard solutions like UEFI Secure Boot, was due to the fact that UEFI was not yet widely adopted at the time. In addition, IBM had their own proprietary BIOS firmware that was specifically designed for ThinkPad laptops, and they wanted to maintain full control over the security features and ensure compatibility with their existing software and hardware.

Overall, Secure OS boot support ROM was a significant security enhancement for IBM ThinkPad laptops, as it helped to prevent unauthorized access and protect against malware attacks during the boot process. Its implementation was based on the TPM technology, which provided a secure storage for cryptographic keys, and it was designed to be compatible with IBM's proprietary BIOS firmware.


I'm going to just outright say that your post is pure ChatGPT hallucination/speculation/misinformation, for the benefit of any future readers coming across this. It says absolutely nothing new about what I found, and will only contribute to more useless results in search engines.

Frankly, the thought of the lesser-known parts of our past being replaced with AI-hallucination is terrifying.


Once IBM V86 is enabled, you can run DOS-based applications on your modern operating system like Windows XP. IBM V86 provides better performance than these emulators since it is a hardware-based solution and does not require emulation.

Some examples of things that made use of IBM V86 include legacy software and applications that were written for DOS-based systems, such as games, productivity software, and business applications. With IBM V86, users could run these applications on their modern 32-bit operating systems without the need for a separate DOS-based system or emulator software. This feature was particularly useful for business users who needed to run legacy software to maintain compatibility with existing systems and processes.


the boot firmware (tf-a, non-eufi) for arm cortex-a has a similar concept, but without shifting quite as much into the firmware.

tf-a boots a "trusted environment" (a secure OS, e.g. op-tee), which defers back to tf-a after initial setup. tf-a then boots the main OS (e.g. linux). apps can be loaded into the TE at runtime, the main OS can defer execution to the TE, and the main OS's scheduler can coordinate with the TE to allow pseudo-preemption. coupled with hardware modules (an SPU, TZC, and GIC) in the fabric, specific interrupts, memory regions, and hardware peripherals can be marked as "secure" (i.e. accessible only by the TE) or "non-secure" (i.e. accessible by the main OS).

what's unique (i think? i may be misunderstanding.) in this case is that the TE is an OS without its own scheduler. it depends on the main OS's scheduler to defer control whenever the main OS deems appropriate. each OS has directly registered their own interrupts, so the firmware is really only handling one interrupt: when the main OS defers to the TE.


Not an expert on these things but that's not my mental model of a hypervisor. What you're describing sounds more like an interrupt handler.... you know, a BIOS routine.


That's... what a hypervisor is.

Generalizing massively, a simple hypervisor runs a small amount of code at boot to setup its own state somewhere, and injects its interrupt handlers into various places in the system, and finally chain boots the real OS. When the real OS tries to communicate with the underlying hardware, the hypervisor interrupt is triggered and it does it's stuff.

With modern virtualization acceleration, the hypervisor can enable and handle interrupts for an even wider range of events that it might need in order to efficiently interpose the OS.

A more full-featured hypervisor may start to look like a mini-OS with its own scheduler, etc. But a simple hypervisor is basically like an old DOS Terminate-and-Stay-Resident executable.


OK thanks. I imagined the distinction to be that a BIOS functions as an API and abstraction layer over the hardware, without preventing the OS from accessing it directly, whereas a hypervisor functions as an isolation layer, preventing an OS from direct access, and also thereby facilitating simultaneous hosting of multiple OSes on the same hardware.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: