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 Debian kernel contributor since 2008; uploader since 2009
78 Initially trying to deal with the non-free firmware issue
81 Moved on to triaging bugs, fixing bugs, backporting
82 features, updating packaging...
98 <ul class="incremental">
100 Started by Linus Torvalds in 1991 as a kernel for i386
101 PCs: <q>just a hobby, won't be big and professional like gnu</q>
104 Adopted as the kernel of the Debian system in 1993
107 After 20 years' development, supports more hardware
108 architectures and devices than anything else
109 <ul class="incremental">
111 Hardware vendors <em>must</em> provide Linux drivers because
112 their customers demand it
117 Still the default kernel for the Debian system
123 <h1>Linux release model (1)</h1>
127 <ul class="incremental">
129 Each stable release had even second component. Bug fixes and
130 minor features in stable releases with third component
131 incremented (e.g. 2.4.27)
134 Major development done separately, resulting in series of
135 unstable releases with odd second component (e.g. 2.5.50)
138 After a year or two, development resulted in a new stable
142 Problem: users waited years for new features, and then got many
143 more changes all at once. Particularly bad in the 2.4-2.6
150 <h1>Linux release model (2)</h1>
154 <ul class="incremental">
156 Development results in a new stable(-ish) release every 2-3
158 <ul class="incremental">
160 git (and previously BitKeeper) made distributed development
161 and testing a lot easier
166 Each 2.6.<var>x</var> release has stable update branch; releases
167 numbered 2.6.<var>x</var>.<var>y</var>
168 <ul class="incremental">
170 Usually closed shortly after next stable release, but may
171 continue as a 'longterm' branch (e.g. 2.6.32.<var>y</var>)
176 Linux 3.0 doesn't change this, except that <var>x</var> is now
177 the second component and <var>y</var> is the third
183 <h1>Debian kernel team (1)</h1>
187 <ul class="incremental">
189 Currently 5 general maintainers: Maximilian Attems, Bastian
190 Blank, dann frazier, Ben Hutchings, Moritz Muehlenhoff
193 Many more specialised contributors:
195 <li>Specific architectures</li>
196 <li>Specific features (e.g. Xen)</li>
201 Would appreciate more help, particularly with bug triage and
208 <h1>Debian kernel team (2)</h1>
212 <ul class="incremental">
214 Bug triage - takes a huge amount of time
217 Backport bug fixes and features - particularly new hardware
219 <ul class="incremental">
220 <li>...while trying not to change kernel ABI in stable</li>
224 Update build configurations for each new upstream release -
225 e.g. to enable new drivers
228 Try to ensure smooth upgrades when there are major
229 implementation changes - e.g. KMS, switch to libata drivers
232 Integrate <em>some</em> features not accepted upstream
238 <h1>Official Linux kernel packages (1)</h1>
240 Main source package is <span class="package">linux-2.6</span>
241 (still!). Most binary package names change regularly.
243 <ul class="incremental">
245 <span class="package">linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
246 - compiled kernel and modules
249 <span class="package">linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
250 (and others) - development package for OOT modules
253 <span class="package">linux-libc-dev</span> - headers for userland
256 <span class="package">linux-source-<var>upstream</var></span> -
260 <span class="package">linux-doc-<var>upstream</var></span>,
261 <span class="package">linux-tools-<var>upstream</var></span>, etc.
264 <span class="package">linux-support-<var>upstream</var>-<var>abi</var></span> -
265 scripts and metadata to support linux-latest-2.6
271 <h1>Official Linux kernel packages (2)</h1>
273 The <span class="package">linux-latest-2.6</span> source package builds meta-packages
274 to support automatic upgrades between binaries built
275 from <span class="package">linux-2.6</span>.
277 <ul class="incremental">
279 <span class="package">linux-image-<var>flavour</var></span>
282 <span class="package">linux-headers-<var>flavour</var></span>
285 <span class="package">linux-source</span>,
286 <span class="package">linux-doc</span>,
287 <span class="package">linux-tools</span>, etc.
290 <p class="incremental">
291 The installer will normally install
292 <span class="package">linux-image-<var>flavour</var></span> (for
293 some appropriate <var>flavour</var>).
298 <h1>Official Linux kernel packages (3)</h1>
299 <ul class="incremental">
301 <span class="package">firmware-free</span> - separate 'firmware'
305 <span class="package">linux-base</span> - base package for
309 <span class="package">linux-kbuild-2.6</span> builds
310 <span class="package">linux-kbuild-<var>upstream</var></span> -
311 kernel build system and tools for building OOT modules
317 <h1>Custom Linux kernel builds</h1>
319 The official packages work for most users, but not all:
321 <ul class="incremental">
323 Different ARM platforms need incompatible configurations,
324 and we cannot build them all
327 New features are not enabled immediately if we are worried
328 about potential regressions
331 <p class="incremental">
332 Using either upstream source or Debian linux-source package:
334 <ul class="incremental">
336 <span class="package">make && make install</span>
339 <span class="package">make deb-pkg</span> - build packages
342 <span class="package">make-kpkg</span> - build packages with
343 more customisation; requires
344 <span class="package">kernel-package</span>
350 <h1>Extra features</h1>
352 Always aim to get patches merged upstream. But many big features
353 that users want added are <em>not</em> merged upstream for a long
354 time. Kernel team expects features to be upstream first, then
357 <p class="incremental">
358 But there have been exceptions:
360 <ul class="incremental">
362 OpenVZ and VServer - mostly reimplemented with cgroups and
366 Xen - now upstream; Linux 3.0 is a useful dom0 kernel!
369 aufs - needed for Debian Live
372 PREEMPT_RT - gradually being merged upstream; new option in
379 <h1>Out-of-tree modules</h1>
381 The kernel team does not encourage the use of out-of-tree modules.
382 However, we support them by providing development packages and by
383 avoiding ABI changes during a stable release.
385 <p class="incremental">
386 Debian has two packages to aid in building out-of-tree modules:
388 <ul class="incremental">
390 <span class="package">dkms</span> - builds and installs modules
391 automatically. Can build packages for installation on other
392 systems. Also supported by Ubuntu and SUSE.
395 <span class="package">module-assistant</span> - builds packages
396 as directed. Uses a separate package name for each kernel ABI.
402 <h1>Firmware files</h1>
403 <ul class="incremental">
405 Most peripherals have microcontroller running non-free
406 firmware; some require host to load it
409 Several drivers used to include firmware, making kernel
410 non-free. Fudged with GRs for a while; finally fixed in squeeze
413 Users with these devices - almost any wifi card, some network
414 controllers and Radeon GPUs - will still need the firmware
418 Kernel team maintains
419 <span class="package">firmware-nonfree</span> source package
420 covering most firmware files that are clearly redistributable
423 Also collected in linux-firmware.git repository maintained by
424 David Woodhouse and Ben Hutchings
430 <h1>Documentation</h1>
431 <ul class="incremental">
433 <span class="package">manpages-dev</span> - the system call API
436 <span class="package">linux-doc-</span><var>upstream</var> -
437 miscellaneous upstream documentation
440 <span class="package">linux-manual-</span><var>upstream</var> -
441 the internal API, based on structured comments
444 <span class="package">debian-kernel-handbook</span> -
445 Debian-specific information; currently also Linux-specific but
446 could cover other kernels
449 <a href="http://wiki.debian.org/DebianKernel">http://wiki.debian.org/DebianKernel</a>
463 Linux 'Tux' logo © Larry Ewing, Simon Budig.
465 Redistribution is free but has to include this notice.
468 <li>Modified by Ben to add Debian open-ND logo</li>
472 Debian open-ND logo © Software in the Public Interest, Inc.
474 Permission is hereby granted, free of charge, to any person obtaining
475 a copy of this software and associated documentation files (the
476 "Software"), to deal in the Software without restriction, including
477 without limitation the rights to use, copy, modify, merge, publish,
478 distribute, sublicense, and/or sell copies of the Software, and to
479 permit persons to whom the Software is furnished to do so, subject to
480 the following conditions:
482 The above copyright notice and this permission notice shall be
483 included in all copies or substantial portions of the Software.
485 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
486 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
487 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
488 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
489 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
490 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
491 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.