Зарегистрироваться
Восстановить пароль
FAQ по входу

Bovet D.P., Cesati M. Understanding the Linux Kernel

  • Файл формата pdf
  • размером 3,13 МБ
  • Добавлен пользователем , дата добавления неизвестна
  • Описание отредактировано
Bovet D.P., Cesati M. Understanding the Linux Kernel
O’Reilly, First Edition, October 2000, ISBN: 0-596-00002-2, 702 pages.
Understanding the Linux Kernel is intended to be read by those who are happy to check points off against the source code. The first thing you learn is how Linux, released from commercial constraints, is able to take advantage of the best ideas from other systems, implemented in wonderfully flexible ways. A good example is the Virtual File System (VFS), which has made it easy to add support for file systems from almost every other OS. It's fascinating to find out how such features are implemented. Then, there are loadable modules, I/O, scheduling, multitasking, multiprocessing, interrupts, spin locks, semaphores, and all of the other goodies that are involved in making a kernel work.
The authors are concerned primarily with the Linux 2.2 kernel. They discuss how Linus Torvald's decisions on kernel issues translate into architecture; for example, how the Linux memory management uses a slab allocator on top of a buddy system for greater efficiency. Similarly, at the cost of a little complexity, the decision to use three-level memory paging, when two work fine on 32-bit systems, makes it possible to port to 64-bit processors without changes. The tradeoffs between complexity and efficiency are discussed for most kernel features, and each chapter finishes with related new features in kernel 2.4.
The Audience for This Book.
Organization of the Material.
Overview of the Book.
Background Information.
Conventions in This Book.
How to Contact Us.
ntroduction.
Linux Versus Other Unix-Like Kernels.
Hardware Dependency.
Linux Versions.
Basic Operating System Concepts.
An Overview of the Unix Filesystem.
An Overview of Unix Kernels.
Memory Addressing.
Memory Addresses.
Segmentation in Hardware.
Segmentation in Linux.
Paging in Hardware.
Paging in Linux.
Anticipating Linux.
Processes.
Process Descriptor.
Process Switching.
Creating Processes.
Destroying Processes.
Anticipating Linux.
nterrupts and Exceptions.
The Role of Interrupt Signals.
nterrupts and Exceptions.
Nested Execution of Exception and Interrupt Handlers.
nitializing the Interrupt Descriptor Table.
Exception Handling.
nterrupt Handling.
Returning from Interrupts and Exceptions.
Anticipating Linux.
Timing Measurements.
Hardware Clocks.
The Timer Interrupt Handler.
PIT's Interrupt Service Routine.
The TIMER_BH Bottom Half Functions.
System Calls Related to Timing Measurements.
Anticipating Linux.
Memory Management.
Page Frame Management.
Memory Area Management.
Noncontiguous Memory Area Management.
Anticipating Linux.
Process Address Space.
The Process's Address Space.
The Memory Descriptor.
Memory Regions.
Page Fault Exception Handler.
Creating and Deleting a Process Address Space.
Managing the Heap.
Anticipating Linux.
System Calls.
POSIX APIs and System Calls.
System Call Handler and Service Routines.
Wrapper Routines.
Anticipating Linux.
Signals.
The Role of Signals.
Sending a Signal.
Receiving a Signal.
Real-Time Signals.
System Calls Related to Signal Handling.
Anticipating Linux.
Process Scheduling.
Scheduling Policy.
The Scheduling Algorithm.
System Calls Related to Scheduling.
Anticipating Linux.
Kernel Synchronization.
Kernel Control Paths.
Synchronization Techniques.
The SMP Architecture.
The Linux/SMP Kernel.
Anticipating Linux.
The Virtual Filesystem.
The Role of the VFS.
FS Data Structures.
Filesystem Mounting.
Pathname Lookup.
mplementations of VFS System Calls.
File Locking.
Anticipating Linux.
Managing I/O Devices.
/O Architecture.
Associating Files with I/O Devices.
Device Drivers.
Character Device Handling.
Block Device Handling.
Page I/O Operations.
Anticipating Linux.
Disk Caches.
The Buffer Cache.
The Page Cache.
Anticipating Linux.
Accessing Regular Files.
Reading and Writing a Regular File.
Memory Mapping.
Anticipating Linux.
Swapping: Methods for Freeing Memory.
What Is Swapping?
Swap Area.
The Swap Cache.
Transferring Swap Pages.
Page Swap-Out.
Page Swap-In.
Freeing Page Frames.
Anticipating Linux.
The Ext2 Filesystem.
General Characteristics.
Disk Data Structures.
Memory Data Structures.
Creating the Filesystem.
Ext2 Methods.
Managing Disk Space.
Reading and Writing an Ext2 Regular File.
Anticipating Linux.
Process Communication.
Pipes.
FIFOs.
System V IPC.
Anticipating Linux.
Program Execution.
Executable Files.
Executable Formats.
Execution Domains.
The exec-like Functions.
Anticipating Linux.
A. System Startup.
A.1 Prehistoric Age: The BIOS.
A.2 Ancient Age: The Boot Loader.
A.3 Middle Ages: The setup( ) Function.
A.4 Renaissance: The startup_32( ) Functions.
A.5 Modern Age: The start_kernel( ) Function.
B. Modules.
B.1 To Be (a Module) or Not to Be?
B.2 Module Implementation.
B.3 Linking and Unlinking Modules.
B.4 Linking Modules on Demand.
C. Source Code Structure.
Colophon.
  • Чтобы скачать этот файл зарегистрируйтесь и/или войдите на сайт используя форму сверху.
  • Регистрация