Book description
Focusing on the use of the UEFI Shell and its recently released formal specification, this book unlocks a wide range of usage models which can help people best utilize the shell solutions. This text also expands on the obvious intended utilization of the shell and explains how it can be used in various areas such as security, networking, configuration, and other anticipated uses such as manufacturing, diagnostics, etc. Among other topics, Harnessing the UEFI Shell demonstrates how to write Shell scripts, how to write a Shell application, how to use provisioning options and more. Since the Shell is also a UEFI component, the book will make clear how the two things interoperate and how both Shell developers as well as UEFI developers can dip into the other's field to further expand the power of their solutions.
Harnessing the UEFI Shell is authored by the three chairs of the UEFI working sub-teams, Michael Rothman (Intel, chair of the UEFI Configuration and UEFI Shell sub-teams), Vincent Zimmer (Intel, chair of the UEFI networking sub-team and security sub-team), and Tim Lewis (Insyde Software, chair of the UEFI security sub-team). This book is perfect for any OEMs that ship UEFI-based solutions (which is all of the MNCs such as IBM, Dell, HP, Apple, etc.), software developers who are focused on delivering solutions targeted to manufacturing, diagnostics, hobbyists, or stand-alone kiosk environments.
Table of contents
- Cover
- Title Page
- Copyright
- Preface
- Contents
- Chapter 1 Introduction
- Chapter 2 Under the UEFI Shell
- Chapter 3 What Is the UEFI Shell?
- Chapter 4 Why We Need an Execution Environment before the OS
- Chapter 5 Manufacturing
- Chapter 6 Bare Metal Provisionig
- Chapter 7 Configuration of Provisioned Material
-
Chapter 8 The Use of UEFI for Diagnostics
- Types of Diagnostics
- SMBIOS Table Organization
- SMBIOS Structure Table Entry Point
- Table Organization Graph
- Structure Standards
- Structure Evolution and Usage Guidelines
- Text Strings
- Required Structures and Data
- Features
- User Interface Design
- Design Guide
- Usage
- Examples
- Architecture Design
- Data Structure
- SMBIOS_STRUCTURE_TABLE
- SMBIOS_HEADER
- SMBIOS_STRUCTURE_POINTER
- STRUCTURE_STATISTICS
- Source Code for the Utility
- Summary
- Chapter 9 UEFI Shell Scripting
-
Chapter 10 UEFI Shell Programming
- A Simple UEFI Shell Application: HelloWorld
- The Source File: HelloWorld.c
- The Component Information (.inf) File
- A Simple Standard Application: HelloWorld2
- The Source File: HelloWorld2.c
- The Component Information (.inf) File: HelloWorld2.inf
- Read Keyboard Input in UEFI Shell Scripts: GetKey
- The Source File: GetKey.c
- The Component Information (.inf) File: GetKey.inf
- The Build Description (.dsc) File
- Calculate Math Expressions: Math
- The Source File: Math.c
- The Component Information (.inf) File: Math.inf
- Convert ASCII to Unicode and Back: UniCodeDecode
- The Source File: UniCodeDecode.c
- The Component Information (.inf) File
-
Chapter 11 Managing UEFI Drivers Using the Shell
- Testing Specific Protocols
- Loading and Unloading UEFI Drivers
- Load
- LoadPciRom
- Unload
- Connecting UEFI Drivers
- Connect
- Disconnect
- Reconnect
- Driver and Device Information
- Drivers
- Devices
- DevTree
- Dh –d
- OpenInfo
- Testing the Driver Configuration and Driver Diagnostics Protocols
- DrvCfg
- DrvDiag
- Debugging Code Statements
- POST Codes
- Post Card Debug
- Text-Mode VGA Frame Buffer
- Other Options
- Appendix A Security Considerations
-
Appendix B Command Reference
- Command Profiles and Support Levels
- Command List
- Standardizing Command Output
- Command Details
- alias
- attrib
- bcfg
- cd
- cls
- comp
- connect
- cp/copy
- date
- dblk
- del
- devices
- devtree
- dh
- dir/ls
- disconnect
- dmem
- dmpstore
- drivers
- drvcfg
- drvdiag
- echo
- edit
- eficompress
- efidecompress
- exit
- for
- getmtc
- goto
- help
- hexedit
- if
- ifconfig
- ifconfig6
- load
- loadpcirom
- ls
- map
- md
- mem
- memmap
- mkdir
- mm
- mode
- mv
- openinfo
- parse
- pause
- pci
- ping
- ping6
- reconnect
- reset
- rm
- sermode
- set
- setsize
- setvar
- shift
- smbiosview
- stall
- time
- time
- touch
- type
- unload
- ver
- vol
- Appendix C Programming Reference
-
Appendix D UEFI Shell Library
- Functions
- File I/O Functions
- Miscellaneous Functions
- Command Line Parsing
- Text I/O
- String Functions
- ShellCloseFile()
- ShellCloseFileMetaArg()
- ShellCommandLineCheckDuplicate()
- ShellCommandLineFreeVarList()
- ShellCommandLineGetCount()
- ShellCommandLineGetFlag()
- ShellCommandLineGetValue()
- ShellCommandLineGetRawValue()
- ShellCommandLineParseEx()
- ShellCopySearchAndReplace()
- ShellConvertStringToUint64()
- ShellCreateDirectory()
- ShellDeleteFile()
- ShellDeleteFileByName()
- ShellExecute()
- ShellFileExists()
- ShellFileHandleReturnLine()
- ShellFileHandleReadLine()
- ShellFindFilePath()
- ShellFindFilePathEx()
- ShellFindFirstFile()
- ShellFindNextFile()
- ShellFlushFile()
- SHELL_FREE_NON_NULL()
- ShellGetCurrentDir()
- ShellGetEnvironmentVariable()
- ShellGetExecutionBreakFlag()
- ShellGetFileInfo()
- ShellGetFilePosition()
- ShellGetFileSize()
- ShellHexStrToUintn()
- ShellInitialize()
- ShellIsDecimalDigitCharacter()
- ShellIsDirectory()
- ShellIsFile()
- ShellIsFileInPath()
- ShellIsHexaDecimalDigitCharacter()
- ShellIsHexOrDecimalNumber()
- ShellOpenFileByDevicePath()
- ShellOpenFileByName()
- ShellOpenFileMetaArg()
- ShellPrintEx()
- ShellPrintHelp()
- ShellPrintHiiEx()
- ShellPromptForResponse()
- ShellPromptForResponseHii()
- ShellReadFile()
- ShellSetFileInfo()
- ShellSetFilePosition()
- ShellSetEnvironmentVariable()
- ShellSetPageBreakMode()
- ShellStrToUintn()
- ShellWriteFile()
- StrnCatGrow()
- Data Structures
- Format Strings
- Shell Parameters
- Index
Product information
- Title: Harnessing the UEFI Shell
- Author(s):
- Release date: March 2017
- Publisher(s): De Gruyter
- ISBN: 9781501505812
You might also like
video
Linux Troubleshooting: Red Hat EX342
12+ Hours of Video Instruction 13 hours of video instruction providing hands-on labs to teach and …
book
Mastering Linux Security and Hardening - Second Edition
A comprehensive guide to securing your Linux system against cyberattacks and intruders Key Features Deliver a …
video
Linux Under the Hood
Over 9Hours of Video Instruction Description Learn all about Linux internals and how Linux really works. …
book
Networking and Kubernetes
Kubernetes has become an essential part of the daily work for most system, network, and cluster …