1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml">
7 <title>The Linux kernel in Debian - Ben Hutchings - DebConf 11</title>
9 <meta name="generator" content="S5" />
10 <meta name="version" content="S5 1.1" />
11 <meta name="author" content="Ben Hutchings" />
12 <!-- configuration parameters -->
13 <meta name="defaultView" content="slideshow" />
14 <meta name="controlVis" content="hidden" />
15 <!-- style sheet links -->
16 <link rel="stylesheet" href="s5-blank/ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
17 <link rel="stylesheet" href="s5-blank/ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
18 <link rel="stylesheet" href="s5-blank/ui/default/print.css" type="text/css" media="print" id="slidePrint" />
19 <link rel="stylesheet" href="s5-blank/ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
20 <style type="text/css">
21 .logo { position: absolute; right: 0; top: 0; height: 100% }
22 table { border-collapse: collapse }
23 th { border-bottom: 2pt solid black }
24 th, td { padding: 0 6pt }
26 <style type="text/css" media="print">
27 .slide { page-break-after: always }
30 <script src="s5-blank/ui/default/slides.js" type="text/javascript"></script>
35 <div id="controls"><!-- DO NOT EDIT --></div>
36 <div id="currentSlide"><!-- DO NOT EDIT --></div>
38 <object class="logo" data="debconf11.svg"></object>
42 <h2>The Linux kernel in Debian</h2>
47 <div class="presentation">
50 <h1>The Linux kernel in Debian</h1>
51 <object data="tux-debian.svg" width="35%" align="right"></object>
52 <h3>Ben Hutchings</h3>
57 <ul class="incremental">
59 Professional software developer since 1998
62 Debian contributor since 2003
65 Regular Linux contributor since 2008
68 Maintaining a net driver in my day job, plus core networking
69 and PCI code as necessary
74 Debian kernel contributor since 2008; uploader since 2009
75 <ul class="incremental">
77 Initially trying to deal with the non-free firmware issue
80 Moved on to triaging bugs, fixing bugs, backporting
81 features, updating packaging...
90 <ul class="incremental">
92 Started by Linus Torvalds in 1991 as a kernel for i386
93 PCs: <q>just a hobby, won't be big and professional like gnu</q>
96 Adopted as the kernel of the Debian system in 1993
99 After 20 years' development, supports more hardware
100 architectures and devices than anything else
101 <ul class="incremental">
103 Hardware vendors <em>must</em> provide Linux drivers because
104 their customers demand it
109 Still the default kernel for the Debian system
115 <h1>Linux release model (1)</h1>
119 <ul class="incremental">
121 Each stable release had even second component. Bug fixes and
122 minor features in stable releases with third component
123 incremented (e.g. 2.4.27)
126 Major development done separately, resulting in series of
127 unstable releases with odd second component (e.g. 2.5.50)
130 After a year or two, development resulted in a new stable
134 Problem: users waited years for new features, and then got many
135 more changes all at once. Particularly bad in the 2.4-2.6
142 <h1>Linux release model (2)</h1>
146 <ul class="incremental">
148 Development results in a new stable(-ish) release every 2-3
150 <ul class="incremental">
152 git (and previously BitKeeper) made distributed development
153 and testing a lot easier
158 Each 2.6.<var>x</var> release has stable update branch; releases
159 numbered 2.6.<var>x</var>.<var>y</var>
160 <ul class="incremental">
162 Usually closed shortly after next stable release, but may
163 continue as a 'longterm' branch (e.g. 2.6.32.<var>y</var>)
168 Linux 3.0 doesn't change this, except that <var>x</var> is now
169 the second component and <var>y</var> is the third
175 <h1>Debian kernel team (1)</h1>
179 <ul class="incremental">
181 Currently 5 general maintainers: Maximilian Attems, Bastian
182 Blank, dann frazier, Moritz Muehlenhoff and me
185 Many more specialised contributors:
187 <li>Specific architectures</li>
188 <li>Specific features (e.g. Xen)</li>
193 Would appreciate more help, particularly with bug triage and
200 <h1>Debian kernel team (2)</h1>
204 <ul class="incremental">
206 Bug triage - takes a huge amount of time
209 Backport bug fixes and features - particularly new hardware
211 <ul class="incremental">
212 <li>...while trying not to change kernel ABI in stable</li>
216 Update build configurations for each new upstream release -
217 e.g. to enable new drivers
220 Try to ensure smooth upgrades when there are major
221 implementation changes - e.g. KMS, switch to libata drivers
224 Integrate <em>some</em> features not accepted upstream
230 <h1>Official Linux kernel packages (1)</h1>
232 Main source package is linux-2.6 (still!). Most binary package
233 names change regularly.
235 <ul class="incremental">
237 linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var>
238 - compiled kernel and modules
241 linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var>
242 (and others) - development package for OOT modules
245 linux-libc-dev - headers for userland
248 linux-source-<var>upstream</var> - for custom kernels
251 linux-doc-<var>upstream</var>, linux-tools-<var>upstream</var>,
255 linux-support-<var>upstream</var>-<var>abi</var> - scripts and
256 metadata to support linux-latest-2.6
262 <h1>Official Linux kernel packages (2)</h1>
264 The linux-latest-2.6 source package builds meta-packages to
265 support automatic upgrades between binaries built from linux-2.6.
267 <ul class="incremental">
269 linux-image-<var>flavour</var>
272 linux-headers-<var>flavour</var>
275 linux-source, linux-doc, linux-tools, etc.
278 <p class="incremental">
279 The installer will normally install linux-image-<var>flavour</var>
280 (for some appropriate <var>flavour</var>).
285 <h1>Official Linux kernel packages (3)</h1>
286 <ul class="incremental">
288 firmware-free - separate 'firmware' compliant with DFSG
291 linux-base - base package for images and tools
294 linux-kbuild-2.6 builds linux-kbuild-<var>upstream</var> -
295 code used for building OOT modules
301 <h1>Custom Linux kernel builds</h1>
303 The official packages work for most users, but not all:
305 <ul class="incremental">
307 Different ARM platforms need incompatible configurations,
308 and we cannot build them all
311 New features are not enabled immediately if we are worried
312 about potential regressions
315 <p class="incremental">
316 Using either upstream source or Debian linux-source package:
318 <ul class="incremental">
320 <tt>make && make install</tt>
323 <tt>make deb-pkg</tt> - build packages
326 <tt>make-kpkg</tt> - build packages with more customisation;
327 requires kernel-package
333 <h1>Out-of-tree modules</h1>
335 The kernel team does not encourage the use of out-of-tree modules.
336 However, we support them by providing development packages and by
337 avoiding ABI changes during a stable release.
339 <p class="incremental">
340 Debian has two packages to aid in building out-of-tree modules:
342 <ul class="incremental">
344 <tt>dkms</tt> - builds and installs modules automatically. Can
345 build packages for installation on other systems. Also
346 supported by Ubuntu and SUSE.
349 <tt>module-assistant</tt> - builds packages as directed.
350 Uses a separate package name for each kernel ABI.
356 <h1>Firmware files</h1>
357 <ul class="incremental">
359 Most peripherals have microcontroller running non-free
360 firmware; some require host to load it
363 Several drivers used to include firmware, making kernel
364 non-free. Fudged with GRs for a while; finally fixed in squeeze
367 Users with these devices - almost any wifi card, some network
368 controllers and Radeon GPUs - will still need the firmware
372 Kernel team maintains <tt>firmware-nonfree</tt> source package
373 covering most firmware files that are clearly redistributable
376 Also collected in linux-firmware.git repository maintained by
377 David Woodhouse and myself
383 <h1>Documentation</h1>
394 Linux 'Tux' logo © Larry Ewing, Simon Budig.
396 Redistribution is free but has to include this notice.
399 <li>Modified by me to add Debian open-ND logo</li>
403 Debian open-ND logo © Software in the Public Interest, Inc.
405 Permission is hereby granted, free of charge, to any person obtaining
406 a copy of this software and associated documentation files (the
407 "Software"), to deal in the Software without restriction, including
408 without limitation the rights to use, copy, modify, merge, publish,
409 distribute, sublicense, and/or sell copies of the Software, and to
410 permit persons to whom the Software is furnished to do so, subject to
411 the following conditions:
413 The above copyright notice and this permission notice shall be
414 included in all copies or substantial portions of the Software.
416 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
417 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
418 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
419 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
420 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
421 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
422 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
426 DebConf 11 logo © Aurélio A. Heckert.
428 This program is free software; you can redistribute it
429 and/or modify it under the terms of the GNU General Public
430 License as published by the Free Software Foundation;
431 version 2 of the License.
433 This program is distributed in the hope that it will be
434 useful, but WITHOUT ANY WARRANTY; without even the implied
435 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
436 PURPOSE. See the GNU General Public License for more
439 You should have received a copy of the GNU General Public
440 License along with this package; if not, write to the Free
441 Software Foundation, Inc., 51 Franklin St, Fifth Floor,
442 Boston, MA 02110-1301 USA
444 On Debian systems, the full text of the GNU General Public
445 License version 2 can be found in the file
446 `/usr/share/common-licenses/GPL-2'.
449 <li>Resized and coloured by me</li>