Saturday, June 8, 2013

Understanding the Linux® Virtual Memory Manager

Understanding the Linux® Virtual Memory Manager

by Mel Gorman

In Chapter 1, we go into detail on how the source code may be managed and
deciphered. Three tools are introduced that are used for analysis, easy browsing
and management of code. The main tools are the Linux Cross Referencing (LXR)
tool, which allows source code to be browsed as a Web page, and CodeViz, which
was developed while researching this book, for generating call graphs. The last
tool, PatchSet, is for managing kernels and the application of patches. Applying
patches manually can be time consuming, and using version control software, such
as Concurrent Versions Systems (CVS) (http://www.cvshome.org/) or BitKeeper
(http://www.bitmover.com), is not always an option. With PatchSet, a simple specification
file determines what source to use, what patches to apply and what kernel
configuration to use.
In the subsequent chapters, each part of the Linux VM implementation is discussed
in detail, such as how memory is described in an architecture-independent
manner, how processes manage their memory, how the specific allocators work and
so on. Each chapter will refer to other sources that describe the behavior of Linux,
as well as covering in depth the implementation, the functions used and their call
graphs so that the reader will have a clear view of how the code is structured. The
end of each chapter has a “What’s New” section, which introduces what to expect
in the 2.6 VM.
Preface xv
The appendices are a code commentary of a significant percentage of the VM.
They give a line-by-line description of some of the more complex aspects of the VM.
The style of the VM tends to be reasonably consistent, even between major releases
of the kernel, so an in-depth understanding of the 2.4 VM will be an invaluable aid
to understanding the 2.6 kernel when it is released.

No comments:

Post a Comment