In Stock: Marketplace

Buy from our Authorized Marketplace Sellers

6 new and used from $29.82

Understanding the Linux Kernel

Understanding the Linux Kernel

Cesati, Marco (Author) Bovet, Daniel Plerre (Author)

ISBN-10: 0596005652
ISBN-13: 9780596005658

List Price: $49.95
You Save: $20.13
Available from our Authorized Marketplace Sellers
In our Marketplace:
6 new and used from $29.82
null
BDS Summary
This text allows the reader to understand when Linux performs best and how it meets the challenge of different environments that assign varying importance to the system's responsiveness in process scheduling, file access and memory management.Short Description
This new edition covers Version 2.6 of the Linux kernel, which has seen significant changes to nearly every kernel subsystem, particularly in the areas of memory management and block devices. Understanding the Linux Kernel provides a guided tour of the code that forms the core of all Linux operating systems. Beyond the functioning of the code, the book explains the theoretical underpinnings for why Linux, and many other operating systems, do things the way they doLong Description
In order to thoroughly understand what makes Linux tick and why it works so well on a wide variety of systems, you need to delve deep into the heart of the kernel. The kernel handles all interactions between the CPU and the external world, and determines which programs will share processor time, in what order. It manages limited memory so well that hundreds of processes can share the system efficiently, and expertly organizes data transfers so that the CPU isn't kept waiting any longer than absolutely necessary for the relatively slow disks. The third edition of "Understanding the Linux Kernel takes you on a guided tour of the most significant data structures, algorithms, and programming tricks used in the kernel. Probing beyond superficial features, the authors offer valuable insights to people who want to know how things really work inside their machine. Important Intel-specific features are discussed. Relevant segments of code are dissected line by line. But the book covers more than just the functioning of the code; it explains the theoretical underpinnings for why Linux does things the way it does. This edition of the book covers Version 2.6, which has seen significant changes to nearly every kernel subsystem, particularly in the areas of memory management and block devices. The book focuses on the following topics: Memory management, including file buffering, process swapping, and Direct memory Access (DMA) The Virtual Filesystem layer and the Second and Third Extended Filesystems Process creation and scheduling Signals, interrupts, and the essential interfaces to device drivers Timing Synchronization within the kernel InterprocessCommunication (IPC) Program execution "Understanding the Linux Kernel will acquaint you with all the inner workings of Linux, but it's more than just an academic exercise. You'll learn what conditions bring out Linux's best performance, and you'll see how it meets the challenge of providing good system response during process scheduling, file access, and memory management in a wide variety of environments. This book will help you make the most of your Linux system.
Prefacep. xi
Introductionp. 1
Linux Versus Other Unix-Like Kernelsp. 2
Hardware Dependencyp. 6
Linux Versionsp. 7
Basic Operating System Conceptsp. 8
An Overview of the Unix Filesystemp. 12
An Overview of Unix Kernelsp. 19
Memory Addressingp. 35
Memory Addressesp. 35
Segmentation in Hardwarep. 36
Segmentation in Linuxp. 41
Paging in Hardwarep. 45
Paging in Linuxp. 57
Processesp. 79
Processes, Lightweight Processes, and Threadsp. 79
Process Descriptorp. 81
Process Switchp. 102
Creating Processesp. 114
Destroying Processesp. 126
Interrupts and Exceptionsp. 131
The Role of Interrupt Signalsp. 132
Interrupts and Exceptionsp. 133
Nested Execution of Exception and Interrupt Handlersp. 143
Initializing the Interrupt Descriptor Tablep. 145
Exception Handlingp. 148
Interrupt Handlingp. 151
Softirqs and Taskletsp. 171
Work Queuesp. 180
Returning from Interrupts and Exceptionsp. 183
Kernel Synchronizationp. 189
How the Kernel Services Requestsp. 189
Synchronization Primitivesp. 194
Synchronizing Accesses to Kernel Data Structuresp. 217
Examples of Race Condition Preventionp. 222
Timing Measurementsp. 227
Clock and Timer Circuitsp. 228
The Linux Timekeeping Architecturep. 232
Updating the Time and Datep. 240
Updating System Statisticsp. 241
Software Timers and Delay Functionsp. 244
System Calls Related to Timing Measurementsp. 252
Process Schedulingp. 258
Scheduling Policyp. 258
The Scheduling Algorithmp. 262
Data Structures Used by the Schedulerp. 266
Functions Used by the Schedulerp. 270
Runqueue Balancing in Multiprocessor Systemsp. 284
System Calls Related to Schedulingp. 290
Memory Managementp. 294
Page Frame Managementp. 294
Memory Area Managementp. 323
Noncontiguous Memory Area Managementp. 342
Process Address Spacep. 351
The Process's Address Spacep. 352
The Memory Descriptorp. 353
Memory Regionsp. 357
Page Fault Exception Handlerp. 376
Creating and Deleting a Process Address Spacep. 392
Managing the Heapp. 395
System Callsp. 398
POSIX APIs and System Callsp. 398
System Call Handler and Service Routinesp. 399
Entering and Exiting a System Callp. 401
Parameter Passingp. 409
Kernel Wrapper Routinesp. 418
Signalsp. 420
The Role of Signalsp. 420
Generating a Signalp. 433
Delivering a Signalp. 439
System Calls Related to Signal Handlingp. 450
The Virtual Filesystemp. 456
The Role of the Virtual Filesystem (VFS)p. 456
VFS Data Structuresp. 462
Filesystem Typesp. 481
Filesystem Handlingp. 483
Pathname Lookupp. 495
Implementations of VFS System Callsp. 505
File Lockingp. 510
I/O Architecture and Device Driversp. 519
I/O Architecturep. 519
The Device Driver Modelp. 526
Device Filesp. 536
Device Driversp. 540
Character Device Driversp. 552
Block Device Driversp. 560
Block Devices Handlingp. 560
The Generic Block Layerp. 566
The I/O Schedulerp. 572
Block Device Driversp. 585
Opening a Block Device Filep. 595
The Page Cachep. 599
The Page Cachep. 600
Storing Blocks in the Page Cachep. 611
Writing Dirty Pages to Diskp. 622
The sync(), fsync(), and fdatasync() System Callsp. 629
Accessing Filesp. 631
Reading and Writing a Filep. 632
Memory Mappingp. 657
Direct I/O Transfersp. 668
Asynchronous I/Op. 671
Page Frame Reclaimingp. 676
The Page Frame Reclaiming Algorithmp. 676
Reverse Mappingp. 680
Implementing the PFRAp. 689
Swappingp. 712
The Ext2 and Ext3 Filesystemsp. 738
General Characteristics of Ext2p. 738
Ext2 Disk Data Structuresp. 741
Ext2 Memory Data Structuresp. 750
Creating the Ext2 Filesystemp. 753
Ext2 Methodsp. 755
Managing Ext2 Disk Spacep. 757
The Ext3 Filesystemp. 766
Process Communicationp. 775
Pipesp. 776
FIFOsp. 787
System V IPCp. 789
POSIX Message Queuesp. 806
Program Executionp. 808
Executable Filesp. 809
Executable Formatsp. 824
Execution Domainsp. 827
The exec Functionsp. 828
System Startupp. 835
Modulesp. 842
Bibliographyp. 852
Source Code Indexp. 857
Indexp. 905
Table of Contents provided by Ingram. All Rights Reserved.
null
Edition: 3rd 2005 (Revised)
Publisher: O'Reilly Media, Incorporated
Binding: Perfect 
Pages: 923
Size: 7.00" wide x 9.25" long x 1.75" tall
Weight: 2.99 lbs.
Language: English

100% Money Back Guarantee: Wrong item? No problem! Our hassle-free returns policy has you covered. We'll also process your order within 24 hours. Learn more about our shipping policy.


About TextbooksRus.com

TextbooksRus.com is dedicated to providing customers with the lowest prices on textbooks, trade books and professional books. In addition to low prices, TextbooksRus.com offers a buyback system that is unparalleled by competitors.
© 2002-2010, TextbooksRus.com