Mercurial > hg > kdocs
annotate master.idx @ 93:1bd46b3c996d
sed is greedy, so limit the regex match
author | jim@jtan.com |
---|---|
date | Sat, 10 Nov 2007 19:54:09 -0500 |
parents | ac8a8db09cd1 |
children | d00b5e91cba8 |
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 <rob@landley.net>, 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 |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
31 <span id="From the kernel"> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
32 <ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
33 <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
|
34 <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
|
35 <li><a href=menuconfig>Menuconfig help</a></li> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
36 <li><a href=readme>Linux kernel README files</a></li> |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
37 <li><a href=rfc-linux.html>IETF RFCs referred to by kernel source files.</a></li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
38 </ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
39 </span> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
40 <span id="Out on the web"> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
41 <ul> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
42 <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
|
43 <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
|
44 <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
|
45 <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
|
46 <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
|
47 <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
|
48 </li> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
49 <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
|
50 <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
|
51 <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
|
52 <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
|
53 </ul> |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
54 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
55 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
56 <span id="Standards"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
57 <ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
58 <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
|
59 <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
|
60 <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
|
61 </ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
62 </span id="Standards"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
63 |
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 <ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
66 <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
|
67 <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
|
68 <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
|
69 <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
|
70 </ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
71 </span id="Translations"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
72 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
73 </span id="Sources of documentation"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
74 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
75 <span id="Building from source"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
76 <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
|
77 <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
|
78 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
|
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 <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
|
81 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
|
82 "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
|
83 |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
84 <blockquote> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
85 <pre> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
86 tar xvjf linux-2.6.??.tar.bz2 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
87 cd linux-2.6.?? |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
88 make menuconfig |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
89 make |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
90 make install |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
91 </pre> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
92 </blockquote> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
93 |
75
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>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
|
95 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
|
96 |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
97 <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
|
98 <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
|
99 <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
|
100 "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
|
101 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
|
102 <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
|
103 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
|
104 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
|
105 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
|
106 |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
107 <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
|
108 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
|
109 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
|
110 |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
111 <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
|
112 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
|
113 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
|
114 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
|
115 </span> |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
116 |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
117 <span id="Configuring"> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
118 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
119 <p>Before you can build the kernel, you have to configure it. Configuring |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
120 selects which features this kernel build should include, and specifies other |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
121 technical information such as buffer sizes and optimization strategies. |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
122 This information is stored in a file named ".config" in the top level directory |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
123 of the kernel source code. To see the various user interfaces to the |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
124 configuration system, type "<a href=makehelp.txt>make help</a>".</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
125 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
126 <p>Note that "make clean" does not delete configuration information, but the |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
127 more thorough "make distclean" does.</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
128 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
129 <span id="Using an existing configuration"> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
130 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
131 <p>Often when building a kernel, an existing .config file is supplied from |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
132 elsewhere. Copy it into place, and optionally run "make oldconfig" to run |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
133 the kernel's diagnostics against it to ensure it matches the kernel version |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
134 you're using, updating anything that's out of sync.</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
135 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
136 <p>Several preset configurations are shipped with the kernel source code. |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
137 Run the command <b>find . -name "*_defconfig"</b> in the kernel source |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
138 directory to seem them all. Any of these can be copied to .config and |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
139 used as a starting point.</p> |
75
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
140 |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
141 <p>The kernel can also automatically generate various configurations, |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
142 mostly to act as starting points for customization:</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
143 <ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
144 <li><b>make defconfig</b> - Set all options to default values</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
145 <li><b>make allnoconfig</b> - Set all yes/no options to "n"</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
146 <li><b>make allyesconfig</b> - Set all yes/no options to "y"</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
147 <li><b>make allmodconfig</b> - Set all yes/no options to "y" and all "yes/module/no" options to "m"</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
148 <li><b>make randconfig</b> - Set each option randomly (for debugging purposes).</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
149 <li><b>make oldconfig</b> - Update a .config file from a previous version of the kernel to work with the current version.</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
150 </ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
151 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
152 </span> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
153 <span id="Creating a custom kernel configuration"> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
154 <p>The most common user interface for configuring the kernel is |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
155 <b>menuconfig</b>, an interactive terminal based menuing interface invoked |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
156 through the makefiles via "<b>make menuconfig</b>". This interface groups the |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
157 configuration questions into a series of menus, showing the current values |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
158 of each symbol and allowing them to be changed in any order. Each symbol |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
159 has associated help text, explaining what the symbol does and where to find |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
160 more information about it. This help text is |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
161 <a href=menuconfig>also available as html</a>.</p> |
75
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
162 |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
163 <p>The menuconfig interface is controlled with the following keys:</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
164 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
165 <ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
166 <li><b>cursor up/down</b> - move to another symbol</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
167 <li><b>tab</b> - switch action between edit, help, and exit</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
168 <li><b>enter</b> - descend into menu (or help/exit if you hit tab first)</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
169 <li><b>esc</b> - exit menu (prompted to save if exiting top level menu)</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
170 <li><b>space</b> - change configuration symbol under cursor</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
171 <li><b>?</b> - view help for this symbol</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
172 <li><b>/</b> - search for a symbol by name</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
173 </ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
174 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
175 <p>Other configuration interfaces (functionally equivalent to menuconfig) |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
176 include:</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
177 <ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
178 <li><b>make config</b> - a simple text based question and answer interface |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
179 (which does not require curses support, or even a tty)</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
180 <li><b>make xconfig</b> - QT based graphical interface</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
181 <li><b>make gconfig</b> - GTK based graphical interface</li> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
182 </ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
183 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
184 </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
|
185 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
186 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
187 <span id="building"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
188 <span id="Building out of tree"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
189 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
190 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
191 <span id="Installing"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
192 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
193 <span id="running"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
194 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
195 <span id="debugging"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
196 <span id="QEMU"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
197 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
198 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
199 <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
|
200 <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
|
201 <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
|
202 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
|
203 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
|
204 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
|
205 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
206 <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
|
207 <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
|
208 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
|
209 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
|
210 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
|
211 (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
|
212 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
|
213 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
|
214 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
215 <blockquote> |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
216 <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
|
217 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
|
218 </pre> |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
219 </blockquote> |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
220 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
221 <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
|
222 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
|
223 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
|
224 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
|
225 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
|
226 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
|
227 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
|
228 (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
|
229 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
|
230 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
231 <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
|
232 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
|
233 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
|
234 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
|
235 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
|
236 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
|
237 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
|
238 (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
|
239 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
|
240 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
|
241 </span> |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
242 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
243 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
244 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
245 <span id="User Mode Linux"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
246 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
247 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
248 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
249 <span id="Infrastructure"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
250 <span id="kconfig"> |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
251 <p>The Linux configuration system is called Kconfig. The various |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
252 configuration front-ends (such as menuconfig) parse data files |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
253 written in the <a href=Documentation/kconfig-language.txt>Kconfig language</a>, |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
254 which define the available symbols and provide default values, help entries, |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
255 and so on.</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
256 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
257 <p>The source code for the front ends is in scripts/kconfig. The |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
258 Makefile in this directory defines the make targets for the configuration |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
259 system.</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
260 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
261 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
262 <span id="kbuild"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
263 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
264 <span id="build and link (tmppiggy)"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
265 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
266 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
267 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
268 |
47
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
269 <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
|
270 <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
|
271 <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
|
272 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
273 <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
|
274 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
275 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
276 <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
|
277 <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
|
278 <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
|
279 <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
|
280 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
281 </span> |
61
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
282 <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
|
283 <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
|
284 <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
|
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> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
287 <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
|
288 <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
|
289 <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
|
290 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
|
291 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
|
292 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
|
293 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
|
294 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
|
295 <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
|
296 <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
|
297 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
|
298 (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
|
299 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
|
300 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
|
301 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
|
302 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
|
303 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
|
304 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
305 <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
|
306 <blockquote> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
307 <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
|
308 chmod +x temp |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
309 ./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
|
310 </pre> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
311 </blockquote> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
312 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
313 <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
|
314 <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
|
315 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
316 <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
|
317 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
|
318 <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
|
319 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
|
320 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
|
321 </span> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
322 <span id="ELF"> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
323 <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
|
324 </span> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
325 </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
|
326 </span> |
61
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
327 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
328 <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
|
329 <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
|
330 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
|
331 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
|
332 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
333 <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
|
334 (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
|
335 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
|
336 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
|
337 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
338 <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
|
339 <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
|
340 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
|
341 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
|
342 distribution.</p> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
343 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
344 <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
|
345 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
|
346 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
|
347 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
|
348 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
|
349 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
|
350 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
|
351 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
352 <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
|
353 <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
|
354 <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
|
355 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
356 <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
|
357 <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
|
358 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
|
359 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
|
360 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
|
361 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
|
362 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
|
363 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
364 <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
|
365 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
|
366 <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
|
367 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
|
368 </span> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
369 </span> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
370 <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
|
371 </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
|
372 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
373 <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
|
374 <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
|
375 <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
|
376 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
377 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
378 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
379 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
380 <span id="Reading the source code"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
381 <span id="Source code layout"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
382 <span id="Following the boot process"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
383 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
384 <span id="Major subsystems"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
385 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
386 <span id="Architectures"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
387 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
388 </span> |
49
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
389 <span id="Concept vs implementation"> |
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
390 <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
|
391 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
|
392 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
|
393 of alternate implementations.</p> |
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
394 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
395 <span id="Concepts"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
396 <span id="rbtree"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
397 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
398 <span id="rcu"> |
69 | 399 <p>RCU stands for "Read Copy Update". The technique is a lockless way to manage data structures |
400 (such as linked lists or trees) on SMP systems, using a specific sequence of reads and updates, | |
401 plus a garbage collection step, to avoid the need for locks in both the read and the update | |
402 paths.</p> | |
403 | |
404 <p>RCU was invented by Paul McKenney, who maintains an excellent page of | |
405 <a href=http://www.rdrop.com/users/paulmck/RCU/>RCU documentation</a>. | |
406 The Linux kernel also contains some <a href=Documentation/RCU>additional RCU | |
407 Documentation</a>.</p> | |
408 | |
75
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
409 <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
|
410 <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
|
411 <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
|
412 |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
413 <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
|
414 <ul> |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
415 <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
|
416 </ul> |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
417 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
418 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
419 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
420 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
421 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
422 <span id="Kernel infrastructure"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
423 <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
|
424 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
425 <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
|
426 <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
|
427 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
|
428 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
|
429 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
|
430 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
|
431 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
|
432 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
|
433 <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
|
434 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
435 <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
|
436 <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
|
437 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
|
438 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
|
439 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
|
440 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
441 <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
|
442 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
|
443 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
|
444 Traffic.</p> |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
445 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
446 <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
|
447 <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
|
448 <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
|
449 <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
|
450 <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
|
451 <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
|
452 <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
|
453 <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
|
454 <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
|
455 <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
|
456 <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
|
457 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
|
458 <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
|
459 <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
|
460 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
|
461 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
462 <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
|
463 <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
|
464 <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
|
465 <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
|
466 <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
|
467 <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
|
468 <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
|
469 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
|
470 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
|
471 <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
|
472 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
473 <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
|
474 <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
|
475 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
476 <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
|
477 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
|
478 <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
|
479 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
|
480 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
|
481 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
482 <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
|
483 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
484 <ul> |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
485 <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
|
486 <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
|
487 <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
|
488 <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
|
489 <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
|
490 <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
|
491 </ul> |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
492 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
493 <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
|
494 <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
|
495 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
|
496 <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
|
497 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
|
498 <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
|
499 <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
|
500 <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
|
501 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
502 <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
|
503 </span> |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
504 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
505 <span id="fork, exec"> |
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="sleep"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
508 </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
|
509 <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
|
510 <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
|
511 </span> |
67
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
512 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
513 <span id="Timers"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
514 <span id="Interrupt handling"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
515 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
516 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
517 <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
|
518 <ul> |
79
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
519 <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
|
520 <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
|
521 parts |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
522 <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
|
523 <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
|
524 <a href=http://lwn.net/Articles/253361/>three</a>, |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
525 <a href=http://lwn.net/Articles/254445/>four</a>, |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
526 <a href=http://lwn.net/Articles/255364/>five</a>. |
79
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
527 </li> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
528 <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
|
529 <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
|
530 <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
|
531 <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
|
532 </ul> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
533 <span id="mmap, DMA"> |
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> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
536 <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
|
537 <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
|
538 <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
|
539 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
|
540 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
541 <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
|
542 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
|
543 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
|
544 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
545 <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
|
546 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
|
547 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
|
548 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
549 <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
|
550 (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
|
551 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
552 <span id="Filesystems"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
553 <span id="Types of filesystems (see /proc/filesystems)"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
554 <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
|
555 <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
|
556 <ul> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
557 <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
|
558 </ul> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
559 </span> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
560 <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
|
561 <ul> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
562 <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
|
563 </ul> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
564 </span> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
565 <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
|
566 <ul> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
567 <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
|
568 <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
|
569 </ul> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
570 </span> |
39
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 id="Ram backed"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
573 <span id="ramfs"> |
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="tmpfs"> |
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 <span id="Synthetic"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
579 <span id="proc"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
580 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
581 <span id="sys"> |
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="internal (pipefs)"> |
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="usbfs"> |
69 | 586 http://www.linux-usb.org/USB-guide/x173.html |
587 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
|
588 http://www.linuxjournal.com/article/7466 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
589 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
590 <span id="devpts"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
591 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
592 <span id="rootfs"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
593 </span> |
53
87598e3a8e3c
Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents:
49
diff
changeset
|
594 <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
|
595 <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
|
596 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
|
597 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
|
598 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
|
599 |
87598e3a8e3c
Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents:
49
diff
changeset
|
600 <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
|
601 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
|
602 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
|
603 <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
|
604 |
87598e3a8e3c
Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents:
49
diff
changeset
|
605 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
606 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
607 <span id="Network"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
608 <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
|
609 <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
|
610 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
611 <span id="smb/cifs"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
612 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
613 <span id="FUSE"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
614 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
615 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
616 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
617 <span id="Filesystem drivers"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
618 <span id="Using"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
619 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
620 <span id="Writing"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
621 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
622 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
623 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
624 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
625 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
626 <span id="Drivers"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
627 <span id="Filesystem"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
628 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
629 <span id="Block (block layer, scsi layer)"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
630 <span id="SCSI layer"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
631 <ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
632 <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
|
633 <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
|
634 <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
|
635 <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
|
636 <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
|
637 </ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
638 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
639 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
640 <span id="Character"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
641 <span id="serial"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
642 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
643 <span id="keyboard"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
644 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
645 <span id="tty"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
646 <span id="pty"> |
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="audio"> |
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="null"> |
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="random/urandom"> |
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 id="zero"> |
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 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
658 <span id="DRI"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
659 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
660 <span id="Network"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
661 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
662 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
663 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
664 <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
|
665 <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
|
666 <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
|
667 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
668 <span id="Input core"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
669 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
670 <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
|
671 <pre> |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
672 physical |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
673 plip |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
674 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
|
675 ethernet |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
676 routing |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
677 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
|
678 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
|
679 </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
|
680 <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
|
681 <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
|
682 <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
|
683 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
684 <span id="Modules"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
685 <span id="Exported symbols"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
686 <p>EXPORT_SYMBOL() vs EXPORT_SYMBOL_GPL()</p> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
687 <p>List of exported symbols.</p> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
688 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
689 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
690 <span id="Busses"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
691 </span> |
69 | 692 <span id="Security"> |
693 <span id="Traditional Unix security model"> | |
694 Users, groups, files (rwx), signals. | |
695 </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
|
696 <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
|
697 <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
|
698 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
|
699 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
|
700 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
|
701 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
|
702 |
69 | 703 <span id="Posix capabilities"> |
704 http://www.gentoo.org/proj/en/hardened/capabilities.xml | |
705 </span> | |
706 <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
|
707 <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
|
708 <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 | 709 </span> |
710 </span> | |
79
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
711 <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
|
712 <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
|
713 </span> |
69 | 714 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
715 <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
|
716 <span id="Syscalls"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
717 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
718 <span id="ioctls"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
719 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
720 <span id="executable file formats"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
721 <span id="a.out"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
722 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
723 <span id="elf"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
724 <span id="css, bss, etc."> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
725 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
726 </span> |
69 | 727 <span id="scripts"> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
728 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
729 <span id="flat"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
730 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
731 <span id="misc"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
732 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
733 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
734 <span id="Device nodes"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
735 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
736 <span id="Pipes (new pipe infrastructure)"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
737 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
738 <span id="Synthetic filesystems (as API)"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
739 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
740 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
741 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
742 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
743 <span id="Hardware"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
744 <span id="Architectures"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
745 <pre> |
67
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
746 alpha |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
747 arm |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
748 avr32 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
749 blackfin |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
750 cris |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
751 frv |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
752 h8300 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
753 i386 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
754 ia64 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
755 m32r |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
756 m68k |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
757 m68knommu |
79
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
758 <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
|
759 mips |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
760 parisc |
79
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
761 <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
|
762 powerpc |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
763 <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
|
764 <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
|
765 <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
|
766 ppc |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
767 s390 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
768 sh |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
769 sh64 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
770 sparc |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
771 sparc64 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
772 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
|
773 <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
|
774 <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
|
775 v850 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
776 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
|
777 <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
|
778 xtensa |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
779 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
780 include/asm-generic |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
781 uml |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
782 </pre> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
783 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
784 <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
|
785 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
786 <span id="Busses"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
787 <span id="PCI, USB"> |
69 | 788 http://www.linux-usb.org/USB-guide/book1.html |
789 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
|
790 <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
|
791 <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
|
792 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
793 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
794 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
795 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
796 <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
|
797 <span id="Distibutions"> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
798 </span> |
49
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
799 <span id="Releases"> |
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
800 <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
|
801 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
802 <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
|
803 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
|
804 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
|
805 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
|
806 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
807 <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
|
808 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
|
809 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
|
810 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
|
811 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
|
812 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
|
813 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
814 <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
|
815 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
|
816 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
|
817 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
|
818 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
|
819 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
820 <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
|
821 <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
|
822 "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
|
823 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
|
824 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
|
825 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
|
826 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
|
827 (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
|
828 <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
|
829 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
830 <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
|
831 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
|
832 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
|
833 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
834 <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
|
835 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
|
836 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
|
837 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
|
838 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
|
839 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
|
840 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
|
841 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
|
842 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
|
843 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
|
844 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
|
845 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
|
846 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
|
847 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
|
848 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
849 <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
|
850 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
|
851 (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
|
852 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
|
853 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
|
854 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
|
855 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
|
856 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
|
857 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
858 <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
|
859 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
|
860 <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
|
861 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
862 <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
|
863 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
864 <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
|
865 <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
|
866 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
|
867 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
868 <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
|
869 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
|
870 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
|
871 |
49
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
872 </span> |
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
873 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
874 <span id="community"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
875 <pre> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
876 CATB |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
877 http://vger.kernel.org/vger-lists.html |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
878 http://www.tux.org/lkml/ |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
879 lwn, kernel traffic, kernelplanet. |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
880 http://www.kernel.org/faq |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
881 http://www.kernel.org/kdist/rss.xml |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
882 git/mercurial |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
883 Documentation/{CodingStyle,SubmitChecklist} |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
884 The four layer (developer, maintainer, subsystem, linus) model. |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
885 Politics |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
886 Stable API nonsense |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
887 Why reiser4 not in. |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
888 </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
|
889 </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
|
890 <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
|
891 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
892 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
893 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
894 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
895 <span id="Glossary"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
896 </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
|
897 </body> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
898 </html> |