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 }
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>
40 <object class="logo" data="debconf11.svg"></object>
44 <h2>The Linux kernel in Debian</h2>
49 <div class="presentation">
52 <h1>The Linux kernel in Debian</h1>
53 <object data="tux-debian.svg" width="35%" align="right"></object>
54 <h3>Ben Hutchings</h3>
59 <ul class="incremental">
61 Professional software developer since 1998
64 Debian contributor since 2003
67 Regular Linux contributor since 2008
70 Maintaining a net driver in my day job, plus core networking
71 and PCI code as necessary
76 Debian kernel contributor since 2008; uploader since 2009
77 <ul class="incremental">
79 Initially trying to deal with the non-free firmware issue
82 Moved on to triaging bugs, fixing bugs, backporting
83 features, updating packaging...
92 <ul class="incremental">
94 Started by Linus Torvalds in 1991 as a kernel for i386
95 PCs: <q>just a hobby, won't be big and professional like gnu</q>
98 Adopted as the kernel of the Debian system in 1993
101 After 20 years' development, supports more hardware
102 architectures and devices than anything else
103 <ul class="incremental">
105 Hardware vendors <em>must</em> provide Linux drivers because
106 their customers demand it
111 Still the default kernel for the Debian system
117 <h1>Linux release model (1)</h1>
121 <ul class="incremental">
123 Each stable release had even second component. Bug fixes and
124 minor features in stable releases with third component
125 incremented (e.g. 2.4.27)
128 Major development done separately, resulting in series of
129 unstable releases with odd second component (e.g. 2.5.50)
132 After a year or two, development resulted in a new stable
136 Problem: users waited years for new features, and then got many
137 more changes all at once. Particularly bad in the 2.4-2.6
144 <h1>Linux release model (2)</h1>
148 <ul class="incremental">
150 Development results in a new stable(-ish) release every 2-3
152 <ul class="incremental">
154 git (and previously BitKeeper) made distributed development
155 and testing a lot easier
160 Each 2.6.<var>x</var> release has stable update branch; releases
161 numbered 2.6.<var>x</var>.<var>y</var>
162 <ul class="incremental">
164 Usually closed shortly after next stable release, but may
165 continue as a 'longterm' branch (e.g. 2.6.32.<var>y</var>)
170 Linux 3.0 doesn't change this, except that <var>x</var> is now
171 the second component and <var>y</var> is the third
177 <h1>Debian kernel team (1)</h1>
181 <ul class="incremental">
183 Currently 5 general maintainers: Maximilian Attems, Bastian
184 Blank, dann frazier, Moritz Muehlenhoff and me
187 Many more specialised contributors:
189 <li>Specific architectures</li>
190 <li>Specific features (e.g. Xen)</li>
195 Would appreciate more help, particularly with bug triage and
202 <h1>Debian kernel team (2)</h1>
206 <ul class="incremental">
208 Bug triage - takes a huge amount of time
211 Backport bug fixes and features - particularly new hardware
213 <ul class="incremental">
214 <li>...while trying not to change kernel ABI in stable</li>
218 Update build configurations for each new upstream release -
219 e.g. to enable new drivers
222 Try to ensure smooth upgrades when there are major
223 implementation changes - e.g. KMS, switch to libata drivers
226 Integrate <em>some</em> features not accepted upstream
232 <h1>Official Linux kernel packages (1)</h1>
234 Main source package is <span class="package">linux-2.6</span>
235 (still!). Most binary package names change regularly.
237 <ul class="incremental">
239 <span class="package">linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
240 - compiled kernel and modules
243 <span class="package">linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
244 (and others) - development package for OOT modules
247 <span class="package">linux-libc-dev</span> - headers for userland
250 <span class="package">linux-source-<var>upstream</var></span> -
254 <span class="package">linux-doc-<var>upstream</var></span>,
255 <span class="package">linux-tools-<var>upstream</var></span>, etc.
258 <span class="package">linux-support-<var>upstream</var>-<var>abi</var></span> -
259 scripts and metadata to support linux-latest-2.6
265 <h1>Official Linux kernel packages (2)</h1>
267 The <span class="package">linux-latest-2.6</span> source package builds meta-packages
268 to support automatic upgrades between binaries built
269 from <span class="package">linux-2.6</span>.
271 <ul class="incremental">
273 <span class="package">linux-image-<var>flavour</var></span>
276 <span class="package">linux-headers-<var>flavour</var></span>
279 <span class="package">linux-source</span>,
280 <span class="package">linux-doc</span>,
281 <span class="package">linux-tools</span>, etc.
284 <p class="incremental">
285 The installer will normally install
286 <span class="package">linux-image-<var>flavour</var></span> (for
287 some appropriate <var>flavour</var>).
292 <h1>Official Linux kernel packages (3)</h1>
293 <ul class="incremental">
295 <span class="package">firmware-free</span> - separate 'firmware'
299 <span class="package">linux-base</span> - base package for
303 <span class="package">linux-kbuild-2.6</span> builds
304 <span class="package">linux-kbuild-<var>upstream</var></span> -
305 code used for building OOT modules
311 <h1>Custom Linux kernel builds</h1>
313 The official packages work for most users, but not all:
315 <ul class="incremental">
317 Different ARM platforms need incompatible configurations,
318 and we cannot build them all
321 New features are not enabled immediately if we are worried
322 about potential regressions
325 <p class="incremental">
326 Using either upstream source or Debian linux-source package:
328 <ul class="incremental">
330 <span class="package">make && make install</span>
333 <span class="package">make deb-pkg</span> - build packages
336 <span class="package">make-kpkg</span> - build packages with
337 more customisation; requires
338 <span class="package">kernel-package</span>
344 <h1>Out-of-tree modules</h1>
346 The kernel team does not encourage the use of out-of-tree modules.
347 However, we support them by providing development packages and by
348 avoiding ABI changes during a stable release.
350 <p class="incremental">
351 Debian has two packages to aid in building out-of-tree modules:
353 <ul class="incremental">
355 <span class="package">dkms</span> - builds and installs modules
356 automatically. Can build packages for installation on other
357 systems. Also supported by Ubuntu and SUSE.
360 <span class="package">module-assistant</span> - builds packages
361 as directed. Uses a separate package name for each kernel ABI.
367 <h1>Firmware files</h1>
368 <ul class="incremental">
370 Most peripherals have microcontroller running non-free
371 firmware; some require host to load it
374 Several drivers used to include firmware, making kernel
375 non-free. Fudged with GRs for a while; finally fixed in squeeze
378 Users with these devices - almost any wifi card, some network
379 controllers and Radeon GPUs - will still need the firmware
383 Kernel team maintains
384 <span class="package">firmware-nonfree</span> source package
385 covering most firmware files that are clearly redistributable
388 Also collected in linux-firmware.git repository maintained by
389 David Woodhouse and myself
395 <h1>Documentation</h1>
396 <ul class="incremental">
398 <span class="package">manpages-dev</span> - the system call API
401 <span class="package">linux-doc-</span><var>upstream</var> -
402 miscellaneous upstream documentation
405 <span class="package">linux-manual-</span><var>upstream</var> -
406 the internal API, based on structured comments
409 <span class="package">debian-kernel-handbook</span> -
410 Debian-specific information; currently also Linux-specific but
411 could cover other kernels
414 <a href="http://wiki.debian.org/DebianKernel">http://wiki.debian.org/DebianKernel</a>
428 Linux 'Tux' logo © Larry Ewing, Simon Budig.
430 Redistribution is free but has to include this notice.
433 <li>Modified by me to add Debian open-ND logo</li>
437 Debian open-ND logo © Software in the Public Interest, Inc.
439 Permission is hereby granted, free of charge, to any person obtaining
440 a copy of this software and associated documentation files (the
441 "Software"), to deal in the Software without restriction, including
442 without limitation the rights to use, copy, modify, merge, publish,
443 distribute, sublicense, and/or sell copies of the Software, and to
444 permit persons to whom the Software is furnished to do so, subject to
445 the following conditions:
447 The above copyright notice and this permission notice shall be
448 included in all copies or substantial portions of the Software.
450 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
451 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
452 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
453 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
454 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
455 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
456 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
460 DebConf 11 logo © Aurélio A. Heckert.
462 This program is free software; you can redistribute it
463 and/or modify it under the terms of the GNU General Public
464 License as published by the Free Software Foundation;
465 version 2 of the License.
467 This program is distributed in the hope that it will be
468 useful, but WITHOUT ANY WARRANTY; without even the implied
469 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
470 PURPOSE. See the GNU General Public License for more
473 You should have received a copy of the GNU General Public
474 License along with this package; if not, write to the Free
475 Software Foundation, Inc., 51 Franklin St, Fifth Floor,
476 Boston, MA 02110-1301 USA
478 On Debian systems, the full text of the GNU General Public
479 License version 2 can be found in the file
480 `/usr/share/common-licenses/GPL-2'.
483 <li>Resized and coloured by me</li>