logo资料库

The Design and Implementation of the FreeBSD Operating System (2nd Edition).pdf

第1页 / 共1152页
第2页 / 共1152页
第3页 / 共1152页
第4页 / 共1152页
第5页 / 共1152页
第6页 / 共1152页
第7页 / 共1152页
第8页 / 共1152页
资料共1152页,剩余部分请下载后查看
About This eBook ePUB is an open, industry-standard format for eBooks. However, support of ePUB and its many features varies across reading devices and applications. Use your device or app settings to customize the presentation to your liking. Settings that you can customize often include font, font size, single or double column, landscape or portrait mode, and figures that you can click or tap to enlarge. For additional information about the settings and features on your reading device or app, visit the device manufacturer’s Web site. Many titles include programming code or configuration examples. To optimize the presentation of these elements, view the eBook in single-column, landscape mode and adjust the font size to the smallest setting. In addition to presenting code and configurations in the reflowable text format, we have included images of the code that mimic the presentation found in the print book; therefore, where the reflowable format may compromise the presentation of the code listing, you will see a “Click here to view code image” link. Click the link to view the print-fidelity code image. To return to the previous page viewed, click the Back button on your device or app. 2
The Design and Implementation of the FreeBSD® Operating System Second Edition Marshall Kirk McKusick George V. Neville-Neil Robert N.M. Watson Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City UNIX is a registered trademark of X/Open in the United States and other countries. FreeBSD and the FreeBSD logo used on the cover of this book are registered and unregistered trademarks of the FreeBSD Foundation and are used by Pearson Education with the permission of the FreeBSD Foundation. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and Pearson was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The authors and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales department at corpsales@pearsoned.com or (800) 382-3419. For government sales inquiries, please contact governmentsales@pearsoned.com. 3
For questions about sales outside the United States, please contact international@pearsoned.com Visit us on the Web: informit.com/aw Library of Congress Cataloging-in-Publication Data McKusick, Marshall Kirk. The design and implementation of the FreeBSD operating system / Marshall Kirk McKusick, George V. Neville-Neil, Robert N. M. Watson. pages cm Includes bibliographical references and index. ISBN-13: 978-0-321-96897-5 (hardcover : alk. paper) ISBN-10: 0-321-96897-2 (hardcover : alk. paper) 1. FreeBSD. 2. Free computer software. 3. Operating systems (Computers) I. Neville-Neil, George V. II. Watson, Robert N. M. III. Title. QA76.774.F74M35 2014 005.4’32—dc23 2014020072 Copyright © 2015 by Pearson Education, Inc. All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. To obtain permission to use material from this work, please submit a written request to Pearson Education, Inc., Permissions Department, One Lake Street, Upper Saddle River, New Jersey 07458, or you may fax your request to (201) 236-3290. ISBN-13: 978-0-321-96897-5 ISBN-10: 0-321-96897-2 Text printed on recycled and acid-free paper at Courier in Westford, Massachusetts. First Printing, September 2014 4
Dedication This book is dedicated to the BSD community. Without the contributions of that community’s members, there would be nothing about which to write. 5
Table of Contents Preface ............................................................................................................................................ 12 About the Authors ......................................................................................................................... 21 Part I: Overview ..................................................................................................... 23 Chapter 1. History and Goals ...................................................................................................... 23 1.1 History of the UNIX System............................................................................................ 23 1.2 BSD and Other Systems .................................................................................................. 28 1.3 The Transition of BSD to Open Source .......................................................................... 30 1.4 The FreeBSD Development Model ................................................................................. 35 Chapter 2. Design Overview of FreeBSD.................................................................................... 44 2.1 FreeBSD Facilities and the Kernel ................................................................................. 44 2.2 Kernel Organization ........................................................................................................ 46 2.3 Kernel Services ................................................................................................................ 49 2.4 Process Management ...................................................................................................... 50 2.5 Security ............................................................................................................................ 53 2.6 Memory Management..................................................................................................... 60 2.7 I/O System Overview ...................................................................................................... 64 2.8 Devices ............................................................................................................................. 69 2.9 The Fast Filesystem ........................................................................................................ 70 2.10 The Zettabyte Filesystem ...............................................................................................75 2.11 The Network Filesystem ................................................................................................ 76 2.12 Interprocess Communication ........................................................................................ 77 2.13 Network-Layer Protocols .............................................................................................. 78 2.14 Transport-Layer Protocols ............................................................................................ 79 2.15 System Startup and Shutdown ..................................................................................... 79 Chapter 3. Kernel Services .......................................................................................................... 84 3.1 Kernel Organization ........................................................................................................ 84 3.2 System Calls ..................................................................................................................... 89 6
3.3 Traps and Interrupts ........................................................................................................ 91 3.4 Clock Interrupts .............................................................................................................. 93 3.5 Memory-Management Services ..................................................................................... 98 3.6 Timing Services ............................................................................................................. 102 3.7 Resource Services .......................................................................................................... 104 3.8 Kernel Tracing Facilities ................................................................................................ 107 Part II: Processes ...................................................................................................117 Chapter 4. Process Management ............................................................................................... 117 4.1 Introduction to Process Management .......................................................................... 117 4.2 Process State .................................................................................................................. 120 4.3 Context Switching ......................................................................................................... 128 4.4 Thread Scheduling .........................................................................................................144 4.5 Process Creation ............................................................................................................. 157 4.6 Process Termination ...................................................................................................... 159 4.7 Signals ............................................................................................................................. 161 4.8 Process Groups and Sessions ........................................................................................169 4.9 Process Debugging ......................................................................................................... 175 Chapter 5. Security ..................................................................................................................... 183 5.1 Operating-System Security ........................................................................................... 184 5.2 Security Model ................................................................................................................185 5.3 Process Credentials ....................................................................................................... 188 5.4 Users and Groups ........................................................................................................... 191 5.5 Privilege Model ...............................................................................................................194 5.6 Interprocess Access Control .......................................................................................... 197 5.7 Discretionary Access Control ........................................................................................199 5.8 Capsicum Capability Model........................................................................................... 213 5.9 Jails ................................................................................................................................ 220 5.10 Mandatory Access-Control Framework ..................................................................... 225 5.11 Security Event Auditing ............................................................................................... 242 5.12 Cryptographic Services................................................................................................ 248 5.13 GELI Full-Disk Encryption ......................................................................................... 256 7
Chapter 6. Memory Management ............................................................................................. 266 6.1 Terminology ................................................................................................................... 266 6.2 Overview of the FreeBSD Virtual-Memory System .................................................... 272 6.3 Kernel Memory Management ...................................................................................... 276 6.4 Per-Process Resources .................................................................................................. 293 6.5 Shared Memory ............................................................................................................. 299 6.6 Creation of a New Process ............................................................................................ 309 6.7 Execution of a File .......................................................................................................... 313 6.8 Process Manipulation of Its Address Space ................................................................. 314 6.9 Termination of a Process ............................................................................................... 317 6.10 The Pager Interface ..................................................................................................... 318 6.11 Paging ........................................................................................................................... 328 6.12 Page Replacement ....................................................................................................... 344 6.13 Portability..................................................................................................................... 355 Part III: I/O System ............................................................................................... 372 Chapter 7. I/O System Overview .............................................................................................. 372 7.1 Descriptor Management and Services ......................................................................... 373 7.2 Local Interprocess Communication ............................................................................. 393 7.3 The Virtual-Filesystem Interface ................................................................................. 399 7.4 Filesystem-Independent Services ................................................................................ 406 7.5 Stackable Filesystems ....................................................................................................414 Chapter 8. Devices ..................................................................................................................... 425 8.1 Device Overview ............................................................................................................ 425 8.2 I/O Mapping from User to Device ............................................................................... 432 8.3 Character Devices ......................................................................................................... 435 8.4 Disk Devices .................................................................................................................. 440 8.5 Network Devices............................................................................................................ 444 8.6 Terminal Handling ....................................................................................................... 449 8.7 The GEOM Layer ........................................................................................................... 460 8.8 The CAM Layer ............................................................................................................. 468 8.9 Device Configuration .................................................................................................... 472 8
分享到:
收藏