- An ideal resource to understand the internals, line by line
- Looks at architecture dependent code for PC version
- Addresses process creation, timers, software and hardware interrupts, signals, tracing processes, and the virtual 8086 mode
“…there is no other book I would recommend over this one for the Linux programmer wanting to learn about this particular topic…” (M2 Best Books, October 03)
Complete in every way, this book describes every function and macro. All data structures used by the process manager are dealt with and their role in the overall picture explained along with the accompanying raw code.
This indispensable guide to the kernel subset is aimed at readers with some previous knowledge of operating system structure and terminology, as well as a minimum knowledge of the C programming language. The comprehensive index which lists every identifier, makes in-depth information instantly available to programmers, software engineers, system administrators and anyone who wants to modify the kernel, or wants to know about the implications of kernel configuration variables.
Product Details
Would you like to update product info or give feedback on images?
|
|
Share your thoughts with other customers:
|
||||||||||||||||||||||
|
Most Helpful Customer Reviews
2 of 3 people found the following review helpful:
5.0 out of 5 stars
Very solid Linux commentary,
By
Amazon Verified Purchase(What's this?)
This review is from: The Linux Process Manager (Paperback)
This is a surprisingly good book written by Irish Linux pioneer, it's basically a commentary, it comments every line of the source code literarily, the writing style s not entertaining, but not dry either, it's solid, quality stuff. Some thing goes like this:[1] void __init fork_init(unsigned long mempages) [2] max_threads = mempages /(THREAD_SIZE/PAGE_SIZE)/2; 76 [3] init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2; [3] init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2; 79 } Figure 8.2: Initialisation routine [1] the parameter passed is the total number of page frames present in the system. [2] the literal constant THREAD_SIZE is defined in <asm-i386/processor.h> as 2 * PAGE_SIZE. It is the amount of kernel memory allocated to a process - thetask_struct plus the kernel stack. So THREAD_SIZE/PAGE_SIZE is the size of this in pages (2). Then mempages /(THREAD_SIZE/PAGE_SIZE) is the number of processes that could be created using the whole memory. As each process needs 2 pages, this is half the number of physical pages available. To allow room for code and data as well, the default maximum number of threads is set to half of this again, or a quarter of the number of physical pages. [3] [3] the limits for the init_task are set at half of this again, or a maximum of one eighth of the number of physical pages. This is Tony Cahill's comment about the author's background: "His work involved constructing an interpreter for a proprietary language designed for developing and delivering Computer Aided Learning material, which generated Intermediate (what we would now call Byte) Code. John's research was essentially an exercise in systematic reverse engineering, and demonstrated that it was relatively easy to develop alternative interpreters, which could deliver the same lessons on other hardware, such as PCs." The Irish Linux pioneer died couple years ago.
Share your thoughts with other customers: Create your own review
|
|
|
Tags Customers Associate with This Product(What's this?)Click on a tag to find related items, discussions, and people.
|
|
This product's forum
Active discussions in related forums
Search Customer Discussions
|
Related forums
|