<div class="slide">
<h1>The Linux kernel in Debian</h1>
+<object data="tux-debian.svg" width="35%" align="right"></object>
<h3>Ben Hutchings</h3>
</div>
<div class="slide">
<h1>The author</h1>
+ <ul class="incremental">
+ <li>
+ Professional software developer since 1998
+ </li>
+ <li>
+ Debian contributor since 2003
+ </li>
+ <li>
+ Regular Linux contributor since 2008
+ <ul>
+ <li>
+ Maintaining a net driver in my day job, plus core networking
+ and PCI code as necessary
+ </li>
+ </ul>
+ </li>
+ <li>
+ Debian kernel contributor since 2008; uploader since 2009
+ <ul class="incremental">
+ <li>
+ Initially trying to deal with the non-free firmware issue
+ </li>
+ <li>
+ Moved on to triaging bugs, fixing bugs, backporting
+ features, updating packaging...
+ </li>
+ </ul>
+ </li>
+ </ul>
</div>
<div class="slide">
<h1>Linux kernel</h1>
+ <ul class="incremental">
+ <li>
+ Started by Linus Torvalds in 1991 as a kernel for i386
+ PCs: <q>just a hobby, won't be big and professional like gnu</q>
+ </li>
+ <li>
+ Adopted as the kernel of the Debian system in 1993
+ </li>
+ <li>
+ After 20 years' development, supports more hardware
+ architectures and devices than anything else
+ <ul class="incremental">
+ <li>
+ Hardware vendors <em>must</em> provide Linux drivers because
+ their customers demand it
+ </li>
+ </ul>
+ </li>
+ <li>
+ Still the default kernel for the Debian system
+ </li>
+ </ul>
</div>
<div class="slide">
- <h1>Linux release model</h1>
+ <h1>Linux release model (1)</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>Debian kernel team</h1>
+ <h1>Linux release model (2)</h1>
+ <p>
+ The new model:
+ </p>
+ <ul class="incremental">
+ <li>
+ Development results in a new stable(-ish) release every 2-3
+ months
+ <ul class="incremental">
+ <li>
+ git (and previously BitKeeper) made distributed development
+ and testing a lot easier
+ </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>
+ <ul class="incremental">
+ <li>
+ Usually closed shortly after next stable release, but may
+ continue as a 'longterm' branch (e.g. 2.6.32.<var>y</var>)
+ </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>
<div class="slide">
- <h1>Official Linux kernel packages</h1>
+ <h1>Debian kernel team (1)</h1>
+ <p>
+ Who are we?
+ </p>
+ <ul class="incremental">
+ <li>
+ Currently 5 general maintainers: Maximilian Attems, Bastian
+ Blank, dann frazier, Moritz Muehlenhoff and me
+ </li>
+ <li>
+ Many more specialised contributors:
+ <ul>
+ <li>Specific architectures</li>
+ <li>Specific features (e.g. Xen)</li>
+ <li>Bug triage</li>
+ </ul>
+ </li>
+ <li>
+ Would appreciate more help, particularly with bug triage and
+ PowerPC
+ </li>
+ </ul>
</div>
<div class="slide">
- <h1>Custom Linux kernel packages</h1>
+ <h1>Debian kernel team (2)</h1>
+ <p>
+ What do we do?
+ </p>
+ <ul class="incremental">
+ <li>
+ Bug triage - takes a huge amount of time
+ </li>
+ <li>
+ Backport bug fixes and features - particularly new hardware
+ support for stable
+ <ul class="incremental">
+ <li>...while trying not to change kernel ABI in stable</li>
+ </ul>
+ </li>
+ <li>
+ Update build configurations for each new upstream release -
+ e.g. to enable new drivers
+ </li>
+ <li>
+ Try to ensure smooth upgrades when there are major
+ implementation changes - e.g. KMS, switch to libata drivers
+ </li>
+ <li>
+ Integrate <em>some</em> features not accepted upstream
+ </li>
+ </ul>
+</div>
+
+<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.
+ </p>
+ <ul class="incremental">
+ <li>
+ linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var>
+ - compiled kernel and modules
+ </li>
+ <li>
+ linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var>
+ (and others) - development package for OOT modules
+ </li>
+ <li>
+ linux-libc-dev - headers for userland
+ </li>
+ <li>
+ linux-source-<var>upstream</var> - for custom kernels
+ </li>
+ <li>
+ linux-doc-<var>upstream</var>, linux-tools-<var>upstream</var>,
+ etc.
+ </li>
+ <li>
+ linux-support-<var>upstream</var>-<var>abi</var> - scripts and
+ metadata to support linux-latest-2.6
+ </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.
+ </p>
+ <ul class="incremental">
+ <li>
+ linux-image-<var>flavour</var>
+ </li>
+ <li>
+ linux-headers-<var>flavour</var>
+ </li>
+ <li>
+ linux-source, linux-doc, linux-tools, etc.
+ </li>
+ </ul>
+ <p class="incremental">
+ The installer will normally install linux-image-<var>flavour</var>
+ (for some appropriate <var>flavour</var>).
+ </p>
+</div>
+
+<div class="slide">
+ <h1>Official Linux kernel packages (3)</h1>
+ <ul class="incremental">
+ <li>
+ firmware-free - separate 'firmware' compliant with DFSG
+ </li>
+ <li>
+ linux-base - base package for images and tools
+ </li>
+ <li>
+ linux-kbuild-2.6 builds linux-kbuild-<var>upstream</var> -
+ code used for building OOT modules
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>Custom Linux kernel builds</h1>
+ <p>
+ The official packages work for most users, but not all:
+ </p>
+ <ul class="incremental">
+ <li>
+ Different ARM platforms need incompatible configurations,
+ and we cannot build them all
+ </li>
+ <li>
+ New features are not enabled immediately if we are worried
+ about potential regressions
+ </li>
+ </ul>
+ <p class="incremental">
+ Using either upstream source or Debian linux-source package:
+ </p>
+ <ul class="incremental">
+ <li>
+ <tt>make && make install</tt>
+ </li>
+ <li>
+ <tt>make deb-pkg</tt> - build packages
+ </li>
+ <li>
+ <tt>make-kpkg</tt> - build packages with more customisation;
+ requires kernel-package
+ </li>
+ </ul>
</div>
<div class="slide">
<h1>Out-of-tree modules</h1>
+ <p>
+ The kernel team does not encourage the use of out-of-tree modules.
+ However, we support them by providing development packages and by
+ avoiding ABI changes during a stable release.
+ </p>
+ <p class="incremental">
+ Debian has two packages to aid in building out-of-tree modules:
+ </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.
+ </li>
+ <li>
+ <tt>module-assistant</tt> - builds packages as directed.
+ Uses a separate package name for each kernel ABI.
+ </li>
+ </ul>
</div>
<div class="slide">
<h1>Questions?</h1>
</div>
+<div class="slide">
+ <h1>Credits</h1>
+ <ul>
+ <li>
+ Linux 'Tux' logo © Larry Ewing, Simon Budig.
+ <!--
+Redistribution is free but has to include this notice.
+ -->
+ <ul>
+ <li>Modified by me to add Debian open-ND logo</li>
+ </ul>
+ </li>
+ <li>
+ Debian open-ND logo © Software in the Public Interest, Inc.
+ <!--
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+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>
+
</body>
</html>