annotate master.idx @ 84:598061b944e5

Minor update to mkxmlman.sh.
author Rob Landley <rob@landley.net>
date Wed, 07 Nov 2007 01:45:27 -0600
parents 4b9263d24970
children ac8a8db09cd1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
1 <html>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
2 <title>Linux Kernel Documentation</title>
47
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
3 <body>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
4
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
5 <h2>Linux Kernel Documentation Index</h2>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
6
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
7 <p>This page collects and organizes documentation about the Linux kernel, taken
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
8 from many different sources. What is the kernel, how do you build it, how do
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
9 you use it, how do you change it...</p>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
10
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
11 <p>This is a work in progress, and probably always will be. Please let us know
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
12 on the
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
13 <a href=http://vger.kernel.org/vger-lists.html#linux-doc>linux-doc</a> mailing
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
14 list (on vger.kernel.org) about any documentation you'd like added to this
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
15 index, and feel free to ask about any topics that aren't covered here yet.
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
16 This index is maintained by Rob Landley &lt;rob@landley.net&gt;, and tracked in
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
17 <a href=http://landley.net/hg/kdocs>this mercurial repostiory</a>. The
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
18 cannonical location for the page is <a href=http://kernel.org/doc>here</a>.</p>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
19
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
20 <hr>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
21
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
22 <put_index_here>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
23
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
24 <hr>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
25
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
26 <span id="Sources of documentation">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
27
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
28 <p>These are various upstream sources of documentation, many of which are linked
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
29 into the <a href=http://kernel.org/doc>linux kernel documentation index</a>.</p>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
30
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
31 <ul>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
32 <li><a href=Documentation>Text files in the kernel's Documentation directory.</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
33 <li><a href=htmldocs>Output of kernel's "make htmldocs".</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
34 <li><a href=menuconfig>Menuconfig help</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
35 <li><a href=readme>Linux kernel README files</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
36 <li><a href=xmlman>html version of man-pages package</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
37 <li><a href=http://lwn.net/Kernel/Index/>Linux Weekly News kernel articles</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
38 <li>Linux Device Drivers book (<a href=http://lwn.net/Kernel/LDD3/>third edition</a>) (<a href=http://www.xml.com/ldd/chapter/book/>second edition</a>)</li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
39 <li><a href=ols>Ottawa Linux Symposium papers</li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
40 <li><a href=http://www.linuxjournal.com/xstatic/magazine/archives>Linux Journal archives</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
41 <li><a href=http://www.ibm.com/developerworks/views/linux/library.jsp>IBM Developerworks Linux Library</a> (also <a href=http://www.ibm.com/developerworks/linux/library/l-linux-kernel/>here</a>)
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
42 </li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
43 <li><a href=http://www.tux.org/lkml/>Linux Kernel Mailing List FAQ</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
44 <li><a href=http://kernelplanet.org>Kernel Planet (blog aggregator)</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
45 <li><a href=video.html>Selected videos of interest</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
46 <li><a href=local>Some locally produced docs</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
47 </ul>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
48
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
49 <span id="Standards">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
50 <ul>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
51 <li><a href=http://www.opengroup.org/onlinepubs/009695399/>Single Unix Specification v3</a> (Also known as Open Group Base Specifications issue 6, and closely overlapping with Posix. See especially <a href=http://www.opengroup.org/onlinepubs/009695399/idx/xsh.html>system interfaces</a>)</li>
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
52 <li>C99 standard (defining the C programming language): <a href=http://www.open-std.org/jtc1/sc22/wg14/www/standards>ISO/IEC C9899 PDF</a> or <a href=http://c0x.coding-guidelines.com/>searchable website</a>.</li>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
53 <li><a href=http://www.linux-foundation.org/spec/refspecs/>Linux Foundation's specs page</a> (ELF, Dwarf, ABI...)</li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
54 </ul>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
55 </span id="Standards">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
56
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
57 <span id="Translations">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
58 <ul>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
59 <li><a href=http://tlktp.sourceforge.net/>Linux Kernel Translation Project</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
60 <li><a href=http://kernelnewbies.org/RegionalNewbies>Kernel Newbies regional pages</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
61 <li><a href=http://www.linux.or.jp/JF/index.html>Japanese</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
62 <li><a href=http://zh-kernel.org/docs>Chinese</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
63 </ul>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
64 </span id="Translations">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
65
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
66 </span id="Sources of documentation">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
67
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
68 <span id="Building from source">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
69 <span id="User interface">
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
70 <p>Building source packages is usually a three step process: configure, build,
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
71 and install.</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
72
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
73 <p>The Linux kernel is configured with the command "make menuconfig", built
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
74 with the command "make", and installed either manually or with the command
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
75 "make install".</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
76
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
77 <p>For a description of the make options and targets, type <a href=makehelp.txt>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
78 make help</a>.</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
79
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
80 <span id="Get and extract the source">
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
81 <p>The Linux kernel source code is distributed by
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
82 <a href=http://kernel.org>kernel.org</a> as tar archives. Grab the most recent
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
83 "stable" release (using the tiny little letter F link) to grab a file of the
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
84 form "linux-2.6.*.tar.bz2" from the
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
85 <a href=http://kernel.org/pub/linux/kernel/v2.6/>Linux 2.6 releases
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
86 directory</a>. Then extract this archive with the command "tar xvjf
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
87 linux-2.6.*.tar.bz2". (Type the command "man tar" for more information on the
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
88 tar command.) Then cd into the directory created by extracting the archive.</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
89
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
90 <p>To obtain other Linux kernel versions (such as development releases and
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
91 kernels supplied by <a href="#Distibutions">distributions</a>)
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
92 see <a href="Following_Linux_development">Following Linux development</a>.</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
93
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
94 <p>To return your linux kernel source directory to its original (unconfigured)
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
95 condition after configuring and building in it, either either delete the
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
96 directory with "rm -r" and re-extract it from the tar archive, or run the
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
97 command "make distclean".</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
98 </span>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
99
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
100 <span id="Configuring">
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
101
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
102 <p>The Linux configuration system is called <a href=Documentation/kconfig-language.txt>Kconfig</a>.
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
103 The most common user interface for kconfig is menuconfig, an interactive terminal based menuing
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
104 interface invoked through the makefiles via "<b>make menuconfig</b>". A simpler text based
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
105 question and answer interface (which does not require curses support or a tty) is available as
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
106 "<b>make config</b>". Graphical interfaces are available as "<b>make xconfig</b>" (based on QT)
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
107 and "<b>make gconfig</b>" (based on GTK). For more information, see
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
108 <a href=makehelp.txt>make help</a></p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
109
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
110 <p>The configuration interfaces present
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
111
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
112 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
113 <span id="building">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
114 <span id="Building out of tree">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
115 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
116 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
117 <span id="Installing">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
118 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
119 <span id="running">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
120 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
121 <span id="debugging">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
122 <span id="QEMU">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
123 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
124 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
125 <span id="cross compiling">
68
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
126 <span id="Cross compiling vs native compiling">
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
127 <p>By default, Linux builds for the same architecture the host system is
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
128 running. This is called "native compiling". An x86 system building an x86
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
129 kernel, x86-64 building x86-64, or powerpc building powerpc are all examples
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
130 of native compiling.</p>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
131
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
132 <p>Building different binaries than the host runs is called cross compiling.
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
133 <a href=http://landley.net/writing/docs/cross-compiling.html>Cross
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
134 compiling is hard</a>. The build system for the Linux kernel supports cross
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
135 compiling via a two step process: 1) Specify a different architecture (ARCH)
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
136 during the configure, make, and install stages. 2) Supply a cross compiler
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
137 (CROSS_COMPILE) which can output the correct kind of binary code. An
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
138 example cross compile command line (building the "arm" architecture) looks
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
139 like:</p>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
140
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
141 <blockquote>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
142 <pre>make ARCH=arm menuconfig
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
143 make ARCH=arm CROSS_COMPILE=armv5l-
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
144 </pre>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
145 </blockquote>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
146
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
147 <p>To specify a different architecture than the host, either define the "ARCH"
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
148 environment variable or else add "ARCH=xxx" to the make command line for each
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
149 of the make config, make, and make install stages. The acceptable values for
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
150 ARCH are the names of the directories in the "arch" subdirectory of the Linux
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
151 kernel source code, see <a href="#Architectures">Architectures</a> for
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
152 details. All stages of the build must use the same ARCH value, and building a
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
153 second architecture in the same source directory requires "make distclean".
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
154 (Just "make clean" isn't sufficient, things like the include/asm symlink need
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
155 to be removed and recreated.)</p>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
156
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
157 <p>To specify a cross compiler prefix, define the CROSS_COMPILE environment
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
158 variable (or add CROSS_COMPILE= to each make command line). Native compiler
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
159 tools, which output code aimed at the environment they're running in, usually
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
160 have a simple name ("gcc", "ld", "strip"). Cross compilers usually add a
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
161 prefix to the name of each tool, indicating the target they produce code for.
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
162 To tell the Linux kernel build to use a cross compiler named "armv4l-gcc" (and
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
163 corresponding "armv4l-ld" and "armv4l-strip") specify "CROSS_COMPILE=armv4l-".
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
164 (Prefixes ending in a dash are common, and forgetting the trailing dash in
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
165 CROSS_COMPILE is a common mistake. Don't forget to add the cross compiler
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
166 tools to your $PATH.)</p>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
167 </span>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
168
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
169
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
170
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
171 <span id="User Mode Linux">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
172 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
173 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
174 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
175 <span id="Infrastructure">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
176 <span id="kconfig">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
177 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
178 <span id="kbuild">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
179 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
180 <span id="build and link (tmppiggy)">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
181 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
182 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
183 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
184
47
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
185 <span id="Installing and using the kernel">
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
186 <span id="Installing">
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
187 <span id="Kernel image">
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
188 </span>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
189 <span id="Bootloader">
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
190 </span>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
191 </span>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
192 <span id="A working Linux root filesystem">
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
193 <p><a href=ols/2002/ols2002-pages-176-182.pdf>Advanced Boot Scripts</a></p>
47
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
194 <span id="Finding and mounting /">
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
195 <span id="initramfs, switch_root vs pivot_root, /dev/console">
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
196 </span>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
197 </span>
61
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
198 <span id="Running programs">
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
199 <span id="init program and PID 1">
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
200 <span id="What does daemonizing really mean?">
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
201 </span>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
202 </span>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
203 <span id="Executable formats">
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
204 <p>The Linux kernel runs programs in response to the
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
205 <a href=xmlman/man3/exec.html>exec</a> syscall, which is called on a
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
206 file. This file must have the
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
207 executable bit set, and must be on a filesystem that implements mmap() and which
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
208 isn't mounted with the "noexec" option. The kernel understands
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
209 several different <a href="#executable_file_formats">executable file
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
210 formats</a>, the most common of which are shell scripts and ELF binaries.</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
211 <span id="Shell scripts">
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
212 <p>If the first two bytes of an executable file are the characters "#!", the
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
213 file is treated as a script file. The kernel parses the first line of the file
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
214 (until the first newline), and the first argument (immediately following
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
215 the #! with no space) is used as absolute path to the script's interpreter,
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
216 which must be an executable file. Any additional arguments on the first
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
217 line of the file (separated by whitespace) are passed as the first arguments
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
218 to that interpreter executable. The interpreter's next argument is the name of
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
219 the script file, followed by the arguments given on the command line.</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
220
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
221 <p>To see this behavior in action, run the following:</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
222 <blockquote>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
223 <pre>echo "#!/bin/echo hello" > temp
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
224 chmod +x temp
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
225 ./temp one two three
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
226 </pre>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
227 </blockquote>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
228
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
229 <p>The result should be:</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
230 <blockquote>hello ./temp one two three</blockquote>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
231
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
232 <p>This is how shell scripts, perl, python, and other scripting languages
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
233 work. Even C code can be run as a script by installing the
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
234 <a href=http://en.wikipedia.org/wiki/Tiny_C_Compiler>tinycc</a> package,
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
235 adding "#!/usr/bin/tcc -run" to the start of the .c file, and setting the
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
236 executable bit on the .c file.</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
237 </span>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
238 <span id="ELF">
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
239 <span id="Shared libraries">
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
240 </span>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
241 </span>
47
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
242 </span>
61
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
243
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
244 <span id="C library">
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
245 <p>Most userspace programs access operating system functionality through a C
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
246 library, usually installed at "/lib/libc.so.*". The C library wraps system
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
247 calls, and provides implementations of various standard functions.</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
248
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
249 <p>Because almost all other programming languages are implemented in C
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
250 (including python, perl, php, java, javascript, ruby, flash, and just about
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
251 everything else), programs written in other languages also make use of the
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
252 C library to access operating system services.</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
253
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
254 <p>The most common C library implementations for Linux are
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
255 <a href=http://www.linuxfromscratch.org/lfs/view/6.2/chapter06/glibc.html>glibc</a>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
256 and <a href=http://uClibc.org>uClibc</a>. Both are full-featured
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
257 implementations capable of supporting a full-featured desktop Linux
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
258 distribution.</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
259
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
260 <p>The main advantage of glibc is that it's the standard implementation used by the
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
261 largest desktop and server distributions, and has more features than any other
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
262 implementation. The main advantage of uClibc is that it's much smaller and
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
263 simpler than glibc while still implementing almost all the same functionality.
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
264 For comparison, a "hello world" program statically linked against glibc is half
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
265 a megabyte when stripped, while the same program statically linked against
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
266 uClibc strips down to 7k.</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
267
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
268 <p>Other commonly used special-purpose C library implementations include
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
269 <a href=http://en.wikipedia.org/wiki/Klibc>klibc</a> and
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
270 <a href=http://www.sourceware.org/newlib/>newlib</a>.</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
271
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
272 <span id="Exporting kernel headers">
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
273 <p>Building a C library from source code requires a special set
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
274 of Linux kernel header files, which describe the API of the specific version
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
275 of the Linux kernel the C library will interface with. However, the header
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
276 files in the kernel source code are designed to build the kernel and contain
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
277 a lot of internal information that would only confuse userspace. These
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
278 kernel headers must be "exported", filtering them for use by user space.</p>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
279
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
280 <p>Modern Linux kernels (based on 2.6.19.1 and newer) export kernel headers via
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
281 the "make headers_install" command. See
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
282 <a href=Documentation/make/headers_install.txt>exporting kernel headers for
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
283 use by userspace</a> for more information.</p>
61
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
284 </span>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
285 </span>
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
286 <span id="Dynamic loader">
3ea83bc83471 Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents: 53
diff changeset
287 </span>
47
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
288 </span>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
289 <span id="FHS directories">
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
290 <p>FHS spec</p>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
291 <a href="pending/hotplug.txt">populating /dev from sysfs</a>.
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
292 </span>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
293 </span>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
294 </span>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
295
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
296 <span id="Reading the source code">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
297 <span id="Source code layout">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
298 <span id="Following the boot process">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
299 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
300 <span id="Major subsystems">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
301 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
302 <span id="Architectures">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
303 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
304 </span>
49
aa424ac2ce30 Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents: 47
diff changeset
305 <span id="Concept vs implementation">
aa424ac2ce30 Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents: 47
diff changeset
306 <p>Often the first implementation of a concept gets replaced.
aa424ac2ce30 Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents: 47
diff changeset
307 Journaling != reiserfs, virtualization != xen, devfs gave way to udev...
aa424ac2ce30 Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents: 47
diff changeset
308 Don't let your excitement for the concept blind you to the possibility
aa424ac2ce30 Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents: 47
diff changeset
309 of alternate implementations.</p>
aa424ac2ce30 Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents: 47
diff changeset
310 </span>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
311 <span id="Concepts">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
312 <span id="rbtree">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
313 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
314 <span id="rcu">
69
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
315 <p>RCU stands for "Read Copy Update". The technique is a lockless way to manage data structures
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
316 (such as linked lists or trees) on SMP systems, using a specific sequence of reads and updates,
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
317 plus a garbage collection step, to avoid the need for locks in both the read and the update
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
318 paths.</p>
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
319
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
320 <p>RCU was invented by Paul McKenney, who maintains an excellent page of
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
321 <a href=http://www.rdrop.com/users/paulmck/RCU/>RCU documentation</a>.
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
322 The Linux kernel also contains some <a href=Documentation/RCU>additional RCU
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
323 Documentation</a>.</p>
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
324
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
325 <p>RCU cannot be configured out of the kernel, but the kconfig symbol
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
326 <a href=menuconfig/lib-Kconfig.debug.html#RCU_TORTURE_TEST>CONFIG_RCU_TORTURE_TEST</a> controls the
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
327 <a href=Documentation/RCU/torture.txt>RCU Torture test module</a>.</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
328
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
329 <p>References:</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
330 <ul>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
331 <li><a href=ols/2001/read-copy.pdf>Read-Copy Update</a> (OLS 2001)</li>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
332 </ul>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
333
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
334 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
335 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
336 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
337
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
338 <span id="Kernel infrastructure">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
339 <span id="Process Scheduler">
67
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
340
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
341 <span id="History of the Linux Process Scheduler">
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
342 <p>The original Linux process scheduler was a simple design based on
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
343 a goodness() function that recalculated the priority of every task at every
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
344 context switch, to find the next task to switch to. This served almost
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
345 unchanged through the 2.4 series, but didn't scale to large numbers of
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
346 processes, nor to SMP. By 2001 there were calls for
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
347 change (such as the OLS paper <a href=ols/2001/elss.pdf>Enhancing Linux
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
348 Scheduler Scalability</a>), and the issue
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
349 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020107_149.html#1>came to a head</a> in December 2001.</p>
67
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
350
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
351 <p>In January 2002, Ingo Molnar
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
352 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020114_150.html#4>introduced the "O(1)" process scheduler</a> for the 2.5 kernel series, a design
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
353 based on separate "active" and "expired" arrays, one per processor. As the name
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
354 implied, this found the next task to switch to in constant time no matter
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
355 how many processes the system was running.</p>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
356
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
357 <p>Other developers (<a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020513_166.html#4>such as Con Colivas</a>) started working on it,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
358 and began a period of extensive scheduler development. The early history
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
359 of Linux O(1) scheduler development was covered by the website Kernel
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
360 Traffic.</p>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
361
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
362 <p>During 2002 this work included
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
363 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020121_151.html#8>preemption</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
364 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020121_151.html#9>User Mode Linux support</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
365 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020211_153.html#2>new drops</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
366 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020211_153.html#7>runtime tuning</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
367 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020304_156.html#6>NUMA support</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
368 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020429_164.html#4>cpu affinity</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
369 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020617_171.html#4>scheduler hints</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
370 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020701_173.html#1>64-bit support</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
371 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020715_175.html#5>backports to the 2.4 kernel</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
372 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020715_175.html#4>SCHED_IDLE</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
373 discussion of <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20020729_177.html#1>gang scheduling</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
374 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20021014_188.html#4>more NUMA</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
375 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20021118_192.html#9>even more NUMA</a>). By the end of 2002, the O(1) scheduler was becoming
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
376 the standard <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20021223_197.html#1>even in the 2.4 series</a>.</p>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
377
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
378 <p>2003 saw support added for
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
379 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20030124_202.html#14>hyperthreading as a NUMA variant</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
380 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20030330_211.html#3>interactivity bugfix</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
381 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20030616_219.html#4>starvation and affinity bugfixes</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
382 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20030616_219.html#8>more NUMA improvements</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
383 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20030811_227.html#2>interactivity improvements</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
384 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20030811_227.html#8>even more NUMA improvements</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
385 a proposal for <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20031026_237.html#7>Variable Scheduling Timeouts</a> (the first rumblings of what
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
386 would later come to be called "dynamic ticks"),
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
387 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20031201_243.html#10>more on hyperthreading</a>...</p>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
388
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
389 <p>In 2004 there was work on <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20040120_248.html#2>load balancing and priority handling</a>, and
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
390 <a href=http://mirell.org/kernel-traffic/kernel-traffic/kt20040212_252.html#5>still more work on hyperthreading</a>...</p>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
391
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
392 <p>In 2004 developers proposed several extensive changes to the O(1) scheduler.
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
393 Linux Weekly News wrote about Nick Piggin's
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
394 <a href=http://lwn.net/Articles/80911/>domain-based scheduler</a>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
395 and Con Colivas' <a href=http://lwn.net/Articles/87729/>staircase scheduler</a>. The follow-up article <a href=http://lwn.net/Articles/96554/>Scheduler tweaks get serious</a> covers both. Nick's scheduling domains
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
396 were merged into the 2.6 series.</p>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
397
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
398 <p>Linux Weekly News also wrote about other scheduler work:</p>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
399
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
400 <ul>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
401 <li><a href=http://lwn.net/Articles/83633/>Filtered wakeups</a></li>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
402 <li><a href=http://lwn.net/Articles/105366/>When should a process be migrated</a></li>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
403 <li><a href=http://lwn.net/Articles/109458/>Pluggable and realtime schedulers</a></li>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
404 <li><a href=http://lwn.net/Articles/120797/>Low latency for audio applications:</a></li>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
405 <li><a href=http://lwn.net/Articles/176635/>Solving starvation problems in the scheduler:</a></li>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
406 <li><a href=http://lwn.net/Articles/186438/>SMPnice</a></li>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
407 </ul>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
408
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
409 <p>In 2007, Con Colivas proposed a new scheduler, <a href=http://lwn.net/Articles/224865/>The Rotating Staircase Deadline Scheduler</a>, which
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
410 <a href=http://lwn.net/Articles/226054/>hit a snag</a>. Ingo
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
411 Molnar came up with a new scheduler, which he named the
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
412 <a href=http://lwn.net/Articles/230501/>Completely Fair Scheduler</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
413 described in the LWN writeups
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
414 <a href=http://lwn.net/Articles/230574/>Schedulers: the plot thickens</a>,
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
415 <a href=http://lwn.net/Articles/231672/>this week in the scheduling discussion</a>, and
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
416 <a href=http://lwn.net/Articles/240474/>CFS group scheduling</a>.</p>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
417
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
418 <p>The CFS scheduler was merged into 2.6.23.</p>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
419 </span>
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
420
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
421 <span id="fork, exec">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
422 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
423 <span id="sleep">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
424 </span>
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
425 <span id="realtime">
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
426 <p><a href=ols/2001/rtai.pdf>The Real-Time Application Interface</a> (OLS 2001, obsolete)</a></p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
427 </span>
67
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
428 </span>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
429 <span id="Timers">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
430 <span id="Interrupt handling">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
431 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
432 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
433 <span id="memory management">
47
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
434 <ul>
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
435 <li><a href="gorman">Understanding the Linux Virtual Memory Manager</a>, online book by Mel Gorman.</li>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
436 <li> What every programmer should know about memory, article series by Ulrich Drepper,
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
437 parts
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
438 <a href=http://lwn.net/Articles/250967/>one</a>,
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
439 <a href=http://lwn.net/Articles/252125/>two</a>,
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
440 <a href=http://lwn.net/Articles/253361/>three</a>,
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
441 <a href=http://lwn.net/Articles/254445/>four</a>.
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
442 </li>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
443 <li>Ars technica ram guide, article series by Jon "Hannibal" Stokes, parts
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
444 <a href=http://arstechnica.com/paedia/r/ram_guide/ram_guide.part1-1.html>one</a>,
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
445 <a href=http://arstechnica.com/paedia/r/ram_guide/ram_guide.part1-1.html>two</a>,
47
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
446 <a href=http://arstechnica.com/paedia/r/ram_guide/ram_guide.part3-1.html>three</a></li>
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
447 </ul>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
448 <span id="mmap, DMA">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
449 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
450 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
451 <span id="vfs">
68
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
452 <span id="Pipes, files, and ttys">
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
453 <p>A pipe can be read from or written to, transmitting a sequence of bytes
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
454 in order.</p>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
455
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
456 <p>A file can do what a pipe can, and adds the ability to seek to a location,
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
457 query the current location, and query the length of the file (all of which are
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
458 an integer number off bytes from the beginning of the file).</p>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
459
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
460 <p>A tty can do what a pipe can, and adds a speed (in bits per second)
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
461 and cursor location (X and Y, with the upper left corner at 0,0). Oh, and
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
462 you can make it go beep.</p>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
463
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
464 <p>Note that you can't call lseek() on a tty and you can't call termios
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
465 (man 3 termios) functions on a file. Each can be treated as a pipe.</p>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
466 </span>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
467 <span id="Filesystems">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
468 <span id="Types of filesystems (see /proc/filesystems)">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
469 <span id="Block backed">
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
470 <span id="ext2">
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
471 <ul>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
472 <li><a href=ols/2002/ols2002-pages-117-129.pdf>Online ext2 and ext3 Filesystem Resizing</a> (OLS 2002)</li>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
473 </ul>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
474 </span>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
475 <span id="jffs2">
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
476 <ul>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
477 <li><a href=ols/2001/jffs2.pdf>JFFS: The Journalling Flash Filesystem</a> (OLS 2001)</li>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
478 </ul>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
479 </span>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
480 <span id="vxfs">
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
481 <ul>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
482 <li><a href=menuconfig/fs-Kconfig.html#VXFS_FS>CONFIG_VXFS_FS</a></li>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
483 <li><a href=ols/2002/ols2002-pages-191-196.pdf>Reverse engineering an advanced filesystem</a></li>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
484 </ul>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
485 </span>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
486 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
487 <span id="Ram backed">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
488 <span id="ramfs">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
489 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
490 <span id="tmpfs">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
491 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
492 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
493 <span id="Synthetic">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
494 <span id="proc">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
495 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
496 <span id="sys">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
497 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
498 <span id="internal (pipefs)">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
499 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
500 <span id="usbfs">
69
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
501 http://www.linux-usb.org/USB-guide/x173.html
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
502 http://www.linux-usb.org/USB-guide/c607.html
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
503 http://www.linuxjournal.com/article/7466
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
504 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
505 <span id="devpts">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
506 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
507 <span id="rootfs">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
508 </span>
53
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
509 <span id="devfs (obsolete)">
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
510 <p>Devfs was the first attempt to do a dynamic /dev directory which could change
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
511 in response to hotpluggable hardware, by doing the seemingly obvious thing of
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
512 creating a kernel filesystem to mount on /dev which would adjust itself as
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
513 the kernel detected changes in the available hardware.</p>
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
514
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
515 <p>Devfs was an interesting learning experience, but turned out to be the wrong
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
516 approach, and was replaced by sysfs and udev. Devfs was removed in kernel
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
517 version 2.6.18. See
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
518 <a href=local/hotplug-history.html>the history of hotplug</a> for details.</p>
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
519
87598e3a8e3c Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents: 49
diff changeset
520 </span>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
521 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
522 <span id="Network">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
523 <span id="nfs">
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
524 <p><a href=ols/2001/nfsv4_ols.pdf>Linux NFS Version 4: Implementation and Administration</a> (OLS 2001)</a></p>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
525 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
526 <span id="smb/cifs">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
527 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
528 <span id="FUSE">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
529 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
530 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
531 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
532 <span id="Filesystem drivers">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
533 <span id="Using">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
534 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
535 <span id="Writing">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
536 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
537 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
538 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
539 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
540
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
541 <span id="Drivers">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
542 <span id="Filesystem">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
543 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
544 <span id="Block (block layer, scsi layer)">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
545 <span id="SCSI layer">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
546 <ul>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
547 <li><a href="Documentation/scsi">Documentation/scsi</a> scsi.txt scsi_mid_low_api.txt scsi-generic.txt scsi_eh.txt</li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
548 <li><a href="http://sg.torque.net/sg/p/sg_v3_ho.html">SCSI Generic (sg) HOWTO</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
549 <li><a href="xmlman/man4/sd.html">man 4 sd</a></li>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
550 <li><a href="http://www.t10.org/scsi-3.htm">SCSI standards</a></li>
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
551 <li><a href=ols/2002/ols2002-pages-40-49.pdf>Incrementally Improving the Linux SCSI Subsystem</a> (OLS 2002)</li>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
552 </ul>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
553 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
554 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
555 <span id="Character">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
556 <span id="serial">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
557 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
558 <span id="keyboard">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
559 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
560 <span id="tty">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
561 <span id="pty">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
562 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
563 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
564 <span id="audio">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
565 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
566 <span id="null">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
567 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
568 <span id="random/urandom">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
569 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
570 <span id="zero">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
571 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
572 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
573 <span id="DRI">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
574 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
575 <span id="Network">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
576 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
577 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
578
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
579 <span id="Hotplug">
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
580 <p><a href=http://kernel.org/ols/2001/hotplug.pdf>Hotpluggable devices and the Linux kernel</a> (OLS 2001)</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
581 <p><a href=local/hotplug-history.html>The history of hotplug</a></p>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
582 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
583 <span id="Input core">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
584 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
585 <span id="Network">
68
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
586 <pre>
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
587 physical
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
588 plip
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
589 serial/slip/ppp
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
590 ethernet
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
591 routing
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
592 ipv4
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
593 ipv6
68
1f41643cfe8e Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents: 67
diff changeset
594 </pre>
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
595 <p><a href=ols/2001/mipl.pdf>MIPL Mobile IPv6 for Linux in HUT Campus Network MediaPoli</a> (OLS 2001)</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
596 <p><a href=ols/2001/sctp.pdf>Linux Kernel SCTP: The Third Transport</a> (OLS 2001)</p>
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
597 <p><a href=ols/2002/ols2002-pages-8-30.pdf>TCPIP Network Stack Performance in Linux Kernel 2.4 and 2.5</a></p>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
598 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
599 <span id="Modules">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
600 <span id="Exported symbols">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
601 <p>EXPORT_SYMBOL() vs EXPORT_SYMBOL_GPL()</p>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
602 <p>List of exported symbols.</p>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
603 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
604 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
605 <span id="Busses">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
606 </span>
69
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
607 <span id="Security">
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
608 <span id="Traditional Unix security model">
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
609 Users, groups, files (rwx), signals.
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
610 </span>
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
611 <span id="More complicated security models">
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
612 <p>The traditional Unix security model is too simple to satisfy the
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
613 certification requirements of large corporate and governmental organizations,
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
614 so several add-on security models have been implemented to increase
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
615 complexity. There is some debate as to which of these (if any) are actually an
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
616 improvement.</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
617
69
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
618 <span id="Posix capabilities">
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
619 http://www.gentoo.org/proj/en/hardened/capabilities.xml
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
620 </span>
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
621 <span id="SELinux">
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
622 <p><a href=ols/2001/selinux.pdf>Meeting Critical Security Objectives with Security-Enhanced Linux</a> (OLS 2001)</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
623 <p><a href=ols/2002/ols2002-pages-65-72.pdf>SE Debian: how to make NSA SE LInux work in a distribution</a> (OLS 2002)</p>
69
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
624 </span>
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
625 </span>
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
626 <span id="Encryption">
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
627 <p><a href=ols/2002/ols2002-pages-73-92.pdf>The Long Road to the Advanced Encryption Standard</a></p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
628 </span>
69
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
629 </span>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
630 <span id="API (how userspace talks to the kernel)">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
631 <span id="Syscalls">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
632 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
633 <span id="ioctls">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
634 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
635 <span id="executable file formats">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
636 <span id="a.out">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
637 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
638 <span id="elf">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
639 <span id="css, bss, etc.">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
640 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
641 </span>
69
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
642 <span id="scripts">
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
643 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
644 <span id="flat">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
645 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
646 <span id="misc">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
647 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
648 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
649 <span id="Device nodes">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
650 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
651 <span id="Pipes (new pipe infrastructure)">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
652 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
653 <span id="Synthetic filesystems (as API)">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
654 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
655 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
656 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
657
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
658 <span id="Hardware">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
659 <span id="Architectures">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
660 <pre>
67
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
661 alpha
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
662 arm
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
663 avr32
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
664 blackfin
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
665 cris
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
666 frv
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
667 h8300
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
668 i386
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
669 ia64
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
670 m32r
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
671 m68k
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
672 m68knommu
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
673 <a href=ols/2002/ols2002-pages-130-145.pdf>Running Linux on a DSP: Exploiting the Computational Resources of a programmable DSP Micro-Processor with uClinux</a> (OLS 2002)
67
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
674 mips
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
675 parisc
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
676 <a href=ols/2002/ols2002-pages-183-190.pdf>Porting Drivers to HP ZX1</a>
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
677 powerpc
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
678 <a href=ols/2001/iseries.pdf>The Linux Kernel on iSeries</a> (OLS 2001)
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
679 <a href=ols/2001/ppc64.pdf>PowerPC 64-bit Kernel Internals</a> (OLS 2001)
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
680 <a href=http://perso.magic.fr/l_indien/qemu-ppc/PowerPC_ref/PowerPC_ref.html>PowerPC implementation reference for QEMU</a>
67
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
681 ppc
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
682 s390
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
683 sh
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
684 sh64
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
685 sparc
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
686 sparc64
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
687 um
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
688 <a href=ols/2001/uml.pdf>User-Mode Linux</a> (OLS 2001)
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
689 <a href=ols/2002/ols2002-pages-107-116.pdf>Making Linux Safe for Virtual Machines</a> (OLS 2002)
67
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
690 v850
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
691 x86_64
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
692 <a href=ols/2001/x86-64.pdf>Porting Linux to x86-64</a> (OLS 2001)
67
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
693 xtensa
992a411c98b6 History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
694
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
695 include/asm-generic
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
696 uml
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
697 </pre>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
698 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
699 <span id="DMA, IRQ, MMU (mmap), IOMMU, port I/O">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
700 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
701 <span id="Busses">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
702 <span id="PCI, USB">
69
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
703 http://www.linux-usb.org/USB-guide/book1.html
0c10e3aad7d2 RCU and more notes.
Rob Landley <rob@landley.net>
parents: 68
diff changeset
704 Documentation/usb
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
705 <p><a href=ols/2001/pci.pdf>PCIComm: A Linux Device Driver for Communication over PCI Shared Memory</a> (OLS 2001)</p>
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
706 <p><a href=ols/2001/powertweak.pdf>Linux performance tuning using Powertweak</a> (OLS 2001)</p>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
707 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
708 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
709 </span>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
710
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
711 <span id="Following Linux development">
75
baf5a8bc72a0 Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents: 69
diff changeset
712 <span id="Distibutions">
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
713 </span>
49
aa424ac2ce30 Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents: 47
diff changeset
714 <span id="Releases">
aa424ac2ce30 Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents: 47
diff changeset
715 <span id="Source control">
79
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
716
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
717 <p>Linux releases from 0.0.1 through 2.4.x used no source control system, just
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
718 release tarballs. Releases 2.5.0 through 2.6.12-rc2 used a proprietary
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
719 source control system called BitKeeper. Releases 2.6.12-rc2 through the
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
720 present use a source control system called git.</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
721
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
722 <p>Early Linux development didn't use source control. Instead Linus would
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
723 apply patches to his copy of the source, and periodically release tarball
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
724 snapshots of his development tree with a hand-edited changelog file noting who
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
725 contributed each patch he'd applied. Most of these patches were posted to the
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
726 Linux Kernel Mailing List, and with a little effort could be fished out of the
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
727 mailing list archives.</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
728
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
729 <p>This worked for many years, but didn't scale as Linux development grew.
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
730 Eventually the issue came to a head [link], and after some discussion Linus
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
731 decided to use a proprietary distributed source control system called
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
732 BitKeeper for the 2.5 development branch. Linux releases v2.5.0 through
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
733 v2.6.12-rc2 were put out this way.</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
734
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
735 <p>Linux development no longer uses BitKeeper, due to the sudden
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
736 <a href=http://lwn.net/Articles/130746/>expiration of the
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
737 "Don't piss off Larry license"</a> under which BitKeeper was made available
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
738 to the Linux community (<a href=http://lwn.net/Articles/132938/>more here</a>).
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
739 This prompted Linus to take a month off from Linux development to write his own
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
740 distributed source control system, git. This is why the current source control
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
741 history in the main git development repository goes back to 2.6.12-rc2.
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
742 (The revision history from the BitKeeper era was later
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
743 <a href=http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=summary>converted to git</a>, but remains separate for historical reasons.)</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
744
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
745 <p>Linus initially chose BitKeeper because he wanted a distributed source
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
746 control system, and the open source alternatives available at the time were
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
747 all centralized source control systems.</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
748
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
749 <p>In a distributed source control
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
750 system, every user has a complete copy of the project's entire revision
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
751 history, which they can add their own changes to locally. A centralized source
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
752 control system requires a single central location, with user accounts to
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
753 control access and either locking the tree or rejecting attempts to apply out
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
754 of date patches. A distributed source control system is instead designed to
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
755 download and merge changes from many different repositories after they're
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
756 checked in to those other repositories. The source control system handles
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
757 almost all of this merging automatically, because it can trace the changes in
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
758 each repository back to a common ancestor, and then use three-way merge
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
759 algorithms to better understand the changes. (Patches don't indicate
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
760 which version they apply to. A distributed source control system has
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
761 more information avialable to it, and uses that information to automatically
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
762 merge changes more effectively.)</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
763
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
764 <p>This allows Linux subsystem maintainers to develop
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
765 and test their own local versions, then send changes to Linus in large batches
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
766 (without smearing together the individual patches they committed), and finally
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
767 resync with Linus's repository to get everyone else's changes. Open source
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
768 development is already distributed, so distributed source control is a better
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
769 fit. In this development model, Linus's repository serves as a coordination
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
770 point, but not a development bottleneck for anything except putting out
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
771 releases (which come from Linus's repository).</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
772
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
773 <p>Linus described the appeal of distributed source control, and his reasons
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
774 for developing git, in the Google Video tech talk
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
775 <a href=http://video.google.com/videoplay?docid=-2199332044603874737>Linus Torvalds on git</a>.</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
776
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
777 <p>To get started with git, see <a href=local/git-quick.html>git quickstart</a>.</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
778
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
779 <p>The linux kernel source is also available as a
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
780 <a href=http://kernel.org/hg/linux-2.6>mercurial repository</a>, another
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
781 popular open source distributed source control system.</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
782
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
783 <p>This paper still serves as a decent introduction to distributed source
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
784 control: <a href=http://kernel.org/doc/ols/2002/ols2002-pages-197-212.pdf>BitKeeper
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
785 for Kernel Development</a> (OLS 2002, obsolete)</p>
4b9263d24970 More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents: 75
diff changeset
786
49
aa424ac2ce30 Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents: 47
diff changeset
787 </span>
aa424ac2ce30 Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents: 47
diff changeset
788 </span>
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
789 <span id="community">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
790 <pre>
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
791 CATB
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
792 http://vger.kernel.org/vger-lists.html
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
793 http://www.tux.org/lkml/
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
794 lwn, kernel traffic, kernelplanet.
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
795 http://www.kernel.org/faq
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
796 http://www.kernel.org/kdist/rss.xml
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
797 git/mercurial
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
798 Documentation/{CodingStyle,SubmitChecklist}
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
799 The four layer (developer, maintainer, subsystem, linus) model.
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
800 Politics
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
801 Stable API nonsense
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
802 Why reiser4 not in.
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
803 </pre>
47
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
804 </span id="community">
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
805 <span id="Submitting Patches">
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
806 </span>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
807 </span>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
808
39
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
809
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
810 <span id="Glossary">
33e0b133a517 Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff changeset
811 </span>
47
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
812 </body>
0df6348fc276 Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents: 40
diff changeset
813 </html>