SlideShare a Scribd company logo
1 of 72
Download to read offline
Linux Kernel
Release Model
(and security stuff)
Greg Kroah-Hartman
gregkh@linuxfoundation.org
github.com/gregkh/presentation-release-model
60,000 files
24,767,000 lines
Kernel release 4.13.0
4,316 developers
519 companies
Kernel releases 4.8.0 – 4.13.0
August 2016 – September 2017
10,000 lines added
2,500 lines removed
2,100 lines modified
Kernel releases 4.8.0 – 4.13.0
August 2016 – September 2017
10,000 lines added
2,500 lines removed
2,100 lines modified
Every day
Kernel releases 4.8.0 – 4.13.0
August 2016 – September 2017
8.5 changes per hour
Kernel releases 4.8.0 – 4.13.0
August 2016 – September 2017
9.7 changes per hour
4.9 & 4.12 release
2.6.20 to 2.6.24-rc
Old release model
2.6.20 to 2.6.24-rc
2.2 – January 1999
2.4 – January 2001
2.6 – December 2003
“New” release model
2.6.20 to 2.6.24-rc
Release every 2-3 months
All releases are stable
“Cambridge Promise”
2.6.20 to 2.6.24-rc
Will not break userspace.
“Cambridge Promise”
2.6.20 to 2.6.24-rc
Will not break userspace,
on purpose.
– July 2007
Version numbers
mean nothing
2.6.20 to 2.6.24-rc
2.6.x 3.x 2011→
2.6.20 to 2.6.24-rc
3.x 4.x 2015→
2.6.20 to 2.6.24-rc
Stable rules
2.6.20 to 2.6.24-rc
– Bugfix
– Less than 100 lines
– New ids or quirks
– Must be in Linus’s tree
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
“Longterm kernels”
One picked per year
Maintained for at least 2 years
4.4 4.9 4.14
2.6.20 to 2.6.24-rc
2.6.20 to 2.6.24-rc
4.4 9 changes / day
4.9 13 changes / day
4.12 10 changes / day
Every release is stable
Decade old guarantee
Always update your kernel
2.6.20 to 2.6.24-rc
Can’t update your kernel?
Blame your SoC provider...
2.6.20 to 2.6.24-rc
“Popular” SoC kernel tree
6171 files changed 2837180 insertions(+), 42568 deletions(-)
2.6.20 to 2.6.24-rc
“Popular” SoC kernel tree
6171 files changed 2837180 insertions(+), 42568 deletions(-)
Image.lz4 – 3.2 million lines
Linux “like”
2.6.20 to 2.6.24-rc
Kernel Security
Kernel Security
Almost all bugs can be a “security” issue.
Kernel Security
Almost all bugs can be a “security” issue.
Fix them as soon as possible.
On Wed, 16 Jul 2008, pageexec@freemail.hu wrote:
>
> you should check out the last few -stable releases then and see how
> the announcement doesn't ever mention the word 'security' while fixing
> security bugs
Umm. What part of "they are just normal bugs" did you have issues with?
I expressly told you that security bugs should not be marked as such,
because bugs are bugs.
> in other words, it's all the more reason to have the commit say it's
> fixing a security issue.
No.
Linus wrote in 2008:
> > I'm just saying that why mark things, when the marking have no meaning?
> > People who believe in them are just _wrong_.
>
> what is wrong in particular?
You have two cases:
- people think the marking is somehow trustworthy.
People are WRONG, and are misled by the partial markings, thinking that
unmarked bugfixes are "less important". They aren't.
- People don't think it matters
People are right, and the marking is pointless.
In either case it's just stupid to mark them. I don't want to do it,
because I don't want to perpetuate the myth of "security fixes" as a
separate thing from "plain regular bug fixes".
They're all fixes. They're all important. As are new features, for that
matter.
> when you know that you're about to commit a patch that fixes a security
> bug, why is it wrong to say so in the commit?
It's pointless and wrong because it makes people think that other bugs
aren't potential security fixes.
What was unclear about that?
Linus
Above email:
http://marc.info/?l=linux-kernel&m=121616463003140&w=2
Whole thread:
http://marc.info/?t=121507404600023&r=4&w=2
On Wed, 16 Jul 2008, pageexec@freemail.hu wrote:
>
> we went through this and you yourself said that security bugs are *not*
> treated as normal bugs because you do omit relevant information from such
> commits
Actually, we disagree on one fundamental thing. We disagree on
that single word: "relevant".
I do not think it's helpful _or_ relevant to explicitly point out how to
tigger a bug. It's very helpful and relevant when we're trying to chase
the bug down, but once it is fixed, it becomes irrelevant.
You think that explicitly pointing something out as a security issue is
really important, so you think it's always "relevant". And I take mostly
the opposite view. I think pointing it out is actually likely to be
counter-productive.
Reported security issue:
For example, the way I prefer to work is to have people send me and the
kernel list a patch for a fix, and then in the very next email send (in
private) an example exploit of the problem to the security mailing list
(and that one goes to the private security list just because we don't want
all the people at universities rushing in to test it). THAT is how things
should work.
Should I document the exploit in the commit message? Hell no. It's
private for a reason, even if it's real information. It was real
information for the developers to explain why a patch is needed, but once
explained, it shouldn't be spread around unnecessarily.
Linus
Above email:
http://marc.info/?l=linux-kernel&m=121616807207387&w=2
Reporting Security bugs:
https://www.kernel.org/doc/html/latest/admin-guide/security-bugs.html
Keeping a Secure System
Take all stable kernel updates
Enable hardening features
“If you are not using a stable /
longterm kernel, your machine
is insecure”
– me
“Ceaseless change is the only
constant thing in Nature.”
– John Candee Dean
github.com/gregkh/presentation-release-model
Linux Kernel
Release Model
(and security stuff)
Greg Kroah-Hartman
gregkh@linuxfoundation.org
github.com/gregkh/presentation-release-model
I'm going to discuss the how fast the kernel is
moving, how we do it all, and how you can
get involved.
60,000 files
24,767,000 lines
Kernel release 4.13.0
This was for the 4.13 kernel release, which
happened September 3, 2017.
4,316 developers
519 companies
Kernel releases 4.8.0 – 4.13.0
August 2016 – September 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.
10,000 lines added
2,500 lines removed
2,100 lines modified
Kernel releases 4.8.0 – 4.13.0
August 2016 – September 2017
10,000 lines added
2,500 lines removed
2,100 lines modified
Every day
Kernel releases 4.8.0 – 4.13.0
August 2016 – September 2017
8.5 changes per hour
Kernel releases 4.8.0 – 4.13.0
August 2016 – September 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 & 4.12 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.
Old release model
2.6.20 to 2.6.24-rc8
2.2 – January 1999
2.4 – January 2001
2.6 – December 2003
“New” release model
2.6.20 to 2.6.24-rc8
Release every 2-3 months
All releases are stable
“Cambridge Promise”
2.6.20 to 2.6.24-rc8
Will not break userspace.
Kernel summit 2007 in Cambridge England
All kernel developers agreed that this is
what we will do, in order to give users a
reason to feel comfortable upgrading their
kernels.
“Cambridge Promise”
2.6.20 to 2.6.24-rc8
Will not break userspace,
on purpose.
– July 2007
Well, we do not knowingly break userspace,
we accidentally do it all the time, we are just
human.
But we will work very hard to fx the issue.
Note, if no one notices userspace is broken,
it isn’t.
Version numbers
mean nothing
2.6.20 to 2.6.24-rc8
They only mean that one is newer than
another.
2.6.x 3.x 2011→
2.6.20 to 2.6.24-rc8
Big numbers seem to increment “smaller”
over time than small numbers (brains are
wierd)
LinuxCon Japan 2011
I bribed Linus with whisky
Kernel developers drank the bottle within
minutes at the after-party.
3.x 4.x 2015→
2.6.20 to 2.6.24-rc8
Big numbers seem to increment “smaller”
over time than small numbers (brains are
wierd)
2015
How a kernel is developed.
Linus releases a stable kernel
- 2 week merge window from subsystem
maintainers
- rc1 is released
- bugfxes only now
- 2 weeks later, rc2
- bugfxes and regressions
- 2 weeks later,rc3
And so on until all major bugfxes 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 fxes that are already in
Linus's tree.
Requiring fxes to be in Linus's tree frst
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...
Stable rules
2.6.20 to 2.6.24-rc8
– Bugfix
– Less than 100 lines
– New ids or quirks
– Must be in Linus’s tree
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
They only mean that one is newer than
another.
“Longterm kernels”
One picked per year
Maintained for at least 2 years
4.4 4.9 4.14
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.
2.6.20 to 2.6.24-rc8
4.4 9 changes / day
4.9 13 changes / day
4.12 10 changes / day
Lots of changes are getting backported
3.10 – averaging 4.5 a day
3.18 – 5 / day
3.16 – 2 / day (debian is tough work...)
Every release is stable
Decade old guarantee
Always update your kernel
2.6.20 to 2.6.24-rc8
Wait what? Why update?
Can’t update your kernel?
Blame your SoC provider...
2.6.20 to 2.6.24-rc8
SoC kernels suck ass.
“Popular” SoC kernel tree
6171 files changed 2837180 insertions(+), 42568 deletions(-)
2.6.20 to 2.6.24-rc8
SoC kernels suck ass.
“Popular” SoC kernel tree
6171 files changed 2837180 insertions(+), 42568 deletions(-)
Image.lz4 – 3.2 million lines
Linux “like”
2.6.20 to 2.6.24-rc8
SoC kernels suck ass.
88% of your kernel has never been reviewed by
anyone in the community…
Kernel Security
Let’s talk about kernel security.
Kernel Security
Almost all bugs can be a “security” issue.
Anything that goes wrong in the kernel can usually
be turned into a “security” problem.
Be it a DoS, or a reboot, or local root exploit, or
worst case, a remote root exploit (very rare,
thankfully.)
Kernel Security
Almost all bugs can be a “security” issue.
Fix them as soon as possible.
Because it’s really hard to determine if a bug is a
“security” issue, our response is that we fx all bugs
as soon as possible once we learn about them.
TTY bug in RH
On Wed, 16 Jul 2008, pageexec@freemail.hu wrote:
>
> you should check out the last few -stable releases then and see how
> the announcement doesn't ever mention the word 'security' while fixing
> security bugs
Umm. What part of "they are just normal bugs" did you have issues with?
I expressly told you that security bugs should not be marked as such,
because bugs are bugs.
> in other words, it's all the more reason to have the commit say it's
> fixing a security issue.
No.
Linus wrote in 2008:
Why we do this, Linus wrote:
> > I'm just saying that why mark things, when the marking have no meaning?
> > People who believe in them are just _wrong_.
>
> what is wrong in particular?
You have two cases:
- people think the marking is somehow trustworthy.
People are WRONG, and are misled by the partial markings, thinking that
unmarked bugfixes are "less important". They aren't.
- People don't think it matters
People are right, and the marking is pointless.
In either case it's just stupid to mark them. I don't want to do it,
because I don't want to perpetuate the myth of "security fixes" as a
separate thing from "plain regular bug fixes".
They're all fixes. They're all important. As are new features, for that
matter.
> when you know that you're about to commit a patch that fixes a security
> bug, why is it wrong to say so in the commit?
It's pointless and wrong because it makes people think that other bugs
aren't potential security fixes.
What was unclear about that?
Linus
Above email:
http://marc.info/?l=linux-kernel&m=121616463003140&w=2
Whole thread:
http://marc.info/?t=121507404600023&r=4&w=2
Go read the whole email thread (100 emails), it’s a
good summary of why we do what we do.
You also see me get mad at a user, rare...
On Wed, 16 Jul 2008, pageexec@freemail.hu wrote:
>
> we went through this and you yourself said that security bugs are *not*
> treated as normal bugs because you do omit relevant information from such
> commits
Actually, we disagree on one fundamental thing. We disagree on
that single word: "relevant".
I do not think it's helpful _or_ relevant to explicitly point out how to
tigger a bug. It's very helpful and relevant when we're trying to chase
the bug down, but once it is fixed, it becomes irrelevant.
You think that explicitly pointing something out as a security issue is
really important, so you think it's always "relevant". And I take mostly
the opposite view. I think pointing it out is actually likely to be
counter-productive.
Reported security issue:
For example, the way I prefer to work is to have people send me and the
kernel list a patch for a fix, and then in the very next email send (in
private) an example exploit of the problem to the security mailing list
(and that one goes to the private security list just because we don't want
all the people at universities rushing in to test it). THAT is how things
should work.
Should I document the exploit in the commit message? Hell no. It's
private for a reason, even if it's real information. It was real
information for the developers to explain why a patch is needed, but once
explained, it shouldn't be spread around unnecessarily.
Linus
Above email:
http://marc.info/?l=linux-kernel&m=121616807207387&w=2
Reporting Security bugs:
https://www.kernel.org/doc/html/latest/admin-guide/security-bugs.html
Keeping a Secure System
Take all stable kernel updates
Enable hardening features
Do not pick and choose!
The releases have been reviewed by the kernel
developers as a whole, not in individual parts
It is hard, if not impossible, to determine which
patches fx “security” issues and which do not.
Almost every LTS release contains at least one
known security fx, and many yet “unknown”.
If testing shows a problem, the kernel developer
community will react quickly to resolve the issue. If
you wait months or years to do an update, the
kernel developer community will not be able to
even remember what the updates were given the
long delay.
Changes to parts of the kernel that you do not
build/run are fne and can cause no problems to
your system. To try to flter out only the changes
you run will cause a kernel tree that will be
impossible to merge correctly with future upstream
“If you are not using a stable /
longterm kernel, your machine
is insecure”
– me
Your infrastructure HAS to support updating the
kernel. If you can’t do that, you are insecure.
Even the “enterprise” kernels aren’t keeping up with
this rate of change, the exception being Debian.
If you use these kernels, you HAVE to keep up to
date.
Android example demo!
“Ceaseless change is the only
constant thing in Nature.”
– John Candee Dean
1911 astronomer.
If your operating system isn’t constantly changing,
then it is dead. The world doesn’t stop changing,
learn to embrace the change in order to survive.
“static systems” die.
github.com/gregkh/presentation-release-model
Obligatory Penguin Picture
Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH

More Related Content

What's hot

U boot source clean up project how-to
U boot source clean up project how-toU boot source clean up project how-to
U boot source clean up project how-to
Macpaul Lin
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson
Shreeniwas Iyer
 

What's hot (20)

Modern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - BerlinModern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - Berlin
 
KITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC TestingKITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC Testing
 
Kernel Recipes 2015: The stable Linux Kernel Tree - 10 years of insanity
Kernel Recipes 2015: The stable Linux Kernel Tree - 10 years of insanityKernel Recipes 2015: The stable Linux Kernel Tree - 10 years of insanity
Kernel Recipes 2015: The stable Linux Kernel Tree - 10 years of insanity
 
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
 
Justin Cormack - The 10 Container Security Tricks That Will Help You Sleep At...
Justin Cormack - The 10 Container Security Tricks That Will Help You Sleep At...Justin Cormack - The 10 Container Security Tricks That Will Help You Sleep At...
Justin Cormack - The 10 Container Security Tricks That Will Help You Sleep At...
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
 
PIC your malware
PIC your malwarePIC your malware
PIC your malware
 
Bandit and Gosec - Security Linters
Bandit and Gosec - Security LintersBandit and Gosec - Security Linters
Bandit and Gosec - Security Linters
 
Containers, docker, and security: state of the union (Bay Area Infracoders Me...
Containers, docker, and security: state of the union (Bay Area Infracoders Me...Containers, docker, and security: state of the union (Bay Area Infracoders Me...
Containers, docker, and security: state of the union (Bay Area Infracoders Me...
 
Janus conf'19: janus client side
Janus conf'19:  janus client sideJanus conf'19:  janus client side
Janus conf'19: janus client side
 
Docker en kernel security
Docker en kernel securityDocker en kernel security
Docker en kernel security
 
libreCMC : The Libre Embedded GNU/Linux Distro
libreCMC : The Libre Embedded GNU/Linux DistrolibreCMC : The Libre Embedded GNU/Linux Distro
libreCMC : The Libre Embedded GNU/Linux Distro
 
Real-Time Communication Testing Evolution with WebRTC
Real-Time Communication Testing Evolution with WebRTCReal-Time Communication Testing Evolution with WebRTC
Real-Time Communication Testing Evolution with WebRTC
 
Janus conf19: TUTORIAL: KITE with network-instrumentation
Janus conf19: TUTORIAL: KITE with network-instrumentationJanus conf19: TUTORIAL: KITE with network-instrumentation
Janus conf19: TUTORIAL: KITE with network-instrumentation
 
U boot source clean up project how-to
U boot source clean up project how-toU boot source clean up project how-to
U boot source clean up project how-to
 
Ryan Koop's Docker Chicago Meetup Demo March 12 2014
Ryan Koop's Docker Chicago Meetup Demo March 12 2014Ryan Koop's Docker Chicago Meetup Demo March 12 2014
Ryan Koop's Docker Chicago Meetup Demo March 12 2014
 
Webrtc plugins for Desktop Browsers
Webrtc plugins for Desktop BrowsersWebrtc plugins for Desktop Browsers
Webrtc plugins for Desktop Browsers
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson
 
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
 
LlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryLlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and Notary
 

Similar to Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH

Hacking+linux+kernel
Hacking+linux+kernelHacking+linux+kernel
Hacking+linux+kernel
robertsong
 
Essay About ISS 418 Lab 7 And 8
Essay About ISS 418 Lab 7 And 8Essay About ISS 418 Lab 7 And 8
Essay About ISS 418 Lab 7 And 8
Paula Smith
 

Similar to Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH (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...
 
Linux Kernel Development
Linux Kernel DevelopmentLinux Kernel Development
Linux Kernel Development
 
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
 
Maintenance des branches stables du noyau
Maintenance des branches stables du noyauMaintenance des branches stables du noyau
Maintenance des branches stables du noyau
 
Kernel Recipes 2016 - The kernel report
Kernel Recipes 2016 - The kernel reportKernel Recipes 2016 - The kernel report
Kernel Recipes 2016 - The kernel report
 
Linux Kernel Participation HowTo
Linux Kernel Participation HowToLinux Kernel Participation HowTo
Linux Kernel Participation HowTo
 
Kernel Recipes 2019 - Kernel hacking behind closed doors
Kernel Recipes 2019 - Kernel hacking behind closed doorsKernel Recipes 2019 - Kernel hacking behind closed doors
Kernel Recipes 2019 - Kernel hacking behind closed doors
 
Kernel Recipes 2015: How to choose a kernel to ship with a product
Kernel Recipes 2015: How to choose a kernel to ship with a productKernel Recipes 2015: How to choose a kernel to ship with a product
Kernel Recipes 2015: How to choose a kernel to ship with a product
 
Hacking+linux+kernel
Hacking+linux+kernelHacking+linux+kernel
Hacking+linux+kernel
 
Full Circle 89
Full Circle 89Full Circle 89
Full Circle 89
 
Essay About ISS 418 Lab 7 And 8
Essay About ISS 418 Lab 7 And 8Essay About ISS 418 Lab 7 And 8
Essay About ISS 418 Lab 7 And 8
 
anonguide July 17 2015
anonguide July 17 2015anonguide July 17 2015
anonguide July 17 2015
 
The Ring programming language version 1.8 book - Part 85 of 202
The Ring programming language version 1.8 book - Part 85 of 202The Ring programming language version 1.8 book - Part 85 of 202
The Ring programming language version 1.8 book - Part 85 of 202
 
What is the merge window?
What is the merge window?What is the merge window?
What is the merge window?
 
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
 
Kernel Recipes 2016 - Patches carved into stone tablets...
Kernel Recipes 2016 - Patches carved into stone tablets...Kernel Recipes 2016 - Patches carved into stone tablets...
Kernel Recipes 2016 - Patches carved into stone tablets...
 
[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...
 
DevOps and the Death & Rebirth of Childhood Innocence
DevOps and the Death & Rebirth of Childhood InnocenceDevOps and the Death & Rebirth of Childhood Innocence
DevOps and the Death & Rebirth of Childhood Innocence
 
Git best practices 2016
Git best practices 2016Git best practices 2016
Git best practices 2016
 
From 🤦 to 🐿️
From 🤦 to 🐿️From 🤦 to 🐿️
From 🤦 to 🐿️
 

More from Anne Nicolas

Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Anne Nicolas
 

More from Anne Nicolas (20)

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmaker
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Kernel Recipes 2017 - Linux Kernel Release Model - Greg KH

  • 1. Linux Kernel Release Model (and security stuff) Greg Kroah-Hartman gregkh@linuxfoundation.org github.com/gregkh/presentation-release-model
  • 3. 4,316 developers 519 companies Kernel releases 4.8.0 – 4.13.0 August 2016 – September 2017
  • 4. 10,000 lines added 2,500 lines removed 2,100 lines modified Kernel releases 4.8.0 – 4.13.0 August 2016 – September 2017
  • 5. 10,000 lines added 2,500 lines removed 2,100 lines modified Every day Kernel releases 4.8.0 – 4.13.0 August 2016 – September 2017
  • 6. 8.5 changes per hour Kernel releases 4.8.0 – 4.13.0 August 2016 – September 2017
  • 7. 9.7 changes per hour 4.9 & 4.12 release 2.6.20 to 2.6.24-rc
  • 8. Old release model 2.6.20 to 2.6.24-rc 2.2 – January 1999 2.4 – January 2001 2.6 – December 2003
  • 9. “New” release model 2.6.20 to 2.6.24-rc Release every 2-3 months All releases are stable
  • 10. “Cambridge Promise” 2.6.20 to 2.6.24-rc Will not break userspace.
  • 11. “Cambridge Promise” 2.6.20 to 2.6.24-rc Will not break userspace, on purpose. – July 2007
  • 13. 2.6.x 3.x 2011→ 2.6.20 to 2.6.24-rc
  • 14. 3.x 4.x 2015→ 2.6.20 to 2.6.24-rc
  • 15.
  • 16.
  • 17. Stable rules 2.6.20 to 2.6.24-rc – Bugfix – Less than 100 lines – New ids or quirks – Must be in Linus’s tree https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
  • 18. “Longterm kernels” One picked per year Maintained for at least 2 years 4.4 4.9 4.14 2.6.20 to 2.6.24-rc
  • 19. 2.6.20 to 2.6.24-rc 4.4 9 changes / day 4.9 13 changes / day 4.12 10 changes / day
  • 20. Every release is stable Decade old guarantee Always update your kernel 2.6.20 to 2.6.24-rc
  • 21. Can’t update your kernel? Blame your SoC provider... 2.6.20 to 2.6.24-rc
  • 22. “Popular” SoC kernel tree 6171 files changed 2837180 insertions(+), 42568 deletions(-) 2.6.20 to 2.6.24-rc
  • 23. “Popular” SoC kernel tree 6171 files changed 2837180 insertions(+), 42568 deletions(-) Image.lz4 – 3.2 million lines Linux “like” 2.6.20 to 2.6.24-rc
  • 25. Kernel Security Almost all bugs can be a “security” issue.
  • 26. Kernel Security Almost all bugs can be a “security” issue. Fix them as soon as possible.
  • 27. On Wed, 16 Jul 2008, pageexec@freemail.hu wrote: > > you should check out the last few -stable releases then and see how > the announcement doesn't ever mention the word 'security' while fixing > security bugs Umm. What part of "they are just normal bugs" did you have issues with? I expressly told you that security bugs should not be marked as such, because bugs are bugs. > in other words, it's all the more reason to have the commit say it's > fixing a security issue. No. Linus wrote in 2008:
  • 28. > > I'm just saying that why mark things, when the marking have no meaning? > > People who believe in them are just _wrong_. > > what is wrong in particular? You have two cases: - people think the marking is somehow trustworthy. People are WRONG, and are misled by the partial markings, thinking that unmarked bugfixes are "less important". They aren't. - People don't think it matters People are right, and the marking is pointless. In either case it's just stupid to mark them. I don't want to do it, because I don't want to perpetuate the myth of "security fixes" as a separate thing from "plain regular bug fixes". They're all fixes. They're all important. As are new features, for that matter.
  • 29. > when you know that you're about to commit a patch that fixes a security > bug, why is it wrong to say so in the commit? It's pointless and wrong because it makes people think that other bugs aren't potential security fixes. What was unclear about that? Linus Above email: http://marc.info/?l=linux-kernel&m=121616463003140&w=2 Whole thread: http://marc.info/?t=121507404600023&r=4&w=2
  • 30. On Wed, 16 Jul 2008, pageexec@freemail.hu wrote: > > we went through this and you yourself said that security bugs are *not* > treated as normal bugs because you do omit relevant information from such > commits Actually, we disagree on one fundamental thing. We disagree on that single word: "relevant". I do not think it's helpful _or_ relevant to explicitly point out how to tigger a bug. It's very helpful and relevant when we're trying to chase the bug down, but once it is fixed, it becomes irrelevant. You think that explicitly pointing something out as a security issue is really important, so you think it's always "relevant". And I take mostly the opposite view. I think pointing it out is actually likely to be counter-productive. Reported security issue:
  • 31. For example, the way I prefer to work is to have people send me and the kernel list a patch for a fix, and then in the very next email send (in private) an example exploit of the problem to the security mailing list (and that one goes to the private security list just because we don't want all the people at universities rushing in to test it). THAT is how things should work. Should I document the exploit in the commit message? Hell no. It's private for a reason, even if it's real information. It was real information for the developers to explain why a patch is needed, but once explained, it shouldn't be spread around unnecessarily. Linus Above email: http://marc.info/?l=linux-kernel&m=121616807207387&w=2 Reporting Security bugs: https://www.kernel.org/doc/html/latest/admin-guide/security-bugs.html
  • 32. Keeping a Secure System Take all stable kernel updates Enable hardening features
  • 33. “If you are not using a stable / longterm kernel, your machine is insecure” – me
  • 34. “Ceaseless change is the only constant thing in Nature.” – John Candee Dean
  • 36.
  • 37. Linux Kernel Release Model (and security stuff) Greg Kroah-Hartman gregkh@linuxfoundation.org github.com/gregkh/presentation-release-model I'm going to discuss the how fast the kernel is moving, how we do it all, and how you can get involved.
  • 38. 60,000 files 24,767,000 lines Kernel release 4.13.0 This was for the 4.13 kernel release, which happened September 3, 2017.
  • 39. 4,316 developers 519 companies Kernel releases 4.8.0 – 4.13.0 August 2016 – September 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.
  • 40. 10,000 lines added 2,500 lines removed 2,100 lines modified Kernel releases 4.8.0 – 4.13.0 August 2016 – September 2017
  • 41. 10,000 lines added 2,500 lines removed 2,100 lines modified Every day Kernel releases 4.8.0 – 4.13.0 August 2016 – September 2017
  • 42. 8.5 changes per hour Kernel releases 4.8.0 – 4.13.0 August 2016 – September 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.
  • 43. 9.7 changes per hour 4.9 & 4.12 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.
  • 44. Old release model 2.6.20 to 2.6.24-rc8 2.2 – January 1999 2.4 – January 2001 2.6 – December 2003
  • 45. “New” release model 2.6.20 to 2.6.24-rc8 Release every 2-3 months All releases are stable
  • 46. “Cambridge Promise” 2.6.20 to 2.6.24-rc8 Will not break userspace. Kernel summit 2007 in Cambridge England All kernel developers agreed that this is what we will do, in order to give users a reason to feel comfortable upgrading their kernels.
  • 47. “Cambridge Promise” 2.6.20 to 2.6.24-rc8 Will not break userspace, on purpose. – July 2007 Well, we do not knowingly break userspace, we accidentally do it all the time, we are just human. But we will work very hard to fx the issue. Note, if no one notices userspace is broken, it isn’t.
  • 48. Version numbers mean nothing 2.6.20 to 2.6.24-rc8 They only mean that one is newer than another.
  • 49. 2.6.x 3.x 2011→ 2.6.20 to 2.6.24-rc8 Big numbers seem to increment “smaller” over time than small numbers (brains are wierd) LinuxCon Japan 2011 I bribed Linus with whisky Kernel developers drank the bottle within minutes at the after-party.
  • 50. 3.x 4.x 2015→ 2.6.20 to 2.6.24-rc8 Big numbers seem to increment “smaller” over time than small numbers (brains are wierd) 2015
  • 51. How a kernel is developed. Linus releases a stable kernel - 2 week merge window from subsystem maintainers - rc1 is released - bugfxes only now - 2 weeks later, rc2 - bugfxes and regressions - 2 weeks later,rc3 And so on until all major bugfxes and regressions are resolved and then the cycle starts over again.
  • 52. Greg takes the stable releases from Linus, and does stable releases with them, applying only fxes that are already in Linus's tree. Requiring fxes to be in Linus's tree frst 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...
  • 53. Stable rules 2.6.20 to 2.6.24-rc8 – Bugfix – Less than 100 lines – New ids or quirks – Must be in Linus’s tree https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html They only mean that one is newer than another.
  • 54. “Longterm kernels” One picked per year Maintained for at least 2 years 4.4 4.9 4.14 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.
  • 55. 2.6.20 to 2.6.24-rc8 4.4 9 changes / day 4.9 13 changes / day 4.12 10 changes / day Lots of changes are getting backported 3.10 – averaging 4.5 a day 3.18 – 5 / day 3.16 – 2 / day (debian is tough work...)
  • 56. Every release is stable Decade old guarantee Always update your kernel 2.6.20 to 2.6.24-rc8 Wait what? Why update?
  • 57. Can’t update your kernel? Blame your SoC provider... 2.6.20 to 2.6.24-rc8 SoC kernels suck ass.
  • 58. “Popular” SoC kernel tree 6171 files changed 2837180 insertions(+), 42568 deletions(-) 2.6.20 to 2.6.24-rc8 SoC kernels suck ass.
  • 59. “Popular” SoC kernel tree 6171 files changed 2837180 insertions(+), 42568 deletions(-) Image.lz4 – 3.2 million lines Linux “like” 2.6.20 to 2.6.24-rc8 SoC kernels suck ass. 88% of your kernel has never been reviewed by anyone in the community…
  • 60. Kernel Security Let’s talk about kernel security.
  • 61. Kernel Security Almost all bugs can be a “security” issue. Anything that goes wrong in the kernel can usually be turned into a “security” problem. Be it a DoS, or a reboot, or local root exploit, or worst case, a remote root exploit (very rare, thankfully.)
  • 62. Kernel Security Almost all bugs can be a “security” issue. Fix them as soon as possible. Because it’s really hard to determine if a bug is a “security” issue, our response is that we fx all bugs as soon as possible once we learn about them. TTY bug in RH
  • 63. On Wed, 16 Jul 2008, pageexec@freemail.hu wrote: > > you should check out the last few -stable releases then and see how > the announcement doesn't ever mention the word 'security' while fixing > security bugs Umm. What part of "they are just normal bugs" did you have issues with? I expressly told you that security bugs should not be marked as such, because bugs are bugs. > in other words, it's all the more reason to have the commit say it's > fixing a security issue. No. Linus wrote in 2008: Why we do this, Linus wrote:
  • 64. > > I'm just saying that why mark things, when the marking have no meaning? > > People who believe in them are just _wrong_. > > what is wrong in particular? You have two cases: - people think the marking is somehow trustworthy. People are WRONG, and are misled by the partial markings, thinking that unmarked bugfixes are "less important". They aren't. - People don't think it matters People are right, and the marking is pointless. In either case it's just stupid to mark them. I don't want to do it, because I don't want to perpetuate the myth of "security fixes" as a separate thing from "plain regular bug fixes". They're all fixes. They're all important. As are new features, for that matter.
  • 65. > when you know that you're about to commit a patch that fixes a security > bug, why is it wrong to say so in the commit? It's pointless and wrong because it makes people think that other bugs aren't potential security fixes. What was unclear about that? Linus Above email: http://marc.info/?l=linux-kernel&m=121616463003140&w=2 Whole thread: http://marc.info/?t=121507404600023&r=4&w=2 Go read the whole email thread (100 emails), it’s a good summary of why we do what we do. You also see me get mad at a user, rare...
  • 66. On Wed, 16 Jul 2008, pageexec@freemail.hu wrote: > > we went through this and you yourself said that security bugs are *not* > treated as normal bugs because you do omit relevant information from such > commits Actually, we disagree on one fundamental thing. We disagree on that single word: "relevant". I do not think it's helpful _or_ relevant to explicitly point out how to tigger a bug. It's very helpful and relevant when we're trying to chase the bug down, but once it is fixed, it becomes irrelevant. You think that explicitly pointing something out as a security issue is really important, so you think it's always "relevant". And I take mostly the opposite view. I think pointing it out is actually likely to be counter-productive. Reported security issue:
  • 67. For example, the way I prefer to work is to have people send me and the kernel list a patch for a fix, and then in the very next email send (in private) an example exploit of the problem to the security mailing list (and that one goes to the private security list just because we don't want all the people at universities rushing in to test it). THAT is how things should work. Should I document the exploit in the commit message? Hell no. It's private for a reason, even if it's real information. It was real information for the developers to explain why a patch is needed, but once explained, it shouldn't be spread around unnecessarily. Linus Above email: http://marc.info/?l=linux-kernel&m=121616807207387&w=2 Reporting Security bugs: https://www.kernel.org/doc/html/latest/admin-guide/security-bugs.html
  • 68. Keeping a Secure System Take all stable kernel updates Enable hardening features Do not pick and choose! The releases have been reviewed by the kernel developers as a whole, not in individual parts It is hard, if not impossible, to determine which patches fx “security” issues and which do not. Almost every LTS release contains at least one known security fx, and many yet “unknown”. If testing shows a problem, the kernel developer community will react quickly to resolve the issue. If you wait months or years to do an update, the kernel developer community will not be able to even remember what the updates were given the long delay. Changes to parts of the kernel that you do not build/run are fne and can cause no problems to your system. To try to flter out only the changes you run will cause a kernel tree that will be impossible to merge correctly with future upstream
  • 69. “If you are not using a stable / longterm kernel, your machine is insecure” – me Your infrastructure HAS to support updating the kernel. If you can’t do that, you are insecure. Even the “enterprise” kernels aren’t keeping up with this rate of change, the exception being Debian. If you use these kernels, you HAVE to keep up to date. Android example demo!
  • 70. “Ceaseless change is the only constant thing in Nature.” – John Candee Dean 1911 astronomer. If your operating system isn’t constantly changing, then it is dead. The world doesn’t stop changing, learn to embrace the change in order to survive. “static systems” die.