<html xmlns="http://www.w3.org/1999/xhtml">
<head>
-<title>The Linux kernel in Debian - Ben Hutchings - DebConf 11</title>
+<title>The Linux kernel in Debian - Mini-DebConf Paris 2012</title>
<!-- metadata -->
<meta name="generator" content="S5" />
<meta name="version" content="S5 1.1" />
-<meta name="author" content="Ben Hutchings" />
+<meta name="author" content="Ben Hutchings, Maximilian Attems" />
<!-- configuration parameters -->
<meta name="defaultView" content="slideshow" />
<meta name="controlVis" content="hidden" />
table { border-collapse: collapse }
th { border-bottom: 2pt solid black }
th, td { padding: 0 6pt }
+ .package { font-family: monospace }
+ var { font-family: sans }
</style>
<style type="text/css" media="print">
.slide { page-break-after: always }
<div id="controls"><!-- DO NOT EDIT --></div>
<div id="currentSlide"><!-- DO NOT EDIT --></div>
<div id="header">
- <object class="logo" data="debconf11.svg"></object>
</div>
<div id="footer">
-<h1>DebConf 11</h1>
+<h1>Mini-DebConf Paris 2012</h1>
<h2>The Linux kernel in Debian</h2>
</div>
<div class="slide">
<h1>The Linux kernel in Debian</h1>
<object data="tux-debian.svg" width="35%" align="right"></object>
-<h3>Ben Hutchings</h3>
+<h3>Ben Hutchings and Maximilian Attems</h3>
</div>
<div class="slide">
- <h1>The author</h1>
- <ul class="incremental">
+ <h1>Ben Hutchings</h1>
+ <ul>
<li>
Professional software developer since 1998
</li>
and PCI code as necessary
</li>
</ul>
+ <ul>
+ <li>
+ Maintaining Linux 3.2.<var>y</var> stable update series on
+ kernel.org
+ </li>
+ </ul>
</li>
<li>
Debian kernel contributor since 2008; uploader since 2009
- <ul class="incremental">
+ <ul>
<li>
Initially trying to deal with the non-free firmware issue
</li>
</ul>
</div>
+<div class="slide">
+ <h1>Maximilian Attems</h1>
+ <ul>
+ <li>Theoretical Physicist</li>
+ <ul>
+ <li>
+ Postdoc of Frankfurt Institute of Advanced Studies
+ </li>
+ <li>
+ Numerical simulations of Yang-Mills theory on TOP 500 clusters
+ </li>
+ </ul>
+ <li>Linux Contributor since 2004</li>
+ <ul>
+ <li>
+ Linux janitor Maintainer late 2.5 early 2.6, 2.6.32.X stable series
+ </li>
+ <li>
+ klibc Co-Maintainer
+ </li>
+ <li>
+ make deb-pkg
+ </li>
+ </ul>
+ <li>Debian Linux Contributor since 2005</li>
+ <ul>
+ <li>
+ Early userspace
+ </li>
+ <li>
+ x86
+ </li>
+ </ul>
+ </ul>
+</div>
+
<div class="slide">
<h1>Linux kernel</h1>
<ul class="incremental">
</div>
<div class="slide">
- <h1>Linux release model (1)</h1>
+ <h1>Linux release model</h1>
<p>
- The old model:
- </p>
- <ul class="incremental">
- <li>
- Each stable release had even second component. Bug fixes and
- minor features in stable releases with third component
- incremented (e.g. 2.4.27)
- </li>
- <li>
- Major development done separately, resulting in series of
- unstable releases with odd second component (e.g. 2.5.50)
- </li>
- <li>
- After a year or two, development resulted in a new stable
- release
- </li>
- <li>
- Problem: users waited years for new features, and then got many
- more changes all at once. Particularly bad in the 2.4-2.6
- transition.
- </li>
- </ul>
-</div>
-
-<div class="slide">
- <h1>Linux release model (2)</h1>
- <p>
- The new model:
+ Since ~2004:
</p>
<ul class="incremental">
<li>
</ul>
</li>
<li>
- Each 2.6.<var>x</var> release has stable update branch; releases
- numbered 2.6.<var>x</var>.<var>y</var>
+ Each 2.6.<var>x</var> and 3.<var>x</var> release has a stable
+ update branch; releases numbered 2.6.<var>x</var>.<var>y</var>
+ and 3.<var>x</var>.<var>y</var>
<ul class="incremental">
<li>
Usually closed shortly after next stable release, but may
</li>
</ul>
</li>
- <li>
- Linux 3.0 doesn't change this, except that <var>x</var> is now
- the second component and <var>y</var> is the third
- </li>
</ul>
</div>
<ul class="incremental">
<li>
Currently 5 general maintainers: Maximilian Attems, Bastian
- Blank, dann frazier, Moritz Muehlenhoff and me
+ Blank, dann frazier, Ben Hutchings, Moritz Muehlenhoff
</li>
<li>
Many more specialised contributors:
<div class="slide">
<h1>Official Linux kernel packages (1)</h1>
<p>
- Main source package is linux-2.6 (still!). Most binary package
- names change regularly.
+ Main source package is <span class="package">linux</span>. Most
+ binary package names change regularly.
</p>
<ul class="incremental">
<li>
- linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var>
+ <span class="package">linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
- compiled kernel and modules
</li>
<li>
- linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var>
+ <span class="package">linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
(and others) - development package for OOT modules
</li>
<li>
- linux-libc-dev - headers for userland
+ <span class="package">linux-libc-dev</span> - headers for userland
</li>
<li>
- linux-source-<var>upstream</var> - for custom kernels
+ <span class="package">linux-source-<var>upstream</var></span> -
+ for custom kernels
</li>
<li>
- linux-doc-<var>upstream</var>, linux-tools-<var>upstream</var>,
- etc.
+ <span class="package">linux-doc-<var>upstream</var></span>,
+ <span class="package">linux-manual-<var>upstream</var></span>, etc.
</li>
<li>
- linux-support-<var>upstream</var>-<var>abi</var> - scripts and
- metadata to support linux-latest-2.6
+ <span class="package">linux-support-<var>upstream</var>-<var>abi</var></span> -
+ scripts and metadata to support linux-latest
</li>
</ul>
</div>
<div class="slide">
<h1>Official Linux kernel packages (2)</h1>
<p>
- The linux-latest-2.6 source package builds meta-packages to
- support automatic upgrades between binaries built from linux-2.6.
+ The <span class="package">linux-latest</span> source package builds meta-packages
+ to support automatic upgrades between binaries built
+ from <span class="package">linux</span>.
</p>
<ul class="incremental">
<li>
- linux-image-<var>flavour</var>
+ <span class="package">linux-image-<var>flavour</var></span>
</li>
<li>
- linux-headers-<var>flavour</var>
+ <span class="package">linux-headers-<var>flavour</var></span>
</li>
<li>
- linux-source, linux-doc, linux-tools, etc.
+ <span class="package">linux-source</span>,
+ <span class="package">linux-doc</span>,
+ <span class="package">linux-tools</span>, etc.
</li>
</ul>
<p class="incremental">
- The installer will normally install linux-image-<var>flavour</var>
- (for some appropriate <var>flavour</var>).
+ The installer will normally install
+ <span class="package">linux-image-<var>flavour</var></span> (for
+ some appropriate <var>flavour</var>).
</p>
</div>
<h1>Official Linux kernel packages (3)</h1>
<ul class="incremental">
<li>
- firmware-free - separate 'firmware' compliant with DFSG
+ <span class="package">firmware-free</span> - separate 'firmware'
+ compliant with DFSG
</li>
<li>
- linux-base - base package for images and tools
+ <span class="package">linux-base</span> - base package for
+ images and tools
</li>
<li>
- linux-kbuild-2.6 builds linux-kbuild-<var>upstream</var> -
- code used for building OOT modules
+ <span class="package">linux-tools</span> builds
+ <ul class="incremental">
+ <li>
+ <span class="package">linux-kbuild-<var>upstream</var></span> -
+ kernel build system and tools for building OOT modules
+ </li>
+ <li>
+ <span class="package">linux-tools-<var>upstream</var></span>
+ - perf tool
+ </li>
+ <li>
+ <span class="package">usbip</span> - usbip configuration
+ tools
+ </li>
+ </ul>
</li>
</ul>
</div>
+<div class="slide">
+ <h1>Official early userspace</h1>
+ <p class="incremental">
+ Main source package is <span class="package">initramfs-tools</span>.
+ </p>
+ <p class="incremental">
+ Co-developed with Ubuntu and hence sharing all the pain^Wfun of the
+ software and that special relation.
+ In any case a huge step forward after the very special initrd-tools.
+ </p>
+ <p class="incremental">
+ initramfs-tools paved the way for pluggable initramfs generators.
+ But, early userspace shouldn't be visible to users.
+ Todays dev sits in dracut. With better maintenance inside the team
+ very likely candidate for Debian 8.0.
+ </p>
+ <p class="incremental">
+ Upcoming challenge: secureboot.
+ </p>
+</div>
<div class="slide">
<h1>Custom Linux kernel builds</h1>
</p>
<ul class="incremental">
<li>
- <tt>make && make install</tt>
+ <span class="package">make && make install</span>
+ </li>
+ <li>
+ <span class="package">make deb-pkg</span> - build packages
+ </li>
+ <li>
+ <span class="package">make-kpkg</span> - build packages with
+ more customisation; requires
+ <span class="package">kernel-package</span>
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>Extra features</h1>
+ <p>
+ Always aim to get patches merged upstream. But many big features
+ that users want added are <em>not</em> merged upstream for a long
+ time. Kernel team expects features to be upstream first, then
+ backported.
+ </p>
+ <p class="incremental">
+ But there have been exceptions:
+ </p>
+ <ul class="incremental">
+ <li>
+ OpenVZ and VServer - being reimplemented upstream with cgroups
+ and namespaces
+ </li>
+ <li>
+ Xen - now upstream
</li>
<li>
- <tt>make deb-pkg</tt> - build packages
+ aufs - needed for Debian Live
</li>
<li>
- <tt>make-kpkg</tt> - build packages with more customisation;
- requires kernel-package
+ PREEMPT_RT - gradually being merged upstream; new option in
+ amd64 and i386 packages
</li>
</ul>
</div>
</p>
<ul class="incremental">
<li>
- <tt>dkms</tt> - builds and installs modules automatically. Can
- build packages for installation on other systems. Also
- supported by Ubuntu and SUSE.
+ <span class="package">dkms</span> - builds and installs modules
+ automatically. Can build packages for installation on other
+ systems. Also supported by Ubuntu and SUSE.
</li>
<li>
- <tt>module-assistant</tt> - builds packages as directed.
- Uses a separate package name for each kernel ABI.
+ <span class="package">module-assistant</span> - builds packages
+ as directed. Uses a separate package name for each kernel ABI.
</li>
</ul>
</div>
<div class="slide">
<h1>Firmware files</h1>
+ <ul class="incremental">
+ <li>
+ Most peripherals have microcontroller running non-free
+ firmware; some require host to load it
+ </li>
+ <li>
+ Several drivers used to include firmware, making kernel
+ non-free. Fudged with GRs for a while; finally fixed in squeeze
+ </li>
+ <li>
+ Users with these devices - almost any wifi card, some network
+ controllers and Radeon GPUs - will still need the firmware
+ files installed
+ </li>
+ <li>
+ Kernel team maintains
+ <span class="package">firmware-nonfree</span> source package
+ covering most firmware files that are clearly redistributable
+ </li>
+ <li>
+ Also collected in linux-firmware.git repository maintained by
+ David Woodhouse and Ben Hutchings
+ </li>
+ </ul>
</div>
<div class="slide">
<h1>Documentation</h1>
+ <ul class="incremental">
+ <li>
+ <span class="package">manpages-dev</span> - the system call API
+ </li>
+ <li>
+ <span class="package">linux-doc-</span><var>upstream</var> -
+ miscellaneous upstream documentation
+ </li>
+ <li>
+ <span class="package">linux-manual-</span><var>upstream</var> -
+ the internal API, based on structured comments
+ </li>
+ <li>
+ <span class="package">debian-kernel-handbook</span> -
+ Debian-specific information; currently also Linux-specific but
+ could cover other kernels
+ </li>
+ <li>
+ <a href="http://wiki.debian.org/DebianKernel">http://wiki.debian.org/DebianKernel</a>
+ - wiki index page
+ </li>
+ </ul>
</div>
<div class="slide">
Redistribution is free but has to include this notice.
-->
<ul>
- <li>Modified by me to add Debian open-ND logo</li>
+ <li>Modified by Ben to add Debian open-ND logo</li>
</ul>
</li>
<li>
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-->
</li>
- <li>
- DebConf 11 logo © Aurélio A. Heckert.
- <!--
-This program is free software; you can redistribute it
-and/or modify it under the terms of the GNU General Public
-License as published by the Free Software Foundation;
-version 2 of the License.
-
-This program is distributed in the hope that it will be
-useful, but WITHOUT ANY WARRANTY; without even the implied
-warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE. See the GNU General Public License for more
-details.
-
-You should have received a copy of the GNU General Public
-License along with this package; if not, write to the Free
-Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-Boston, MA 02110-1301 USA
-
-On Debian systems, the full text of the GNU General Public
-License version 2 can be found in the file
-`/usr/share/common-licenses/GPL-2'.
- -->
- <ul>
- <li>Resized and coloured by me</li>
- </ul>
- </li>
</ul>
</div>