70664168801f98ec974ba1169a945bba1fbfc482
[debian-kernel-talk.git] / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
2         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4 <html xmlns="http://www.w3.org/1999/xhtml">
5
6 <head>
7 <title>The Linux kernel in Debian - Mini-DebConf Paris 2012</title>
8 <!-- metadata -->
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 }
27 </style>
28 <style type="text/css" media="print">
29   .slide { page-break-after: always }
30 </style>
31 <!-- S5 JS -->
32 <script src="s5-blank/ui/default/slides.js" type="text/javascript"></script>
33 </head>
34 <body>
35
36 <div class="layout">
37 <div id="controls"><!-- DO NOT EDIT --></div>
38 <div id="currentSlide"><!-- DO NOT EDIT --></div>
39 <div id="header">
40 </div>
41 <div id="footer">
42 <h1>Mini-DebConf Paris 2012</h1>
43 <h2>The Linux kernel in Debian</h2>
44 </div>
45
46 </div>
47
48 <div class="presentation">
49
50 <div class="slide">
51 <h1>The Linux kernel in Debian</h1>
52 <object data="tux-debian.svg" width="35%" align="right"></object>
53 <h3>Ben&nbsp;Hutchings and Maximilian&nbsp;Attems</h3>
54 </div>
55
56 <div class="slide">
57   <h1>Ben Hutchings</h1>
58   <ul>
59     <li>
60       Professional software developer since 1998
61     </li>
62     <li>
63       Debian contributor since 2003
64     </li>
65     <li>
66       Regular Linux contributor since 2008
67       <ul>
68         <li>
69           Maintaining a net driver in my day job, plus core networking
70           and PCI code as necessary
71         </li>
72       </ul>
73       <ul>
74         <li>
75           Maintaining Linux 3.2.<var>y</var> stable update series on
76           kernel.org
77         </li>
78       </ul>
79     </li>
80     <li>
81       Debian kernel contributor since 2008; uploader since 2009
82       <ul>
83         <li>
84           Initially trying to deal with the non-free firmware issue
85         </li>
86         <li>
87           Moved on to triaging bugs, fixing bugs, backporting
88           features, updating packaging...
89         </li>
90       </ul>
91     </li>
92   </ul>
93 </div>
94
95 <div class="slide">
96   <h1>Maximilian Attems</h1>
97   <ul>
98     <li>Theoretical Physicist</li>
99       <ul>
100         <li>
101         Postdoc of Frankfurt Institute of Advanced Studies
102         </li>
103         <li>
104         Numerical simulations of Yang-Mills theory on TOP 500 clusters
105         </li>
106       </ul>
107     <li>Linux Contributor since 2004</li>
108       <ul>
109         <li>
110         Linux janitor Maintainer late 2.5 early 2.6, 2.6.32.X stable series 
111         </li>
112         <li>
113         klibc Co-Maintainer
114         </li>
115         <li>
116         make deb-pkg
117         </li>
118       </ul>
119     <li>Debian Linux Contributor since 2005</li>
120       <ul>
121         <li>
122         Early userspace
123         </li>
124         <li>
125         x86
126         </li>
127       </ul>
128   </ul>
129 </div>
130
131 <div class="slide">
132   <h1>Linux kernel</h1>
133   <ul class="incremental">
134     <li>
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>
137     </li>
138     <li>
139       Adopted as the kernel of the Debian system in 1993
140     </li>
141     <li>
142       After 20 years' development, supports more hardware
143       architectures and devices than anything else
144       <ul class="incremental">
145         <li>
146           Hardware vendors <em>must</em> provide Linux drivers because
147           their customers demand it
148         </li>
149       </ul>
150     </li>
151     <li>
152       Still the default kernel for the Debian system
153     </li>
154   </ul>
155 </div>
156
157 <div class="slide">
158   <h1>Linux release model</h1>
159   <p>
160     Since ~2004:
161   </p>
162   <ul class="incremental">
163     <li>
164       Development results in a new stable(-ish) release every 2-3
165       months
166       <ul class="incremental">
167         <li>
168           git (and previously BitKeeper) made distributed development
169           and testing a lot easier
170         </li>
171       </ul>
172     </li>
173     <li>
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">
178         <li>
179           Usually closed shortly after next stable release, but may
180           continue as a 'longterm' branch (e.g. 2.6.32.<var>y</var>)
181         </li>
182       </ul>
183     </li>
184   </ul>
185 </div>
186
187 <div class="slide">
188   <h1>Debian kernel team (1)</h1>
189   <p>
190     Who are we?
191   </p>
192   <ul class="incremental">
193     <li>
194       Currently 5 general maintainers: Maximilian Attems, Bastian
195       Blank, dann frazier, Ben Hutchings, Moritz Muehlenhoff
196     </li>
197     <li>
198       Many more specialised contributors:
199       <ul>
200         <li>Specific architectures</li>
201         <li>Specific features (e.g. Xen)</li>
202         <li>Bug triage</li>
203       </ul>
204     </li>
205     <li>
206       Would appreciate more help, particularly with bug triage and
207       PowerPC
208     </li>
209   </ul>
210 </div>
211
212 <div class="slide">
213   <h1>Debian kernel team (2)</h1>
214   <p>
215     What do we do?
216   </p>
217   <ul class="incremental">
218     <li>
219       Bug triage - takes a huge amount of time
220     </li>
221     <li>
222       Backport bug fixes and features - particularly new hardware
223       support for stable
224       <ul class="incremental">
225         <li>...while trying not to change kernel ABI in stable</li>
226       </ul>
227     </li>
228     <li>
229       Update build configurations for each new upstream release -
230       e.g. to enable new drivers
231     </li>
232     <li>
233       Try to ensure smooth upgrades when there are major
234       implementation changes - e.g. KMS, switch to libata drivers
235     </li>
236     <li>
237       Integrate <em>some</em> features not accepted upstream
238     </li>
239   </ul>
240 </div>
241
242 <div class="slide">
243   <h1>Official Linux kernel packages (1)</h1>
244   <p>
245     Main source package is <span class="package">linux</span>.  Most
246     binary package names change regularly.
247   </p>
248   <ul class="incremental">
249     <li>
250       <span class="package">linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
251       - compiled kernel and modules
252     </li>
253     <li>
254       <span class="package">linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
255       (and others) - development package for OOT modules
256     </li>
257     <li>
258       <span class="package">linux-libc-dev</span> - headers for userland
259     </li>
260     <li>
261       <span class="package">linux-source-<var>upstream</var></span> -
262       for custom kernels
263     </li>
264     <li>
265       <span class="package">linux-doc-<var>upstream</var></span>,
266       <span class="package">linux-manual-<var>upstream</var></span>, etc.
267     </li>
268     <li>
269       <span class="package">linux-support-<var>upstream</var>-<var>abi</var></span> -
270       scripts and metadata to support linux-latest
271     </li>
272   </ul>
273 </div>
274
275 <div class="slide">
276   <h1>Official Linux kernel packages (2)</h1>
277   <p>
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>.
281   </p>
282   <ul class="incremental">
283     <li>
284       <span class="package">linux-image-<var>flavour</var></span>
285     </li>
286     <li>
287       <span class="package">linux-headers-<var>flavour</var></span>
288     </li>
289     <li>
290       <span class="package">linux-source</span>,
291       <span class="package">linux-doc</span>,
292       <span class="package">linux-tools</span>, etc.
293     </li>
294   </ul>
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>).
299   </p>
300 </div>
301
302 <div class="slide">
303   <h1>Official Linux kernel packages (3)</h1>
304   <ul class="incremental">
305     <li>
306       <span class="package">firmware-free</span> - separate 'firmware'
307       compliant with DFSG
308     </li>
309     <li>
310       <span class="package">linux-base</span> - base package for
311       images and tools
312     </li>
313     <li>
314       <span class="package">linux-tools</span> builds
315       <ul class="incremental">
316         <li>
317           <span class="package">linux-kbuild-<var>upstream</var></span> -
318           kernel build system and tools for building OOT modules
319         </li>
320         <li>
321           <span class="package">linux-tools-<var>upstream</var></span>
322           - perf tool
323         </li>
324         <li>
325           <span class="package">usbip</span> - usbip configuration
326           tools
327         </li>
328       </ul>
329     </li>
330   </ul>
331 </div>
332 <div class="slide">
333   <h1>Official early userspace</h1>
334   <p class="incremental">
335   Main source package is <span class="package">initramfs-tools</span>.
336   </p>
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.
341   </p>
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.
347   </p>
348   <p class="incremental">
349   Upcoming challenge: secureboot.
350   </p>
351 </div>
352
353 <div class="slide">
354   <h1>Custom Linux kernel builds</h1>
355   <p>
356     The official packages work for most users, but not all:
357   </p>
358   <ul class="incremental">
359     <li>
360       Different ARM platforms need incompatible configurations,
361       and we cannot build them all
362     </li>
363     <li>
364       New features are not enabled immediately if we are worried
365       about potential regressions
366     </li>
367   </ul>
368   <p class="incremental">
369     Using either upstream source or Debian linux-source package:
370   </p>
371   <ul class="incremental">
372     <li>
373       <span class="package">make && make install</span>
374     </li>
375     <li>
376       <span class="package">make deb-pkg</span> - build packages
377     </li>
378     <li>
379       <span class="package">make-kpkg</span> - build packages with
380       more customisation; requires
381       <span class="package">kernel-package</span>
382     </li>
383   </ul>
384 </div>
385
386 <div class="slide">
387   <h1>Extra features</h1>
388   <p>
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
392     backported.
393   </p>
394   <p class="incremental">
395     But there have been exceptions:
396   </p>
397   <ul class="incremental">
398     <li>
399       OpenVZ and VServer - being reimplemented upstream with cgroups
400       and namespaces
401     </li>
402     <li>
403       Xen - now upstream
404     </li>
405     <li>
406       aufs - needed for Debian Live
407     </li>
408     <li>
409       PREEMPT_RT - gradually being merged upstream; new option in
410       amd64 and i386 packages
411     </li>
412   </ul>
413 </div>
414
415 <div class="slide">
416   <h1>Out-of-tree modules</h1>
417   <p>
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.
421   </p>
422   <p class="incremental">
423     Debian has two packages to aid in building out-of-tree modules:
424   </p>
425   <ul class="incremental">
426     <li>
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.
430     </li>
431     <li>
432       <span class="package">module-assistant</span> - builds packages
433       as directed.  Uses a separate package name for each kernel ABI.
434     </li>
435   </ul>
436 </div>
437
438 <div class="slide">
439   <h1>Firmware files</h1>
440   <ul class="incremental">
441     <li>
442       Most peripherals have microcontroller running non-free
443       firmware; some require host to load it
444     </li>
445     <li>
446       Several drivers used to include firmware, making kernel
447       non-free.  Fudged with GRs for a while; finally fixed in squeeze
448     </li>
449     <li>
450       Users with these devices - almost any wifi card, some network
451       controllers and Radeon GPUs - will still need the firmware
452       files installed
453     </li>
454     <li>
455       Kernel team maintains
456       <span class="package">firmware-nonfree</span> source package
457       covering most firmware files that are clearly redistributable
458     </li>
459     <li>
460       Also collected in linux-firmware.git repository maintained by
461       David Woodhouse and Ben Hutchings
462     </li>
463   </ul>
464 </div>
465
466 <div class="slide">
467   <h1>Documentation</h1>
468   <ul class="incremental">
469     <li>
470       <span class="package">manpages-dev</span> - the system call API
471     </li>
472     <li>
473       <span class="package">linux-doc-</span><var>upstream</var> -
474       miscellaneous upstream documentation
475     </li>
476     <li>
477       <span class="package">linux-manual-</span><var>upstream</var> -
478       the internal API, based on structured comments
479     </li>
480     <li>
481       <span class="package">debian-kernel-handbook</span> -
482       Debian-specific information; currently also Linux-specific but
483       could cover other kernels
484     </li>
485     <li>
486       <a href="http://wiki.debian.org/DebianKernel">http://wiki.debian.org/DebianKernel</a>
487       - wiki index page
488     </li>
489   </ul>
490 </div>
491
492 <div class="slide">
493   <h1>Questions?</h1>
494 </div>
495
496 <div class="slide">
497   <h1>Credits</h1>
498   <ul>
499     <li>
500       Linux 'Tux' logo &copy; Larry Ewing, Simon Budig.
501       <!--
502 Redistribution is free but has to include this notice.
503       -->
504       <ul>
505         <li>Modified by Ben to add Debian open-ND logo</li>
506       </ul>
507     </li>
508     <li>
509       Debian open-ND logo &copy; Software in the Public Interest, Inc.
510       <!--
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:
518
519 The above copyright notice and this permission notice shall be
520 included in all copies or substantial portions of the Software.
521
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.
529       -->
530     </li>
531   </ul>
532 </div>
533
534 </body>
535 </html>