SlideShare a Scribd company logo
Linux Kernel
Development
Greg Kroah-Hartman
gregkh@linuxfoundation.org
github.com/gregkh/kernel-development
58,000 files
23,100,000 lines
Kernel release 4.11.0
3,781 developers
≈400 companies
Kernel releases 4.7.0 – 4.11.0
May 2016 – April 2017
7,300 lines added
2,400 lines removed
2,000 lines modified
Kernel releases 4.7.0 – 4.11.0
May 2016 – April 2017
7,300 lines added
2,400 lines removed
2,000 lines modified
Every day
Kernel releases 4.7.0 – 4.11.0
May 2016 – April 2017
8 changes per hour
Kernel releases 4.7.0 – 4.11.0
May 2016 – April 2017
9.7 changes per hour
4.9 release
2.6.20 to 2.6.24-rc
4.12 release July 7th
?
2nd
largest release
2.6.20 to 2.6.24-rc
How we stay sane
2.6.20 to 2.6.24-rc
Time based releases
Incremental changes
New release every
2½ months
Kernel releases 3.10.0 – 3.14.0
“Longterm kernels”
One picked per year
Maintained for two years
4.4 4.9
2.6.20 to 2.6.24-rc
Top developers by quantity
Chris Wilson 1093
Mauro Carvalho Chehab 845
Johan Hovold 754
Arnd Bergmann 714
Viresh Kumar 537
Geert Uytterhoeven 473
Christoph Hellwig 456
Wei Yongjun 451
Ville Syrjälä 446
Linus Walleij 411
Greg Kroah-Hartman 409
Kernel releases 4.7.0 – 4.11.0
Top Signed-off-by:
Greg Kroah-Hartman 7734
David S. Miller 7107
Mauro Carvalho Chehab 2317
Linus Torvalds 2144
Mark Brown 1966
Andrew Morton 1930
Ingo Molnar 1809
Alex Deucher 1529
Linus Walleij 1202
Chris Wilson 1199
Kalle Valo 1196
Kernel releases 4.7.0 – 4.11.0
Who is funding this work?
Kernel releases 4.7 – 4.11
1. “Amateurs” 14.4%
2. Intel 13.4%
3. Red Hat 7.3%
4. Linaro 6.4%
5. IBM 3.4%
6. Samsung 3.4%
7. Consultants 3.0%
8. SuSE 2.9%
9. Google 2.7%
10. AMD 2.3%
Who is funding this work?
11. Mellanox 1.9%
12. Renesas Electronics 1.8%
13. Huawei Technologies 1.6%
14. Oracle 1.6%
15. Broadcom 1.5%
16. Texas Instruments 1.5%
17. ARM 1.4%
18. Free Electrons 1.1%
19. Imagination Technologies 1.0%
20. NXP Semiconductors 0.9%
Kernel releases 4.7 – 4.11
“Working upstream
saves time and money”
2.6.20 to 2.6.24-rc
Dan Frye – VP Open Systems, IBM
Dirk Hohndel – Chief Technologist, Intel
Getting involved
2.6.20 to 2.6.24-rc
Run the kernel.org release on your machine
Getting involved
2.6.20 to 2.6.24-rc
2.6.20 to 2.6.24-rc
Documentation/HOWTO
Documentation/development-process
Getting involved
2.6.20 to 2.6.24-rc
Getting involved
kernelnewbies.org
2.6.20 to 2.6.24-rc
Getting involved
Google “write your first kernel patch”
2.6.20 to 2.6.24-rc
Getting involved
kernelnewbies.org/KernelJanitors/Todo
2.6.20 to 2.6.24-rc
Linux Driver Project
drivers/staging/*/TODO
Getting involved
2.6.20 to 2.6.24-rc
Getting involved
http://eudyptula-challenge.org/
Eudyptula Challenge
(little penguin)
github.com/gregkh/kernel-development
Linux Kernel
Development
Greg Kroah-Hartman
gregkh@linuxfoundation.org
github.com/gregkh/kernel-development
I'm going to discuss the how fast the kernel is
moving, how we do it all, and how you can
get involved.
58,000 files
23,100,000 lines
Kernel release 4.11.0
This was for the 4.11 kernel release, which
happened April 30, 2017.
3,781 developers
≈400 companies
Kernel releases 4.7.0 – 4.11.0
May 2016 – April 2017
This makes the Linux kernel the largest
contributed body of software out there that
we know of.
This is just the number of companies that we
know about, there are more that we do not,
and as the responses to our inquiries come
in, this number will go up.
Have surpassed 400 companies for 4 years
now.
7,300 lines added
2,400 lines removed
2,000 lines modified
Kernel releases 4.7.0 – 4.11.0
May 2016 – April 2017
7,300 lines added
2,400 lines removed
2,000 lines modified
Every day
Kernel releases 4.7.0 – 4.11.0
May 2016 – April 2017
8 changes per hour
Kernel releases 4.7.0 – 4.11.0
May 2016 – April 2017
This is 24 hours a day, 7 days a week, for a
full year.
We went this fast the year before this as well,
this is an amazing rate of change.
Interesting note, all of these changes are all
through the whole kernel.
For example, the core kernel is only 5% of the
code, and 5% of the change was to the core
kernel. Drivers are 55%, and 55% was done
to them, it's completely proportional all
across the whole kernel.
9.7 changes per hour
4.9 release
2.6.20 to 2.6.24-rc8
4.9 was the “largest” in number of changes
that we have ever accepted. After 4.9,
things went down a bit for 4.10 and 4.11,
but 4.12 is getting very big.
Now this is just the patches we accepted, not
all of the patches that have been submitted,
lots of patches are rejected, as anyone who
has ever tried to submit a patch can attest
to.
4.12 release July 7th
?
2nd
largest release
2.6.20 to 2.6.24-rc8
4.12 should be released on July 7th
and is on
track to be the 2nd
largest release by number
of changes we have ever done.
And the first largest on number of lines of
code we have added, due to some very large
drivers being added to the tree.
How we stay sane
2.6.20 to 2.6.24-rc8
Time based releases
Incremental changes
New release every
2½ months
Kernel releases 3.10.0 – 3.14.0
67 days to be exact, very regular experience.
How a kernel is developed.
Linus releases a stable kernel
- 2 week merge window from subsystem
maintainers
- rc1 is released
- bugfixes only now
- 2 weeks later, rc2
- bugfixes and regressions
- 2 weeks later,rc3
And so on until all major bugfixes and
regressions are resolved and then the cycle
starts over again.
Greg takes the stable releases from Linus,
and does stable releases with them,
applying only fixes that are already in
Linus's tree.
Requiring fixes to be in Linus's tree first
ensures that there is no divergence in the
development model.
After Linus releases a new stable release,
the old stable series is dropped.
With the exception of “longterm” stable
releases, those are special, the stick around
for much longer...
“Longterm kernels”
One picked per year
Maintained for two years
4.4 4.9
2.6.20 to 2.6.24-rc8
I pick one kernel release per year to maintain for
longer than one release cycle. This kernel I will
maintain for at least 2 years.
This means there are 2 longterm kernels being
maintained at the same time.
4.4 and 4.9 are the longterm kernel releases I am
currently maintaining
The LTSI project is based on the longterm kernels.
Like mentioned before, we have almost 3000
individual contributors. They all create a
patch, a single change to the Linux kernel.
This change could be something small, like a
spelling correction, or something larger, like
a whole new driver.
Every patch that is created only does one
thing, and it can not break the build,
complex changes to the kernel get broken
up into smaller pieces.
The developers send their patch to the
maintainer of the file(s) that they have
modified.
We have about 700 different
driver/file/subsystem maintainers
After reviewing the code, and adding their
own signed-off-by to the patch, the
file/driver maintainer sends the patch to the
subsystem maintainer responsible for that
portion of the kernel.
We have around 150 subsystem maintainers
Linux-next gets created every night from all
of the different subsystem trees and build
tested on a wide range of different
platforms.
We have about 150 different trees in the
linux-next release.
Andrew Morton picks up patches that cross
subsystems, or are missed by others, and
releases his -mm kernels every few weeks.
This includes the linux-next release at that
time.
Every 3 months, when the merge window
opens up, everything gets sent to Linus from
the subsystem maintainers and Andrew
Morton.
The merge window is 2 weeks long, and
thousands of patches get merged in that
short time.
All of the patches merged to Linus should
have been in the linux-next release, but that
isn't always the case for various reasons.
Linux-next can not just be sent to Linus as
there are things in there that sometimes are
not good enough to be merged just yet, it is
up to the individual subsystem maintainer to
decide what to merge.
Top developers by quantity
Chris Wilson 1093
Mauro Carvalho Chehab 845
Johan Hovold 754
Arnd Bergmann 714
Viresh Kumar 537
Geert Uytterhoeven 473
Christoph Hellwig 456
Wei Yongjun 451
Ville Syrjälä 446
Linus Walleij 411
Greg Kroah-Hartman 409
Kernel releases 4.7.0 – 4.11.0
Chris – intel graphics drivers
Mauro – Video 4 Linux (media drivers)
Johan – greybus, usb-serial, drivers
Arnd – janitorial cleanups and arch-generic
Viresh – greybus
Geert – janitorial
Christoph – vfs, filesystems, xfs, everywhere
Wei - Janitorial
Ville – intel graphics
Linus – gpio, pin, arm drivers
Greg – greybus
Top Signed-off-by:
Greg Kroah-Hartman 7734
David S. Miller 7107
Mauro Carvalho Chehab 2317
Linus Torvalds 2144
Mark Brown 1966
Andrew Morton 1930
Ingo Molnar 1809
Alex Deucher 1529
Linus Walleij 1202
Chris Wilson 1199
Kalle Valo 1196
Kernel releases 4.7.0 – 4.11.0
Greg – driver core, usb, staging, greybus
David – networking, isa
Mauro – video 4 linux (media)
Linus – everything
Mark – embedded sound
Andrew – everything
Ingo – x86
Alex – radeon graphics
Linus – gpio and pinctl
Chris – intel graphics
Kalle – wireless drivers
Who is funding this work?
Kernel releases 4.7 – 4.11
1. “Amateurs” 14.4%
2. Intel 13.4%
3. Red Hat 7.3%
4. Linaro 6.4%
5. IBM 3.4%
6. Samsung 3.4%
7. Consultants 3.0%
8. SuSE 2.9%
9. Google 2.7%
10. AMD 2.3%
So you can view this as either 14% is done by
non-affiliated people, or 86% is done by
companies.
Now to be fair, if you show any skill in kernel
development you are instantly hired.
Why this all matters: If your company relies
on Linux, and it depends on the future of
Linux supporting your needs, then you
either trust these other companies are
developing Linux in ways that will benefit
you, or you need to get involved to make
sure Linux works properly for your
workloads and needs.
Who is funding this work?
11. Mellanox 1.9%
12. Renesas Electronics 1.8%
13. Huawei Technologies 1.6%
14. Oracle 1.6%
15. Broadcom 1.5%
16. Texas Instruments 1.5%
17. ARM 1.4%
18. Free Electrons 1.1%
19. Imagination Technologies 1.0%
20. NXP Semiconductors 0.9%
Kernel releases 4.7 – 4.11
Intel – 9000 patches
Huawei - 1115 patches (almost half done by
one developer!!!)
NXP - 636
“Working upstream
saves time and money”
2.6.20 to 2.6.24-rc8
Dan Frye – VP Open Systems, IBM
Dirk Hohndel – Chief Technologist, Intel
Getting involved
2.6.20 to 2.6.24-rc8
1
p
Run the kernel.org release on your machine
Getting involved
2.6.20 to 2.6.24-rc8
1
p
This book tells you how to build and install a kernel
on your machine.
Free online
2.6.20 to 2.6.24-rc8
Documentation/HOWTO
Documentation/development-process
Getting involved
These documents in the kernel source
directory are the best place to start if you
want to understand how the development
process works, and how to get involved.
The HOWTO file has links to almost
everything else you ever wanted..
2.6.20 to 2.6.24-rc8
Getting involved
kernelnewbies.org
http://www.kernelnewbies.org
2.6.20 to 2.6.24-rc8
Getting involved
Google “write your first kernel patch”
This is a video of a talk I gave at FOSDEM,
going through the steps, showing exactly
how to create, build, and send a kernel
patch.
2.6.20 to 2.6.24-rc8
Getting involved
kernelnewbies.org/KernelJanitors/Todo
So you know how to create a patch, but
what should you do? The kernel janitors has
a great list of tasks to start with in cleaning
up the kernel and making easy patches to be
accepted.
2.6.20 to 2.6.24-rc8
Linux Driver Project
drivers/staging/*/TODO
Getting involved
The staging tree also needs a lot of help, here
are lists of things to do in the kernel for the
drivers to be able to move out of the staging
area.
Please always work off of the linux-next tree if
you want to do these tasks, as sometimes
they are already done by others by the time
you see them in Linus's tree.
2.6.20 to 2.6.24-rc8
Getting involved
http://eudyptula-challenge.org/
Eudyptula Challenge
(little penguin)
Google “Linux kernel challenge” to find the
site, if you can't remember Eudyptula.
It is a series of programming challenges, all
run through email that starts out with a
“Hello World” kernel module, and gets more
complex from there. Over 4000 people are
currently taking the challenge, and is a lot
of fun if you don't know where to start out.
You need knowledge of C, but that's about it.
github.com/gregkh/kernel-development
Obligatory Penguin Picture
Linux Kernel Development

More Related Content

What's hot

Linux device drivers
Linux device drivers Linux device drivers
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
Opersys inc.
 
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
Emertxe Information Technologies Pvt Ltd
 
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part IVEmbedded Android : System Development - Part IV
Embedded Android : System Development - Part IV
Emertxe Information Technologies Pvt Ltd
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
shimosawa
 
Linux Internals - Part II
Linux Internals - Part IILinux Internals - Part II
Linux Internals - Part II
Emertxe Information Technologies Pvt Ltd
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
Emertxe Information Technologies Pvt Ltd
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
Emertxe Information Technologies Pvt Ltd
 
Slab Allocator in Linux Kernel
Slab Allocator in Linux KernelSlab Allocator in Linux Kernel
Slab Allocator in Linux Kernel
Adrian Huang
 
How To Build Android for ARM Chip boards
How To Build Android for ARM Chip boardsHow To Build Android for ARM Chip boards
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra Solutions
QUONTRASOLUTIONS
 
Linux booting Process
Linux booting ProcessLinux booting Process
Linux booting Process
Gaurav Sharma
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
Omkar Rane
 
An Introduction to Linux
An Introduction to LinuxAn Introduction to Linux
An Introduction to Linux
anandvaidya
 
Linux Internals - Part I
Linux Internals - Part ILinux Internals - Part I
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOQuick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
Chris Simmonds
 
Linux Booting Steps
Linux Booting StepsLinux Booting Steps
Linux Booting Steps
Anando Kumar Paul
 
Linux Device Driver’s
Linux Device Driver’sLinux Device Driver’s
Linux Device Driver’s
Rashmi Warghade
 
GPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive SolutionsGPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive Solutions
GlobalLogic Ukraine
 
Linux OS presentation
Linux OS presentationLinux OS presentation
Linux OS presentation
SahilGothoskar
 

What's hot (20)

Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
 
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
 
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part IVEmbedded Android : System Development - Part IV
Embedded Android : System Development - Part IV
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
 
Linux Internals - Part II
Linux Internals - Part IILinux Internals - Part II
Linux Internals - Part II
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
Slab Allocator in Linux Kernel
Slab Allocator in Linux KernelSlab Allocator in Linux Kernel
Slab Allocator in Linux Kernel
 
How To Build Android for ARM Chip boards
How To Build Android for ARM Chip boardsHow To Build Android for ARM Chip boards
How To Build Android for ARM Chip boards
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra Solutions
 
Linux booting Process
Linux booting ProcessLinux booting Process
Linux booting Process
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
An Introduction to Linux
An Introduction to LinuxAn Introduction to Linux
An Introduction to Linux
 
Linux Internals - Part I
Linux Internals - Part ILinux Internals - Part I
Linux Internals - Part I
 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOQuick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
 
Linux Booting Steps
Linux Booting StepsLinux Booting Steps
Linux Booting Steps
 
Linux Device Driver’s
Linux Device Driver’sLinux Device Driver’s
Linux Device Driver’s
 
GPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive SolutionsGPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive Solutions
 
Linux OS presentation
Linux OS presentationLinux OS presentation
Linux OS presentation
 

Viewers also liked

Container Security
Container SecurityContainer Security
Building a Better Thermostat
Building a Better ThermostatBuilding a Better Thermostat
Building a Better Thermostat
LinuxCon ContainerCon CloudOpen China
 
Rethinking the OS
Rethinking the OSRethinking the OS
LiteOS
LiteOS LiteOS
OpenDaylight OpenStack Integration
OpenDaylight OpenStack IntegrationOpenDaylight OpenStack Integration
OpenDaylight OpenStack Integration
LinuxCon ContainerCon CloudOpen China
 
Obstacles & Solutions for Livepatch Support on ARM64 Architecture
Obstacles & Solutions for Livepatch Support on ARM64 ArchitectureObstacles & Solutions for Livepatch Support on ARM64 Architecture
Obstacles & Solutions for Livepatch Support on ARM64 Architecture
LinuxCon ContainerCon CloudOpen China
 
OpenStack on AArch64
OpenStack on AArch64OpenStack on AArch64
Hyperledger Technical Community in China.
Hyperledger Technical Community in China. Hyperledger Technical Community in China.
Hyperledger Technical Community in China.
LinuxCon ContainerCon CloudOpen China
 
Linuxcon secureefficientcontainerimagemanagementharbor
Linuxcon secureefficientcontainerimagemanagementharborLinuxcon secureefficientcontainerimagemanagementharbor
Linuxcon secureefficientcontainerimagemanagementharbor
LinuxCon ContainerCon CloudOpen China
 
Simplify Networking for Containers
Simplify Networking for ContainersSimplify Networking for Containers
Simplify Networking for Containers
LinuxCon ContainerCon CloudOpen China
 
Libvirt API Certification
Libvirt API CertificationLibvirt API Certification
Libvirt API Certification
LinuxCon ContainerCon CloudOpen China
 
GPU Acceleration for Containers on Intel Processor Graphics
GPU Acceleration for Containers on Intel Processor GraphicsGPU Acceleration for Containers on Intel Processor Graphics
GPU Acceleration for Containers on Intel Processor Graphics
LinuxCon ContainerCon CloudOpen China
 
Status of Embedded Linux
Status of Embedded LinuxStatus of Embedded Linux
Status of Embedded Linux
LinuxCon ContainerCon CloudOpen China
 
Releasing a Distribution in the Age of DevOps.
Releasing a Distribution in the Age of DevOps. Releasing a Distribution in the Age of DevOps.
Releasing a Distribution in the Age of DevOps.
LinuxCon ContainerCon CloudOpen China
 
点融网区块链即服务实践 - The Practice of Blockchain as a Service in Dianrong
点融网区块链即服务实践 - The Practice of Blockchain as a Service in Dianrong点融网区块链即服务实践 - The Practice of Blockchain as a Service in Dianrong
点融网区块链即服务实践 - The Practice of Blockchain as a Service in Dianrong
LinuxCon ContainerCon CloudOpen China
 
Practical CNI
Practical CNIPractical CNI
kdump: usage and_internals
kdump: usage and_internalskdump: usage and_internals
kdump: usage and_internals
LinuxCon ContainerCon CloudOpen China
 
High Performance Linux Virtual Machine on Microsoft Azure: SR-IOV Networking ...
High Performance Linux Virtual Machine on Microsoft Azure: SR-IOV Networking ...High Performance Linux Virtual Machine on Microsoft Azure: SR-IOV Networking ...
High Performance Linux Virtual Machine on Microsoft Azure: SR-IOV Networking ...
LinuxCon ContainerCon CloudOpen China
 
Quickly Debug VM Failures in OpenStack
Quickly Debug VM Failures in OpenStackQuickly Debug VM Failures in OpenStack
Quickly Debug VM Failures in OpenStack
LinuxCon ContainerCon CloudOpen China
 
Fully automated kubernetes deployment and management
Fully automated kubernetes deployment and managementFully automated kubernetes deployment and management
Fully automated kubernetes deployment and management
LinuxCon ContainerCon CloudOpen China
 

Viewers also liked (20)

Container Security
Container SecurityContainer Security
Container Security
 
Building a Better Thermostat
Building a Better ThermostatBuilding a Better Thermostat
Building a Better Thermostat
 
Rethinking the OS
Rethinking the OSRethinking the OS
Rethinking the OS
 
LiteOS
LiteOS LiteOS
LiteOS
 
OpenDaylight OpenStack Integration
OpenDaylight OpenStack IntegrationOpenDaylight OpenStack Integration
OpenDaylight OpenStack Integration
 
Obstacles & Solutions for Livepatch Support on ARM64 Architecture
Obstacles & Solutions for Livepatch Support on ARM64 ArchitectureObstacles & Solutions for Livepatch Support on ARM64 Architecture
Obstacles & Solutions for Livepatch Support on ARM64 Architecture
 
OpenStack on AArch64
OpenStack on AArch64OpenStack on AArch64
OpenStack on AArch64
 
Hyperledger Technical Community in China.
Hyperledger Technical Community in China. Hyperledger Technical Community in China.
Hyperledger Technical Community in China.
 
Linuxcon secureefficientcontainerimagemanagementharbor
Linuxcon secureefficientcontainerimagemanagementharborLinuxcon secureefficientcontainerimagemanagementharbor
Linuxcon secureefficientcontainerimagemanagementharbor
 
Simplify Networking for Containers
Simplify Networking for ContainersSimplify Networking for Containers
Simplify Networking for Containers
 
Libvirt API Certification
Libvirt API CertificationLibvirt API Certification
Libvirt API Certification
 
GPU Acceleration for Containers on Intel Processor Graphics
GPU Acceleration for Containers on Intel Processor GraphicsGPU Acceleration for Containers on Intel Processor Graphics
GPU Acceleration for Containers on Intel Processor Graphics
 
Status of Embedded Linux
Status of Embedded LinuxStatus of Embedded Linux
Status of Embedded Linux
 
Releasing a Distribution in the Age of DevOps.
Releasing a Distribution in the Age of DevOps. Releasing a Distribution in the Age of DevOps.
Releasing a Distribution in the Age of DevOps.
 
点融网区块链即服务实践 - The Practice of Blockchain as a Service in Dianrong
点融网区块链即服务实践 - The Practice of Blockchain as a Service in Dianrong点融网区块链即服务实践 - The Practice of Blockchain as a Service in Dianrong
点融网区块链即服务实践 - The Practice of Blockchain as a Service in Dianrong
 
Practical CNI
Practical CNIPractical CNI
Practical CNI
 
kdump: usage and_internals
kdump: usage and_internalskdump: usage and_internals
kdump: usage and_internals
 
High Performance Linux Virtual Machine on Microsoft Azure: SR-IOV Networking ...
High Performance Linux Virtual Machine on Microsoft Azure: SR-IOV Networking ...High Performance Linux Virtual Machine on Microsoft Azure: SR-IOV Networking ...
High Performance Linux Virtual Machine on Microsoft Azure: SR-IOV Networking ...
 
Quickly Debug VM Failures in OpenStack
Quickly Debug VM Failures in OpenStackQuickly Debug VM Failures in OpenStack
Quickly Debug VM Failures in OpenStack
 
Fully automated kubernetes deployment and management
Fully automated kubernetes deployment and managementFully automated kubernetes deployment and management
Fully automated kubernetes deployment and management
 

Similar to Linux Kernel Development

Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Anne Nicolas
 
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KHKernel Recipes 2017 - Linux Kernel Release Model - Greg KH
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH
Anne Nicolas
 
Sistem operasi
Sistem operasiSistem operasi
Sistem operasi
gusfaleo firnando
 
Canonical ubuntu introduction_20170330
Canonical ubuntu introduction_20170330Canonical ubuntu introduction_20170330
Canonical ubuntu introduction_20170330
Takaaki Suzuki
 
Select, manage, and backport the long term stable kernels
Select, manage, and backport the long term stable kernelsSelect, manage, and backport the long term stable kernels
Select, manage, and backport the long term stable kernels
SZ Lin
 
Slide sistem operasi
Slide sistem operasiSlide sistem operasi
Slide sistem operasi
theogrouptech
 
Kernel Recipes 2016 - The kernel report
Kernel Recipes 2016 - The kernel reportKernel Recipes 2016 - The kernel report
Kernel Recipes 2016 - The kernel report
Anne Nicolas
 
Project history.en
Project history.enProject history.en
Project history.en
Златан Тодорић
 
LCA13: Why I Don't Want Your Code
LCA13: Why I Don't Want Your CodeLCA13: Why I Don't Want Your Code
LCA13: Why I Don't Want Your Code
Linaro
 
Linux a free and open source operating system
Linux a free and open source operating systemLinux a free and open source operating system
Linux a free and open source operating system
banwait
 
Linux a free and open source operating system
Linux a free and open source operating systemLinux a free and open source operating system
Linux a free and open source operating system
banwait
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
Liran Ben Haim
 
Presentation1
Presentation1Presentation1
Presentation1catarino
 
Presentation1
Presentation1Presentation1
Presentation1cedrick
 
CentOS
CentOSCentOS
CentOS
cedrick
 
CentOS
CentOSCentOS
CentOS
mara yerro
 
CentOS
CentOSCentOS
Linux and SUSE
Linux and SUSELinux and SUSE
Linux and SUSE
Liang Yan
 

Similar to Linux Kernel Development (20)

Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
 
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KHKernel Recipes 2017 - Linux Kernel Release Model - Greg KH
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH
 
Sistem operasi
Sistem operasiSistem operasi
Sistem operasi
 
Canonical ubuntu introduction_20170330
Canonical ubuntu introduction_20170330Canonical ubuntu introduction_20170330
Canonical ubuntu introduction_20170330
 
Select, manage, and backport the long term stable kernels
Select, manage, and backport the long term stable kernelsSelect, manage, and backport the long term stable kernels
Select, manage, and backport the long term stable kernels
 
Slide sistem operasi
Slide sistem operasiSlide sistem operasi
Slide sistem operasi
 
Kernel Recipes 2016 - The kernel report
Kernel Recipes 2016 - The kernel reportKernel Recipes 2016 - The kernel report
Kernel Recipes 2016 - The kernel report
 
Project history.en
Project history.enProject history.en
Project history.en
 
LCA13: Why I Don't Want Your Code
LCA13: Why I Don't Want Your CodeLCA13: Why I Don't Want Your Code
LCA13: Why I Don't Want Your Code
 
Linux a free and open source operating system
Linux a free and open source operating systemLinux a free and open source operating system
Linux a free and open source operating system
 
Linux a free and open source operating system
Linux a free and open source operating systemLinux a free and open source operating system
Linux a free and open source operating system
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
 
Presentation1
Presentation1Presentation1
Presentation1
 
Presentation1
Presentation1Presentation1
Presentation1
 
Presentation1
Presentation1Presentation1
Presentation1
 
CentOS
CentOSCentOS
CentOS
 
CentOS
CentOSCentOS
CentOS
 
CentOS
CentOSCentOS
CentOS
 
Step by-step installation of a secure linux web dns- and mail server
Step by-step installation of a secure linux web  dns- and mail serverStep by-step installation of a secure linux web  dns- and mail server
Step by-step installation of a secure linux web dns- and mail server
 
Linux and SUSE
Linux and SUSELinux and SUSE
Linux and SUSE
 

More from LinuxCon ContainerCon CloudOpen China

SecurityPI - Hardening your IoT endpoints in Home.
SecurityPI - Hardening your IoT endpoints in Home. SecurityPI - Hardening your IoT endpoints in Home.
SecurityPI - Hardening your IoT endpoints in Home.
LinuxCon ContainerCon CloudOpen China
 
Scale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 servicesScale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 services
LinuxCon ContainerCon CloudOpen China
 
Flowchain: A case study on building a Blockchain for the IoT
Flowchain: A case study on building a Blockchain for the IoTFlowchain: A case study on building a Blockchain for the IoT
Flowchain: A case study on building a Blockchain for the IoT
LinuxCon ContainerCon CloudOpen China
 
Secure Containers with EPT Isolation
Secure Containers with EPT IsolationSecure Containers with EPT Isolation
Secure Containers with EPT Isolation
LinuxCon ContainerCon CloudOpen China
 
Open Source Software Business Models Redux
Open Source Software Business Models ReduxOpen Source Software Business Models Redux
Open Source Software Business Models Redux
LinuxCon ContainerCon CloudOpen China
 
Running Legacy Applications with Containers
Running Legacy Applications with ContainersRunning Legacy Applications with Containers
Running Legacy Applications with Containers
LinuxCon ContainerCon CloudOpen China
 
Introduction to OCI Image Technologies Serving Container
Introduction to OCI Image Technologies Serving ContainerIntroduction to OCI Image Technologies Serving Container
Introduction to OCI Image Technologies Serving Container
LinuxCon ContainerCon CloudOpen China
 
Rebuild - Simplifying Embedded and IoT Development Using Linux Containers
Rebuild - Simplifying Embedded and IoT Development Using Linux ContainersRebuild - Simplifying Embedded and IoT Development Using Linux Containers
Rebuild - Simplifying Embedded and IoT Development Using Linux Containers
LinuxCon ContainerCon CloudOpen China
 
Policy-based Resource Placement
Policy-based Resource PlacementPolicy-based Resource Placement
Policy-based Resource Placement
LinuxCon ContainerCon CloudOpen China
 
From Resilient to Antifragile Chaos Engineering Primer
From Resilient to Antifragile Chaos Engineering PrimerFrom Resilient to Antifragile Chaos Engineering Primer
From Resilient to Antifragile Chaos Engineering Primer
LinuxCon ContainerCon CloudOpen China
 
OCI Support in Mesos
OCI Support in MesosOCI Support in Mesos
See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...
LinuxCon ContainerCon CloudOpen China
 
UEFI HTTP/HTTPS Boot
UEFI HTTP/HTTPS BootUEFI HTTP/HTTPS Boot
How Open Source Communities do Standardization
How Open Source Communities do StandardizationHow Open Source Communities do Standardization
How Open Source Communities do Standardization
LinuxCon ContainerCon CloudOpen China
 
Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling
LinuxCon ContainerCon CloudOpen China
 
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoTZephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
LinuxCon ContainerCon CloudOpen China
 

More from LinuxCon ContainerCon CloudOpen China (16)

SecurityPI - Hardening your IoT endpoints in Home.
SecurityPI - Hardening your IoT endpoints in Home. SecurityPI - Hardening your IoT endpoints in Home.
SecurityPI - Hardening your IoT endpoints in Home.
 
Scale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 servicesScale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 services
 
Flowchain: A case study on building a Blockchain for the IoT
Flowchain: A case study on building a Blockchain for the IoTFlowchain: A case study on building a Blockchain for the IoT
Flowchain: A case study on building a Blockchain for the IoT
 
Secure Containers with EPT Isolation
Secure Containers with EPT IsolationSecure Containers with EPT Isolation
Secure Containers with EPT Isolation
 
Open Source Software Business Models Redux
Open Source Software Business Models ReduxOpen Source Software Business Models Redux
Open Source Software Business Models Redux
 
Running Legacy Applications with Containers
Running Legacy Applications with ContainersRunning Legacy Applications with Containers
Running Legacy Applications with Containers
 
Introduction to OCI Image Technologies Serving Container
Introduction to OCI Image Technologies Serving ContainerIntroduction to OCI Image Technologies Serving Container
Introduction to OCI Image Technologies Serving Container
 
Rebuild - Simplifying Embedded and IoT Development Using Linux Containers
Rebuild - Simplifying Embedded and IoT Development Using Linux ContainersRebuild - Simplifying Embedded and IoT Development Using Linux Containers
Rebuild - Simplifying Embedded and IoT Development Using Linux Containers
 
Policy-based Resource Placement
Policy-based Resource PlacementPolicy-based Resource Placement
Policy-based Resource Placement
 
From Resilient to Antifragile Chaos Engineering Primer
From Resilient to Antifragile Chaos Engineering PrimerFrom Resilient to Antifragile Chaos Engineering Primer
From Resilient to Antifragile Chaos Engineering Primer
 
OCI Support in Mesos
OCI Support in MesosOCI Support in Mesos
OCI Support in Mesos
 
See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...
 
UEFI HTTP/HTTPS Boot
UEFI HTTP/HTTPS BootUEFI HTTP/HTTPS Boot
UEFI HTTP/HTTPS Boot
 
How Open Source Communities do Standardization
How Open Source Communities do StandardizationHow Open Source Communities do Standardization
How Open Source Communities do Standardization
 
Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling
 
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoTZephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
 

Recently uploaded

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 

Recently uploaded (20)

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 

Linux Kernel Development

  • 3. 3,781 developers ≈400 companies Kernel releases 4.7.0 – 4.11.0 May 2016 – April 2017
  • 4. 7,300 lines added 2,400 lines removed 2,000 lines modified Kernel releases 4.7.0 – 4.11.0 May 2016 – April 2017
  • 5. 7,300 lines added 2,400 lines removed 2,000 lines modified Every day Kernel releases 4.7.0 – 4.11.0 May 2016 – April 2017
  • 6. 8 changes per hour Kernel releases 4.7.0 – 4.11.0 May 2016 – April 2017
  • 7. 9.7 changes per hour 4.9 release 2.6.20 to 2.6.24-rc
  • 8. 4.12 release July 7th ? 2nd largest release 2.6.20 to 2.6.24-rc
  • 9. How we stay sane 2.6.20 to 2.6.24-rc Time based releases Incremental changes
  • 10. New release every 2½ months Kernel releases 3.10.0 – 3.14.0
  • 11.
  • 12.
  • 13. “Longterm kernels” One picked per year Maintained for two years 4.4 4.9 2.6.20 to 2.6.24-rc
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Top developers by quantity Chris Wilson 1093 Mauro Carvalho Chehab 845 Johan Hovold 754 Arnd Bergmann 714 Viresh Kumar 537 Geert Uytterhoeven 473 Christoph Hellwig 456 Wei Yongjun 451 Ville Syrjälä 446 Linus Walleij 411 Greg Kroah-Hartman 409 Kernel releases 4.7.0 – 4.11.0
  • 20. Top Signed-off-by: Greg Kroah-Hartman 7734 David S. Miller 7107 Mauro Carvalho Chehab 2317 Linus Torvalds 2144 Mark Brown 1966 Andrew Morton 1930 Ingo Molnar 1809 Alex Deucher 1529 Linus Walleij 1202 Chris Wilson 1199 Kalle Valo 1196 Kernel releases 4.7.0 – 4.11.0
  • 21. Who is funding this work? Kernel releases 4.7 – 4.11 1. “Amateurs” 14.4% 2. Intel 13.4% 3. Red Hat 7.3% 4. Linaro 6.4% 5. IBM 3.4% 6. Samsung 3.4% 7. Consultants 3.0% 8. SuSE 2.9% 9. Google 2.7% 10. AMD 2.3%
  • 22. Who is funding this work? 11. Mellanox 1.9% 12. Renesas Electronics 1.8% 13. Huawei Technologies 1.6% 14. Oracle 1.6% 15. Broadcom 1.5% 16. Texas Instruments 1.5% 17. ARM 1.4% 18. Free Electrons 1.1% 19. Imagination Technologies 1.0% 20. NXP Semiconductors 0.9% Kernel releases 4.7 – 4.11
  • 23. “Working upstream saves time and money” 2.6.20 to 2.6.24-rc Dan Frye – VP Open Systems, IBM Dirk Hohndel – Chief Technologist, Intel
  • 24. Getting involved 2.6.20 to 2.6.24-rc Run the kernel.org release on your machine
  • 27. 2.6.20 to 2.6.24-rc Getting involved kernelnewbies.org
  • 28. 2.6.20 to 2.6.24-rc Getting involved Google “write your first kernel patch”
  • 29. 2.6.20 to 2.6.24-rc Getting involved kernelnewbies.org/KernelJanitors/Todo
  • 30. 2.6.20 to 2.6.24-rc Linux Driver Project drivers/staging/*/TODO Getting involved
  • 31. 2.6.20 to 2.6.24-rc Getting involved http://eudyptula-challenge.org/ Eudyptula Challenge (little penguin)
  • 33.
  • 34. Linux Kernel Development Greg Kroah-Hartman gregkh@linuxfoundation.org github.com/gregkh/kernel-development I'm going to discuss the how fast the kernel is moving, how we do it all, and how you can get involved.
  • 35. 58,000 files 23,100,000 lines Kernel release 4.11.0 This was for the 4.11 kernel release, which happened April 30, 2017.
  • 36. 3,781 developers ≈400 companies Kernel releases 4.7.0 – 4.11.0 May 2016 – April 2017 This makes the Linux kernel the largest contributed body of software out there that we know of. This is just the number of companies that we know about, there are more that we do not, and as the responses to our inquiries come in, this number will go up. Have surpassed 400 companies for 4 years now.
  • 37. 7,300 lines added 2,400 lines removed 2,000 lines modified Kernel releases 4.7.0 – 4.11.0 May 2016 – April 2017
  • 38. 7,300 lines added 2,400 lines removed 2,000 lines modified Every day Kernel releases 4.7.0 – 4.11.0 May 2016 – April 2017
  • 39. 8 changes per hour Kernel releases 4.7.0 – 4.11.0 May 2016 – April 2017 This is 24 hours a day, 7 days a week, for a full year. We went this fast the year before this as well, this is an amazing rate of change. Interesting note, all of these changes are all through the whole kernel. For example, the core kernel is only 5% of the code, and 5% of the change was to the core kernel. Drivers are 55%, and 55% was done to them, it's completely proportional all across the whole kernel.
  • 40. 9.7 changes per hour 4.9 release 2.6.20 to 2.6.24-rc8 4.9 was the “largest” in number of changes that we have ever accepted. After 4.9, things went down a bit for 4.10 and 4.11, but 4.12 is getting very big. Now this is just the patches we accepted, not all of the patches that have been submitted, lots of patches are rejected, as anyone who has ever tried to submit a patch can attest to.
  • 41. 4.12 release July 7th ? 2nd largest release 2.6.20 to 2.6.24-rc8 4.12 should be released on July 7th and is on track to be the 2nd largest release by number of changes we have ever done. And the first largest on number of lines of code we have added, due to some very large drivers being added to the tree.
  • 42. How we stay sane 2.6.20 to 2.6.24-rc8 Time based releases Incremental changes
  • 43. New release every 2½ months Kernel releases 3.10.0 – 3.14.0 67 days to be exact, very regular experience.
  • 44. How a kernel is developed. Linus releases a stable kernel - 2 week merge window from subsystem maintainers - rc1 is released - bugfixes only now - 2 weeks later, rc2 - bugfixes and regressions - 2 weeks later,rc3 And so on until all major bugfixes and regressions are resolved and then the cycle starts over again.
  • 45. Greg takes the stable releases from Linus, and does stable releases with them, applying only fixes that are already in Linus's tree. Requiring fixes to be in Linus's tree first ensures that there is no divergence in the development model. After Linus releases a new stable release, the old stable series is dropped. With the exception of “longterm” stable releases, those are special, the stick around for much longer...
  • 46. “Longterm kernels” One picked per year Maintained for two years 4.4 4.9 2.6.20 to 2.6.24-rc8 I pick one kernel release per year to maintain for longer than one release cycle. This kernel I will maintain for at least 2 years. This means there are 2 longterm kernels being maintained at the same time. 4.4 and 4.9 are the longterm kernel releases I am currently maintaining The LTSI project is based on the longterm kernels.
  • 47. Like mentioned before, we have almost 3000 individual contributors. They all create a patch, a single change to the Linux kernel. This change could be something small, like a spelling correction, or something larger, like a whole new driver. Every patch that is created only does one thing, and it can not break the build, complex changes to the kernel get broken up into smaller pieces.
  • 48. The developers send their patch to the maintainer of the file(s) that they have modified. We have about 700 different driver/file/subsystem maintainers
  • 49. After reviewing the code, and adding their own signed-off-by to the patch, the file/driver maintainer sends the patch to the subsystem maintainer responsible for that portion of the kernel. We have around 150 subsystem maintainers
  • 50. Linux-next gets created every night from all of the different subsystem trees and build tested on a wide range of different platforms. We have about 150 different trees in the linux-next release. Andrew Morton picks up patches that cross subsystems, or are missed by others, and releases his -mm kernels every few weeks. This includes the linux-next release at that time.
  • 51. Every 3 months, when the merge window opens up, everything gets sent to Linus from the subsystem maintainers and Andrew Morton. The merge window is 2 weeks long, and thousands of patches get merged in that short time. All of the patches merged to Linus should have been in the linux-next release, but that isn't always the case for various reasons. Linux-next can not just be sent to Linus as there are things in there that sometimes are not good enough to be merged just yet, it is up to the individual subsystem maintainer to decide what to merge.
  • 52. Top developers by quantity Chris Wilson 1093 Mauro Carvalho Chehab 845 Johan Hovold 754 Arnd Bergmann 714 Viresh Kumar 537 Geert Uytterhoeven 473 Christoph Hellwig 456 Wei Yongjun 451 Ville Syrjälä 446 Linus Walleij 411 Greg Kroah-Hartman 409 Kernel releases 4.7.0 – 4.11.0 Chris – intel graphics drivers Mauro – Video 4 Linux (media drivers) Johan – greybus, usb-serial, drivers Arnd – janitorial cleanups and arch-generic Viresh – greybus Geert – janitorial Christoph – vfs, filesystems, xfs, everywhere Wei - Janitorial Ville – intel graphics Linus – gpio, pin, arm drivers Greg – greybus
  • 53. Top Signed-off-by: Greg Kroah-Hartman 7734 David S. Miller 7107 Mauro Carvalho Chehab 2317 Linus Torvalds 2144 Mark Brown 1966 Andrew Morton 1930 Ingo Molnar 1809 Alex Deucher 1529 Linus Walleij 1202 Chris Wilson 1199 Kalle Valo 1196 Kernel releases 4.7.0 – 4.11.0 Greg – driver core, usb, staging, greybus David – networking, isa Mauro – video 4 linux (media) Linus – everything Mark – embedded sound Andrew – everything Ingo – x86 Alex – radeon graphics Linus – gpio and pinctl Chris – intel graphics Kalle – wireless drivers
  • 54. Who is funding this work? Kernel releases 4.7 – 4.11 1. “Amateurs” 14.4% 2. Intel 13.4% 3. Red Hat 7.3% 4. Linaro 6.4% 5. IBM 3.4% 6. Samsung 3.4% 7. Consultants 3.0% 8. SuSE 2.9% 9. Google 2.7% 10. AMD 2.3% So you can view this as either 14% is done by non-affiliated people, or 86% is done by companies. Now to be fair, if you show any skill in kernel development you are instantly hired. Why this all matters: If your company relies on Linux, and it depends on the future of Linux supporting your needs, then you either trust these other companies are developing Linux in ways that will benefit you, or you need to get involved to make sure Linux works properly for your workloads and needs.
  • 55. Who is funding this work? 11. Mellanox 1.9% 12. Renesas Electronics 1.8% 13. Huawei Technologies 1.6% 14. Oracle 1.6% 15. Broadcom 1.5% 16. Texas Instruments 1.5% 17. ARM 1.4% 18. Free Electrons 1.1% 19. Imagination Technologies 1.0% 20. NXP Semiconductors 0.9% Kernel releases 4.7 – 4.11 Intel – 9000 patches Huawei - 1115 patches (almost half done by one developer!!!) NXP - 636
  • 56. “Working upstream saves time and money” 2.6.20 to 2.6.24-rc8 Dan Frye – VP Open Systems, IBM Dirk Hohndel – Chief Technologist, Intel
  • 57. Getting involved 2.6.20 to 2.6.24-rc8 1 p Run the kernel.org release on your machine
  • 58. Getting involved 2.6.20 to 2.6.24-rc8 1 p This book tells you how to build and install a kernel on your machine. Free online
  • 59. 2.6.20 to 2.6.24-rc8 Documentation/HOWTO Documentation/development-process Getting involved These documents in the kernel source directory are the best place to start if you want to understand how the development process works, and how to get involved. The HOWTO file has links to almost everything else you ever wanted..
  • 60. 2.6.20 to 2.6.24-rc8 Getting involved kernelnewbies.org http://www.kernelnewbies.org
  • 61. 2.6.20 to 2.6.24-rc8 Getting involved Google “write your first kernel patch” This is a video of a talk I gave at FOSDEM, going through the steps, showing exactly how to create, build, and send a kernel patch.
  • 62. 2.6.20 to 2.6.24-rc8 Getting involved kernelnewbies.org/KernelJanitors/Todo So you know how to create a patch, but what should you do? The kernel janitors has a great list of tasks to start with in cleaning up the kernel and making easy patches to be accepted.
  • 63. 2.6.20 to 2.6.24-rc8 Linux Driver Project drivers/staging/*/TODO Getting involved The staging tree also needs a lot of help, here are lists of things to do in the kernel for the drivers to be able to move out of the staging area. Please always work off of the linux-next tree if you want to do these tasks, as sometimes they are already done by others by the time you see them in Linus's tree.
  • 64. 2.6.20 to 2.6.24-rc8 Getting involved http://eudyptula-challenge.org/ Eudyptula Challenge (little penguin) Google “Linux kernel challenge” to find the site, if you can't remember Eudyptula. It is a series of programming challenges, all run through email that starts out with a “Hello World” kernel module, and gets more complex from there. Over 4000 people are currently taking the challenge, and is a lot of fun if you don't know where to start out. You need knowledge of C, but that's about it.