文档介绍:Conceptual Architecture of the Linux Kernel /~itbowman/CS746G/a1/
Conceptual Architecture of the Linux Kernel
Ivan Bowman
January 1998
For Ric Holt
CS746G Assignment One
Available at: /~itbowman/CS746G/a1/
Keywords: Software architecture, conceptual architecture, Linux
Abstract
This paper describes the abstract or conceptual software architecture of the
Linux kernel. This level of architecture is concerned with the large-scale
subsystems within the kernel, but not with particular procedures or variables.
One of the purposes of such an abstract architecture is to form a mental model
for Linux developers and architects. The model may not reflect the as-built
architecture perfectly, but it provides a useful way to think about the overall
structure. This model is most useful for entry-level developers, but is also a good
way for experienced developers to maintain a consistent and accurate system
vocabulary.
The architecture presented here is the result of reverse engineering an existing
1 di 16 11/08/05
Conceptual Architecture of the Linux Kernel /~itbowman/CS746G/a1/
Linux implementation; the primary sources of information used were the
documentation and source code. Unfortunately, no developer interviews were
used to extract the live architecture of the system.
The Linux kernel posed of five main subsystems municate using
procedure calls. Four of these five subsystems are discussed at the module
interconnection level, and we discuss the architectural style in the sense used by
Garlan and Shaw. At all times the relation of particular subsystems to the overall
Linux system is considered.
The architecture of the kernel is one of the reasons that Linux has been
essfully adopted by many users. In particular, the Linux kernel architecture
was designed to support a large number of volunteer developers. Further, the
subsystems that are most likely