The third edition of the authoritative, practical introduction to the Linux kernel for programmers who want to better understand the Linux kernel and write and develop kernel code. Authored by a well-known member of the Linux kernel development team, with a reputation for a highly readable and focused writing style, this edition has been thoroughly updated and includes improved...
The third edition of the authoritative, practical introduction to the Linux kernel for programmers who want to better understand the Linux kernel and write and develop kernel code. Authored by a well-known member of the Linux kernel development team, with a reputation for a highly readable and focused writing style, this edition has been thoroughly updated and includes improved coverage of all the major subsystems and features of the latest version of the Linux 2.6.xx kernel.
Linux Kernel Development details the design and implementation of the Linux kernel, presenting the content in a manner that is beneficial to those writing and developing kernel code. While the book discusses topics that are theoretical, it does so with the goal of assisting programmers so they better understand the topics and become more efficient and productive in their coding.
The book discusses the major subsystems and features of the Linux kernel, including design and implementation, their purpose and goals, and their interfaces. Important computer science and operating system design details are also addressed. The book covers the Linux kernel from both angles -- theoretical and applied -- which should appeal to both types of readers.
The author, a core kernel developer, shares valuable knowledge and experience on the very latest Linux kernel.
Specific topics covered will include: all the important algorithms, relevant subsystems, process management, scheduling, time management and timers, system call interface, memory addressing, memory management, paging strategies, caching layers, VFS, kernel synchronization, and signals.
An authoritative, practical guide that helps programmers better understand the Linux kernel, and to write and develop kernel code.
* Authored by core Linux kernel developers.
* In-depth coverage of all the major subsystems and features of the new Linux 2.6 kernel.
* Targeted audience includes programmers interested in gaining relevant and timely information so they may further their kernel development skills.
--This text refers to an out of print or unavailable edition of this title.
作者简介
· · · · · ·
Robert Love is an open source programmer, speaker, and author who has been using and contributing to Linux for more than 15 years. He is currently senior software engineer at Google, where he was a member of the team that developed the Android mobile platform’s kernel. Prior to Google, he was Chief Architect, Linux Desktop, at Novell. Before Novell, he was a kernel engineer at ...
Robert Love is an open source programmer, speaker, and author who has been using and contributing to Linux for more than 15 years. He is currently senior software engineer at Google, where he was a member of the team that developed the Android mobile platform’s kernel. Prior to Google, he was Chief Architect, Linux Desktop, at Novell. Before Novell, he was a kernel engineer at MontaVista Software and Ximian.
Love’s kernel projects include the preemptive kernel, the process scheduler, the kernel events layer, inotify,VM enhancements, and several device drivers.
He has given numerous talks on and has written multiple articles about the Linux kernel and is a contributing editor for Linux Journal. His other books include Linux System Programming and Linux in a Nutshell.
目录
· · · · · ·
1 Introduction to the Linux Kernel
2 Getting Started with the Kernel
3 Process Management
4 Process Scheduling
5 System Calls
6 Kernel Data Structures
· · · · · ·
(更多)
1 Introduction to the Linux Kernel
2 Getting Started with the Kernel
3 Process Management
4 Process Scheduling
5 System Calls
6 Kernel Data Structures
7 Interrupts and Interrupt Handlers
8 Bottom Halves and Deferring Work
9 An Introduction to Kernel Synchronization
10 Kernel Synchronization Methods
11 Timers and Time Management
12 Memory Management
13 The Virtual Filesystem
14 The Block I/O Layer
15 The Process Address Space
16 The Page Cache and Page Writeback
17 Devices and Modules
18 Debugging
19 Portability
20 Patches, Hacking, and the Community
· · · · · · (收起)
prolong the 2.6. kernel series and postpone the introduction of a 2.7 development series. The rationale was that the 2.6 kernel was well received, stable, and sufficiently mature such that new destabilizing features were unneeded. (查看原文)
Robert Love是个传奇人物。 传奇的原因是,当他还是大四学生的时候,已经有了7年的linux经验,并设计了linux的抢占式内核——2.4到2.6版内核的最关键进步之一。现在找到这个传奇在中国流传的源头,是一篇2002年初题为《看看国外的本科生能做什么?》的对当时大四的Robert Love...
(展开)
In fact, in Linux, we can generalize that each processor is doing exactly one of three things at any given moment: 1. In user-space, executing user code in a process. 2. In kernel-space, in process context, executing on behalf of a specific process. 3. In kernel-space, in interrupt context, not associated with a process, handling an interrupt. This list is inclusive... 精辟!
2015-02-28 15:46:36
In fact, in Linux, we can generalize that each processor is doing exactly one of three things at any given moment:
1. In user-space, executing user code in a process.
2. In kernel-space, in process context, executing on behalf of a specific process.
3. In kernel-space, in interrupt context, not associated with a process, handling an
interrupt.
This list is inclusive... 引自第5页
Pending softirqs are checked for and executed in the following places: 1. In the return from hardware interrupt code path 2. In In the ksoftirqd kernel thread 3. In In any code that explicitly checks for and executes pending softirqs, such as the net- working subsystem 由此可见softirqs 并不是因为运行在interrupt context所以不能sleep的
2015-02-28 16:24:10
Pending softirqs are checked for and executed in the following places:
1. In the return from hardware interrupt code path
2. In In the ksoftirqd kernel thread
3. In In any code that explicitly checks for and executes pending softirqs, such as the net- working subsystem引自 Executing Softirqs
As with softirqs, tasklets cannot sleep.This means you cannot use semaphores or other blocking functions in a tasklet. Tasklets also run with all interrupts enabled, so you must take precautions (for example, disable interrupts and obtain a lock) if your tasklet shares data with an interrupt handler. 因为不能sleep,所以这里 lock只能是 spin lock ?
2015-02-27 22:04:01
As with softirqs, tasklets cannot sleep.This means you cannot use semaphores or other blocking functions in a tasklet.
Tasklets also run with all interrupts enabled, so you must take precautions (for example, disable interrupts and obtain a lock) if your tasklet shares data with an interrupt handler.引自 Writiing Your Tasklet Handler
0 有用 Kevin 2015-05-07 10:22:56
后来做storage的研究,想了解io scheduler,然后回头读的时候,才发现作者写的真的很精辟,刚刚点到即止,不至于那么繁杂。
0 有用 怪獸們的博物館 2018-07-18 20:52:05
通识读本。
0 有用 四十无获 2013-10-03 16:48:24
准确的说这不是一本讲解内核实现的书,应该是一本介绍内核API的书。
0 有用 xc 2012-12-20 22:45:47
2011某kernel大会上,陈老师送了本
0 有用 fuzhli 2017-01-18 22:10:29
经典之作,2016年在地铁上认真读完了一遍。
0 有用 e1vinw 2021-06-18 12:42:07
作者全篇都在强调:别看我叨叨,看源码,看源码,看源码...
1 有用 派大星 2021-03-02 01:01:10
- 小块头书,适合看完OSTEP或者其他同类的介绍OS的书后再看,建立起Linux的基本认识 - 作者写作风格明显好于隔壁的《Professional Linux Kernel》,后者看起来相当相当的吃力 总体ok,3.5
0 有用 弥勒闻喜 2021-02-23 15:14:53
400页讲完一个os,虽然粗糙,但是清晰,容易上手。。。
0 有用 jim 2021-01-16 17:31:31
看完OS的理论书籍后,这本书是帮助你走入linux内核的代码层面
0 有用 JesterPure 2021-01-01 13:41:58
不错