- 博客(0)
- 资源 (3)
空空如也
Understanding The Linux Virtual Memory Manager
Linux is developed with a strong practical emphasis more than a theoretical one.
When new algorithms are suggested or existing implementations questioned, it is
common to request code to match the argument. Many of the algorithms used in the
Virtual Memory (VM) system were designed by theorists but the implementations
have now diverged from the theory considerably. In part, Linux does follow the
traditional development cycle of design to implementation but it is more common
for changes to be made in reaction to how the system behaved in the “real-world”
and intuitive decisions by developers. These intuitive changes can be a hindrance as
they are rarely backed by controlled, repeatable experiments. Consequently, some
design choices have been made without a strong foundation.
This has led to a situation where the VM is poorly documented except for a
small number of web sites with incomplete coverage. The existing books on Linux
are comprehensive but they try to cover the entire kernel and sometimes leave out
the details of the VM. This leads to the VM being fully understood by only a
small number of core developers. Developers looking for information on how it
functions are generally told to read the source and little or no information is available
on the theoretical basis for the implementation. This requires that even a casual
observer invest a large amount of time to read the code and study the field of
Memory Management. The problem is further compounded by the fact that the
code comments, if they even exist, only indicate what is happening in a very small
instance. This makes difficult to see how the overall system functions as is roughly
analogous to using a microscope to identify a piece of furniture.
As Linux gains in popularity, in the business as well as the academic world, more
developers are expressing an interest in developing Linux to suit their needs and the
lack of detailed documentation is a significant barrier to entry for a new developer
or researcher who wishes to study the VM.
The objective of this thesis is to document fully how the 2.4.20 VM works in-
cluding its structure, the algorithms used, the implementations thereof and the
Linux-specific features. Combined with the companion document “Code Comment-
ary on the Linux Virtual Memory Manager” the documents act as a detailed tour of
the code explaining almost line by line how the VM operates and where applicable,
explains the theoretical basis for the implementation. It will also describe how to
approach reading through the kernel source including tools aimed at making the
code easier to read, browse and understand.
It is envisioned that this will drastically reduce the amount of time a developer
or researcher needs to invest to understand what is happening inside the Linux VM.
This applies even if the VM of interest is a later version as the time needed to
understand changes and extensions is considerably less than the time required to
learn the fundamentals of the Linux VM.
2010-07-15
Usb Complete - Everything You Need To Develop Custom Usb Peripherals (3. edition) by Jan Axelson (2005)
These are some of questions the book answers:
• How do USB devices communicate? The USB interface can seem daunting
at first. The USB 2.0 specification is over 600 pages, not counting the
class specifications and other supplementary documents. This book
doesn’t attempt to restate everything in the specifications. Instead, the
focus is on what you’ll need to know to enable your devices to communicate
efficiently and reliably.
• How can I decide if my device should use a USB interface? USB isn’t the
best choice for every application. Find out whether your design should
use USB or another interface. The chances are good that you will choose
USB, however, and if so, you’ll learn how to decide which of USB’s three
speeds and four transfer types are appropriate for your application.
• What controller chip should my device use? Every USB device must contain
an intelligent controller to implement the USB interface. Dozens of
manufacturers offer controller chips with differing architectures and abilities.
This book includes descriptions of popular chips and tips to help
you select a controller based on your project’s needs and your background
and preferences.
2009-05-17
Addison Wesley - USB System Architecture _USB 2.0
Part One discusses the designs goals of the Universal Serial Bus (USB) that
emerged from the acknowledged shortcomings of the original PC’s implementation
of peripheral device expansion. It also introduces the concepts of USB
including the hardware and software elements required for its operation, and
the support for low-, full-speed, and high-speed devices. Next, it discusses
some of the USB features that are common to all device speeds, such as cable
connector and bus power. The chapters included in Part One are:
• Chapter 1: Design Goals of USB
• Chapter 2: The Big Picture
• Chapter 3: USB Cables and Connectors
• Chapter 4: USB Cable Power Distribution
2009-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人