Next:
List of Figures
Up:
tlk-html.html
Previous:
Acknowledgements
Contents
List of Figures
Hardware Basics
The CPU
Memory
Buses
Controllers and Peripherals
Address Spaces
Software Basics
Computer Languages
Assembly Languages
The C Programming Language and Compiler
Linkers
What is an Operating System?
Memory management
Processes
Device drivers
The Filesystems
Kernel Data Structures
Memory Management
An Abstract Model of Virtual Memory
Demand Paging
Swapping
Shared Virtual Memory
Access Control
Making the Model More Efficient
Physical and Virtual Addressing Modes
Summary
Linux Virtual Memory Algorithms
Three Level Page Tables
Page Allocation and Deallocation
Page Allocation
Page Deallocation
Swapping and Discarding Pages
The Kernel Swap Daemon (
kswapd
)
Swapping Pages Out
Reducing the Size of the Page and Buffer Caches
Swapping Out Shared Pages
Swapping Pages In (Demand Paging)
Processes
Linux Processes
Identifiers
Scheduling
Scheduling in Multiprocessor Systems
Files
Virtual Memory
Creating a Process
Interprocess Communication Mechanisms
Signals
Pipes
Sockets
System V IPC Mechanisms
Message Queues
Semaphores
Shared Memory
Times and Timers
Executing Programs
ELF
ELF Shared Libraries
Script Files
PCI
PCI Address Spaces
PCI Configuration Headers
PCI I/O and PCI Memory Addresses
PCI-ISA Bridges
PCI-PCI Bridges
PCI-PCI Bridges: PCI I/O and PCI Memory Windows
PCI-PCI Bridges: PCI Configuration Cycles and PCI Bus Numbering
Linux PCI Initialization
The Linux Kernel PCI Data Structures
The PCI Device Driver
Configuring PCI-PCI Bridges - Assigning PCI Bus Numbers
PCI BIOS Functions
PCI Fixup
Finding Out How Much PCI I/O and PCI Memory Space a Device Needs
Allocating PCI I/O and PCI Memory to PCI-PCI Bridges and Devices
Interrupts and Interrupt Handling
Programmable Interrupt Controllers
Interrupt Handling
Initializing the Interrupt Handling Data Structures
Device Drivers
Polling and Interrupts
Direct Memory Access (DMA)
Memory
Block Device Drivers
IDE Device Drivers
SCSI Device Drivers
Character Device Drivers
Network Device Drivers
The File system
The Second Extended File system (EXT2)
The EXT2 Inode
The EXT2 Superblock
The EXT2 Group Descriptor
EXT2 Directories
Finding a File in an EXT2 File System
Changing the Size of a File in an EXT2 File System
The Virtual File System (VFS)
The VFS Superblock
The VFS Inode
Registering the File Systems
Mounting a File System
Finding a File in the Virtual File System
Creating a File in the Virtual File System
Unmounting a File System
The VFS Inode Cache
The Directory Cache
The Buffer Cache
The
bdflush
Kernel Daemon
The
update
Process
The /proc File System
Device Files
Networks
Kernel Mechanisms
Bottom Half Handling
Task Queues
Timers
Wait Queues
Semaphores
Modules
Loading a Module
Unloading a Module
The Linux Kernel Sources
The Alpha AXP Processor
Useful Web and FTP Sites
The GNU General Public License
Preamble
Terms and Conditions for Copying, Distribution, and Modification
Appendix: How to Apply These Terms to Your New Programs
Glossary
References
About this document ...
David A. Rusling
david.rusling@reo.mts.dec.com