SlideShare ist ein Scribd-Unternehmen logo
1 von 66
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Docker introduction
Docker introductionDocker introduction
Docker introductionPhuc Nguyen
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with JenkinsEdureka!
 
package mangement
package mangementpackage mangement
package mangementARYA TM
 
Ninja Build: Simple Guide for Beginners
Ninja Build: Simple Guide for BeginnersNinja Build: Simple Guide for Beginners
Ninja Build: Simple Guide for BeginnersChang W. Doh
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론Hyunjik Bae
 
Overview of Android binder IPC implementation
Overview of Android binder IPC implementationOverview of Android binder IPC implementation
Overview of Android binder IPC implementationChethan Pchethan
 
Namespaces and cgroups - the basis of Linux containers
Namespaces and cgroups - the basis of Linux containersNamespaces and cgroups - the basis of Linux containers
Namespaces and cgroups - the basis of Linux containersKernel TLV
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxThe Linux Foundation
 
Real World Event Sourcing and CQRS
Real World Event Sourcing and CQRSReal World Event Sourcing and CQRS
Real World Event Sourcing and CQRSMatthew Hawkins
 
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...Stefano Stabellini
 
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Brian Brazil
 

Was ist angesagt? (20)

Process management
Process managementProcess management
Process management
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
eBPF maps 101
eBPF maps 101eBPF maps 101
eBPF maps 101
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with Jenkins
 
package mangement
package mangementpackage mangement
package mangement
 
Ninja Build: Simple Guide for Beginners
Ninja Build: Simple Guide for BeginnersNinja Build: Simple Guide for Beginners
Ninja Build: Simple Guide for Beginners
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론
 
Overview of Android binder IPC implementation
Overview of Android binder IPC implementationOverview of Android binder IPC implementation
Overview of Android binder IPC implementation
 
Namespaces and cgroups - the basis of Linux containers
Namespaces and cgroups - the basis of Linux containersNamespaces and cgroups - the basis of Linux containers
Namespaces and cgroups - the basis of Linux containers
 
Jenkins
JenkinsJenkins
Jenkins
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
 
Real World Event Sourcing and CQRS
Real World Event Sourcing and CQRSReal World Event Sourcing and CQRS
Real World Event Sourcing and CQRS
 
RPM (LINUX)
RPM (LINUX)RPM (LINUX)
RPM (LINUX)
 
Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1
 
Docker
DockerDocker
Docker
 
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...
 
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
 

Andere mochten auch

点融网区块链即服务实践 - 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 DianrongLinuxCon 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
 

Andere mochten auch (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
 

Ähnlich wie 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 KHAnne Nicolas
 
Canonical ubuntu introduction_20170330
Canonical ubuntu introduction_20170330Canonical ubuntu introduction_20170330
Canonical ubuntu introduction_20170330Takaaki 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 kernelsSZ Lin
 
Slide sistem operasi
Slide sistem operasiSlide sistem operasi
Slide sistem operasitheogrouptech
 
Kernel Recipes 2016 - The kernel report
Kernel Recipes 2016 - The kernel reportKernel Recipes 2016 - The kernel report
Kernel Recipes 2016 - The kernel reportAnne Nicolas
 
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 CodeLinaro
 
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 systembanwait
 
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 systembanwait
 
Presentation1
Presentation1Presentation1
Presentation1cedrick
 
Presentation1
Presentation1Presentation1
Presentation1catarino
 
Linux and SUSE
Linux and SUSELinux and SUSE
Linux and SUSELiang Yan
 

Ähnlich wie 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
 
CentOS
CentOSCentOS
CentOS
 
CentOS
CentOSCentOS
CentOS
 
CentOS
CentOSCentOS
CentOS
 
Presentation1
Presentation1Presentation1
Presentation1
 
Presentation1
Presentation1Presentation1
Presentation1
 
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
 

Mehr von 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 ContainersLinuxCon ContainerCon CloudOpen China
 
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
 
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
 

Mehr von 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
 

Kürzlich hochgeladen

Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 

Kürzlich hochgeladen (20)

Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 

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.