summaryrefslogtreecommitdiff
path: root/sag-0.6.1-www/Invisible/sag-0.6/node7.html
blob: 20297e939fc1e539280abdfe1841bffe79cee02b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--Converted with LaTeX2HTML 96.1-h (September 30, 1996) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds -->
<HTML>
<HEAD>
<TITLE>Important parts of the kernel</TITLE>
<META NAME="description" CONTENT="Important parts of the kernel">
<META NAME="keywords" CONTENT="sag">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<LINK REL=STYLESHEET HREF="sag.css">
</HEAD>
<BODY LANG="EN" >
 <A NAME="tex2html375" HREF="node8.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="./next_motif.gif"></A> <A NAME="tex2html373" HREF="node5.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="./up_motif.gif"></A> <A NAME="tex2html367" HREF="node6.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="./previous_motif.gif"></A> <A NAME="tex2html377" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="./contents_motif.gif"></A> <A NAME="tex2html378" HREF="node114.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="./index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html376" HREF="node8.html">Major services in a </A>
<B>Up:</B> <A NAME="tex2html374" HREF="node5.html">Overview of a Linux </A>
<B> Previous:</B> <A NAME="tex2html368" HREF="node6.html">Various parts of an </A>
<BR> <P>
<H1><A NAME="SECTION00320000000000000000">Important parts of the kernel</A></H1>
<P>
	The Linux kernel consists of several important parts: process
	management, memory management, hardware device drivers, filesystem
	drivers, network management, and various other bits and pieces.
	Figure&nbsp;<A HREF="node7.html#figkerneloverview">2.1</A> shows some of them.
<A NAME="142">&#160;</A>
<A NAME="143">&#160;</A>
<A NAME="144">&#160;</A>
<A NAME="145">&#160;</A>
<A NAME="146">&#160;</A>
<P>
<P><A NAME="151">&#160;</A><A NAME="figkerneloverview">&#160;</A><IMG WIDTH=626 HEIGHT=547 ALIGN=BOTTOM ALT="figure147" SRC="img2.gif"><BR>
<STRONG>Figure 2.1:</STRONG> Some of the more important parts of the Linux kernel.<BR>
<P>
<P>
	Probably the most important parts of the kernel (nothing else
	works without them) are memory management and 
	process management.  Memory management takes care of assigning
	memory areas and swap space areas to processes, parts of the
	kernel, and for the buffer cache.  Process management creates
	processes, and implements multitasking by switching the
	active process on the processor.
<A NAME="154">&#160;</A>
<A NAME="155">&#160;</A>
<A NAME="156">&#160;</A>
<P>
	At the lowest level, the kernel contains a hardware device
	driver for each kind of
	hardware it supports.  Since the world is full of different
	kinds of hardware, the number of hardware device drivers is
	large.  There are often many otherwise similar pieces of
	hardware that differ in how they are controlled by software.
	The similarities make it possible to have general classes
	of drivers that support similar operations; each member of
	the class has the same interface to the rest of the kernel
	but differs in what it needs to do to implement them.  For
	example, all disk drivers look alike to the rest of the
	kernel, i.e., they all have operations like `initialize the
	drive', `read sector N', and `write sector N'.
<P>
	Some software services provided by the kernel itself have similar
	properties, and can therefore be abstracted into classes.
	For example, the various network protocols have been
	abstracted into one programming interface, the BSD socket library.
	Another example is the <b>virtual filesystem</b> (VFS) layer
	that abstracts the filesystem operations away from their
	implementation.  Each filesystem type provides an implementation
	of each filesystem operation.  When some entity tries to
	use a filesystem, the request goes via the VFS, which routes
	the request to the proper filesystem driver.
<A NAME="158">&#160;</A>
<A NAME="159">&#160;</A>
<A NAME="160">&#160;</A>
<P>
<HR><A NAME="tex2html375" HREF="node8.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="./next_motif.gif"></A> <A NAME="tex2html373" HREF="node5.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="./up_motif.gif"></A> <A NAME="tex2html367" HREF="node6.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="./previous_motif.gif"></A> <A NAME="tex2html377" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="./contents_motif.gif"></A> <A NAME="tex2html378" HREF="node114.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="./index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html376" HREF="node8.html">Major services in a </A>
<B>Up:</B> <A NAME="tex2html374" HREF="node5.html">Overview of a Linux </A>
<B> Previous:</B> <A NAME="tex2html368" HREF="node6.html">Various parts of an </A>
<P><ADDRESS>
<I>Lars Wirzenius <BR>
Sat Nov 15 02:32:11 EET 1997</I>
</ADDRESS>
</BODY>
</HTML>