changeset 75:baf5a8bc72a0

Sprinkle in the OLS 2001 papers. (Several were about user space only things, and thus skipped for the moment.) Also add some information about configuring and building a kernel, more about RCU, and a few other tweaks.
author Rob Landley <>
date Wed, 17 Oct 2007 05:37:22 -0500
parents 5b3c02758561
children 75251bfa6b33
files master.idx
diffstat 1 files changed, 81 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/master.idx	Tue Oct 16 22:24:42 2007 -0500
+++ b/master.idx	Wed Oct 17 05:37:22 2007 -0500
@@ -67,7 +67,48 @@
 <span id="Building from source">
   <span id="User interface">
+<p>Building source packages is usually a three step process: configure, build,
+and install.</p>
+<p>The Linux kernel is configured with the command "make menuconfig", built
+with the command "make", and installed either manually or with the command
+"make install".</p>
+<p>For a description of the make options and targets, type <a href=makehelp.txt>
+make help</a>.</p>
+<span id="Get and extract the source">
+<p>The Linux kernel source code is distributed by
+<a href=></a> as tar archives.  Grab the most recent
+"stable" release (using the tiny little letter F link) to grab a file of the
+form "linux-2.6.*.tar.bz2" from the
+<a href=>Linux 2.6 releases
+directory</a>.  Then extract this archive with the command "tar xvjf
+linux-2.6.*.tar.bz2".  (Type the command "man tar" for more information on the
+tar command.)  Then cd into the directory created by extracting the archive.</p>
+<p>To obtain other Linux kernel versions (such as development releases and
+kernels supplied by <a href="#Distibutions">distributions</a>)
+see <a href="Following_Linux_development">Following Linux development</a>.</p>
+<p>To return your linux kernel source directory to its original (unconfigured)
+condition after configuring and building in it, either either delete the
+directory with "rm -r" and re-extract it from the tar archive, or run the
+command "make distclean".</p>
     <span id="Configuring">
+<p>The Linux configuration system is called <a href=Documentation/kconfig-language.txt>Kconfig</a>.
+The most common user interface for kconfig is menuconfig, an interactive terminal based menuing
+interface invoked through the makefiles via "<b>make menuconfig</b>".  A simpler text based
+question and answer interface (which does not require curses support or a tty) is available as
+"<b>make config</b>".  Graphical interfaces are available as "<b>make xconfig</b>" (based on QT)
+and "<b>make gconfig</b>" (based on GTK).  For more information, see
+<a href=makehelp.txt>make help</a></p>
+<p>The configuration interfaces present 
     <span id="building">
       <span id="Building out of tree">
@@ -280,6 +321,15 @@
 The Linux kernel also contains some <a href=Documentation/RCU>additional RCU
+<p>RCU cannot be configured out of the kernel, but the kconfig symbol
+<a href=menuconfig/lib-Kconfig.debug.html#RCU_TORTURE_TEST>CONFIG_RCU_TORTURE_TEST</a> controls the
+<a href=Documentation/RCU/torture.txt>RCU Torture test module</a>.</p>
+<li><a href=ols/2001/read-copy.pdf>Read-Copy Update</a> (OLS 2001)</li>
@@ -293,8 +343,9 @@
 context switch, to find the next task to switch to.  This served almost
 unchanged through the 2.4 series, but didn't scale to large numbers of
 processes, nor to SMP.  By 2001 there were calls for
-change (such as <a href=ols/2001/elss.pdf>this OLS paper</a>), and the
-issue <a href=>came to a head</a> in December 2001.</p>
+change (such as the OLS paper <a href=ols/2001/elss.pdf>Enhancing Linux
+Scheduler Scalability</a>), and the issue
+<a href=>came to a head</a> in December 2001.</p>
 <p>In January 2002, Ingo Molnar
 <a href=>introduced the "O(1)" process scheduler</a> for the 2.5 kernel series, a design
@@ -370,6 +421,9 @@
     <span id="sleep">
+    <span id="realtime">
+<p><a href=ols/2001/rtai.pdf>The Real-Time Application Interface</a> (OLS 2001, obsolete)</a></p>
+    </span>
   <span id="Timers">
     <span id="Interrupt handling">
@@ -383,6 +437,7 @@
 <a href=>one</a>
 <a href=>two</a>
 <a href=>three</a></li>
+    </ul>
     <span id="mmap, DMA">
@@ -405,7 +460,7 @@
     <span id="Filesystems">
       <span id="Types of filesystems (see /proc/filesystems)">
         <span id="Block backed">
+<p><a href=ols/2001/jffs2.pdf>JFFS: The Journalling Flash Filesystem</a> (OLS 2001)</p>
         <span id="Ram backed">
           <span id="ramfs">
@@ -423,7 +478,7 @@
           <span id="usbfs">
           <span id="devpts">
@@ -444,6 +499,7 @@
         <span id="Network">
           <span id="nfs">
+<p><a href=ols/2001/nfsv4_ols.pdf>Linux NFS Version 4: Implementation and Administration</a> (OLS 2001)</a></p>
           <span id="smb/cifs">
@@ -498,8 +554,8 @@
   <span id="Hotplug">
-    local/hotplug-history.html
+<p><a href=>Hotpluggable devices and the Linux kernel</a> (OLS 2001)</p>
+<p><a href=local/hotplug-history.html>The history of hotplug</a></p>
   <span id="Input core">
@@ -511,8 +567,10 @@
-  ipv6 ols/2001/mipl.pdf
+  ipv6
+<p><a href=ols/2001/mipl.pdf>MIPL Mobile IPv6 for Linux in HUT Campus Network MediaPoli</a> (OLS 2001)</p>
+<p><a href=ols/2001/sctp.pdf>Linux Kernel SCTP: The Third Transport</a> (OLS 2001)</p>
   <span id="Modules">
     <span id="Exported symbols">
@@ -526,10 +584,14 @@
     <span id="Traditional Unix security model">
 Users, groups, files (rwx), signals.
-    <span id="Bolt-on paranoia">
-<p>The traditional Unix security model is too simple to satisfy the certification requirements of
-large corporate and governmental organizations, so several add-on security models have been
-implemented to increase complexity.</p>
+    <span id="More complicated security models">
+<p>The traditional Unix security model is too simple to satisfy the
+certification requirements of large corporate and governmental organizations,
+so several add-on security models have been implemented to increase
+complexity.  There is some debate as to which of these (if any) are actually an
+<p><a href=ols/2001/selinux.pdf>Meeting Critical Security Objectives with Security-Enhanced Linux</a> (OLS 2001)</p>
       <span id="Posix capabilities">
@@ -582,7 +644,9 @@
-powerpc ols/2001/iseries.pdf
+  <a href=ols/2001/iseries.pdf>The Linux Kernel on iSeries</a> (OLS 2001)
+  <a href=ols/2001/ppc64.pdf>PowerPC 64-bit Kernel Internals</a> (OLS 2001)
@@ -590,8 +654,10 @@
+  <a href=ols/2001/uml.pdf>User-Mode Linux</a> (OLS 2001)
+  <a href=ols/2001/x86-64.pdf>Porting Linux to x86-64</a> (OLS 2001)
@@ -604,12 +670,14 @@
     <span id="PCI, USB">
+<p><a href=ols/2001/pci.pdf>PCIComm: A Linux Device Driver for Communication over PCI Shared Memory</a> (OLS 2001)</p>
+<p><a href=ols/2001/powertweak.pdf>Linux performance tuning using Powertweak</a> (OLS 2001)</p>
 <span id="Following Linux development">
-  <span id="Distibutions.">
+  <span id="Distibutions">
   <span id="Releases">
     <span id="Source control">