ebook img

Embedded Operating Systems: A Practical Approach PDF

244 Pages·2018·5.9 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Embedded Operating Systems: A Practical Approach

Undergraduate Topics in Computer Science Alan Holt Chi-Yu Huang Embedded Operating Systems A Practical Approach Second Edition Undergraduate Topics in Computer Science Series editor Ian Mackie Advisory Board Samson Abramsky, University of Oxford, Oxford, UK Chris Hankin, Imperial College London, London, UK Mike Hinchey, University of Limerick, Limerick, Ireland Dexter C. Kozen, Cornell University, Ithaca, USA Andrew Pitts, University of Cambridge, Cambridge, UK HanneRiisNielson,TechnicalUniversityofDenmark,KongensLyngby,Denmark Steven S. Skiena, Stony Brook University, Stony Brook, USA Iain Stewart, University of Durham, Durham, UK UndergraduateTopics inComputerScience (UTiCS) delivers high-qualityinstruc- tionalcontentforundergraduatesstudyinginallareasofcomputingandinformation science. From core foundational and theoretical material to final-year topics and applications,UTiCSbookstakeafresh,concise,andmodernapproachandareideal for self-study or for a one- or two-semester course. The texts are all authored by establishedexpertsintheirfields,reviewedbyaninternationaladvisoryboard,and containnumerous examples and problems. Manyincludefullyworked solutions. More information about this series at http://www.springer.com/series/7592 Alan Holt Chi-Yu Huang (cid:129) Embedded Operating Systems A Practical Approach Second Edition 123 AlanHolt Chi-Yu Huang ZeettaNetworks GE Aviation Systems Bristol Cheltenham UK UK ISSN 1863-7310 ISSN 2197-1781 (electronic) Undergraduate Topics inComputer Science ISBN978-3-319-72976-3 ISBN978-3-319-72977-0 (eBook) https://doi.org/10.1007/978-3-319-72977-0 LibraryofCongressControlNumber:2017962063 1stedition:©Springer-VerlagLondon2014 2ndedition:©SpringerInternationalPublishingAG,partofSpringerNature2018 Thisworkissubjecttocopyright.AllrightsarereservedbythePublisher,whetherthewholeorpart of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission orinformationstorageandretrieval,electronicadaptation,computersoftware,orbysimilarordissimilar methodologynowknownorhereafterdeveloped. The use of general descriptive names, registered names, trademarks, service marks, etc. in this publicationdoesnotimply,evenintheabsenceofaspecificstatement,thatsuchnamesareexemptfrom therelevantprotectivelawsandregulationsandthereforefreeforgeneraluse. The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authorsortheeditorsgiveawarranty,expressorimplied,withrespecttothematerialcontainedhereinor for any errors or omissions that may have been made. The publisher remains neutral with regard to jurisdictionalclaimsinpublishedmapsandinstitutionalaffiliations. Printedonacid-freepaper ThisSpringerimprintispublishedbytheregisteredcompanySpringerInternational PublishingAGpartofSpringerNature Theregisteredcompanyaddressis:Gewerbestrasse11,6330Cham,Switzerland In memory of Marjorie Rose Holt and Siou-yìn Zheng Huang Preface to the Second Edition Sincethefirstedition,operatingsystemsandthesoftwarepackagesthatarebundled with them have progressed. Nowadays, 64-bit desktop/laptop computers are com- monplace. This was not the case when the first edition was published. There are some 64-bit architectures that are used for embedded platforms but 32-bit (or less) machines are still prevalent. Whereas in the first edition we would be building softwarefor32-bittargetson32-bithosts,wenowneedtocross-compileon64-bit hosts. In the real-world, this is what would be done but it does add a level of complexity to the practical exercises in this book. Furthermore, the work examples in this book have software dependencies (utilities and shared libraries). Not only that, particular versions of these depen- denciesarerequired.Inthefirstedition, we addressed thisissuebyrecommending thereaderusethesameoperatingsystemplatform thattheauthorsusedtodevelop theexercises.Thisisnotreallypractical,notleastfortheauthorsthemselvesgiven that dependency versions have moved on since the first edition. For these reasons, we have introduced some new technologies in this edition. First,we make useofvirtual machines. We usedvirtual machine technology, such as user mode Linux (UML), in the first edition as a means of testing operating systembuilds.Inthisedition,weuseVirtualBoxsothatwecanbuildsoftwareona (virtualized) 32-bit platform even though our host machine may be 64-bit. This obviates the need to cross-compile. We rely heavily on Linux container technology to build software, namely, Docker. Docker is a container system which enables us to replicate environments and ensure commonality between the authors’ and the reader’s respective devel- opmentplatforms.Aswellashelpingustobuildoperatingsystems,itisalsouseful fortesting. WededicateawholenewchaptertoDockerand itsuses asameans of introducing the technology. Bristol, UK Alan Holt Cheltenham, UK Chi-Yu Huang vii Preface to the First Edition Most people are aware of the mainstream operating systems such as Microsoft‘s Windows or Apple’s macOS. This is because these are the operating systems that they directly interact with on their personal computers. However, personal com- puters rarely operate in isolation nowadays. Manycomputingapplicationsrequireonlineaccess.AccesstotheInternetrelies on many computing systems, for example, Ethernet switches, packet routers, wireless access points, and DHCP and DNS servers. Unlike personal computers, network infrastructure equipments performdedicatedtasks andare often described as “embedded systems”. The term “embedded system” covers a range of computing systems. It derives fromcomputingsystemsthatareembeddedwithinsomelargerdevice,forexample, as part of a car’s engine management system. The term has broadened to cover stand-alone systems too. Nor is it limited to network infrastructure systems or consumergoodssuchassatellitenavigationdevices.Theterm“embeddedsystem” is applied to devices which are small and have limited resources (relative to a personalcomputer).Mobiledevicessuchassmartphonesandtabletsare,therefore, described as embedded devices, even though their function closely resembles a personal computer. Nevertheless, an embedded system needs an operating system specific to its needs, for example, (cid:129) Small form factor. (cid:129) Low processing power and small memory. (cid:129) Reduced power consumption for battery longevity. (cid:129) Support for real-time applications. There are many embedded operating systems available; however, in this book we confine our discussion to the GNU/Linux operating system. GNU/Linux is not exclusively an embedded operating system and is used on personal computers and servers just like Windows and macOS. However, due to its open-source nature it can be easily adapted to many environments. For this reason, GNU/Linux systems have gained considerable popularity in the embedded system market. ThatisnottosaythatGNU/Linuxisapanaceaforembeddedsystemsandthere are many excellent alternatives. Nevertheless, there are some good reasons for choosing GNU/Linux: ix x PrefacetotheFirstEdition (cid:129) GNU/Linux is open source and is freely available. (cid:129) Due to its open-source nature, GNU/Linux is highly customizable so we can build bespoke systems specific to our needs. (cid:129) It is widely used for embedded systems. (cid:129) GNU/Linux, like its Unix predecessor, was used extensively in education to teach operating systems. (cid:129) While the subject of the book is embedded operating systems, our choice of GNU/Linux means it could be used as a text for a more general course on operating systems. Operatingsystemsisadiversesubjectareaandtherearemanybooksonthesubject and of GNU/Linux alone. A variety of topics are covered including the kernel, administration, networking, wireless, high-performance computing, and systems programming(tonamebutafew).ThereareevenbooksonGNU/Linuxembedded systems. However, we felt there was a gap in the literature which described the com- ponents parts of an operating system and how they worked together. We address these issues in this book by adopting a practical approach. The procedure for building each component of the operating system, namely, the bootloader, kernel, filesystem,sharedlibraries,start-upscripts,configurationfiles,andsystemutilities, fromitssourcecode,isdescribedindetail.Bytheendofthisbook,thereaderwill be able to build a fully functional GNU/Linux embedded operating system. This book is not an introductory text on operating systems, rather it is aimed at undergraduate/graduate level students and industry professionals. Acknowledgements The authors would like to thank Dr. Adrian Davies and Justin Johnstone for their valuable contributions to this book. xi

Description:
This easy-to- follow textbook/reference guides the reader through the creation of a fully functional embedded operating system, from its source code, in order to develop a deeper understanding of each component and how they work together. The text describes in detail the procedure for building the b
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.