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 - Mini-DebConf Paris 2012</title>
9 <meta name="generator" content="S5" />
10 <meta name="version" content="S5 1.1" />
11 <meta name="author" content="Ben Hutchings, Max Attems" />
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 }
25 .package { font-family: monospace }
26 var { font-family: sans }
28 <style type="text/css" media="print">
29 .slide { page-break-after: always }
32 <script src="s5-blank/ui/default/slides.js" type="text/javascript"></script>
37 <div id="controls"><!-- DO NOT EDIT --></div>
38 <div id="currentSlide"><!-- DO NOT EDIT --></div>
42 <h1>Mini-DebConf Paris 2012</h1>
43 <h2>The Linux kernel in Debian</h2>
48 <div class="presentation">
51 <h1>The Linux kernel in Debian</h1>
52 <object data="tux-debian.svg" width="35%" align="right"></object>
53 <h3>Ben Hutchings and Max Attems</h3>
57 <h1>Ben Hutchings</h1>
60 Professional software developer since 1998
63 Debian contributor since 2003
66 Regular Linux contributor since 2008
69 Maintaining a net driver in my day job, plus core networking
70 and PCI code as necessary
75 Maintaining Linux 3.2.<var>y</var> stable update series on
81 Debian kernel contributor since 2008; uploader since 2009
84 Initially trying to deal with the non-free firmware issue
87 Moved on to triaging bugs, fixing bugs, backporting
88 features, updating packaging...
103 <h1>Linux kernel</h1>
104 <ul class="incremental">
106 Started by Linus Torvalds in 1991 as a kernel for i386
107 PCs: <q>just a hobby, won't be big and professional like gnu</q>
110 Adopted as the kernel of the Debian system in 1993
113 After 20 years' development, supports more hardware
114 architectures and devices than anything else
115 <ul class="incremental">
117 Hardware vendors <em>must</em> provide Linux drivers because
118 their customers demand it
123 Still the default kernel for the Debian system
129 <h1>Linux release model</h1>
133 <ul class="incremental">
135 Development results in a new stable(-ish) release every 2-3
137 <ul class="incremental">
139 git (and previously BitKeeper) made distributed development
140 and testing a lot easier
145 Each 2.6.<var>x</var> and 3.<var>x</var> release has a stable
146 update branch; releases numbered 2.6.<var>x</var>.<var>y</var>
147 and 3.<var>x</var>.<var>y</var>
148 <ul class="incremental">
150 Usually closed shortly after next stable release, but may
151 continue as a 'longterm' branch (e.g. 2.6.32.<var>y</var>)
159 <h1>Debian kernel team (1)</h1>
163 <ul class="incremental">
165 Currently 5 general maintainers: Maximilian Attems, Bastian
166 Blank, dann frazier, Ben Hutchings, Moritz Muehlenhoff
169 Many more specialised contributors:
171 <li>Specific architectures</li>
172 <li>Specific features (e.g. Xen)</li>
177 Would appreciate more help, particularly with bug triage and
184 <h1>Debian kernel team (2)</h1>
188 <ul class="incremental">
190 Bug triage - takes a huge amount of time
193 Backport bug fixes and features - particularly new hardware
195 <ul class="incremental">
196 <li>...while trying not to change kernel ABI in stable</li>
200 Update build configurations for each new upstream release -
201 e.g. to enable new drivers
204 Try to ensure smooth upgrades when there are major
205 implementation changes - e.g. KMS, switch to libata drivers
208 Integrate <em>some</em> features not accepted upstream
214 <h1>Official Linux kernel packages (1)</h1>
216 Main source package is <span class="package">linux</span>. Most
217 binary package names change regularly.
219 <ul class="incremental">
221 <span class="package">linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
222 - compiled kernel and modules
225 <span class="package">linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
226 (and others) - development package for OOT modules
229 <span class="package">linux-libc-dev</span> - headers for userland
232 <span class="package">linux-source-<var>upstream</var></span> -
236 <span class="package">linux-doc-<var>upstream</var></span>,
237 <span class="package">linux-manual-<var>upstream</var></span>, etc.
240 <span class="package">linux-support-<var>upstream</var>-<var>abi</var></span> -
241 scripts and metadata to support linux-latest
247 <h1>Official Linux kernel packages (2)</h1>
249 The <span class="package">linux-latest</span> source package builds meta-packages
250 to support automatic upgrades between binaries built
251 from <span class="package">linux</span>.
253 <ul class="incremental">
255 <span class="package">linux-image-<var>flavour</var></span>
258 <span class="package">linux-headers-<var>flavour</var></span>
261 <span class="package">linux-source</span>,
262 <span class="package">linux-doc</span>,
263 <span class="package">linux-tools</span>, etc.
266 <p class="incremental">
267 The installer will normally install
268 <span class="package">linux-image-<var>flavour</var></span> (for
269 some appropriate <var>flavour</var>).
274 <h1>Official Linux kernel packages (3)</h1>
275 <ul class="incremental">
277 <span class="package">firmware-free</span> - separate 'firmware'
281 <span class="package">linux-base</span> - base package for
285 <span class="package">linux-tools</span> builds
288 <span class="package">linux-kbuild-<var>upstream</var></span> -
289 kernel build system and tools for building OOT modules
292 <span class="package">linux-tools-<var>upstream</var></span>
296 <span class="package">usbip</span> - usbip configuration
305 <h1>Custom Linux kernel builds</h1>
307 The official packages work for most users, but not all:
309 <ul class="incremental">
311 Different ARM platforms need incompatible configurations,
312 and we cannot build them all
315 New features are not enabled immediately if we are worried
316 about potential regressions
319 <p class="incremental">
320 Using either upstream source or Debian linux-source package:
322 <ul class="incremental">
324 <span class="package">make && make install</span>
327 <span class="package">make deb-pkg</span> - build packages
330 <span class="package">make-kpkg</span> - build packages with
331 more customisation; requires
332 <span class="package">kernel-package</span>
338 <h1>Extra features</h1>
340 Always aim to get patches merged upstream. But many big features
341 that users want added are <em>not</em> merged upstream for a long
342 time. Kernel team expects features to be upstream first, then
345 <p class="incremental">
346 But there have been exceptions:
348 <ul class="incremental">
350 OpenVZ and VServer - being reimplemented upstream with cgroups
357 aufs - needed for Debian Live
360 PREEMPT_RT - gradually being merged upstream; new option in
361 amd64 and i386 packages
367 <h1>Out-of-tree modules</h1>
369 The kernel team does not encourage the use of out-of-tree modules.
370 However, we support them by providing development packages and by
371 avoiding ABI changes during a stable release.
373 <p class="incremental">
374 Debian has two packages to aid in building out-of-tree modules:
376 <ul class="incremental">
378 <span class="package">dkms</span> - builds and installs modules
379 automatically. Can build packages for installation on other
380 systems. Also supported by Ubuntu and SUSE.
383 <span class="package">module-assistant</span> - builds packages
384 as directed. Uses a separate package name for each kernel ABI.
390 <h1>Firmware files</h1>
391 <ul class="incremental">
393 Most peripherals have microcontroller running non-free
394 firmware; some require host to load it
397 Several drivers used to include firmware, making kernel
398 non-free. Fudged with GRs for a while; finally fixed in squeeze
401 Users with these devices - almost any wifi card, some network
402 controllers and Radeon GPUs - will still need the firmware
406 Kernel team maintains
407 <span class="package">firmware-nonfree</span> source package
408 covering most firmware files that are clearly redistributable
411 Also collected in linux-firmware.git repository maintained by
412 David Woodhouse and Ben Hutchings
418 <h1>Documentation</h1>
419 <ul class="incremental">
421 <span class="package">manpages-dev</span> - the system call API
424 <span class="package">linux-doc-</span><var>upstream</var> -
425 miscellaneous upstream documentation
428 <span class="package">linux-manual-</span><var>upstream</var> -
429 the internal API, based on structured comments
432 <span class="package">debian-kernel-handbook</span> -
433 Debian-specific information; currently also Linux-specific but
434 could cover other kernels
437 <a href="http://wiki.debian.org/DebianKernel">http://wiki.debian.org/DebianKernel</a>
451 Linux 'Tux' logo © Larry Ewing, Simon Budig.
453 Redistribution is free but has to include this notice.
456 <li>Modified by Ben to add Debian open-ND logo</li>
460 Debian open-ND logo © Software in the Public Interest, Inc.
462 Permission is hereby granted, free of charge, to any person obtaining
463 a copy of this software and associated documentation files (the
464 "Software"), to deal in the Software without restriction, including
465 without limitation the rights to use, copy, modify, merge, publish,
466 distribute, sublicense, and/or sell copies of the Software, and to
467 permit persons to whom the Software is furnished to do so, subject to
468 the following conditions:
470 The above copyright notice and this permission notice shall be
471 included in all copies or substantial portions of the Software.
473 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
474 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
475 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
476 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
477 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
478 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
479 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.