<html xmlns="http://www.w3.org/1999/xhtml">
<head>
-<title>What's new in the Linux kernel - DebConf 2013</title>
+<title>What's new in the Linux kernel - DebConf 2014</title>
<!-- metadata -->
<meta name="generator" content="S5" />
<meta name="version" content="S5 1.1" />
<div id="header">
</div>
<div id="footer">
-<h1>DebConf 2013</h1>
+<h1>DebConf 2014</h1>
<h2>What's new in the Linux kernel</h2>
</div>
<div class="slide">
<h1>What's new in the Linux kernel</h1>
<object data="tux-debian.svg" width="35%" align="right"></object>
+<h2>and what's missing in Debian</h2>
<h3>Ben Hutchings</h3>
</div>
</li>
<li>
Regular Linux contributor in both roles since 2008
+ </li>
+ <li>
+ Working on various drivers and kernel code in my day job
+ </li>
+ <li>
+ Debian kernel team member, now doing most of the unstable
+ maintenance aside from ports
+ </li>
+ <li>
+ Maintaining Linux 3.2.<var>y</var> stable update series on
+ kernel.org
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>Linux releases early and often</h1>
+ <ul class="incremental">
+ <li>
+ Linux is released about 5 times a year (plus stable updates
+ every week or two)
<ul>
<li>
- Maintaining a net driver in my day job, plus core networking
- and PCI code as necessary
- </li>
- <li>
- Debian kernel team member, now doing most of the unstable
- maintenance aside from ports
- </li>
- <li>
- Maintaining Linux 3.2.<var>y</var> stable update series on
- kernel.org
+ ...though some features aren't ready to use when they firat
+ appear in a release
</li>
</ul>
</li>
+ <li>
+ Since my talk last year, Linus has made 6 releases (3.11-3.16)
+ </li>
+ <li>
+ Good news: we have lots of new kernel features in testing/unstable
+ </li>
+ <li>
+ Bad news: some of them won't really work without new userland
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>Team device driver [3.3]</h1>
+ <ul class="incremental">
+ <li>
+ Alternative to the bonding driver - simpler, modular, high-level
+ control deferred to userland
+ </li>
+ <li>
+ Basic configuration can be done with <tt>ip</tt>, but it really
+ needs new tools - <tt>teamd</tt>, <tt>teamnl</tt>, etc.
+ </li>
+ <li>
+ Make it work: see
+ <a href="http://bugs.debian.org/695850">http://bugs.debian.org/695850</a>
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>Transcendent memory [3.0-3.5]</h1>
+ <ul class="incremental">
+ <li>
+ Abstract storage for memory pages, expected to be slower than
+ regular memory but faster than disk
+ </li>
+ <li>
+ Can provide a second layer of page cache (cleancache and frontswap)
+ </li>
+ <li>
+ Pages stored by hypervisor (Xen), compressed local memory
+ (zcache) or cluster of machines (RAMster)
+ </li>
+ <li>
+ Not yet enabled in Debian kernels, and needs some thought about
+ configuration
+ </li>
+ <li>
+ Make it work: see
+ <a href="https://lwn.net/Articles/454795/">https://lwn.net/Articles/454795/</a>
+ and send proposal to debian-kernel
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>New KMS drivers [3.3-3.10]</h1>
+ <ul class="incremental">
+ <li>
+ DRM/KMS drivers added for old, new and virtual hardware -
+ AST, DisplayLink, Hyper-V, Matrox G200, QEMU Cirrus
+ </li>
+ <li>
+ Should be more robust than purely user-mode drivers, and
+ compatible with Secure Boot
+ </li>
+ <li>
+ Current X drivers don't work with these, so the kernel drivers
+ are disabled for now
+ </li>
+ <li>
+ Make it work: join the X Strike Force and package the new X
+ drivers
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>Module signing [3.7]</h1>
+ <ul class="incremental">
+ <li>
+ Kernel modules can be signed at build time, and the kernel
+ configured to refuse loading unsigned modules
+ </li>
+ <li>
+ Necessary but not sufficient to implement Secure Boot -
+ we would also need signed kernel images and some other
+ restrictions when booted in this mode
+ </li>
+ <li>
+ Make Secure Boot work: come to the meeting on Tuesday
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>More support for discard</h1>
+ <ul class="incremental">
+ <li>
+ Flash devices (and thin-provisioned SANs) can be more efficient
+ if the filesystem 'discards' unused disk space
+ </li>
+ <li>
+ Requires support in hardware, driver, filesystem and any layered
+ device drivers - e.g. LVM, RAID (added in 3.7)
+ </li>
+ <li>
+ Must be explicitly enabled, but d-i doesn't do this by default
+ </li>
+ <li>
+ Make it work: fix <a href="http://bugs.debian.org/690977">http://bugs.debian.org/690977</a>
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>More support for containers</h1>
+ <ul class="incremental">
+ <li>
+ Containers are lightweight VMs - run on the same kernel as host,
+ but with limited privileges and resources
+ </li>
+ <li>
+ Previously done by OpenVZ and Linux-VServer; gradually being
+ reimplemented upstream
+ </li>
+ <li>
+ User namespaces (added in 3.7) support the existence of a
+ <tt>root</tt> user inside the container that is unprivileged
+ outside the container
+ </li>
+ <li>
+ Currently somewhat experimental, and requires filesystem
+ changes which haven't been done for XFS
+ </li>
+ <li>
+ Make user namespaces work: send patches to upstream XFS
+ developers (this one's hard)
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>bcache [3.10]</h1>
+ <ul class="incremental">
+ <li>
+ Turns a fast block device into a cache for a larger, slower
+ device (see also: dm-cache, EnhanceIO)
+ </li>
+ <li>
+ Needs its own set of userland tools
+ </li>
+ <li>
+ Make it work:
+ see <a href="http://bugs.debian.org/708132">http://bugs.debian.org/708132</a>
+ (maybe just needs a sponsor)
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>ARMv7 multiplatform</h1>
+ <ul class="incremental">
+ <li>
+ Until recently, each ARM kernel image could support only a small
+ set of different chips
+ </li>
+ <li>
+ Debian 'armmp' kernel now supports ARMv7 SoCs from Calxeda,
+ Freescale and Marvell, and others should be supported soon
+ </li>
+ <li>
+ Debian could run on a much larger range of ARM hardware - but we
+ need installer and boot loader support to make this easy
+ </li>
+ <li>
+ Make it work: join the ARM porters and d-i team
+ </li>
+ <li>
+ Make the GPUs work: join a reverse-engineering project
+ </li>
</ul>
</div>