1. 首页
  2. 编程语言
  3. C
  4. linux 内核驱动LKD3

linux 内核驱动LKD3

上传者: 2020-07-30 09:27:13上传 PDF文件 2.9MB 热度 176次
linux lkd3linux 内核驱动LKD3Developer's LibraryESSENTIAL REFERENCES FOR PROGRAMMING PROFESSIONALSDevelopers Library books are designed to provide practicing programmers withunique, high-quality references and tutorials on the programming languages andtechnologies they use in their daily workAll books in the Developer's Library are written by expert technology practitionerswho are especially skilled at organizing and presenting information in a way that'suseful for other programmersKey titles include some of the best, most widely acclaimed books within theirtopic areas.PHP MySQL Web DevelopmentPython Essential referenceLuke Welling Laura ThDavid beazleyISBN978-0-672-32916-6ISBN-13:978-0-672-32978-6MySQLProgramming in Objective-C 2.0Paul duboisStephen g KochanISBN-13:978-0-672-32938-8ISBN-13:978-0-321-56615-7Linux Kernel developmentPostgresQLRobert loveKorry douglasISBN-13:978-0-672-32946-3ISBN-13:978-0-672-33015-5Developer's Library books are available at most retail and online bookstores, as wellas by subscription from Safari Books Online at safari informit. comDeveloper'sLibraryinformit. com/devlibraryLinux KerneDevelopmentThird editionRobert lovewAddison-WesleyUpper Saddle river,NJ· Boston· Indianapolis· San franciscoNew york· Toronto· Montreal● London● Munich· Paris· MadridCape town· Sydney· Tokyo· Singapore· Mexico CityLinux Kernel DevelopmentAcquisitions EditorThird EditionMark taberCopyright o 2010 Pearson Education, IncDevelopmentEditorAll rights reserved. Printed in the United States of America. This publication is protected by Michael Thurstoncopyright, and permission must be obtained from the publisher prior to any prohibited repro-Technical Editorduction, storage in a retrieval system, or transmission in any form or by any means, elec-Robert p J. Daytronic, mechanical, photocopying, recording, or likewiseManaging EditorSBN13:9780672329463Sandra schroederSBN-10:0672329468Senior ProjectLibrary of Congress Cataloging-in-Publication DataEditorTonya SimpsonCopy EditorLinux kernel development/ Robert Love.- 3rd edApostrophe Editingp. cm.IndexerIncludes bibliographical references and indexBrad herrimanISBN 978-0-672-32946-3(pbk. alk paper) 1. Linux. 2. Operating systems(Computers) ProofreaderL. TitleDebbie williamsQA76.76063L6742010PublisherCoordinator005.432dc22Vanessa Evans10018961Book designerText printed in the United States on recycled paper at RR Donnelley, Crawfordsville, IndianaGary AdairFirst printing June 2010CompositorMark shirarMany of the designations used by manufacturers and sellers to distinguish their productsare claimed as trademarks. Where those designations appear in this book, and the publish-er was aware of a trademark claim, the designations have been printed with initial capitalletters or in all capitalsThe author and publisher have taken care in the preparation of this book, but make noexpressed or implied warranty of any kind and assume no responsibility for errors or omis-sions. No liability is assumed for incidental or consequential damages in connection with orarising out of the use of the information or programs contained hereinThe publisher offers excellent discounts on this book when ordered in quantity for bulk pur-chases or special sales, which may include electronic versions and/or custom covers andcontent particular to your business, training goals, marketing focus, and branding interests.For more information, please contactU.S. Corporate and Government Sales800382-3419corpsales@pearsontechgroup.comFor sales outside the United states please contactInternational salesinternational@pearson.comVisit us on the Web: informit. com/awFor doris and helenContents at a Glance1 Introduction to the linux Kernel 12 Getting Started with the Kernel 113 Process Management 234 Process Scheduling 415 System Calls 696 Kernel Data Structures 857 Interrupts and Interrupt Handlers 1138 Bottom Halves and deferring work 1339 An Introduction to Kernel Synchronization 16110 Kernel Synchronization Methods 17511 Timers and time management 20712 Memory Management 23113 The Virtual Filesystem 26114 The Block I/0 Layer 28915 The Process Address Space 30516 The Page Cache and Page Writeback 32317 Devices and modules 33718 Debugging 36319 Portability 37920 Patches, Hacking, and the Community 395Bibliography 407Index 411Table of contents1 Introduction to the linux Kernel 1History of Unix 1Along Came Linus: Introduction to Linux 3Overview of operating Systems and Kernels 4Linux Versus classic Unix Kernels 6Linux Kernel versions 8The Linux Kernel Development Community 10Before We Begin 102 Getting Started with the Kernel 11Obtaining the Kernel Source 11Using Git 11stalling the Kernel Source 12Using Patches 12The Kernel source tree 12Building the Kernel 13Configuring the Kernel 14ng Build Noise 15Spawning Multiple build Jobs 16stalling the New Kernel 16A Beast of a different Nature 16No libc or standard Headers 17GNU C 18Inline functions 18Inline Assembly 19Branch annotation 19No Memory Protection 20No(Easy) Use of Floating Point 20Small Fixed- Size Stack 20Synchronization and Concurrency 21Importance of Portability 21Conclusion 21Contents3 Process Management 23The process 23Process Descriptor and the Task structure 24Allocating the Process Descriptor 25Storing the Process Descriptor 26Process state 27Manipulating the current Process state 29Process context 29The process family tree 29Process Creation 31Copy-on-Write 31Forking 32fork( 33The Linux Implementation of Threads 33Creating Threads 34Kernel threads 35Process Termination 36Removing the Process Descriptor 37The dilemma of the parentless task 38Conclusion 404 Process Scheduling 41iItitasking 4Linux's process scheduler 42Policy 431/0.Bound Versus Processor-Bound Processes 43s Priority 4Timeslice 45he Scheduling Policy in Action 45The Linux Scheduling Algorithm 46Scheduler classes 46Process Scheduling in Unix Systems 47Fair Scheduling 48The Linux Scheduling Implementation 50Time Accounting 50The Scheduler Entity Structure 50The virtual Runtime 51ContentsProcess selection 52Picking the Next Task 53Adding processes to the tree 54Removing processes from the Tree 56The Scheduler Entry Point 57Sleeping and Waking Up 58Wait Queues 58gUpPreemption and context Switching 62User Preemption 62Kernel Preemption 63Real-Time Scheduling Policies 64Scheduler-Related System Calls 65Scheduling Policy and Priority-RelatedSystem Calls 66Processor Affinity System Calls 66Yielding Processor Time 66Conclusion 675 System Calls 69Communicating with the Kernel 69APIS, POSIX, and the c Library 70stem Call Numbers 7System Call Performance 72System Call Handler 73Denoting the Correct System Call 73Parameter Passing 74System Call Impler74Implementing System Calls 74ifying the Parameters 75System Call Context 78Final steps in binding a system Call 79Accessing the System Call from User-Space 81Why not to Implement a system Call 82Conclusion 83
用户评论
码姐姐匿名网友 2020-07-30 09:27:13

不错,可以看看。