]> git.decadent.org.uk Git - debian-kernel-talk.git/blobdiff - index.html
Update package names to present
[debian-kernel-talk.git] / index.html
index 480752b8a46e562db5a10e5a50dfbc91add8fd71..f3e57f61e6e0edd4ea15dc13410bcdfd6e981520 100644 (file)
@@ -4,11 +4,11 @@
 <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, Max Attems" />
 <!-- configuration parameters -->
 <meta name="defaultView" content="slideshow" />
 <meta name="controlVis" content="hidden" />
@@ -22,6 +22,8 @@
   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 Max 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>
@@ -72,7 +73,7 @@
     </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>Max Attems</h1>
+  <ul>
+    <li>TODO</li>
+  </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:
+    Since ~2004:
   </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)
+      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>
-      Major development done separately, resulting in series of
-      unstable releases with odd second component (e.g. 2.5.50)
+      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
+         continue as a 'longterm' branch (e.g. 2.6.32.<var>y</var>)
+       </li>
+      </ul>
     </li>
+  </ul>
+</div>
+
+<div class="slide">
+  <h1>Debian kernel team (1)</h1>
+  <p>
+    Who are we?
+  </p>
+  <ul class="incremental">
     <li>
-      After a year or two, development resulted in a new stable
-      release
+      Currently 5 general maintainers: Maximilian Attems, Bastian
+      Blank, dann frazier, Ben Hutchings, Moritz Muehlenhoff
     </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.
+      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>Linux release model (2)</h1>
+  <h1>Debian kernel team (2)</h1>
   <p>
-    The new model:
+    What do we do?
   </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>
+      Bug triage - takes a huge amount of time
     </li>
     <li>
-      Each 2.6.<var>x</var> release has stable update branch; releases
-      numbered 2.6.<var>x</var>.<var>y</var>
+      Backport bug fixes and features - particularly new hardware
+      support for stable
       <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>
+       <li>...while trying not to change kernel ABI in stable</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
+      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>Debian kernel team</h1>
+  <h1>Official Linux kernel packages (1)</h1>
+  <p>
+    Main source package is <span class="package">linux</span>.  Most
+    binary package names change regularly.
+  </p>
+  <ul class="incremental">
+    <li>
+      <span class="package">linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
+      - compiled kernel and modules
+    </li>
+    <li>
+      <span class="package">linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
+      (and others) - development package for OOT modules
+    </li>
+    <li>
+      <span class="package">linux-libc-dev</span> - headers for userland
+    </li>
+    <li>
+      <span class="package">linux-source-<var>upstream</var></span> -
+      for custom kernels
+    </li>
+    <li>
+      <span class="package">linux-doc-<var>upstream</var></span>,
+      <span class="package">linux-manual-<var>upstream</var></span>, etc.
+    </li>
+    <li>
+      <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</h1>
+  <h1>Official Linux kernel packages (2)</h1>
+  <p>
+    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>
+      <span class="package">linux-image-<var>flavour</var></span>
+    </li>
+    <li>
+      <span class="package">linux-headers-<var>flavour</var></span>
+    </li>
+    <li>
+      <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
+    <span class="package">linux-image-<var>flavour</var></span> (for
+    some appropriate <var>flavour</var>).
+  </p>
 </div>
 
 <div class="slide">
-  <h1>Custom Linux kernel packages</h1>
+  <h1>Official Linux kernel packages (3)</h1>
+  <ul class="incremental">
+    <li>
+      <span class="package">firmware-free</span> - separate 'firmware'
+      compliant with DFSG
+    </li>
+    <li>
+      <span class="package">linux-base</span> - base package for
+      images and tools
+    </li>
+    <li>
+      <span class="package">linux-tools</span> builds
+      <ul>
+       <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>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>
+      <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 - mostly reimplemented with cgroups and
+      namespaces
+    </li>
+    <li>
+      Xen - now upstream; Linux 3.0 is a useful dom0 kernel!
+    </li>
+    <li>
+      aufs - needed for Debian Live
+    </li>
+    <li>
+      PREEMPT_RT - gradually being merged upstream; new option in
+      amd64 packages
+    </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>
+      <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>
+      <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>
@@ -234,33 +473,6 @@ 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 &copy; Aur&eacute;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>