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, Maximilian 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 Maximilian 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...
96 <h1>Maximilian Attems</h1>
98 <li>Theoretical Physicist</li>
101 Postdoc of Frankfurt Institute of Advanced Studies
104 Numerical simulations of Yang-Mills theory on TOP 500 clusters
107 <li>Linux Contributor since 2004</li>
110 Linux janitor Maintainer late 2.5 early 2.6, 2.6.32.X stable series
119 <li>Debian Linux Contributor since 2005</li>
132 <h1>Linux kernel</h1>
133 <ul class="incremental">
135 Started by Linus Torvalds in 1991 as a kernel for i386
136 PCs: <q>just a hobby, won't be big and professional like gnu</q>
139 Adopted as the kernel of the Debian system in 1993
142 After 20 years' development, supports more hardware
143 architectures and devices than anything else
144 <ul class="incremental">
146 Hardware vendors <em>must</em> provide Linux drivers because
147 their customers demand it
152 Still the default kernel for the Debian system
158 <h1>Linux release model</h1>
162 <ul class="incremental">
164 Development results in a new stable(-ish) release every 2-3
166 <ul class="incremental">
168 git (and previously BitKeeper) made distributed development
169 and testing a lot easier
174 Each 2.6.<var>x</var> and 3.<var>x</var> release has a stable
175 update branch; releases numbered 2.6.<var>x</var>.<var>y</var>
176 and 3.<var>x</var>.<var>y</var>
177 <ul class="incremental">
179 Usually closed shortly after next stable release, but may
180 continue as a 'longterm' branch (e.g. 2.6.32.<var>y</var>)
188 <h1>Debian kernel team (1)</h1>
192 <ul class="incremental">
194 Currently 5 general maintainers: Maximilian Attems, Bastian
195 Blank, dann frazier, Ben Hutchings, Moritz Muehlenhoff
198 Many more specialised contributors:
200 <li>Specific architectures</li>
201 <li>Specific features (e.g. Xen)</li>
206 Would appreciate more help, particularly with bug triage and
213 <h1>Debian kernel team (2)</h1>
217 <ul class="incremental">
219 Bug triage - takes a huge amount of time
222 Backport bug fixes and features - particularly new hardware
224 <ul class="incremental">
225 <li>...while trying not to change kernel ABI in stable</li>
229 Update build configurations for each new upstream release -
230 e.g. to enable new drivers
233 Try to ensure smooth upgrades when there are major
234 implementation changes - e.g. KMS, switch to libata drivers
237 Integrate <em>some</em> features not accepted upstream
243 <h1>Official Linux kernel packages (1)</h1>
245 Main source package is <span class="package">linux</span>. Most
246 binary package names change regularly.
248 <ul class="incremental">
250 <span class="package">linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
251 - compiled kernel and modules
254 <span class="package">linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
255 (and others) - development package for OOT modules
258 <span class="package">linux-libc-dev</span> - headers for userland
261 <span class="package">linux-source-<var>upstream</var></span> -
265 <span class="package">linux-doc-<var>upstream</var></span>,
266 <span class="package">linux-manual-<var>upstream</var></span>, etc.
269 <span class="package">linux-support-<var>upstream</var>-<var>abi</var></span> -
270 scripts and metadata to support linux-latest
276 <h1>Official Linux kernel packages (2)</h1>
278 The <span class="package">linux-latest</span> source package builds meta-packages
279 to support automatic upgrades between binaries built
280 from <span class="package">linux</span>.
282 <ul class="incremental">
284 <span class="package">linux-image-<var>flavour</var></span>
287 <span class="package">linux-headers-<var>flavour</var></span>
290 <span class="package">linux-source</span>,
291 <span class="package">linux-doc</span>,
292 <span class="package">linux-tools</span>, etc.
295 <p class="incremental">
296 The installer will normally install
297 <span class="package">linux-image-<var>flavour</var></span> (for
298 some appropriate <var>flavour</var>).
303 <h1>Official Linux kernel packages (3)</h1>
304 <ul class="incremental">
306 <span class="package">firmware-free</span> - separate 'firmware'
310 <span class="package">linux-base</span> - base package for
314 <span class="package">linux-tools</span> builds
317 <span class="package">linux-kbuild-<var>upstream</var></span> -
318 kernel build system and tools for building OOT modules
321 <span class="package">linux-tools-<var>upstream</var></span>
325 <span class="package">usbip</span> - usbip configuration
333 <h1>Official early userspace</h1>
334 <p class="incremental">
335 Main source package is <span class="package">initramfs-tools</span>.
337 <p class="incremental">
338 Co-developed with Ubuntu and hence sharing all the pain^Wfun of the
339 software and that special relation.
340 In any case a huge step forward after the very special initrd-tools.
342 <p class="incremental">
343 initramfs-tools paved the way for pluggable initramfs generators.
344 But, early userspace shouldn't be visible to users.
345 Todays dev sits in dracut. With better maintenance inside the team
346 very likely candidate for 7.0 Debian.
348 <p class="incremental">
349 Upcoming challenge: secureboot.
354 <h1>Custom Linux kernel builds</h1>
356 The official packages work for most users, but not all:
358 <ul class="incremental">
360 Different ARM platforms need incompatible configurations,
361 and we cannot build them all
364 New features are not enabled immediately if we are worried
365 about potential regressions
368 <p class="incremental">
369 Using either upstream source or Debian linux-source package:
371 <ul class="incremental">
373 <span class="package">make && make install</span>
376 <span class="package">make deb-pkg</span> - build packages
379 <span class="package">make-kpkg</span> - build packages with
380 more customisation; requires
381 <span class="package">kernel-package</span>
387 <h1>Extra features</h1>
389 Always aim to get patches merged upstream. But many big features
390 that users want added are <em>not</em> merged upstream for a long
391 time. Kernel team expects features to be upstream first, then
394 <p class="incremental">
395 But there have been exceptions:
397 <ul class="incremental">
399 OpenVZ and VServer - being reimplemented upstream with cgroups
406 aufs - needed for Debian Live
409 PREEMPT_RT - gradually being merged upstream; new option in
410 amd64 and i386 packages
416 <h1>Out-of-tree modules</h1>
418 The kernel team does not encourage the use of out-of-tree modules.
419 However, we support them by providing development packages and by
420 avoiding ABI changes during a stable release.
422 <p class="incremental">
423 Debian has two packages to aid in building out-of-tree modules:
425 <ul class="incremental">
427 <span class="package">dkms</span> - builds and installs modules
428 automatically. Can build packages for installation on other
429 systems. Also supported by Ubuntu and SUSE.
432 <span class="package">module-assistant</span> - builds packages
433 as directed. Uses a separate package name for each kernel ABI.
439 <h1>Firmware files</h1>
440 <ul class="incremental">
442 Most peripherals have microcontroller running non-free
443 firmware; some require host to load it
446 Several drivers used to include firmware, making kernel
447 non-free. Fudged with GRs for a while; finally fixed in squeeze
450 Users with these devices - almost any wifi card, some network
451 controllers and Radeon GPUs - will still need the firmware
455 Kernel team maintains
456 <span class="package">firmware-nonfree</span> source package
457 covering most firmware files that are clearly redistributable
460 Also collected in linux-firmware.git repository maintained by
461 David Woodhouse and Ben Hutchings
467 <h1>Documentation</h1>
468 <ul class="incremental">
470 <span class="package">manpages-dev</span> - the system call API
473 <span class="package">linux-doc-</span><var>upstream</var> -
474 miscellaneous upstream documentation
477 <span class="package">linux-manual-</span><var>upstream</var> -
478 the internal API, based on structured comments
481 <span class="package">debian-kernel-handbook</span> -
482 Debian-specific information; currently also Linux-specific but
483 could cover other kernels
486 <a href="http://wiki.debian.org/DebianKernel">http://wiki.debian.org/DebianKernel</a>
500 Linux 'Tux' logo © Larry Ewing, Simon Budig.
502 Redistribution is free but has to include this notice.
505 <li>Modified by Ben to add Debian open-ND logo</li>
509 Debian open-ND logo © Software in the Public Interest, Inc.
511 Permission is hereby granted, free of charge, to any person obtaining
512 a copy of this software and associated documentation files (the
513 "Software"), to deal in the Software without restriction, including
514 without limitation the rights to use, copy, modify, merge, publish,
515 distribute, sublicense, and/or sell copies of the Software, and to
516 permit persons to whom the Software is furnished to do so, subject to
517 the following conditions:
519 The above copyright notice and this permission notice shall be
520 included in all copies or substantial portions of the Software.
522 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
523 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
524 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
525 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
526 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
527 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
528 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.