6 ms·
Hell Never Ends on x86: The Hyperspace Story, Continued, Sort Of
- saagarjha 4y agoOh my god, this is atrocious. Since this is Hacker News, I know someone who worked on this is probably going to stumble upon this. My only question for you is how your liver is holding up these days.
- db48x 4y agoI both like and am terrified by his explanation of how features like that come into existence.
- akersten 4y agoEFI based outlook is simultaneously incredibly cursed and cool.
- AstralStorm 4y agoAhh, SMM. The stepchild of security issue combined with 8051 and 386SL. So what will be the next IRONCHEF called? :) DailyDriver?
- indigodaddy 4y agoThis all feels very Justine.lol’y. I wonder if Blink could boot QuickWeb.efi or QuickLook.efi ?
- pests 4y ago"HP decided to write Outlook." Haha
- teddyh 4y ago> But EFI apps are just binaries, and EFI is a limited "OS" that provides a set of libraries, so you can conceivably write many complex programs to run inside of it. According to user ‘zaarn’ here on HN, this is not feasible for most use cases: https://news.ycombinator.com/item?id=18024064 https://news.ycombinator.com/item?id=18024064
- LiamPowell 4y agoDisabling that watchdog timer only requires a single function call and does not require exiting boot services. UEFI is big, but it's also incredibly well documented, there's also no reason that you have to use all of it or even know about everything it offers.
- raverbashing 4y agoThat is the "best" of PHBs ideas with the best of HPs technical talent that's still lingering Of course it's tech equivalent of attaching wings to horses and making them fly
- codetrotter 4y ago> attaching wings to horses and making them fly I’d totally befriend a wild Pegasus if they still existed. Imagine having your friend Pegasus fly you everywhere instead of taking the bus for hours. Would have been so much better.
- KineticLensman 4y agoAt least in Victorian London, which was being slowly buried in horse-poop, the poop was restricted to the streets. Poop from flying horses would be a lot less pleasant.
- userbinator 4y agoIt speaks volumes about the bloat that modern OSs have become when people think of reimplementing their own on top of the successor to BIOS. The EFI environment has a vague resemblance to a 32/64-bit MS-DOS. I don't find this stuff negative at all, unlike what the author seems to be implying; instead, it reassures me that there's still plenty of old-school "hacker spirit" left in the industry, if you know where to look.
- wvenable 4y agoFrom the original article all these things were meant to give you a faster booting alternative to Windows but then it didn't actually boot significantly faster!
- userbinator 4y agoI suspect they would become relatively faster over time once the Windows installation (filled with bloatware, no doubt from a different part of the same company) became slower.
- phaedrus 4y agoI worked with someone who had previously been a senior engineer at one or maybe more than one hard drive manufacturers. He told me about a project he had worked on where they collaborated with Microsoft to make something that would make the OS boot significantly faster working with their hard drive. I'm filling in blanks in my memory here, but I think it involved a combination of putting some files in flash memory (hybrid disk) as well as storing files on the spinning disk in the order they'd be accessed. It worked! They were able to make boot process significantly faster. But consumers would never see it. The punchline was, it turns out many peripheral devices and drivers rely on the boot process being slow that all kinds of race conditions and intermittent bugs and glitches turned up as soon as they started testing on a wider range of PCs. Even if you solved the dependency and order of scheduling problems on the main thread of the OS loading, devices may have microcontrollers that are slow to come online or drivers initializing independently. (You might object well doesn't the hardware or driver have a "ready for first query" flag or something like that. Well that depends on hardware manufacturers doing the right thing, thinking of that ahead of time to add it to the interface, and implementing it correctly. This would be something that had never been tested because previously there was always XX seconds before the OS tried to query the device for the first time.) So the moral of the story is the boot process of x86 PCs is still slow because it has always been slow...
- atemerev 4y agoI don’t know. They say “cursed”, I say “cool hack”. Software is there to be abused and bended to fit user needs.
- rdtsc 4y ago> Was this worth it? Worth inventing completely new forms of software, worth injecting code into the fucking thermal management layer that overrides parts of the Windows boot sequence and risks corrupting main RAM and rendering the machine unusable, all for a fucking 15 second speedup? It also feels like the case of some higher up VP-of-whatever not realizing how atrocious the implementation would be, and just ordered it to be done. Nobody below them in the development or engineering teams dared to chime in and protest. Those who protested probably found themselves without a job, or replaced by some overseas contractors who never object to anything (and are usually cheaper per line of code written too, a win-win, surely!).
- coderintherye 4y agoThis was much better than I expected. This commenter sums it up well: "seeing you lay bare this altar to absurdity that HP has laid helps. perhaps what I have built is a little Extra, but I’ll never hijack the windows boot process in ring -1 to show my outlook calendar"
- ilyt 4y agoIt's like summoning a demon to make you some mediocre coffee
- AtlasBarfed 4y agoThe banality of organizational evil is precisely this.
- rekabis 4y agoHoly Christmas, that was one heck of a roller coaster ride.
- riffraff 4y agoI'd honestly be super happy to have a useful boot image, if I was rebooting often. I have not done that in many years, but still!
- pmontra 4y ago> Imagine being a product designer at HP, in the very weird year of 2010, and having some fucking VP storm in and go "We have to deliver Features for Executives. We're selling $1500 notebooks to them, but Dell has exactly the same set of ins and outs as us. We need Features." Well, I bought a ZBook from HP in January 2014 because of these Features: 1. All the laptops I worked with (my company's or my own) were HP and they were good. They were of the Compaq lineage, not the consumer specs. 2. They have on site next business day support as long as I pay a warranty. That was less than 100 Euro for the first three years. I don't have to bring the laptop somewhere or leave it there for days or weeks. 3. I can open it and replace basically every single part. 4. I knew it would run Linux reasonably well. That means perfectly as long as I don't care that shutdown is a reboot and I have to long press the power button at the BIOS screen to actually shutdown. Maybe I didn't shutdown once since January this year. 5. It has three physical buttons on the touchpad. I wish it didn't have the numberpad. 6. It could accommodate up to 32 GB, which it has now. Plus 2 SSDs, 3 TB total. It came with a 750 GB HDD. So, these are the kind of features I care about. Software gimmicks in the BIOS not really, nor weird multimedia buttons.
- Tempat 4y agoDell might as well have had the same VP at that time, but to differentiate they instead went with generally useless bundled desktop software like the Dell Stage and Dell Dock.
- hrrsn 4y agoAs noted in the post, none of these features are exclusive to HP. Dell will offer you the exact same features in a slightly different form factor.
- RantyDave 4y agoPlace I used to work bought probably more than a thousand HP Zsomething workstation whatevers for a vastly inflated price each. They were good, but came with lots of stuff we'd never use like a license to some HP supported remote desktop software that ran on Linux. Complete waste of money. Until the pandemic hit and we had three days to get more than a thousand people working off-site.
- 4y ago
- moosedev 4y agoI love this horrible, clever, horrible tech and this writing style. The first paragraph links to a related earlier post, and I can confirm it’s also worth reading in case you skipped it: https://cohost.org/cathoderaydude/post/1228730-taking-the-deepest-p https://cohost.org/cathoderaydude/post/1228730-taking-the-de...
- rzzzt 4y agoCRD has long-form videos exploring tech stuff from the "recent past" which you might also like: https://www.youtube.com/@CathodeRayDude https://www.youtube.com/@CathodeRayDude
- theresistor 4y agoThe 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.
- danparsonson 4y agoNot 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.
- theresistor 4y agoThat'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.
- danparsonson 4y agoOK 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.
- userbinator 4y ago
- stacktrust 4y agoThe original post deserves an award for tech writing, https://cohost.org/cathoderaydude/post/1228730-taking-the-deepest-p https://cohost.org/cathoderaydude/post/1228730-taking-the-de... > Windows gets itself all ready for sleep, tucks itself in, then tells the BIOS "too eepy! time for bed, S3~" but instead of the S3 reaching the BIOS, OSM intercepts that call. The OS has halted itself, and is waiting to be told that it's time to wake up, but OSM instead proceeds to alter the universe around it ... the OSM will move all the memory pointers around, then reverse the sleep process, causing the machine to instantly "wake" - from a sleep it never actually entered. > Windows thinks it's taking a nap, but it wakes up as someone else, leaves the house, and commits murders it has no memory of. In other words: Phoenix figured out how to turn the BIOS into a hypervisor. It's almost, almost beautiful, if it wasn't both incredibly fragile and completely uncalled-for. But christ. Christ almighty, what a hack. One could come to tears over it. There is a software archaeology epilogue waiting to be written, based on artifact reverse engineering and a trail of public breadcrumbs: Hyperspace was acquired by HP. Hyperspace creator left HP and founded Bromium (acquired by HP in 2019). Bromium productized OSS Type-2 Xen (uXen microvisor), copy-on-write VMs in 150ms. Microsoft cloned Bromium vSentry as Defender - Application Guard. Bromium AX ships on HP biz laptops /w nested x86 virt for OS+UEFI virt. OSS Bareflank hypervisor = attempt at replicating AX (Windows-as-dom0). OSS Android 13 pKVM-for-Arm is closest OSS in spirit to Bromium AX. In other words, conceptual descendants of the Phoenix Hyperspace hack are shipping today on millions of Android and Windows systems. In 2018, https://github.com/rust-vmm/community#why-rust-vmm https://github.com/rust-vmm/community#why-rust-vmm deduped CrosVM (Chromebooks) and Firecracker (public cloud) micro VMs on KVM. Industry needs an OSS Type-1 L0 hypervisor: https://twitter.com/stacktrust/status/1640145980833005568 https://twitter.com/stacktrust/status/1640145980833005568 Video with virtualization history of Xen (Type 1), uXen (Type 2) and Bromium/HP AX (Type1 L0 for nesting of Xen, KVM, VMware, Hyper-V): https://www.youtube.com/watch?v=bNVe2y34dnM https://www.youtube.com/watch?v=bNVe2y34dnM) pKVM baby step towards dropping SMM/TrustZone: https://twitter.com/stacktrust/status/1595951965699473408 https://twitter.com/stacktrust/status/1595951965699473408
- nikanj 4y agoThis writing sounds like stuff from James Mickens ( https://mickens.seas.harvard.edu/wisdom-james-mickens https://mickens.seas.harvard.edu/wisdom-james-mickens )
- vrglvrglvrgl 4y ago[dead]
- RedShift1 4y agoHey, I have an Elitebook 8540w! I got it out of storage and tried the browser/email button but unfortunately doesn't do anything. (They are capacitive buttons though, does it really work on an EliteBook 8540w?). I don't have the HP_TOOLS partition either, but this would work great for dual booting? If you press the normal power on button it boots in Windows, if you touch the "browser" button it boots in Linux. Will try some more things. Update: I had the quicklook/quickweb stuff disabled in the BIOS, I enabled it and lo and behold the computer booted when touching the browser button. Cool.
- RedShift1 4y agoUpdate 2: looks like my plan won't work, whatever .efi file I use, UEFI complains that it's corrupted... Probably checking some signature.
- robotnikman 4y agoSpeaking of capacitive buttons, I wish laptops still had those. Now everything like brightness/volume are doubled up with the function keys. There's plenty of room for unintrusive capacitive buttons on laptops, why did they stop adding them I wonder
- brokenmachine 4y agoDo you happen to work for Tesla? Capacitive buttons are terrible.
- AshamedCaptain 4y agoThe author is exaggerating quite a bit. Nothing is intrinsically complicated about writing a UEFI "application" -- UEFI sadly even specifies this. Someone even ported DOOM. They did it for jiggles -- but it's hardly "completely new forms of software". Easier than writing a native MS-DOS program, for sure. Some company even sold laptops with two CPUs, one that would run some Windows CE while the main Windows was booting. Even that is just gluing a PDA and a laptop together... BIOSes "perverting" sleep behavior? Sleep is precisely what the BIOS handles. E.g. way before Windows would support hibernation natively, laptops with hibernation capabilities would have to do it all on firmware. And it wasn't that fragile, since it would work with everything from MS-DOS to Linux (even the progress bar UI which was some VGA text mode). This is how I learn in the 90s that Windows likes to keep unused pages zeroed while Linux does not: hibernation under Linux would take significantly longer. But it'd work. No one remembers firmware hibernation partitions? I'd guess that many people do, since Intel tried to resurrect that in the 2015s (e.g. https://www.dell.com/support/kbdoc/en-us/000136460/how-to-use-intel-rapid-start-technology-to-improve-system-startup-from-hibernation https://www.dell.com/support/kbdoc/en-us/000136460/how-to-us... ). Wait until you learn that MS has hooks for the firmware to download executables that will run during kernel boot time...
- rzzzt 4y agoIs it the same mechanism that's used by Computrace / Absolute?
- AshamedCaptain 4y agoComputrace uses WPBT, which is one of them.
- michaelsshaw 4y ago>Wait until you learn that MS has hooks for the firmware to download executables that will run during kernel boot time... Could you elaborate? Sounds very sinister
- skitter 4y ago
- hyperman1 4y agoI've seen people actually using this: 1) The PC, loaded with any security contraption you can think of and severely underprovisioned in RAM is deemed user-worthy by IT if it boots in 15 minutes or less. It may take 10 min from desktop visible to can actually move the mouse. 2) Work day start and end are logged in a web application, requiring a running PC. 3) Shutdown takes just at long. 4)Sleep modes don't work. Fresh boot every day, or weird crashes will haunt your whole working day . So how, as a worker drone, do you avoid adding an hour of working time just waiting to start and end the work day? Very predictably, once end users found out the firmware based browser, there was no stopping them. And then they found the browser could surf to sites without said security contraptions blocking them.
- ksec 4y agoWorking inside any huge ( non tech ) or government system, along with quite literally broken VPN or networking. Yes, you spend at least 1 hour per day just starting up the machine, wait for it to connect, and downloading things on a slow network. Along with unresponsive Application using things like Team. Most people in the decision making grade have absolutely no clue about tech, be it software or hardware in general.
- denton-scratch 4y agoOddly, I find the zeroes with a slash through them rather disturbing. I guess I'm just not used to slashed zeroes in prose.
- ilyt 4y agoStuff like that makes me wonder who buys device for that? Or is that just a business unit that's delusional enough to think this actually increases sales?
- Nextgrid 4y agoDespite the limitations and hackiness of the approach, this instant-boot feature at least attempts to serve the user? I don't see any "rate your experience" popups, nor login/signup prompts, nor ads, nor endless amounts of whitespace and the (few) options hidden behind a catch-all "burger" menu. This thing was actually built to a much higher UX standard than most software nowadays.
- nl 4y agoI don't get the outrage over this. Software has always been built in layers, repurposed for other things. This seems like a great example. And it did make sense in the context of 2010 because it let HP experiment with non-Windows environments. In another world maybe one of these would have become super popular.
- EricE 4y agoabusing hardware features to run a ring level lower than the OS is a huge security problem! Not sure why that seems to be overlooked so frequently in comments?