Fill in out-of-tree modules
[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 - Ben Hutchings - DebConf 11</title>
8 <!-- metadata -->
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 </style>
26 <style type="text/css" media="print">
27   .slide { page-break-after: always }
28 </style>
29 <!-- S5 JS -->
30 <script src="s5-blank/ui/default/slides.js" type="text/javascript"></script>
31 </head>
32 <body>
33
34 <div class="layout">
35 <div id="controls"><!-- DO NOT EDIT --></div>
36 <div id="currentSlide"><!-- DO NOT EDIT --></div>
37 <div id="header">
38   <object class="logo" data="debconf11.svg"></object>
39 </div>
40 <div id="footer">
41 <h1>DebConf 11</h1>
42 <h2>The Linux kernel in Debian</h2>
43 </div>
44
45 </div>
46
47 <div class="presentation">
48
49 <div class="slide">
50 <h1>The Linux kernel in Debian</h1>
51 <object data="tux-debian.svg" width="35%" align="right"></object>
52 <h3>Ben Hutchings</h3>
53 </div>
54
55 <div class="slide">
56   <h1>The author</h1>
57   <ul class="incremental">
58     <li>
59       Professional software developer since 1998
60     </li>
61     <li>
62       Debian contributor since 2003
63     </li>
64     <li>
65       Regular Linux contributor since 2008
66       <ul>
67         <li>
68           Maintaining a net driver in my day job, plus core networking
69           and PCI code as necessary
70         </li>
71       </ul>
72     </li>
73     <li>
74       Debian kernel contributor since 2008; uploader since 2009
75       <ul class="incremental">
76         <li>
77           Initially trying to deal with the non-free firmware issue
78         </li>
79         <li>
80           Moved on to triaging bugs, fixing bugs, backporting
81           features, updating packaging...
82         </li>
83       </ul>
84     </li>
85   </ul>
86 </div>
87
88 <div class="slide">
89   <h1>Linux kernel</h1>
90   <ul class="incremental">
91     <li>
92       Started by Linus Torvalds in 1991 as a kernel for i386
93       PCs: <q>just a hobby, won't be big and professional like gnu</q>
94     </li>
95     <li>
96       Adopted as the kernel of the Debian system in 1993
97     </li>
98     <li>
99       After 20 years' development, supports more hardware
100       architectures and devices than anything else
101       <ul class="incremental">
102         <li>
103           Hardware vendors <em>must</em> provide Linux drivers because
104           their customers demand it
105         </li>
106       </ul>
107     </li>
108     <li>
109       Still the default kernel for the Debian system
110     </li>
111   </ul>
112 </div>
113
114 <div class="slide">
115   <h1>Linux release model (1)</h1>
116   <p>
117     The old model:
118   </p>
119   <ul class="incremental">
120     <li>
121       Each stable release had even second component.  Bug fixes and
122       minor features in stable releases with third component
123       incremented (e.g. 2.4.27)
124     </li>
125     <li>
126       Major development done separately, resulting in series of
127       unstable releases with odd second component (e.g. 2.5.50)
128     </li>
129     <li>
130       After a year or two, development resulted in a new stable
131       release
132     </li>
133     <li>
134       Problem: users waited years for new features, and then got many
135       more changes all at once.  Particularly bad in the 2.4-2.6
136       transition.
137     </li>
138   </ul>
139 </div>
140
141 <div class="slide">
142   <h1>Linux release model (2)</h1>
143   <p>
144     The new model:
145   </p>
146   <ul class="incremental">
147     <li>
148       Development results in a new stable(-ish) release every 2-3
149       months
150       <ul class="incremental">
151         <li>
152           git (and previously BitKeeper) made distributed development
153           and testing a lot easier
154         </li>
155       </ul>
156     </li>
157     <li>
158       Each 2.6.<var>x</var> release has stable update branch; releases
159       numbered 2.6.<var>x</var>.<var>y</var>
160       <ul class="incremental">
161         <li>
162           Usually closed shortly after next stable release, but may
163           continue as a 'longterm' branch (e.g. 2.6.32.<var>y</var>)
164         </li>
165       </ul>
166     </li>
167     <li>
168       Linux 3.0 doesn't change this, except that <var>x</var> is now
169       the second component and <var>y</var> is the third
170     </li>
171   </ul>
172 </div>
173
174 <div class="slide">
175   <h1>Debian kernel team (1)</h1>
176   <p>
177     Who are we?
178   </p>
179   <ul class="incremental">
180     <li>
181       Currently 5 general maintainers: Maximilian Attems, Bastian
182       Blank, dann frazier, Moritz Muehlenhoff and me
183     </li>
184     <li>
185       Many more specialised contributors:
186       <ul>
187         <li>Specific architectures</li>
188         <li>Specific features (e.g. Xen)</li>
189         <li>Bug triage</li>
190       </ul>
191     </li>
192     <li>
193       Would appreciate more help, particularly with bug triage and
194       PowerPC
195     </li>
196   </ul>
197 </div>
198
199 <div class="slide">
200   <h1>Debian kernel team (2)</h1>
201   <p>
202     What do we do?
203   </p>
204   <ul class="incremental">
205     <li>
206       Bug triage - takes a huge amount of time
207     </li>
208     <li>
209       Backport bug fixes and features - particularly new hardware
210       support for stable
211       <ul class="incremental">
212         <li>...while trying not to change kernel ABI in stable</li>
213       </ul>
214     </li>
215     <li>
216       Update build configurations for each new upstream release -
217       e.g. to enable new drivers
218     </li>
219     <li>
220       Try to ensure smooth upgrades when there are major
221       implementation changes - e.g. KMS, switch to libata drivers
222     </li>
223     <li>
224       Integrate <em>some</em> features not accepted upstream
225     </li>
226   </ul>
227 </div>
228
229 <div class="slide">
230   <h1>Official Linux kernel packages (1)</h1>
231   <p>
232     Main source package is linux-2.6 (still!).  Most binary package
233     names change regularly.
234   </p>
235   <ul class="incremental">
236     <li>
237       linux-image-<var>upstream</var>-<var>abi</var>-<var>flavour</var>
238       - compiled kernel and modules
239     </li>
240     <li>
241       linux-headers-<var>upstream</var>-<var>abi</var>-<var>flavour</var>
242       (and others) - development package for OOT modules
243     </li>
244     <li>
245       linux-libc-dev - headers for userland
246     </li>
247     <li>
248       linux-source-<var>upstream</var> - for custom kernels
249     </li>
250     <li>
251       linux-doc-<var>upstream</var>, linux-tools-<var>upstream</var>,
252       etc.
253     </li>
254     <li>
255       linux-support-<var>upstream</var>-<var>abi</var> - scripts and
256       metadata to support linux-latest-2.6
257     </li>
258   </ul>
259 </div>
260
261 <div class="slide">
262   <h1>Official Linux kernel packages (2)</h1>
263   <p>
264     The linux-latest-2.6 source package builds meta-packages to
265     support automatic upgrades between binaries built from linux-2.6.
266   </p>
267   <ul class="incremental">
268     <li>
269       linux-image-<var>flavour</var>
270     </li>
271     <li>
272       linux-headers-<var>flavour</var>
273     </li>
274     <li>
275       linux-source, linux-doc, linux-tools, etc.
276     </li>
277   </ul>
278   <p class="incremental">
279     The installer will normally install linux-image-<var>flavour</var>
280     (for some appropriate <var>flavour</var>).
281   </p>
282 </div>
283
284 <div class="slide">
285   <h1>Official Linux kernel packages (3)</h1>
286   <ul class="incremental">
287     <li>
288       firmware-free - separate 'firmware' compliant with DFSG
289     </li>
290     <li>
291       linux-base - base package for images and tools
292     </li>
293     <li>
294       linux-kbuild-2.6 builds linux-kbuild-<var>upstream</var> -
295       code used for building OOT modules
296     </li>
297   </ul>
298 </div>
299
300 <div class="slide">
301   <h1>Custom Linux kernel builds</h1>
302   <p>
303     The official packages work for most users, but not all:
304   </p>
305   <ul class="incremental">
306     <li>
307       Different ARM platforms need incompatible configurations,
308       and we cannot build them all
309     </li>
310     <li>
311       New features are not enabled immediately if we are worried
312       about potential regressions
313     </li>
314   </ul>
315   <p class="incremental">
316     Using either upstream source or Debian linux-source package:
317   </p>
318   <ul class="incremental">
319     <li>
320       <tt>make && make install</tt>
321     </li>
322     <li>
323       <tt>make deb-pkg</tt> - build packages
324     </li>
325     <li>
326       <tt>make-kpkg</tt> - build packages with more customisation;
327       requires kernel-package
328     </li>
329   </ul>
330 </div>
331
332 <div class="slide">
333   <h1>Out-of-tree modules</h1>
334   <p>
335     The kernel team does not encourage the use of out-of-tree modules.
336     However, we support them by providing development packages and by
337     avoiding ABI changes during a stable release.
338   </p>
339   <p class="incremental">
340     Debian has two packages to aid in building out-of-tree modules:
341   </p>
342   <ul class="incremental">
343     <li>
344       <tt>dkms</tt> - builds and installs modules automatically.  Can
345       build packages for installation on other systems.  Also
346       supported by Ubuntu and SUSE.
347     </li>
348     <li>
349       <tt>module-assistant</tt> - builds packages as directed.
350       Uses a separate package name for each kernel ABI.
351     </li>
352   </ul>
353 </div>
354
355 <div class="slide">
356   <h1>Firmware files</h1>
357 </div>
358
359 <div class="slide">
360   <h1>Documentation</h1>
361 </div>
362
363 <div class="slide">
364   <h1>Questions?</h1>
365 </div>
366
367 <div class="slide">
368   <h1>Credits</h1>
369   <ul>
370     <li>
371       Linux 'Tux' logo &copy; Larry Ewing, Simon Budig.
372       <!--
373 Redistribution is free but has to include this notice.
374       -->
375       <ul>
376         <li>Modified by me to add Debian open-ND logo</li>
377       </ul>
378     </li>
379     <li>
380       Debian open-ND logo &copy; Software in the Public Interest, Inc.
381       <!--
382 Permission is hereby granted, free of charge, to any person obtaining
383 a copy of this software and associated documentation files (the
384 "Software"), to deal in the Software without restriction, including
385 without limitation the rights to use, copy, modify, merge, publish,
386 distribute, sublicense, and/or sell copies of the Software, and to
387 permit persons to whom the Software is furnished to do so, subject to
388 the following conditions:
389
390 The above copyright notice and this permission notice shall be
391 included in all copies or substantial portions of the Software.
392
393 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
394 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
395 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
396 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
397 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
398 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
399 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
400       -->
401     </li>
402     <li>
403       DebConf 11 logo &copy; Aur&eacute;lio A. Heckert.
404       <!--
405 This program is free software; you can redistribute it
406 and/or modify it under the terms of the GNU General Public
407 License as published by the Free Software Foundation;
408 version 2 of the License.
409
410 This program is distributed in the hope that it will be
411 useful, but WITHOUT ANY WARRANTY; without even the implied
412 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
413 PURPOSE.  See the GNU General Public License for more
414 details.
415
416 You should have received a copy of the GNU General Public
417 License along with this package; if not, write to the Free
418 Software Foundation, Inc., 51 Franklin St, Fifth Floor,
419 Boston, MA  02110-1301 USA
420
421 On Debian systems, the full text of the GNU General Public
422 License version 2 can be found in the file
423 `/usr/share/common-licenses/GPL-2'.
424       -->
425       <ul>
426         <li>Resized and coloured by me</li>
427       </ul>
428     </li>
429   </ul>
430 </div>
431
432 </body>
433 </html>