Michael Rothman is a Senior Staff Engineer in the Software and Solutions Group at Intel and has more than 17 years of operating system and embedded software development experience. He started his career with kernel and file system development in OS/2 and DOS and eventually migrating to embedded operating systems work and firmware development. Mike has worked on many firmware products, including those with conventional code bases as well as various EFI and now UEFI deployments.
The Unified Extensible Firmware Interface (UEFI) Shell is designed for programmers who are writing automation process software for computer-based equipment. Traditionally this software was based on various DOS family operating systems that were popular during the 1980s. While the processes may vary from hardware validation to software testing to manufacturing, the basics of automation are the same. The UEFI Shell provides a modern base to the traditional commands common to any operating system. It does so in many cases in the words that the programmers speak, even if they at times speak different languages.
The UEFI Shell requires no platform-level customization. It requires no drivers beyond those included in the shipping system. This means as the UEFI Shell is used it becomes less and less likely to be the culprit of bugs introduced as a part of the system. It becomes an island of consistency in an ocean of variability
In Harnessing the UEFI Shell the authors describe the features and capabilities of the shell for the UEFI explaining that the UEFI is not an operating system per se, but is instead intended to be a set of defined interfaces between the system firmware (BIOS), Option ROMs, and operating systems. The richness of the interfaces required for this main purpose secondarily provides the interfaces that can support a rich command line environment, the UEFI Shell.
Included are detailed descriptions of how to use the UEFI Shell with many real life examples such as specialized memory tests for chip and board validation and manufacturing validation tests. Written specifically for the practicing software engineer, this book enables the reader to quickly become proficient in using and exploiting the UEFI Shell.
The UEFI Shell is, in the end, useful because it is small and not intrusive, just as its cousins are useful because they are large and all-encompassing.