This book is an authoritative and full-length description of the IA-64 version of the Linux kernal. IA-64 is a high-performance microprocessor architecture co-designed by HP and Intel. The titanium chip is the first implementation of this new architecture. Intel already has outlined a roadmap of several chips to follow, such as the more powerful McKinley and Deerfield implementations. To emphasize the longevity of this book, as well as the Linux kernal it describes, it focuses on the IA-64 architecture rather than specific implementations, such as Itanium or McKinley.
Table of Contents
List of Figures.
List of Tables.
Microprocessors: From CISC to EPIC. Overview of the Linux Kernel. Summary.2. IA-64 Architecture.
User-Level Instruction Set Architecture. Runtime and Software Conventions. System Instruction Set Architecture. The Register Stack Engine (RSE). Summary.3. Processes, Tasks, and Threads.
Introduction to Linux Tasks. The Thread Interface. Thread Synchronization. Summary.4. Virtual Memory.
Introduction to the Virtual Memory System. Address Space of a Linux Process. Page Tables. Translation Lookaside Buffer (TLB). Page Fault Handling. Memory Coherency. Switching Address Spaces. Discussion and Summary.5. Kernel Entry and Exit.
Interruptions. System Calls. Signals. Kernel Access to User Memory. Summary.6. Stack Unwinding.
IA-64 ELF Unwind Sections. The Kernel Unwind Interface. Embedding Unwind Information in Assembly Code. Implementation Aspects. Summary.7. DEVICE I/O.
Introduction. Programmed I/O. Direct Memory Access (DMA). Device Interrupts. Summary.
8. Symmetric Multiprocessing. @@AHEADS = Introduction to Multiprocessing on Linux. Linux Locking Principles. Multiprocessor Support Interface. CPU-Specific Data Area. Tracking Wall-Clock Time with High Resolution. Summary.9. Understanding System Performance.
IA-64 Performance Monitoring Unit Overview. Extending the PMU: The Itanium Example. Kernel Support for Performance Monitoring. Summary.10. Booting.
IA-64 Firmware Overview. The Bootloader. Kernel Initialization. Summary.11. IA-32 Compatibility.
Architectural Support for IA-32. Linux Support for IA-32 Applications. Summary.Appendix A. IA-64 CPU Models. Appendix B. Kernel Register Usage. Appendix C. IA-64 Instructions.
Integer Instructions. Memory Instructions. Semaphore Instructions. Branch Instructions. Control Instructions. Multimedia Instructions. Floating-Point Instructions. Privileged Instructions.Appendix D: Itanium PMU Events. Glossary. Bibliography. Index.
The authoritative guide to the IA-64 Linux kernel implementation.
- Authoritative and complete description of the Linux kernel for IA-64/IPF (Itanium Processor Family)
- Provides an in-depth discussion of the ideas and concepts behind the Linux hardware abstraction interfaces, the IA-64 design space, and their actual realization
- From the lead architects and developers of the IA-64 Linux kernel
The IA-64 architecture and Itanium processors are designed to offer unprecedented levels of performance, expandability, and reliability-and with the delivery of the IA-64 Linux kernel, that power is now accessible to every Linux developer. In this authoritative book, the IA-64 Linux kernel project's leaders take you "under the hood" with Linux for IA-64, demonstrating exactly how it makes the most of the IA-64's breakthrough capabilities.
They begin by introducing the IA-64 architecture, instruction set, and key features. Next, they cover every major Linux kernel subsystem in unprecedented detail, presenting the interfaces used by Linux to abstract hardware differences and showing how these interfaces have been realized in the IA-64 environment. Coverage includes:
- Processes, tasks, and threads, including thread interfaces and synchronization
- The virtual memory subsystem: address spaces, page tables, page fault handling, and coherency
- Device support: programmed I/O, DMA, and interrupts
- Symmetric multiprocessing: Linux locking principles and their implementation on IA-64
- Kernel entry and exit: interruptions, system calls, signals, and user memory access
- Bootstrapping: firmware, bootloader, and kernel initialization
- System performance monitoring: usage, kernel support, and Itanium extensions
- IA-32 compatibility: architectural support and Linux support for running legacy 32-bit applications
This book not only focuses on the ideas and concepts you need to work with this radically innovative architecture: it illuminates the key issues associated with Linux kernel operation on any platform, existing or new.
DAVID MOSBERGER is a Senior Research Scientist at HP Labs. In early 1998, he founded the project to bring Linux to the IA-64 platform, later developing the first IA-64 version of the GNU C compiler and GNU toolchain. He has been serving as lead architect, developer, and gatekeeper of the IA-64 Linux kernel source code.
STÉPHANE ERANIAN is a Senior Research Scientist at HP Labs. He has been working on the port of Linux to the IA-64 platform since late 1998. He is main architect of the kernel performance monitoring subsystem, and architect and maintainer of the Linux/IA-64 elilo boot loader.