Mercurial > hg > kdocs
annotate master.idx @ 104:7bcba6e2acc3
OLS papers are up to 2009 now.
author | Rob Landley <rob@landley.net> |
---|---|
date | Fri, 01 Jan 2010 04:54:13 -0600 |
parents | d00b5e91cba8 |
children |
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> |
103
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
35 <li><a href=makehelp.txt>Output of kernel's "make help".</a></li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
36 <li><a href=menuconfig>Menuconfig/kconfig help for each configuration option.</a></li> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
37 <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
|
38 <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
|
39 </ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
40 </span> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
41 <span id="Out on the web"> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
42 <ul> |
103
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
43 <li><a href=http://kernel.org/doc/man-pages>Linux man-pages website, includes HTML versions of man pages</a></li> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
44 <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
|
45 <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> |
103
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
46 <li><a href=ols>Ottawa Linux Symposium papers</a></li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
47 <li><a href=als1999>Atlanta Linux Showcase CD (1999)</a></li> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
48 <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
|
49 <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
|
50 </li> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
51 <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
|
52 <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
|
53 <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
|
54 <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
|
55 </ul> |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
56 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
57 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
58 <span id="Standards"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
59 <ul> |
103
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
60 <li><a href=http://www.opengroup.org/onlinepubs/9699919799/>Single Unix Specification v4</a> (Also known as Open Group Base Specifications issue 7, and POSIX 2008. See especially <a href=http://www.opengroup.org/onlinepubs/9699919799/idx/xsh.html>system interfaces</a>)</li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
61 <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>, <a href=http://busybox.net/~landley/c99-draft.html>html</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
|
62 <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
|
63 </ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
64 </span id="Standards"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
65 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
66 <span id="Translations"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
67 <ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
68 <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
|
69 <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
|
70 <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
|
71 <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
|
72 </ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
73 </span id="Translations"> |
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="Sources of documentation"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
76 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
77 <span id="Building from source"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
78 <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
|
79 <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
|
80 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
|
81 |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
82 <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
|
83 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
|
84 "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
|
85 |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
86 <blockquote> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
87 <pre> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
88 tar xvjf linux-2.6.??.tar.bz2 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
89 cd linux-2.6.?? |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
90 make menuconfig |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
91 make |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
92 make install |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
93 </pre> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
94 </blockquote> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
95 |
75
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
96 <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
|
97 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
|
98 |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
99 <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
|
100 <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
|
101 <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
|
102 "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
|
103 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
|
104 <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
|
105 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
|
106 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
|
107 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
|
108 |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
109 <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
|
110 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
|
111 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
|
112 |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
113 <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
|
114 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
|
115 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
|
116 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
|
117 </span> |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
118 |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
119 <span id="Configuring"> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
120 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
121 <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
|
122 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
|
123 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
|
124 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
|
125 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
|
126 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
|
127 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
128 <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
|
129 more thorough "make distclean" does.</p> |
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 <span id="Using an existing configuration"> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
132 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
133 <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
|
134 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
|
135 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
|
136 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
|
137 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
138 <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
|
139 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
|
140 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
|
141 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
|
142 |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
143 <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
|
144 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
|
145 <ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
146 <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
|
147 <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
|
148 <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
|
149 <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
|
150 <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
|
151 <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
|
152 </ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
153 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
154 </span> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
155 <span id="Creating a custom kernel configuration"> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
156 <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
|
157 <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
|
158 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
|
159 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
|
160 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
|
161 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
|
162 more information about it. This help text is |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
163 <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
|
164 |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
165 <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
|
166 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
167 <ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
168 <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
|
169 <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
|
170 <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
|
171 <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
|
172 <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
|
173 <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
|
174 <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
|
175 </ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
176 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
177 <p>Other configuration interfaces (functionally equivalent to menuconfig) |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
178 include:</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
179 <ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
180 <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
|
181 (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
|
182 <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
|
183 <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
|
184 </ul> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
185 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
186 </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
|
187 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
188 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
189 <span id="building"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
190 <span id="Building out of tree"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
191 </span> |
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="Installing"> |
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="running"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
196 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
197 <span id="debugging"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
198 <span id="QEMU"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
199 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
200 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
201 <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
|
202 <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
|
203 <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
|
204 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
|
205 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
|
206 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
|
207 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
208 <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
|
209 <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
|
210 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
|
211 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
|
212 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
|
213 (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
|
214 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
|
215 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
|
216 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
217 <blockquote> |
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>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
|
219 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
|
220 </pre> |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
221 </blockquote> |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
222 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
223 <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
|
224 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
|
225 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
|
226 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
|
227 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
|
228 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
|
229 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
|
230 (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
|
231 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
|
232 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
233 <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
|
234 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
|
235 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
|
236 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
|
237 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
|
238 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
|
239 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
|
240 (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
|
241 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
|
242 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
|
243 </span> |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
244 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
245 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
246 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
247 <span id="User Mode Linux"> |
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> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
250 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
251 <span id="Infrastructure"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
252 <span id="kconfig"> |
89
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
253 <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
|
254 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
|
255 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
|
256 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
|
257 and so on.</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
258 |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
259 <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
|
260 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
|
261 system.</p> |
ac8a8db09cd1
Fluff out master.idx still more.
Rob Landley <rob@landley.net>
parents:
79
diff
changeset
|
262 |
39
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="kbuild"> |
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 id="build and link (tmppiggy)"> |
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 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
269 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
270 |
47
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="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
|
272 <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
|
273 <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
|
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 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
|
276 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
277 </span> |
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="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
|
279 <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
|
280 <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
|
281 <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
|
282 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
283 </span> |
61
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
284 <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
|
285 <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
|
286 <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
|
287 </span> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
288 </span> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
289 <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
|
290 <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
|
291 <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
|
292 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
|
293 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
|
294 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
|
295 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
|
296 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
|
297 <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
|
298 <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
|
299 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
|
300 (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
|
301 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
|
302 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
|
303 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
|
304 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
|
305 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
|
306 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
307 <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
|
308 <blockquote> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
309 <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
|
310 chmod +x temp |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
311 ./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
|
312 </pre> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
313 </blockquote> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
314 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
315 <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
|
316 <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
|
317 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
318 <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
|
319 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
|
320 <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
|
321 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
|
322 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
|
323 </span> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
324 <span id="ELF"> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
325 <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
|
326 </span> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
327 </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
|
328 </span> |
61
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
329 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
330 <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
|
331 <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
|
332 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
|
333 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
|
334 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
335 <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
|
336 (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
|
337 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
|
338 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
|
339 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
340 <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
|
341 <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
|
342 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
|
343 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
|
344 distribution.</p> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
345 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
346 <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
|
347 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
|
348 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
|
349 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
|
350 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
|
351 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
|
352 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
|
353 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
354 <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
|
355 <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
|
356 <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
|
357 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
358 <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
|
359 <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
|
360 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
|
361 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
|
362 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
|
363 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
|
364 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
|
365 |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
366 <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
|
367 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
|
368 <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
|
369 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
|
370 </span> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
371 </span> |
3ea83bc83471
Add a little initial content under "Installing and using the kernel".
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
372 <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
|
373 </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
|
374 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
375 <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
|
376 <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
|
377 <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
|
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 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
380 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
381 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
382 <span id="Reading the source code"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
383 <span id="Source code layout"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
384 <span id="Following the boot process"> |
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="Major subsystems"> |
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 id="Architectures"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
389 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
390 </span> |
49
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
391 <span id="Concept vs implementation"> |
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
392 <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
|
393 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
|
394 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
|
395 of alternate implementations.</p> |
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
396 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
397 <span id="Concepts"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
398 <span id="rbtree"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
399 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
400 <span id="rcu"> |
69 | 401 <p>RCU stands for "Read Copy Update". The technique is a lockless way to manage data structures |
402 (such as linked lists or trees) on SMP systems, using a specific sequence of reads and updates, | |
403 plus a garbage collection step, to avoid the need for locks in both the read and the update | |
404 paths.</p> | |
405 | |
406 <p>RCU was invented by Paul McKenney, who maintains an excellent page of | |
407 <a href=http://www.rdrop.com/users/paulmck/RCU/>RCU documentation</a>. | |
408 The Linux kernel also contains some <a href=Documentation/RCU>additional RCU | |
409 Documentation</a>.</p> | |
410 | |
75
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
411 <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
|
412 <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
|
413 <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
|
414 |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
415 <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
|
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 <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
|
418 </ul> |
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
419 |
39
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 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
422 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
423 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
424 <span id="Kernel infrastructure"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
425 <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
|
426 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
427 <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
|
428 <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
|
429 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
|
430 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
|
431 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
|
432 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
|
433 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
|
434 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
|
435 <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
|
436 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
437 <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
|
438 <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
|
439 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
|
440 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
|
441 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
|
442 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
443 <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
|
444 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
|
445 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
|
446 Traffic.</p> |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
447 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
448 <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
|
449 <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
|
450 <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
|
451 <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
|
452 <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
|
453 <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
|
454 <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
|
455 <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
|
456 <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
|
457 <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
|
458 <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
|
459 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
|
460 <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
|
461 <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
|
462 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
|
463 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
464 <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
|
465 <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
|
466 <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
|
467 <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
|
468 <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
|
469 <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
|
470 <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
|
471 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
|
472 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
|
473 <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
|
474 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
475 <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
|
476 <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
|
477 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
478 <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
|
479 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
|
480 <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
|
481 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
|
482 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
|
483 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
484 <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
|
485 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
486 <ul> |
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/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
|
488 <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
|
489 <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
|
490 <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
|
491 <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
|
492 <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
|
493 </ul> |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
494 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
495 <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
|
496 <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
|
497 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
|
498 <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
|
499 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
|
500 <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
|
501 <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
|
502 <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
|
503 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
504 <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
|
505 </span> |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
506 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
507 <span id="fork, exec"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
508 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
509 <span id="sleep"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
510 </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
|
511 <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
|
512 <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
|
513 </span> |
67
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
514 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
515 <span id="Timers"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
516 <span id="Interrupt handling"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
517 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
518 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
519 <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
|
520 <ul> |
79
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
521 <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
|
522 <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
|
523 parts |
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/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
|
525 <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
|
526 <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
|
527 <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
|
528 <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
|
529 </li> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
530 <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
|
531 <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
|
532 <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
|
533 <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
|
534 </ul> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
535 <span id="mmap, DMA"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
536 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
537 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
538 <span 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
|
539 <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
|
540 <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
|
541 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
|
542 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
543 <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
|
544 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
|
545 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
|
546 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
547 <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
|
548 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
|
549 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
|
550 |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
551 <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
|
552 (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
|
553 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
554 <span id="Filesystems"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
555 <span id="Types of filesystems (see /proc/filesystems)"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
556 <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
|
557 <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
|
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 <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
|
560 </ul> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
561 </span> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
562 <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
|
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 <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
|
565 </ul> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
566 </span> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
567 <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
|
568 <ul> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
569 <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
|
570 <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
|
571 </ul> |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
572 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
573 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
574 <span id="Ram backed"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
575 <span id="ramfs"> |
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 id="tmpfs"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
578 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
579 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
580 <span id="Synthetic"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
581 <span id="proc"> |
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="sys"> |
103
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
584 <p>Although the sysfs filesystem probably wasn't intentionally named after the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
585 greek myth about pushing a rock to the top of a hill only to see it forever |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
586 roll back down again, this is a remarkably accurate analogy for the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
587 task of documenting sysfs.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
588 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
589 <p>The maintainers of sysfs do not believe in a stable API, and change |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
590 userspace-visible elements from release to release. The rationale is that |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
591 sysfs exports information from inside the kernel to outside the kernel |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
592 (what API doesn't?) and the kernel internals change, thus sysfs changes to |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
593 reflect it. This doesn't explain why sysfs regularly changes things that aren't |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
594 dictated by kernel internals, such as moving partition directories under block |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
595 device directories after initially exporting them at the same level, moving |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
596 /sys/block into /sys/devices, removing the "devices" symlink, and so on.<p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
597 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
598 <p>In reality, sysfs is treated as a private API exported for the use of the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
599 "udev" program, which is maintained by the same developers as sysfs. Any |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
600 attempt to use sysfs directly from other programs is condemned by sysfs' |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
601 authors as an abuse of sysfs, and attemps to document it are actively resisted |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
602 and ridiculed. (Yes, you must often update udev when you update the kernel.)</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
603 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
604 <p>The following documentation reflects the current state of sysfs. This is |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
605 likely to change in future, as its maintainers break compatability with |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
606 existing userspace programs they didn't personally write.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
607 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
608 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
609 <span id="internal (pipefs)"> |
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="usbfs"> |
69 | 612 http://www.linux-usb.org/USB-guide/x173.html |
613 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
|
614 http://www.linuxjournal.com/article/7466 |
39
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 id="devpts"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
617 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
618 <span id="rootfs"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
619 </span> |
53
87598e3a8e3c
Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents:
49
diff
changeset
|
620 <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
|
621 <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
|
622 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
|
623 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
|
624 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
|
625 |
87598e3a8e3c
Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents:
49
diff
changeset
|
626 <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
|
627 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
|
628 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
|
629 <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
|
630 |
87598e3a8e3c
Quick note about devfs (obsolete) and first half of hotplug-history.html.
Rob Landley <rob@landley.net>
parents:
49
diff
changeset
|
631 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
632 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
633 <span id="Network"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
634 <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
|
635 <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
|
636 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
637 <span id="smb/cifs"> |
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 id="FUSE"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
640 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
641 </span> |
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="Filesystem drivers"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
644 <span id="Using"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
645 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
646 <span id="Writing"> |
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> |
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 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
652 <span id="Drivers"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
653 <span id="Filesystem"> |
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="Block (block layer, scsi layer)"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
656 <span id="SCSI layer"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
657 <ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
658 <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
|
659 <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
|
660 <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
|
661 <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
|
662 <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
|
663 </ul> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
664 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
665 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
666 <span id="Character"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
667 <span id="serial"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
668 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
669 <span id="keyboard"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
670 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
671 <span id="tty"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
672 <span id="pty"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
673 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
674 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
675 <span id="audio"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
676 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
677 <span id="null"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
678 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
679 <span id="random/urandom"> |
103
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
680 <p><a href=http://eprint.iacr.org/2006/086.pdf>Analysis of the Linux Random Number Generator</a> - Zvi Gutterman, Benny Pinkas, Tzachy Reinman (iacr 2006)</p> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
681 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
682 <span id="zero"> |
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> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
685 <span id="DRI"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
686 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
687 <span id="Network"> |
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 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
691 <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
|
692 <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
|
693 <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
|
694 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
695 <span id="Input core"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
696 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
697 <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
|
698 <pre> |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
699 physical |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
700 plip |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
701 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
|
702 ethernet |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
703 routing |
1f41643cfe8e
Move and update the cross compile stuff, note differences between pipe/file/tty,
Rob Landley <rob@landley.net>
parents:
67
diff
changeset
|
704 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
|
705 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
|
706 </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
|
707 <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
|
708 <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
|
709 <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
|
710 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
711 <span id="Modules"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
712 <span id="Exported symbols"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
713 <p>EXPORT_SYMBOL() vs EXPORT_SYMBOL_GPL()</p> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
714 <p>List of exported symbols.</p> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
715 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
716 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
717 <span id="Busses"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
718 </span> |
69 | 719 <span id="Security"> |
720 <span id="Traditional Unix security model"> | |
721 Users, groups, files (rwx), signals. | |
722 </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
|
723 <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
|
724 <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
|
725 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
|
726 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
|
727 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
|
728 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
|
729 |
69 | 730 <span id="Posix capabilities"> |
731 http://www.gentoo.org/proj/en/hardened/capabilities.xml | |
732 </span> | |
733 <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
|
734 <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
|
735 <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 | 736 </span> |
737 </span> | |
79
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
738 <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
|
739 <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
|
740 </span> |
69 | 741 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
742 <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
|
743 <span id="Syscalls"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
744 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
745 <span id="ioctls"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
746 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
747 <span id="executable file formats"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
748 <span id="a.out"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
749 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
750 <span id="elf"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
751 <span id="css, bss, etc."> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
752 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
753 </span> |
69 | 754 <span id="scripts"> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
755 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
756 <span id="flat"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
757 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
758 <span id="misc"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
759 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
760 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
761 <span id="Device nodes"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
762 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
763 <span id="Pipes (new pipe infrastructure)"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
764 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
765 <span id="Synthetic filesystems (as API)"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
766 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
767 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
768 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
769 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
770 <span id="Hardware"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
771 <span id="Architectures"> |
103
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
772 <p>Linux supports many more hardware platforms than its original PC. |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
773 The first modern port of Linux was to the DEC Alpha processor |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
774 [TODO: open sources]</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
775 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
776 <p>The most widely used modern ports are i386, x86-64, ARM, mips, and powerpc, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
777 all of which are supported by the emulator <a href=http://qemu.org>QEMU</a>. |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
778 Bootable kernel and filesystem images for those platforms (bootable under |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
779 QEMU) are available <a href=http://landley.net/code/firmware>here</a>.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
780 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
781 <p>Alpha, sparc, parisc, itanium are primarily of historical interest. |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
782 Each of those platforms used to have a bigger developer community than it |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
783 does now, but has peaked and gone into a pronounced decline.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
784 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
785 <p>Most of the other platforms have special-purpose niches. For example, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
786 super-hitachi is widely used in the Japanese auto industry.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
787 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
788 <pre> |
67
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
789 avr32 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
790 blackfin |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
791 cris |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
792 frv |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
793 h8300 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
794 i386 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
795 m32r |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
796 m68k |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
797 s390 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
798 sh |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
799 sh64 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
800 sparc |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
801 sparc64 |
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
802 v850 |
103
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
803 xtensa |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
804 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
805 </pre> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
806 <span id="alpha"> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
807 <p>The now-obsolete |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
808 <a href=http://en.wikipedia.org/wiki/DEC_Alpha>DEC Alpha</a> was one of the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
809 first 64-bit processors, one of the fastest and cleanest processor |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
810 designs of its time, and still has fans to this day. Despite excellent |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
811 performance and widespread use in supercomputers, manufacturing of |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
812 Alpha was |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
813 <a href=http://news.zdnet.co.uk/hardware/0,1000000091,2127122,00.htm>repeatedly |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
814 disrupted</a> and a series of acquisitions by PC vendors uninterested in any |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
815 non-PC architecture. Despite pressure from users and even |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
816 <a href=http://www.ftc.gov/opa/1998/04/digitala.shtm>government intervention</a> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
817 to preserve the Alpha processor, new development of the hardware ceased |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
818 towards the end of the 1990's.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
819 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
820 <p>The legacy of Alpha lives on in the x86-64 architecture. When |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
821 <a href=http://www.chron.com/content/chronicle/page1/98/01/27/com.html>Compaq |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
822 bought DEC</a> it acquired the rights to the Alpha processor, but not the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
823 chip design team. Many ex-Alpha chip designers wound up at AMD, where they |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
824 <a href=http://arstechnica.com/cpu/3q99/athlon/athlon-1.html>designed |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
825 the Athlon</a> (x86) and Opteron (x86-64) processors. Intel also |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
826 <a href=http://www.news.com/Compaq-Life-after-Alpha/2100-1001_3-268986.html?tag=st.ref.goo>licensed</a> and <a href=http://www.news.com/Intel-hyperthreading-shows-Digital-roots/2100-1001_3-961495.html?tag=st.ref.goo>incorporated</a> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
827 Alpha technology into all its processor lines. Internally, modern PC |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
828 processors owe more to the Alpha than to the original 8086 processor.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
829 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
830 <p>Alpha is of great historical importance to Linux as the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
831 <a href=http://www.oreilly.com/catalog/opensources/book/linus.html>first non-PC |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
832 port incorporated into Linus's tree</a>, as well as the first 64-bit port. |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
833 <a href=http://qemu.org>QEMU</a> recently grew preliminary support for |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
834 emulating Alpha processors.</a> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
835 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
836 <ul> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
837 <li><a href=http://www.alphalinux.org/>AlphaLinux.org</a></li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
838 </ul> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
839 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
840 </span> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
841 <span id="arm"> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
842 <p>The ARM processor is the most popular embedded processor, powering 80-90% of |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
843 the cell phone market and most battery powered handheld devices. The iPod, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
844 iPhone, Nokia N800, and Nintendo DS are all ARM-based.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
845 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
846 <p>While the x86 family has the world's leading price/performance ratio, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
847 the ARM processor family has the best ratio power consumption to performance. |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
848 By delivering the best bang for the watt, ARM has become overwhelmingly popular |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
849 in embedded devices.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
850 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
851 <p>ARM originally for "Acorn RISC Machine", a processor designed by a British |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
852 company in the early 80's to replace the 8-bit 6502 in Acorn's successful BBC |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
853 Micro. Unlike most RISC design efforts which focused on using RISC techniques |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
854 to increase performance, Acorn focused on creating a small, simple processor |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
855 design, initially with under 25,000 transistors (these days with about 43,000 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
856 transistors worth of core logic, before adding a cache and memory controller). |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
857 In 1990, the processor design team moved to a new company, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
858 <a href=http://www.arm.com>ARM Ltd</a>, which doesn't manufacture chips but |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
859 instead licenses its designs to other companies interested in fabricating |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
860 chips. This also allows ARM designs to be easily customized, and |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
861 embedded in things like network cards or system-on-chip designs.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
862 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
863 <p>Arm processor generations are divided by "architecture", which among other |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
864 things indicates the instruction set the processor can run:</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
865 <ul> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
866 <li>ARMv3 - The oldest 32-bit ARM architecture, now considered obsolete.</li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
867 <li>ARMv4 - The oldest architecture still in widespread use.</li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
868 <li>ARMv5 - The oldest architecture still in production. The baseline |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
869 modern" architecture.</li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
870 <li>ARMv6,v7 - An architecture ARM inc has used NDA terms to prevent QEMU |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
871 developers from releasing support for (apparently because it wants to sell |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
872 proprietary emulators, and considers a GPLed emulator a threat). These |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
873 processors run ARMv4/v5 code.</li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
874 </ul> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
875 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
876 <p>The newest archtecture that can be emulated by |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
877 <a href=http://qemu.org>QEMU</a> is ARMv5TEJ (I.E. ARMv5 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
878 with the Thumb, Enhanced DSP, and Java extensions). Unfortunately, ARM Ltd. |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
879 has leveraged its NDAs with prominent open source developers to |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
880 <a href=http://lists.gnu.org/archive/html/qemu-devel/2007-02/msg00426.html>explicitly |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
881 forbid</a> them from contributing ARMv6 support to QEMU, apparently because |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
882 it's trying to sell a competing proprietary emulation product.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
883 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
884 <p>Newer ARM processors run older instruction sets, and are thus backwards |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
885 compatible. The advantage of newer instruction sets is that they execute |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
886 faster (and are thus more energy efficient), and some produce smaller binary |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
887 sizes (the "Thumb" extensions are designed specifically for small code size, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
888 but may exchange performance to get it). Recompiling an ARMv4 program as ARMv5 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
889 usually results in a 25% performance improvement.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
890 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
891 <ul> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
892 <li><a href="http://www.arm.com/products/CPUs/architecture.html">The ARM instruction set architecture</a> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
893 <li><a href="http://www.elinux.org/ARM_Processor">List of ARM processors</a></li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
894 <li><a href="http://www.arm.linux.org.uk">The ARM Linux web page</a></li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
895 <li><a href=http://www.arm.linux.org.uk/developer/machines/>List of |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
896 over 1500 known arm systems</a>.</li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
897 <li><a href=http://www.ot1.com/arm/armchap1.html>History of the ARM CPU</a></li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
898 </ul> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
899 </span> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
900 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
901 <span id="ia64"> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
902 <p>The Itanium was a failed attempt to create a 64-bit successor to the x86, a |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
903 role that went to AMD's x86-64 design instead. In 1994, Intel partnered with |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
904 HP to produce a successor to both x86 and HP's PA-RISC, with a new instruction |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
905 set ("ia64") fundamentally different from both. To support software written |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
906 for the older processors, the designers included a complete implementation of |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
907 each, because the new chip was already so big and complex that including _two_ |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
908 entire previous processors wasn't a significant increase to either. (If this |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
909 sounds unlikely to end well...)</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
910 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
911 <p>The result was a late, slow, inefficient chip that was difficult to |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
912 manufacture, more expensive than available alternatives, difficult to write |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
913 efficient compilers for, quickly nicknamed "Itanic" and essentially ignored by |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
914 the market. (This was remarkably similar to Intel's earlier |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
915 <a href=http://en.wikipedia.org/wiki/Intel_iAPX_432>i432 project</a>, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
916 a 1970's attempt to jump straight from the 8 bit 8080 to a |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
917 32-bit processor which also resulted resulted in a slow, late, overcomplicated |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
918 and overpriced design which the industry ignored. The i432 was finally killed |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
919 off by the arrival of the 80286, which outperformed it by a factor of four. |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
920 History does repeat itself.)</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
921 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
922 <p>For comparison purposes, the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
923 <a href=http://www.failuremag.com/arch_history_edsel.html>Ford Edsel</a> sold |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
924 64,000 units in its first year. Itanium took over four years to sell that |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
925 many: |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
926 only <a href=http://news.com.com/2100-1001-276880.html?tag=nl>500 units in |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
927 2001</a>, <a href=http://www.theinquirer.net/?article=7983>3,500 in 2002</a>, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
928 and around |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
929 <a href=http://www.theregister.co.uk/2005/02/28/itanium_04_sales/>19,000 in |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
930 2003 and 30,000 in 2004</a>. In 2005, x86-64 systems emerged as the new |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
931 64-bit PC standard, at which point Dell and IBM discontinued their Itanium |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
932 servers and HP discontinued its Itanium workstations.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
933 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
934 <p>To give a <a href=http://media.corporate-ir.net/media_files/irol/19/197211/press/Q12007EarningsRelease.pdf>sense of perspective</a>, in the first quarter of |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
935 2007, the licensees of ARM Inc. shipped 724 million ARM processors. (In one |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
936 quarter, not a full year.) In the third quarter of 2007, the PC market shipped |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
937 <a href=http://www.news.com/8301-10784_3-9825843-7.html>http://www.news.com/8301-10784_3-9825843-7.html>68.1 million</a> systems (mostly x86-64). |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
938 Over in <a href=http://www.wikinvest.com/concept/Game_Consoles_Wars:_Xbox_360_vs._PS3_vs._Wii>PowerPC land</a>, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
939 from their launch through August 2007 the Wii had sold 9 million units, Xbox |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
940 360 8.9 million, and Playstation 3 3.7 million (all three PowerPC based). |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
941 Shipments of |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
942 <a href=http://www.mdronline.com/publications/epw/issues/epw_31.html>many other |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
943 interesting processor families</a> each number in the millions of units |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
944 annually</a>. The Itanium's cumulative total of 0.05 million |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
945 in its first four years combined doesn't even show up on the same graph.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
946 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
947 <p>The history of Itanium through 2003 was extensively detailed |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
948 <a href=http://www.catb.org/~esr/halloween/halloween9.html#itanium>here</a>. |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
949 A more recent obituary for the chip is zdnet's |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
950 <a href=http://news.zdnet.com/2100-9584_22-5984747.html>Itanium: A cautionary |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
951 tale</a>.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
952 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
953 <p>Despite the Itanium's failure to gain any marketplace traction |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
954 (and <a href=http://www.theinquirer.net/en/inquirer/news/2003/02/24/linus-torvalds-itanium-threw-out-all-the-good-parts-of-the-x86>Linus Torvalds' |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
955 personal disdain for the chip</a>, the billions |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
956 of dollars poured into Itanium resulted in lots of corporate engineers assigned |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
957 to developing extensive Linux support for this virtually nonexistent hardware. |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
958 But despite a documented instruction set, no open source emulators run Itanium |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
959 code due to lack of interest. (HP does offer a binary-only Itanium |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
960 emulator called |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
961 <a href=http://www.hpl.hp.com/research/linux/ski/download.php>SKI</a>, last |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
962 updated in 2004.)</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
963 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
964 <p>Silicon Graphics still produces Itanium systems. HP no longer produces |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
965 Itanium workstations, but offers some Itanium servers. Intel still spends |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
966 money on it.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
967 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
968 </span> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
969 <span id="m68knommu"> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
970 <p>The most popular nommu 68k variant is Coldfire, which uses a subset of the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
971 68k instruction set and has no memory management unit. Coldfire is currently |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
972 used in a small number of high volume devices. (I.E. Coldfire isn't used in |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
973 many different products, but the products it's used in are produced in high |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
974 volume.)</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
975 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
976 <p><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)</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
977 </span> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
978 <span id="mips"> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
979 <p>Mips is probably the main competitor to ARM. One advantage of MIPS is its |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
980 availability as a FPGA program, allowing easy prototyping of custom |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
981 hardware.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
982 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
983 <p>SGI produced primarily MIPS systems back in the Irix days. Sony's |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
984 Playstation 2, and PSP are MIPS based, as are some Tivo and Linksys devices.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
985 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
986 <p><a href=http://en.wikipedia.org/wiki/MIPS_architecture>MIPS architecture</a></a> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
987 <p><a href=http://linux-mips.org>The Linux/MIPS web page</a></p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
988 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
989 </span> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
990 <span id="parisc"> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
991 <p>The PA-RISC is from Hewlett Packard. It was scheduled to be discontinued in |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
992 favor of the Itanium, but the failure of ia64 led to a restart of |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
993 PA-RISC development.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
994 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
995 <a href=ols/2002/ols2002-pages-183-190.pdf>Porting Drivers to HP ZX1</a> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
996 </span> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
997 <span id="powerpc"> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
998 <p>The PowerPC was created in the early 90's by a parnership between IBM, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
999 Apple, and Motorola. Apple switched to x86-64 in 2005 and Motorola spun off |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1000 its processor division as Freescale (which now also manufactures Coldfire and |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1001 ARM processors). But IBM is still strongly behind PowerPC, and the various |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1002 users of PowerPC formed a <a href=http://powerpc.org>consortium</a> to |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1003 promote and develop it.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1004 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1005 <p>PowerPC is commonly used in high volume set-top boxes and game consoles |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1006 such as the PlayStation 3, Xbox and Xbox 360, and Nintendo Wii. PowerPC |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1007 is the third most common processor type in the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1008 <a href=http://top500.org>Top 500</a> supercomputers list, and was used in |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1009 older cell phones (before Motorola spun off Freescale).</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1010 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1011 <p>The most interesting recent PowerPC development is the <a href=http://en.wikipedia.org/wiki/Cell_microprocessor>Cell processor</a>, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1012 which combines a PowerPC core with 8 DSP-like "synergistic processing |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1013 units" which can offload compute-intensive tasks like 3D acceleration, |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1014 compression, encryption, and so on.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1015 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1016 <p>The PowerPC 7xx is the "386" of PowerPC systems, meaing most modern PowerPC |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1017 processors can run code compiled fro PowerPC 7xx (although such older code |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1018 may not take full advantage of the new chip's capabilities, especially |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1019 with regard to performance). The PowerPC family also has |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1020 <a href=http://en.wikipedia.org/wiki/PowerPC_970>64-bit variants</a> (an |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1021 early version of which Apple marketed as the "G5") that can still run 32-bit |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1022 PowerPC code.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1023 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1024 <p>The main exceptions to 7xx compatability are two embedded subsets of the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1025 PowerPC, which were separately developed by IBM (the 4xx series) and Motorola |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1026 (the 8xx series) for use in low power devices. These are stripped down PowerPC |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1027 processors in roughly the same way Coldfire was a stripped down 68k: |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1028 instructions were removed from the architecture to get the transistor count |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1029 down, and thus code must be recompiled to avoid using those instructions. |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1030 Unfortunately, the two vendors chose a different subset of the PowerPC |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1031 instruction set, so code compiled for 4xx won't run on 8xx, and vice versa.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1032 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1033 <p>The 4xx line was purchased by <a href=http://www.amcc.com/Embedded/>AMCC</a> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1034 (which has the most annoying website design ever, click one of the tabs to |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1035 get it to STOP MOVING). Freescale mostly seems to have lost interest in the |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1036 8xx now that Motorola has switched its' cell phones to arm, but information |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1037 is <a href=http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=0162468rH3bTdGJk194204>still available</a>.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1038 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1039 <p>The Linux PowerPC developers hang out on the #mklinux channel on |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1040 irc.freenode.net.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1041 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1042 <a href=ols/2001/iseries.pdf>The Linux Kernel on iSeries</a> (OLS 2001) |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1043 <a href=ols/2001/ppc64.pdf>PowerPC 64-bit Kernel Internals</a> (OLS 2001) |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1044 <a href=http://perso.magic.fr/l_indien/qemu-ppc/PowerPC_ref/PowerPC_ref.html>PowerPC implementation reference for QEMU</a> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1045 </span> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1046 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1047 <span id="ppc"> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1048 <p>The "ppc" architecture is obsolete, and |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1049 <a href="Documentation/feature-removal-schedule.txt">scheduled for removal |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1050 in June 2008</a>.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1051 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1052 <p>Once upon a time, ARCH=ppc was for 32-bit PowerPC processors (7xx and up), |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1053 and ARCH=powerpc was for 64-bit (970/G5 and up), but the two architectures were |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1054 merged together and support for most boards has since been ported over to |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1055 powerpc. If you care about any of the remaining boards, bug the powerpc |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1056 maintainers.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1057 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1058 <p>Note that ARCH=ppc does not support newer features like "make |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1059 headers_install", but ARCH=powerpc does.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1060 </span> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1061 <span id="um"> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1062 <p>User Mode Linux is a port of Linux to run as a userspace program. Instead |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1063 of talking to the hardware, it makes system calls to the C library. Instead |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1064 of using a memory managment unit it makes clever use of mmap.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1065 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1066 <p>UML is sort of like an emulator: it can run Linux programs under itself |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1067 (its processes show up as threads to the host system). It's sometimes used |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1068 as a superior "fakeroot", and sometimes used to provide an emulated system |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1069 for honeypots or shared hosting services. It's an excellent tool for |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1070 learning and debugging the Linux kernel, because you can use all the normal |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1071 userspace debugging techniques, up to and including putting "printf()" |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1072 statements into the source code to see what it's doing. (It's great for |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1073 developing things like filesystems, not so good for device drivers.)</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1074 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1075 <ul> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1076 <li><a href=ols/2001/uml.pdf>User-Mode Linux</a> (OLS 2001)</li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1077 <li><a href=ols/2002/ols2002-pages-107-116.pdf>Making Linux Safe for Virtual Machines</a> (OLS 2002)</li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1078 <li><a href=http://landley.net/writing/docs/UML.html>User Mode Linux HOWTO</a></li> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1079 </ul> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1080 </span> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1081 <span id="x86_64"> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1082 <p><a href=http://x86-64.org>x86-64</a> is the 64-bit successor to x86, and |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1083 the new dominant PC processor. Essentially all current PCs are now shipping |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1084 with x86-64 processors, including traditionally non-x86 architectures such |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1085 as Apple's Macintosh and Sun's servers.</p> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1086 |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1087 |
75
baf5a8bc72a0
Sprinkle in the OLS 2001 papers. (Several were about user space only things,
Rob Landley <rob@landley.net>
parents:
69
diff
changeset
|
1088 <a href=ols/2001/x86-64.pdf>Porting Linux to x86-64</a> (OLS 2001) |
103
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1089 </span> |
d00b5e91cba8
Changes that have accumulated over the past couple years.
Rob Landley <rob@landley.net>
parents:
89
diff
changeset
|
1090 |
67
992a411c98b6
History of the process scheduler, notes about cross compiling, and some tweaks.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
1091 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1092 include/asm-generic |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1093 uml |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1094 </pre> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1095 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1096 <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
|
1097 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1098 <span id="Busses"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1099 <span id="PCI, USB"> |
69 | 1100 http://www.linux-usb.org/USB-guide/book1.html |
1101 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
|
1102 <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
|
1103 <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
|
1104 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1105 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1106 </span> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1107 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1108 <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
|
1109 <span id="Distibutions"> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1110 </span> |
49
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
1111 <span id="Releases"> |
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
1112 <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
|
1113 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
1114 <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
|
1115 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
|
1116 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
|
1117 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
|
1118 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
1119 <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
|
1120 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
|
1121 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
|
1122 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
|
1123 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
|
1124 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
|
1125 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
1126 <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
|
1127 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
|
1128 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
|
1129 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
|
1130 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
|
1131 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
1132 <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
|
1133 <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
|
1134 "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
|
1135 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
|
1136 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
|
1137 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
|
1138 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
|
1139 (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
|
1140 <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
|
1141 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
1142 <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
|
1143 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
|
1144 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
|
1145 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
1146 <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
|
1147 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
|
1148 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
|
1149 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
|
1150 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
|
1151 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
|
1152 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
|
1153 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
|
1154 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
|
1155 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
|
1156 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
|
1157 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
|
1158 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
|
1159 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
|
1160 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
1161 <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
|
1162 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
|
1163 (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
|
1164 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
|
1165 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
|
1166 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
|
1167 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
|
1168 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
|
1169 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
1170 <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
|
1171 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
|
1172 <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
|
1173 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
1174 <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
|
1175 <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
|
1176 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
|
1177 |
4b9263d24970
More links, and some material on the history of Linux source control.
Rob Landley <rob@landley.net>
parents:
75
diff
changeset
|
1178 <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
|
1179 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
|
1180 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
|
1181 |
49
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
1182 </span> |
aa424ac2ce30
Generate index.html from master.idx.
Rob Landley <rob@landley.net>
parents:
47
diff
changeset
|
1183 </span> |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1184 <span id="community"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1185 <pre> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1186 CATB |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1187 http://vger.kernel.org/vger-lists.html |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1188 http://www.tux.org/lkml/ |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1189 lwn, kernel traffic, kernelplanet. |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1190 http://www.kernel.org/faq |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1191 http://www.kernel.org/kdist/rss.xml |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1192 git/mercurial |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1193 Documentation/{CodingStyle,SubmitChecklist} |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1194 The four layer (developer, maintainer, subsystem, linus) model. |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1195 Politics |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1196 Stable API nonsense |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1197 Why reiser4 not in. |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1198 </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
|
1199 </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
|
1200 <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
|
1201 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
1202 </span> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
1203 |
39
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1204 |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1205 <span id="Glossary"> |
33e0b133a517
Skeleton source file for the master index.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1206 </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
|
1207 </body> |
0df6348fc276
Teach indexsections to output index and contents in one pass, and put index
Rob Landley <rob@landley.net>
parents:
40
diff
changeset
|
1208 </html> |