Harnessing the UEFI Shell
Home > Science, Technology & Agriculture > Electronics and communications engineering > Electronics engineering > Electronic devices and materials > Harnessing the UEFI Shell: Moving the Platform Beyond DOS, Second Edition
Harnessing the UEFI Shell: Moving the Platform Beyond DOS, Second Edition

Harnessing the UEFI Shell: Moving the Platform Beyond DOS, Second Edition


     0     
5
4
3
2
1



International Edition


X
About the Book

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:
Preface  vii Chapter 1 Introduction  1 What is UEFI?  1 What Do We Mean by Shell?  4 A Short History of the UEFI Shell  5 Brief Overview of the UEFI Shell  5 UEFI Shell APIs  6 Command Line Interface Features  6 Why a Shell at all?  7 Chapter 2 Under the UEFI Shell  9 Shell and UEFI  9 Evolution and Revolution  13 Chapter 3 What Is the UEFI Shell?  15 What Is Contained in the UEFI Shell?  16 What Kind of Shell Do You Have?  16 What!? No Shell? No Problem!  17 Programmatic Shell Environment  19 Using UEFI Shell Commands  20 Interactive Shell Environment  22 Scripting  22 Program Launch  24 File-System Abstractions  29 Shell Script Resolves into a UEFI Firmware Action  31 Chapter 4 Why We Need an Execution Environment before the OS  33 Evolution of a Machine  33 The Platform Initialization Flow  34 UEFI Transitions  36 States of a Platform  38 Readiness of UEFI  41 Migration Using the UEFI Shell  44 Going Forward  45 Chapter 5 Manufacturing  47 Throughput  47 Manufacturing Test Tools  49 Hardware Access with Manufacturing Tools  50 Converting Manufacturing Tools  53 Conclusion  54 Chapter 6 Bare Metal Provisionig  55 Provisioning with the UEFI Shell  55 UEFI Networking Stack  56 Securing the Network  58 Speeding Up the Network  62 Example of Putting It Together  62 Summary  68 Chapter 7 Configuration of Provisioned Material  69 Initialization Timeline  69 Configuration Infrastructure Overview  71 Using the Configuration Infrastructure  72 Driver Model Interactions  73 Provisioning the Platform  75 Configuring through the UEFI Shell  76 Basic Configuration  76 Advanced Configuration Abilities  79 Chapter 8 The Use of UEFI for Diagnostics  85 Types of Diagnostics  85 SMBIOS Table Organization  87 SMBIOS Structure Table Entry Point  88 Table Organization Graph  88 Structure Standards  89 Structure Evolution and Usage Guidelines  90 Text Strings  90 Required Structures and Data  91 Features  91 User Interface Design  92 Design Guide  92 Usage  93 Examples  93 Architecture Design  94 Data Structure  95 SMBIOS_STRUCTURE_TABLE  95 SMBIOS_HEADER  97 SMBIOS_STRUCTURE_POINTER  98 STRUCTURE_STATISTICS  99 Source Code for the Utility  100 Summary  105 Chapter 9 UEFI Shell Scripting  107 Hello, World!  108 Echo  108 Echo All Parameters  109 Echo All Parameters (Improved Version)  110 Concatenate Text Files  112 List Only Selected “ls” Information  113 Install Script  115 How to Make a Shell Script Appear as a Boot Option  119 Chapter 10 UEFI Shell Programming  121 A Simple UEFI Shell Application: HelloWorld  121 The Source File: HelloWorld.c  121 The Component Information (.inf) File  123 A Simple Standard Application: HelloWorld2  124 The Source File: HelloWorld2.c  124 The Component Information (.inf) File: HelloWorld2.inf  125 Read Keyboard Input in UEFI Shell Scripts: GetKey  126 The Source File: GetKey.c  127 The Component Information (.inf) File: GetKey.inf  137 The Build Description (.dsc) File  139 Calculate Math Expressions: Math  139 The Source File: Math.c  140 The Component Information (.inf) File: Math.inf  154 Convert ASCII to Unicode and Back: UniCodeDecode  154 The Source File: UniCodeDecode.c  155 The Component Information (.inf) File  163 Chapter 11 Managing UEFI Drivers Using the Shell  165 Testing Specific Protocols  166 Loading and Unloading UEFI Drivers  167 Load  168 LoadPciRom  168 Unload  169 Connecting UEFI Drivers  169 Connect  169 Disconnect  170 Reconnect  170 Driver and Device Information  171 Drivers  171 Devices  172 DevTree  172 Dh –d  173 OpenInfo  173 Testing the Driver Configuration and Driver Diagnostics Protocols  174 DrvCfg  174 DrvDiag  174 Debugging Code Statements  175 POST Codes  177 Post Card Debug  178 Text-Mode VGA Frame Buffer  179 Other Options  179 Appendix A Security Considerations  181 UEFI Shell Binary Integrity  181 Overview  181 Signed Executable Overview  182 Digital Signature  183 Signed Executable Processing  185 Signed Executable Generation Application (SignTool)  185 UEFI Load Image  186 SignTool  186 Build Environment  186 Example usage  187 Appendix B Command Reference  189 Command Profiles and Support Levels  189 Command List  189 Standardizing Command Output  192 Command Details  193 alias  193 attrib  194 bcfg  194 cd  196 cls  197 comp  197 connect  198 cp/copy  199 date  199 dblk  200 del  200 devices  200 devtree  201 dh  201 dir/ls  202 disconnect  202 dmem  203 dmpstore  204 drivers  204 drvcfg  205 drvdiag  206 echo  206 edit  207 eficompress  207 efidecompress  207 exit  207 for  208 getmtc  209 goto  209 help  209 hexedit  210 if  210 ifconfig  214 ifconfig6  214 load  215 loadpcirom  216 ls  216 map  217 md  218 mem  218 memmap  218 mkdir  219 mm  219 mode  220 mv  220 openinfo  220 parse  221 pause  221 pci  221 ping  222 ping6  222 reconnect  223 reset  223 rm  224 sermode  224 set  225 setsize  226 setvar  226 shift  227 smbiosview  227 stall  228 time  228 time  229 touch  229 type  230 unload  230 ver  230 vol  230 Appendix C Programming Reference  233 Script-based Programming  233 Parameter Passing  233 Redirection and Piping  234 Return Codes  235 Environment Variables  236 Non-Script-based Programming  237 Shell Protocol  238 Shell Parameters Protocol  240 Appendix D UEFI Shell Library  241 Functions  241 File I/O Functions  241 Miscellaneous Functions  242 Command Line Parsing  243 Text I/O  244 String Functions  244 ShellCloseFile()  245 ShellCloseFileMetaArg()  246 ShellCommandLineCheckDuplicate()  246 ShellCommandLineFreeVarList()  247 ShellCommandLineGetCount()  247 ShellCommandLineGetFlag()  248 ShellCommandLineGetValue()  248 ShellCommandLineGetRawValue()  249 ShellCommandLineParseEx()  250 ShellCopySearchAndReplace()  251 ShellConvertStringToUint64()  252 ShellCreateDirectory()  253 ShellDeleteFile()  254 ShellDeleteFileByName()  254 ShellExecute()  255 ShellFileExists()  257 ShellFileHandleReturnLine()  257 ShellFileHandleReadLine()  258 ShellFindFilePath()  259 ShellFindFilePathEx()  260 ShellFindFirstFile()  260 ShellFindNextFile()  261 ShellFlushFile()  262 SHELL_FREE_NON_NULL()  263 ShellGetCurrentDir()  263 ShellGetEnvironmentVariable()  264 ShellGetExecutionBreakFlag()  265 ShellGetFileInfo()  265 ShellGetFilePosition()  266 ShellGetFileSize()  266 ShellHexStrToUintn()  267 ShellInitialize()  268 ShellIsDecimalDigitCharacter()  268 ShellIsDirectory()  269 ShellIsFile()  269 ShellIsFileInPath()  270 ShellIsHexaDecimalDigitCharacter()  270 ShellIsHexOrDecimalNumber()  271 ShellOpenFileByDevicePath()  271 ShellOpenFileByName()  273 ShellOpenFileMetaArg()  274 ShellPrintEx()  275 ShellPrintHelp()  276 ShellPrintHiiEx()  277 ShellPromptForResponse()  278 ShellPromptForResponseHii()  279 ShellReadFile()  281 ShellSetFileInfo()  282 ShellSetFilePosition()  283 ShellSetEnvironmentVariable()  284 ShellSetPageBreakMode()  285 ShellStrToUintn()  285 ShellWriteFile()  286 StrnCatGrow()  287 Data Structures  288 Format Strings  288 Shell Parameters  289 Index  291

About the Author :
Michael Rothman Engineer, WA, USA, Vincent Zimmer Engineer, WA, USA, Tim Lewis Insyde CTO, CA, USA


Best Sellers


Product Details
  • ISBN-13: 9781501514807
  • Publisher: De Gruyter
  • Publisher Imprint: De|G Press
  • Height: 240 mm
  • No of Pages: 326
  • Returnable: Y
  • Sub Title: Moving the Platform Beyond DOS, Second Edition
  • Width: 170 mm
  • ISBN-10: 1501514806
  • Publisher Date: 06 Mar 2017
  • Binding: Paperback
  • Language: English
  • Returnable: Y
  • Returnable: Y
  • Weight: 629 gr


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
Harnessing the UEFI Shell: Moving the Platform Beyond DOS, Second Edition
De Gruyter -
Harnessing the UEFI Shell: Moving the Platform Beyond DOS, Second Edition
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Harnessing the UEFI Shell: Moving the Platform Beyond DOS, Second Edition

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!