Live data from Hacker News

Twitter Client for UEFI

github.com

71–80 of 108 posts

Re: Twitter Client for UEFI

#71
post #67
post #39

Earlier quoted context omitted.

SMM is also part of the firmware, it is set up by UEFI.

UEFI provides an interface to register code that runs in SMM, true. SMM being a requirement is a side effect of x86 history and platform design, not UEFI (which doesn't actually require SMM).

I don't think SMM requires UEFI, either, actually... I believe there have been BIOSes that initialized SMM also.

Re: Twitter Client for UEFI

#72
post #27

Earlier quoted context omitted.

what's the difference between having the code running in ring0 in a ROM vs the code running in ring0 from UEFI?

There's a huge difference. The network card does not need unrestricted access to the entire system.

You do know how DMA works right?

Re: Twitter Client for UEFI

#73
post #41
post #2

This made me wonder if somebody got Doom to run under UEFI, and sure enough: https://github.com/Cacodemon345/uefidoom/

UEFI is like the ugly son of MS-DOS and Windows. Anything that can run under MS-DOS with a DOS extender can run under UEFI. A friend of mine ported QEMU in order to run x86 boot ROMs on ARM systems.

That's... so absurd but so genius.

Re: Twitter Client for UEFI

#74
post #10

Didn't know what UEFI was, so here it is: " UEFI and BIOS are low-level software that starts when you boot your PC before booting your operating system, but UEFI is a more modern solution, supporting larger hard drives, faster boot times, more security features, and—conveniently—graphics and mouse cursors. The UEFI/BIOS loads when your computer starts up, and the BIOS is responsible for waking up your computer’s hard…

Thanks for this. I had a generally good idea about this, but despite seeing the word for many years, never actually knew what POST stood for before this comment. I'm not even sure I knew that it was an acronym...

If you're interested in learning further, I wrote up everything in the "regular" (pre-UEFI) boot process here and have been told it's a very good crash course on how your PC boots up: https://neosmart.net/wiki/mbr-boot-process/

Re: Twitter Client for UEFI

#76

Anyone have a favorite guide/blog post/whatever for getting started with UEFI applications?

Not a tutorial but good info and keywords https://www.intel.com/content/dam/develop/external/us/en/doc...

Also this might be helpful: https://pete.akeo.ie/2015/01/easily-create-uefi-applications...

and if you choose edk2: https://www.tianocore.org/

Re: Twitter Client for UEFI

#77
post #67

Earlier quoted context omitted.

UEFI provides an interface to register code that runs in SMM, true. SMM being a requirement is a side effect of x86 history and platform design, not UEFI (which doesn't actually require SMM).

I don't think SMM requires UEFI, either, actually... I believe there have been BIOSes that initialized SMM also.

Indeed. SMM exists because it was unfeasible to require the OS to provide necessary power management features at a time when running DOS and unmodified Win2.x and Win3.x were crucial features.

Thus 386SL was born, with SMM mode so that the firmware could hijack DOS without being stopped by accidental modification of interrupt table.

A bunch of stuff was later loaded into SMM for various reasons, both more and less benign. Turion X2 CPUs used SMM resident handler to synchronise cpus when going into deeper sleep levels (iirc C3 required the SMM handler, C1 and C2 were doable without, but C1E required it as well)

Re: Twitter Client for UEFI

#78
post #10

Didn't know what UEFI was, so here it is: " UEFI and BIOS are low-level software that starts when you boot your PC before booting your operating system, but UEFI is a more modern solution, supporting larger hard drives, faster boot times, more security features, and—conveniently—graphics and mouse cursors. The UEFI/BIOS loads when your computer starts up, and the BIOS is responsible for waking up your computer’s hard…

This should be common knowledge among everyone using a computer. It just makes sense to know how your device operates, and it's not hard to learn.

Having been the go to guy for fixing anything remotely computer related, I got sick of it and I just wish everyone could fix their own stuff :D

Re: Twitter Client for UEFI

#79
post #36
post #18

Earlier quoted context omitted.

As demonstrated by MoonBounce: https://securelist.com/moonbounce-the-dark-side-of-uefi-firm...

> Due to its emplacement on SPI flash which is located on the motherboard instead of the hard disk, the implant is capable of persisting in the system across disk formatting or replacement Lovely, so you’d have to reflash the firmware to fix it.

I wonder if it could use the "no downgrade" flag (used on the vast majority of laptops) to block you from reflashing it. That would be hilarious.

Re: Twitter Client for UEFI

#80
post #60

/s Gather around children. Let me tell you a story from long long time ago. Two one eyed giants, Intel and Microsoft got together and decided that they should be in control of your machine, not the other half giants, like AMI, Award,Phoenix, DTK, and even a full giant but nobody cared about her, IBM. So they convinced everyone there was no space on the BIOS any more, and they had to shift much of the code outside ont…

> and finally your very safe and secure OS running. That's the one running on the Intel Management Engine, right? Or at least Intel would like to believe that's the case. Jokes aside, I may be missing something. The BIOS came way before UEFI did. What am I missing here?

UEFI did not replace the BIOS. You must have an onboard storage (usually a EEPROM)that loads all the UEFI. To load the UEFI, it still needs to know about devices and such, so that onboard thing albeit we no longer allowed to call BIOS, is... the BIOS. It is the 0 stage loader, or pre-loader, or pre-UEFI boot loader; just do not call it BIOS because it hurt feelings.

So what is being sold is:

old way is BIOS --> MBR --> Boot loader --> Kernel --> OS

new way is UEFI --> Boot loader --> Kernel --> OS

Reality is for new way:

Non-BIOS BIOS --> UEFI --> Boot loader --> Kernel --> OS

Something has to start reach and load the UEFI written on a 'boot media' (and we cannot forget about backward compatibility and fallback). Call it whatever you want, but it provides basic input, and output system to reach the media which stores the UEFI code.

Put it in an other way, UEFI is (supposed to be) nothing more than just a set of easily updatable libraries of drivers and tooling to update the drivers; all in the background for your convenience. The old fashioned BIOS was not expanded to be storing all the various new fangled stuff we attach to machines, and the drivers update 'so fast' you would be flashing them almost every month.

Post reply on HN