ebook img

How Linux Works, 2nd Edition PDF

2015·5.28 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 How Linux Works, 2nd Edition

E 2 D N I LLIINNUUXX TID HH OO WW O FFOORR TTHHEE N SSUUPPEERRUUSSEERR 2ND LL II NN UU XX EDITION HH OO WW OO RR KK SS Unlike some operating systems, Linux doesn’t try to hide the • How development tools work and relate to shared important bits from you—it gives you full control of your libraries WW computer. But to truly master Linux, you need to understand • How to write effective shell scripts its internals, like how the system boots, how networking W H A T E V E R Y S U P E R U S E R S H O U L D K N O W works, and what the kernel actually does. You’ll also explore the kernel and examine key system tasks inside user space, including system calls, input LL In this completely revised second edition of the perennial and output, and filesystems. With its combination of best seller How Linux Works, author Brian Ward makes background, theory, real-world examples, and patient II B R I A N W A R D the concepts behind Linux internals accessible to anyone explanations, How Linux Works will teach you what NN curious about the inner workings of the operating system. you need to know to solve pesky problems and take Inside, you’ll find the kind of knowledge that normally control of your operating system. UU comes from years of experience doing things the hard way. You’ll learn: ABOUT THE AUTHOR XX • How Linux boots, from boot loaders to init implementa- Brian Ward has been working with Linux since 1993. tions (systemd, Upstart, and System V) He is the author of the Linux Kernel-HOWTO, The Book WW of VMware (No Starch Press), and The Linux Problem • How the kernel manages devices, device drivers, and Solver (No Starch Press). processes OO • How networking, interfaces, firewalls, and servers work RR KK SS THE FINEST IN GEEK ENTERTAINMENT™ www.nostarch.com W A R $39.95 ($41.95 CDN) D OPERATINSHELVE IN G SYSTEM: S/LIN UX Praise for the first edition of how linux works “A great resource. In roughly 350 pages, the book covers all the basics.” —eWeeK “I would definitely recommend this book to those who are interested in Linux, but have not had the experience to know the inner workings of the OS.” —O’ReillyNet “One of the best basic books on learning Linux, written with the power user in mind. Five stars.” —OpeNsOuRce-BOOK-RevieWs.cOm “Succeeds admirably because of the way in which it’s organized and the level of technical detail it offers.” —KicKstaRt NeWs “This is a very different introduction to Linux. It’s unflashy, concentrates on the command line, and digs around in the internals rather than on GUI front- ends that take the place of more familiar MS Windows tools.” —techBOOKRepORt.cOm “This book does a good job of explaining the nuts and bolts of how Linux operates.” —hOstiNg ResOlve H o w L i n u x w or k s 2 n d E d i t i o n what Every superuser should know by Brian Ward San Francisco How linux works, 2nd Edition. Copyright © 2015 by Brian Ward. All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. Printed in USA First printing 18 17 16 15 14 1 2 3 4 5 6 7 8 9 ISBN-10: 1-59327-567-6 ISBN-13: 978-1-59327-567-9 Publisher: William Pollock Production Editor: Laurel Chun Cover and Interior Design: Octopod Studios Cover Illustration: Tina Salameh Developmental Editor: William Pollock Technical Reviewer: Jordi Gutiérrez Hermoso Copyeditor: Gillian McGarvey Compositor: Susan Glinert Stevens Proofreader: Paula L. Fleming For information on distribution, translations, or bulk sales, please contact No Starch Press, Inc. directly: No Starch Press, Inc. 245 8th Street, San Francisco, CA 94103 phone: 415.863.9900; [email protected] www.nostarch.com The Library of Congress has cataloged the first edition as follows: Ward, Brian. How Linux works : what every superuser should know / Brian Ward. p. cm. Includes index. ISBN 1-59327-035-6 1. Linux. 2. Operating systems (Computers). I. Title. QA76.76.O63 W3654 2004 005.4'32--dc22 2004002692 No Starch Press and the No Starch Press logo are registered trademarks of No Starch Press, Inc. Other product and company names mentioned herein may be the trademarks of their respective owners. Rather than use a trademark symbol with every occurrence of a trademarked name, we are using the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The information in this book is distributed on an “As Is” basis, without warranty. While every precaution has been taken in the preparation of this work, neither the author nor No Starch Press, Inc. shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in it. BriEf ContE nts Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii Chapter 1: The Big Picture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 2: Basic Commands and Directory Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Chapter 3: Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Chapter 4: Disks and Filesystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65 Chapter 5: How the Linux Kernel Boots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93 Chapter 6: How User Space Starts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 Chapter 7: System Configuration: Logging, System Time, Batch Jobs, and Users . . . . . . . . 149 Chapter 8: A Closer Look at Processes and Resource Utilization . . . . . . . . . . . . . . . . . . . 171 Chapter 9: Understanding Your Network and Its Configuration . . . . . . . . . . . . . . . . . . . .189 Chapter 10: Network Applications and Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Chapter 11: Introduction to Shell Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249 Chapter 12: Moving Files Across the Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271 Chapter 13: User Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Chapter 14: A Brief Survey of the Linux Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Chapter 15: Development Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309 Chapter 16: Introduction to Compiling Software from C Source Code . . . . . . . . . . . . . . . 329 Chapter 17: Building on the Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 ContEnts in dE taiL PrEfacE xix Who Should Read This Book? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx How to Read This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx A Hands-On Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx How This Book Is Organized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi What’s New in the Second Edition? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi A Note on Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii acknowlEdgmEnts xxiii 1 tHE Big PicturE 1 1 .1 Levels and Layers of Abstraction in a Linux System . . . . . . . . . . . . . . . . . . . . . . . . 2 1 .2 Hardware: Understanding Main Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1 .3 The Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1 .3 .1 Process Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1 .3 .2 Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1 .3 .3 Device Drivers and Management . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1 .3 .4 System Calls and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1 .4 User Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1 .5 Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1 .6 Looking Forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2 Basic commands and dirEctory HiErarcHy 11 2 .1 The Bourne Shell: /bin/sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2 .2 Using the Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2 .2 .1 The Shell Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2 .2 .2 cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2 .2 .3 Standard Input and Standard Output . . . . . . . . . . . . . . . . . . . . . . . 13 2 .3 Basic Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2 .3 .1 ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2 .3 .2 cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 .3 .3 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 .3 .4 touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 .3 .5 rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2 .3 .6 echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2 .4 Navigating Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2 .4 .1 cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2 .4 .2 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2 .4 .3 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2 .4 .4 Shell Globbing (Wildcards) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2 .5 Intermediate Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2 .5 .1 grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2 .5 .2 less . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2 .5 .3 pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2 .5 .4 diff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2 .5 .5 file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2 .5 .6 find and locate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2 .5 .7 head and tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2 .5 .8 sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2 .6 Changing Your Password and Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2 .7 Dot Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2 .8 Environment and Shell Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2 .9 The Command Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2 .10 Special Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2 .11 Command-Line Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2 .12 Text Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2 .13 Getting Online Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2 .14 Shell Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2 .14 .1 Standard Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2 .14 .2 Standard Input Redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2 .15 Understanding Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2 .15 .1 Anatomy of a UNIX Error Message . . . . . . . . . . . . . . . . . . . . . . . 28 2 .15 .2 Common Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2 .16 Listing and Manipulating Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2 .16 .1 Command Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2 .16 .2 Killing Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2 .16 .3 Job Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2 .16 .4 Background Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2 .17 File Modes and Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2 .17 .1 Modifying Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2 .17 .2 Symbolic Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2 .17 .3 Creating Symbolic Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2 .18 Archiving and Compressing Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2 .18 .1 gzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2 .18 .2 tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2 .18 .3 Compressed Archives ( .tar .gz) . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2 .18 .4 zcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2 .18 .5 Other Compression Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2 .19 Linux Directory Hierarchy Essentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2 .19 .1 Other Root Subdirectories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2 .19 .2 The /usr Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2 .19 .3 Kernel Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2 .20 Running Commands as the Superuser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2 .20 .1 sudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2 .20 .2 /etc/sudoers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2 .21 Looking Forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3 dEvicEs 45 3 .1 Device Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3 .2 The sysfs Device Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 viii Contents in Detail 3 .3 dd and Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3 .4 Device Name Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3 .4 .1 Hard Disks: /dev/sd* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3 .4 .2 CD and DVD Drives: /dev/sr* . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3 .4 .3 PATA Hard Disks: /dev/hd* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3 .4 .4 Terminals: /dev/tty*, /dev/pts/*, and /dev/tty . . . . . . . . . . . . . . . 51 3 .4 .5 Serial Ports: /dev/ttyS* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3 .4 .6 Parallel Ports: /dev/lp0 and /dev/lp1 . . . . . . . . . . . . . . . . . . . . . . 52 3 .4 .7 Audio Devices: /dev/snd/*, /dev/dsp, /dev/audio, and More . . . . 53 3 .4 .8 Creating Device Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3 .5 udev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3 .5 .1 devtmpfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3 .5 .2 udevd Operation and Configuration . . . . . . . . . . . . . . . . . . . . . . . 55 3 .5 .3 udevadm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3 .5 .4 Monitoring Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3 .6 In-Depth: SCSI and the Linux Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3 .6 .1 USB Storage and SCSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3 .6 .2 SCSI and ATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3 .6 .3 Generic SCSI Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3 .6 .4 Multiple Access Methods for a Single Device . . . . . . . . . . . . . . . . . 63 4 disks and filEsystEms 65 4 .1 Partitioning Disk Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4 .1 .1 Viewing a Partition Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4 .1 .2 Changing Partition Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4 .1 .3 Disk and Partition Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4 .1 .4 Solid-State Disks (SSDs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4 .2 Filesystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4 .2 .1 Filesystem Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4 .2 .2 Creating a Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4 .2 .3 Mounting a Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4 .2 .4 Filesystem UUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4 .2 .5 Disk Buffering, Caching, and Filesystems . . . . . . . . . . . . . . . . . . . . 77 4 .2 .6 Filesystem Mount Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4 .2 .7 Remounting a Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4 .2 .8 The /etc/fstab Filesystem Table . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4 .2 .9 Alternatives to /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4 .2 .10 Filesystem Capacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4 .2 .11 Checking and Repairing Filesystems . . . . . . . . . . . . . . . . . . . . . . . 82 4 .2 .12 Special-Purpose Filesystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4 .3 Swap Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4 .3 .1 Using a Disk Partition as Swap Space . . . . . . . . . . . . . . . . . . . . . . 85 4 .3 .2 Using a File as Swap Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4 .3 .3 How Much Swap Do You Need? . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4 .4 Looking Forward: Disks and User Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4 .5 Inside a Traditional Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4 .5 .1 Viewing Inode Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4 .5 .2 Working with Filesystems in User Space . . . . . . . . . . . . . . . . . . . . . 90 4 .5 .3 The Evolution of Filesystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Contents in Detail ix

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.