4 ms·
> I had no idea UEFI booted directly into long mode I was really surprised to learn that it requires PE executables and Windows' custom x64 calling convention.
by byuu 10y ago
> I had no idea UEFI booted directly into long mode
I was really surprised to learn that it requires PE executables and Windows' custom x64 calling convention. I know it's just a small technical detail for booting ... but it's kind of scary that Microsoft had so much sway in the design of how our future PCs will boot =(
- yuhong 10y agoMS even had to add ARM64 to the PE spec in order to support ARM SBSA. At least I think the FAT LFN patents has expired by now.
- DiabloD3 10y agoMicrosoft has granted a patent license for FAT patents for anyone implementing stuff required for UEFI.
- slipstream- 10y agoThere is lots of evidence that a port of NT to ARM64 exists.
- cocotino 10y agoDo you even need LFN for UEFI? I don't think it should be a requirement for a FS that is not exposed to the user...
- gizmo686 10y agoAnother small technical detail. Windows has a mechanism to sign executables. The certificate in this mechanism is defined with the following structure [0]: typedef struct _WIN_CERTIFICATE { DWORD dwLength; WORD wRevision; WORD wCertificateType; BYTE bCertificate[ANYSIZE_ARRAY]; } WIN_CERTIFICATE, *PWIN_CERTIFICATE; UEFI has a shockingly simmilar structure [1, page 1812]: typedef struct _WIN_CERTIFICATE { UINT32 dwLength; UINT16 wRevision; UINT16 wCertificateType; //UINT8 bCertificate[ANYSIZE_ARRAY]; } WIN_CERTIFICATE; [0] https://msdn.microsoft.com/en-us/library/windows/desktop/dn582059(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/dn5... [1] http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf http://www.uefi.org/sites/default/files/resources/UEFI%20Spe...
- yuhong 10y agoI think this is for secure boot or something like that.
- sigcode 10y agoDo you think there are any BIOS developers who can do all their work without Microsoft Windows?
- ptman 10y agoMaybe Soekris comBIOS
- swetland 10y agoOh that is not the really annoying part. By spec UEFI only requires support for booting from FAT (the particular flavor of FAT they implement) volumes, so, surprise, I've yet to seen any UEFI BIOS that supports booting from anything but a FAT filesystem.
- cmurf 10y agoApple's EFI firmware boots from HFS+.
- dr_zoidberg 10y agoFrom the relevant Wikipedia article[0]: > PE is a modified version of the Unix COFF (Common Object File Format). PE/COFF is an alternative term in Windows development. However, there's little information on its license (it says it's a standard currently developed by Microsoft, but that's about it). And COFF is pretty much the same, but older and developed by AT&T[1]. Still, compared to other Microsoft "products of old"[2], there's a surprising ammount of documentation and analysis into the PE format. [0] https://en.wikipedia.org/wiki/Portable_Executable https://en.wikipedia.org/wiki/Portable_Executable [1] https://en.wikipedia.org/wiki/COFF https://en.wikipedia.org/wiki/COFF [2] I don't compare it to the newer open source stuff because it'd be unfair. [3] https://msdn.microsoft.com/en-us/library/ms809762.aspx https://msdn.microsoft.com/en-us/library/ms809762.aspx -- I was going to link a few other articles (some from the References section of Wikipedia) but most seem to be broken now. Still, there are some interesting paperes from digital forensics people that analyze in-depth the PE format, mostly for malware scenarios.
- digi_owl 10y agoWinTel is concept for a reason...