Programming for EFI

by Roderick W. Smith,

Originally written: 5/3/2013

I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

Donate $1.00 Donate $2.50 Donate $5.00 Donate $10.00 Donate another value
Donate with PayPal
Donate with PayPal
Donate with PayPal
Donate with PayPal
Donate with PayPal


Tech-savvy individuals know the Extensible Firmware Interface (EFI) and its newer variant, the Unified EFI (UEFI) as a replacement for the older Basic Input/Output System (BIOS) on PCs and other computers. What you may not be aware of is that EFI is a complex software environment, comparable in size and features to a simple OS such as DOS. As such, EFI can host a variety of programs—but those programs can't spring into existence fully-formed, like Athena from Zeus' head. Rather, they must be written by individuals.

This set of Web pages exists for the benefit of those individuals who want to write EFI programs. I assume you're already familiar with C programming. I also use a Linux system as my reference development platform, although in theory the programs and procedures described here can be used under OS X or Windows, too. These pages just scratch the surface of EFI programming; they will get you started, but you'll need to learn considerably more to write a significant program. If you'd like me to continue this series, please make a donation (and feel free to write me suggesting topics)!

Topics covered are:

References and Additional Information

copyright © 2013 by Roderick W. Smith

If you have problems with or comments about this Web page, please e-mail me at Thanks.

Return to my main Web page.