Update package names to present
[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, 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 }
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 Hutchings and Max 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     </li>
74     <li>
75       Debian kernel contributor since 2008; uploader since 2009
76       <ul>
77         <li>
78           Initially trying to deal with the non-free firmware issue
79         </li>
80         <li>
81           Moved on to triaging bugs, fixing bugs, backporting
82           features, updating packaging...
83         </li>
84       </ul>
85     </li>
86   </ul>
87 </div>
88
89 <div class="slide">
90   <h1>Max Attems</h1>
91   <ul>
92     <li>TODO</li>
93   </ul>
94 </div>
95
96 <div class="slide">
97   <h1>Linux kernel</h1>
98   <ul class="incremental">
99     <li>
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>
102     </li>
103     <li>
104       Adopted as the kernel of the Debian system in 1993
105     </li>
106     <li>
107       After 20 years' development, supports more hardware
108       architectures and devices than anything else
109       <ul class="incremental">
110         <li>
111           Hardware vendors <em>must</em> provide Linux drivers because
112           their customers demand it
113         </li>
114       </ul>
115     </li>
116     <li>
117       Still the default kernel for the Debian system
118     </li>
119   </ul>
120 </div>
121
122 <div class="slide">
123   <h1>Linux release model</h1>
124   <p>
125     Since ~2004:
126   </p>
127   <ul class="incremental">
128     <li>
129       Development results in a new stable(-ish) release every 2-3
130       months
131       <ul class="incremental">
132         <li>
133           git (and previously BitKeeper) made distributed development
134           and testing a lot easier
135         </li>
136       </ul>
137     </li>
138     <li>
139       Each 2.6.<var>x</var> and 3.<var>x</var> release has a stable
140       update branch; releases numbered 2.6.<var>x</var>.<var>y</var>
141       and 3.<var>x</var>.<var>y</var>
142       <ul class="incremental">
143         <li>
144           Usually closed shortly after next stable release, but may
145           continue as a 'longterm' branch (e.g. 2.6.32.<var>y</var>)
146         </li>
147       </ul>
148     </li>
149   </ul>
150 </div>
151
152 <div class="slide">
153   <h1>Debian kernel team (1)</h1>
154   <p>
155     Who are we?
156   </p>
157   <ul class="incremental">
158     <li>
159       Currently 5 general maintainers: Maximilian Attems, Bastian
160       Blank, dann frazier, Ben Hutchings, Moritz Muehlenhoff
161     </li>
162     <li>
163       Many more specialised contributors:
164       <ul>
165         <li>Specific architectures</li>
166         <li>Specific features (e.g. Xen)</li>
167         <li>Bug triage</li>
168       </ul>
169     </li>
170     <li>
171       Would appreciate more help, particularly with bug triage and
172       PowerPC
173     </li>
174   </ul>
175 </div>
176
177 <div class="slide">
178   <h1>Debian kernel team (2)</h1>
179   <p>
180     What do we do?
181   </p>
182   <ul class="incremental">
183     <li>
184       Bug triage - takes a huge amount of time
185     </li>
186     <li>
187       Backport bug fixes and features - particularly new hardware
188       support for stable
189       <ul class="incremental">
190         <li>...while trying not to change kernel ABI in stable</li>
191       </ul>
192     </li>
193     <li>
194       Update build configurations for each new upstream release -
195       e.g. to enable new drivers
196     </li>
197     <li>
198       Try to ensure smooth upgrades when there are major
199       implementation changes - e.g. KMS, switch to libata drivers
200     </li>
201     <li>
202       Integrate <em>some</em> features not accepted upstream
203     </li>
204   </ul>
205 </div>
206
207 <div class="slide">
208   <h1>Official Linux kernel packages (1)</h1>
209   <p>
210     Main source package is <span class="package">linux</span>.  Most
211     binary package names change regularly.
212   </p>
213   <ul class="incremental">
214     <li>
215       <span class="package">linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
216       - compiled kernel and modules
217     </li>
218     <li>
219       <span class="package">linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var></span>
220       (and others) - development package for OOT modules
221     </li>
222     <li>
223       <span class="package">linux-libc-dev</span> - headers for userland
224     </li>
225     <li>
226       <span class="package">linux-source-<var>upstream</var></span> -
227       for custom kernels
228     </li>
229     <li>
230       <span class="package">linux-doc-<var>upstream</var></span>,
231       <span class="package">linux-manual-<var>upstream</var></span>, etc.
232     </li>
233     <li>
234       <span class="package">linux-support-<var>upstream</var>-<var>abi</var></span> -
235       scripts and metadata to support linux-latest
236     </li>
237   </ul>
238 </div>
239
240 <div class="slide">
241   <h1>Official Linux kernel packages (2)</h1>
242   <p>
243     The <span class="package">linux-latest</span> source package builds meta-packages
244     to support automatic upgrades between binaries built
245     from <span class="package">linux</span>.
246   </p>
247   <ul class="incremental">
248     <li>
249       <span class="package">linux-image-<var>flavour</var></span>
250     </li>
251     <li>
252       <span class="package">linux-headers-<var>flavour</var></span>
253     </li>
254     <li>
255       <span class="package">linux-source</span>,
256       <span class="package">linux-doc</span>,
257       <span class="package">linux-tools</span>, etc.
258     </li>
259   </ul>
260   <p class="incremental">
261     The installer will normally install
262     <span class="package">linux-image-<var>flavour</var></span> (for
263     some appropriate <var>flavour</var>).
264   </p>
265 </div>
266
267 <div class="slide">
268   <h1>Official Linux kernel packages (3)</h1>
269   <ul class="incremental">
270     <li>
271       <span class="package">firmware-free</span> - separate 'firmware'
272       compliant with DFSG
273     </li>
274     <li>
275       <span class="package">linux-base</span> - base package for
276       images and tools
277     </li>
278     <li>
279       <span class="package">linux-tools</span> builds
280       <ul>
281         <li>
282           <span class="package">linux-kbuild-<var>upstream</var></span> -
283           kernel build system and tools for building OOT modules
284         </li>
285         <li>
286           <span class="package">linux-tools-<var>upstream</var></span>
287           - perf tool
288         </li>
289         <li>
290           <span class="package">usbip</span> - usbip configuration
291           tools
292         </li>
293       </ul>
294     </li>
295   </ul>
296 </div>
297
298 <div class="slide">
299   <h1>Custom Linux kernel builds</h1>
300   <p>
301     The official packages work for most users, but not all:
302   </p>
303   <ul class="incremental">
304     <li>
305       Different ARM platforms need incompatible configurations,
306       and we cannot build them all
307     </li>
308     <li>
309       New features are not enabled immediately if we are worried
310       about potential regressions
311     </li>
312   </ul>
313   <p class="incremental">
314     Using either upstream source or Debian linux-source package:
315   </p>
316   <ul class="incremental">
317     <li>
318       <span class="package">make && make install</span>
319     </li>
320     <li>
321       <span class="package">make deb-pkg</span> - build packages
322     </li>
323     <li>
324       <span class="package">make-kpkg</span> - build packages with
325       more customisation; requires
326       <span class="package">kernel-package</span>
327     </li>
328   </ul>
329 </div>
330
331 <div class="slide">
332   <h1>Extra features</h1>
333   <p>
334     Always aim to get patches merged upstream.  But many big features
335     that users want added are <em>not</em> merged upstream for a long
336     time.  Kernel team expects features to be upstream first, then
337     backported.
338   </p>
339   <p class="incremental">
340     But there have been exceptions:
341   </p>
342   <ul class="incremental">
343     <li>
344       OpenVZ and VServer - mostly reimplemented with cgroups and
345       namespaces
346     </li>
347     <li>
348       Xen - now upstream; Linux 3.0 is a useful dom0 kernel!
349     </li>
350     <li>
351       aufs - needed for Debian Live
352     </li>
353     <li>
354       PREEMPT_RT - gradually being merged upstream; new option in
355       amd64 packages
356     </li>
357   </ul>
358 </div>
359
360 <div class="slide">
361   <h1>Out-of-tree modules</h1>
362   <p>
363     The kernel team does not encourage the use of out-of-tree modules.
364     However, we support them by providing development packages and by
365     avoiding ABI changes during a stable release.
366   </p>
367   <p class="incremental">
368     Debian has two packages to aid in building out-of-tree modules:
369   </p>
370   <ul class="incremental">
371     <li>
372       <span class="package">dkms</span> - builds and installs modules
373       automatically.  Can build packages for installation on other
374       systems.  Also supported by Ubuntu and SUSE.
375     </li>
376     <li>
377       <span class="package">module-assistant</span> - builds packages
378       as directed.  Uses a separate package name for each kernel ABI.
379     </li>
380   </ul>
381 </div>
382
383 <div class="slide">
384   <h1>Firmware files</h1>
385   <ul class="incremental">
386     <li>
387       Most peripherals have microcontroller running non-free
388       firmware; some require host to load it
389     </li>
390     <li>
391       Several drivers used to include firmware, making kernel
392       non-free.  Fudged with GRs for a while; finally fixed in squeeze
393     </li>
394     <li>
395       Users with these devices - almost any wifi card, some network
396       controllers and Radeon GPUs - will still need the firmware
397       files installed
398     </li>
399     <li>
400       Kernel team maintains
401       <span class="package">firmware-nonfree</span> source package
402       covering most firmware files that are clearly redistributable
403     </li>
404     <li>
405       Also collected in linux-firmware.git repository maintained by
406       David Woodhouse and Ben Hutchings
407     </li>
408   </ul>
409 </div>
410
411 <div class="slide">
412   <h1>Documentation</h1>
413   <ul class="incremental">
414     <li>
415       <span class="package">manpages-dev</span> - the system call API
416     </li>
417     <li>
418       <span class="package">linux-doc-</span><var>upstream</var> -
419       miscellaneous upstream documentation
420     </li>
421     <li>
422       <span class="package">linux-manual-</span><var>upstream</var> -
423       the internal API, based on structured comments
424     </li>
425     <li>
426       <span class="package">debian-kernel-handbook</span> -
427       Debian-specific information; currently also Linux-specific but
428       could cover other kernels
429     </li>
430     <li>
431       <a href="http://wiki.debian.org/DebianKernel">http://wiki.debian.org/DebianKernel</a>
432       - wiki index page
433     </li>
434   </ul>
435 </div>
436
437 <div class="slide">
438   <h1>Questions?</h1>
439 </div>
440
441 <div class="slide">
442   <h1>Credits</h1>
443   <ul>
444     <li>
445       Linux 'Tux' logo &copy; Larry Ewing, Simon Budig.
446       <!--
447 Redistribution is free but has to include this notice.
448       -->
449       <ul>
450         <li>Modified by Ben to add Debian open-ND logo</li>
451       </ul>
452     </li>
453     <li>
454       Debian open-ND logo &copy; Software in the Public Interest, Inc.
455       <!--
456 Permission is hereby granted, free of charge, to any person obtaining
457 a copy of this software and associated documentation files (the
458 "Software"), to deal in the Software without restriction, including
459 without limitation the rights to use, copy, modify, merge, publish,
460 distribute, sublicense, and/or sell copies of the Software, and to
461 permit persons to whom the Software is furnished to do so, subject to
462 the following conditions:
463
464 The above copyright notice and this permission notice shall be
465 included in all copies or substantial portions of the Software.
466
467 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
468 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
469 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
470 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
471 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
472 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
473 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
474       -->
475     </li>
476   </ul>
477 </div>
478
479 </body>
480 </html>