We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

The Linux Kernel: We have to finish this thing one day ;)

00:00

Formal Metadata

Title
The Linux Kernel: We have to finish this thing one day ;)
Subtitle
Solving big problems in small steps for more than two decades
Title of Series
Number of Parts
490
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Today's Linux kernel and the ones from the early FOSDEM days still have some things in common, but in the end are totally different beasts. This talk will take a closer look at how the Linux kernel and its development during those twenty years evolved and adapted to new expectations. The talk will thus mention some of the changes to the Linux kernel that had the most impact in those two decades; many might have seemed small or insignificant in the beginning, but turned out to pave the path for ground breaking techniques like Android, Cloud or Containers we all deal with today. The speaker will also take a closer look at how Linux kernel development itself changed during those twenty years, but also cover aspects that didn't change much – like the email driver development model, which in the days of Github and Gitlab might look anarchic and from the Middle Ages to some. The speaker also will step on thin ice and speculate a few minutes what the future might hold, as there are a few strong indicators that Linux is entering a new era and slowly but steady get more aspects of a microkernel.
Kernel (computing)NeuroinformatikLetterpress printingKernel (computing)Series (mathematics)LoginMultiplication signSoftware developerPersonal digital assistantEvent horizonData miningRow (database)Roundness (object)Self-organizationOpen sourceComputer animation
TrailLevel (video gaming)Self-organizationRoundness (object)Endliche ModelltheorieSocial classMereologyLevel (video gaming)Multiplication signComputer animation
FingerprintGraphical user interfaceLink (knot theory)Position operatorArc (geometry)Limit (category theory)CountingOptical disc driveKernel (computing)Computer animation
Device driverComputerBefehlsprozessorNumberSystem programmingNormed vector spaceDevice driverPhysical systemNumberNeuroinformatikBefehlsprozessorCore dumpCoprocessorNormal (geometry)SmartphoneSinc functionCausalityComputer animation
Kernel (computing)CodeCore dumpBefehlsprozessorScale (map)Scaling (geometry)Kernel (computing)CodeMultiplication signForcing (mathematics)Core dumpBefehlsprozessorComputer programmingParallel portSession Initiation ProtocolContent (media)Scaling (geometry)Software developerEmailComputer animation
Content (media)Programmable read-only memoryKernel (computing)System callKernel (computing)Physical lawSoftwareComputer animation
MathematicsOvalKernel (computing)FAQTask (computing)Software developerKernel (computing)Multiplication signWebsiteMedical imagingTraffic reportingScalabilityScaling (geometry)OracleForcing (mathematics)Software developerGame theoryOptical disc driveDevice driverComputer animation
ScalabilityBefehlsprozessorSystem programmingChemical equationScheduling (computing)Core dumpScaling (geometry)ScalabilityMultiplication signMathematical optimizationData managementObservational studyMemory managementKernel (computing)Structural loadCore dumpScheduling (computing)WritingMathematicsBitSoftware developerComputer animation
Scaling (geometry)Kernel (computing)WritingDifferent (Kate Ryan album)AreaLocal ringInsertion lossKernel (computing)VirtualizationSoftware developerMetropolitan area networkComputer animation
VirtualizationBefehlsprozessorCurve fittingKernel (computing)VirtualizationProcess (computing)Computer animation
Kernel (computing)BefehlsprozessorNetwork topologyKernel (computing)BitVirtualizationGoodness of fitBefehlsprozessorComputer animation
Point cloudGame theoryGame theoryOnline helpDot productRule of inferencePoint cloudDivisorProof theoryComputer animation
DivisorCodeControl flowSoftware developerDivisorSource codeCodeGame controllerRule of inferenceSoftware developerCartesian coordinate systemSoftwareComputer animation
Kernel (computing)Computer networkPlane (geometry)Software developerDatenpfadNetwork socketProof theorySoftwareKernel (computing)Software developerSuite (music)Computer programmingMessage passingNetwork socketExpressionGame controllerCASE <Informatik>Right angleComputer animation
Similarity (geometry)Proxy serverSynchronizationOverhead (computing)Computer programmingDatabaseKernel (computing)Data storage deviceException handlingWindowNormal (geometry)Proxy serverBitSimilarity (geometry)Ring (mathematics)System callOverhead (computing)Computer animation
FreewareTime zoneMultiplication signKernel (computing)VirtualizationMultilaterationBitComputer animation
Time zoneKernel (computing)Kernel (computing)Similarity (geometry)Ocean currentBuildingCAN busMultiplication signNamespaceGroup actionSemiconductor memoryGame controllerProcess (computing)BefehlsprozessorStaff (military)VirtualizationDifferent (Kate Ryan album)CASE <Informatik>Computer animation
Compilation albumPersonal digital assistantForceComputerPatch (Unix)CASE <Informatik>Different (Kate Ryan album)2 (number)MathematicsBitPatch (Unix)Kernel (computing)State of matterDistanceComputer animation
Canonical ensembleProcess (computing)BuildingBitoutputComputer animation
Kernel (computing)SurfaceOperating systemKernel (computing)ForceForm (programming)Multiplication signRight angleMathematicsComputer animation
Digital filterKernel (computing)ComputerJava appletClassical physicsComputer programmingNeuroinformatikVirtual machineProcess (computing)WeightJava appletKernel (computing)Core dumpComputer animation
Computer programAsynchronous Transfer ModeKernel (computing)Software developerMultiplication signSoftwareComputer animation
Computer networkKernel (computing)Content (media)InformationCodeChainSystem callMilitary operationSoftwareSoftware developerRoutingExtension (kinesiology)Kernel (computing)CASE <Informatik>Multiplication signComa BerenicesRevision controlQuicksortAreaComputer animation
Kernel (computing)Revision controlMikrokernelComputerKernel (computing)MikrokernelEndliche ModelltheorieUltraviolet photoelectron spectroscopyNeuroinformatikGame theoryComputer animation
WhiteboardDigital filterKernel (computing)Linear regressionVideo trackingElectronic mailing listExecution unitHill differential equationDevice driverPointer (computer programming)Duality (mathematics)Source codeWritingKernel (computing)Traffic reportingMultiplication signLinear regressionTrailPairwise comparisonMikrokernelComputer animation
Asynchronous Transfer ModeCodeConvex hullElectric currentComputer programContent (media)Execution unitMikrokernelError messageSurface of revolutionSoftware developerSystem callCore dumpSurface of revolutionMikrokernelComputer animation
AreaError messageComputer programmingPhysical systemLatent heatAreaSimilarity (geometry)TorusComputer animation
WebsiteCompilerTracing (software)Expert systemTwitterWebsiteComputer animation
Execution unitMetropolitan area networkGamma functionKernel (computing)Time evolutionBlock (periodic table)BuildingLatent heatKernel (computing)EvolutePoint (geometry)Block (periodic table)Computer virusBuildingSoftware developerTracing (software)MereologyComputer animation
Axiom of choiceNetwork topologyOperating systemBuildingComputer clusterComputer animation
PredictabilityControl flowComputer programmingMultiplication signLine (geometry)RoboticsEvent horizonCASE <Informatik>System callPatch (Unix)Digital photographyComputer animation
Software developerMereologyKernel (computing)Real-time operating systemTorvalds, LinusWebsiteSoftwareGoodness of fitSlide rulePatch (Unix)MassBitMultiplication signLink (knot theory)Family
Software developerScalabilitySystem programmingSet (mathematics)Patch (Unix)Kernel (computing)Physical systemSoftware developerScalabilityScaling (geometry)Real-time operating systemComputer animation
Patch (Unix)Online helpRoutingSoftware developerProjective planeComputer animation
Revision controlComputer configurationReal-time operating systemCASE <Informatik>Projective planeMultiplication signLetterpress printingPatch (Unix)Configuration spaceKernel (computing)Message passingElectronic mailing listEmailSoftware testingComputer animation
Kernel (computing)Software developerSummierbarkeitMetropolitan area networkLattice (order)Computer animationSource code
Goodness of fitMultiplication signCommitment schemePatch (Unix)Real-time operating systemArithmetic progressionBitComputer animation
Software developerTime zoneSoftware developerSpecial unitary groupLatent heatConcordance (publishing)Time zoneState of matterComputer animation
Physical systemSoftware developerKernel (computing)File systemAreaPhysical systemComputer animation
RAIDCloningHill differential equationAreaKernel (computing)Computer iconMultiplication signSet (mathematics)Computer animation
Complex (psychology)Multiplication signKernel (computing)AreaSoftware developerComputer animation
Complex (psychology)FacebookOracleExpected valueOracleFacebookOnline helpEvent horizonExpected valueFile systemComputer animation
Control flowInclusion mapInclusion mapGame controllerExpected valueMetropolitan area networkMatching (graph theory)MereologySoftware testingSet (mathematics)Direction (geometry)Field (computer science)Computer animation
Kernel (computing)Source codeEmailElectronic mailing listSoftware crackingPatch (Unix)Software developerPhase transitionNetwork topologyBitSoftware developerKernel (computing)Multiplication signSource codePatch (Unix)Electronic mailing listTrailPhase transitionPhysical lawEmailCentralizer and normalizerStability theoryPredictabilitySeries (mathematics)Device driverDatabaseDevice driverWeb-DesignerComputer animation
Device driverComputer hardwareDatabaseSoftware developerPhysical systemRevision controlControl flowComputer hardwareDatabaseWeb-DesignerPhysical systemRevision controlControl system1 (number)Software developerRoundness (object)Projective planeKernel (computing)Computer animation
Kernel (computing)Data modelSoftware developerKernel (computing)Optical disc driveMathematicsProjective planeUniform boundedness principleWebsiteRevision controlCycle (graph theory)PredictabilityComputer animation
Web browserNumbering schemeKernel (computing)Kernel (computing)Cone penetration testGraphical user interfaceEndliche ModelltheorieRevision controlWeb browserElectronic mailing listTerm (mathematics)EmailLink (knot theory)Stability theoryVotingAuthorizationComputer animation
Electronic mailing listPersonal digital assistantSoftware developerAutomationInformation securityCodeElectronic mailing listEmailSoftware developerCuboidCASE <Informatik>Office suiteMultiplication signSoftware bugInformation securityKernel (computing)CodeSoftware maintenanceComputer animation
CodeSoftware developerSoftware developerMultiplication signPerturbation theoryWeightBitNP-hardComputer animation
Slide rulePatch (Unix)Software developerRevision controlConsistencyTelecommunicationLink (knot theory)MIDIContent (media)FAQKernel (computing)Programmable read-only memoryLocal GroupContrast (vision)Context awarenessLine (geometry)Thread (computing)Software developerGroup actionSqueeze theoremKernel (computing)Patch (Unix)Instance (computer science)Computer animation
Open setStack (abstract data type)Multiplication signSoftware developerOnline helpBitHierarchyArithmetic meanEndliche ModelltheorieRoundness (object)Kernel (computing)Computer animation
Revision controlKernel (computing)Insertion lossLine (geometry)HierarchyKernel (computing)Revision controlNumberPoint (geometry)Line (geometry)Patch (Unix)WordHierarchyVolume (thermodynamics)Computer animation
Perturbation theoryKernel (computing)Patch (Unix)EmailMessage passingMaxima and minimaLatin squarePatch (Unix)Volume (thermodynamics)Kernel (computing)NumberSoftware developerVotingComputer animation
Software developerBlock (periodic table)BuildingProcess (computing)Image resolutionSoftware developerBuildingBlock (periodic table)Process (computing)BitResultantDivision (mathematics)Computer animation
WhiteboardMultiplication signComputer animation
Real-time operating systemAreaSoftware developerNumbering schemeComputer animation
Physical systemSoftware developerNumbering schemeSlide ruleNumbering schemeFile systemGoodness of fitSoftware developerSet (mathematics)FreewareOpen sourceSoftwareWordCASE <Informatik>Multiplication signBitCausalityComputer clusterPlanningMoment (mathematics)Point (geometry)Quantum computerElectronic mailing listTrailQuantumDecision theoryShift operatorSlide ruleRight angleAreaOperating systemCodeRevision controlGroup actionLine (geometry)MereologyComputer hardwareDisk read-and-write headKernel (computing)Computer animation
Overhead (computing)BitFeedbackSoftware testingBefehlsprozessorPhysical systemLine (geometry)Server (computing)Multiplication signDifferent (Kate Ryan album)Group actionFacebookHypermediaEvent horizonPoint (geometry)Endliche ModelltheorieService (economics)Limit (category theory)QuicksortLevel (video gaming)Lecture/Conference
Point cloudFacebookOpen source
Transcript: English(auto-generated)
on your phone turn off the sounds on your phone you probably bought like 14 other things attached to the Wi-Fi which is why I'm on 3G right now thanks so much you should probably turn those on silent as well this will be video recorded I can't say videotaped anymore even though that's how I
learned how to do things this beard is gray so we only have this working microphone because it's an all-volunteer event please donate so during the Q&A session you'll have to raise your hand speak clearly without the assistance of modern technology the speaker will repeat that for the
recording for all the streaming people who just got lost and decided to stop at a Starbucks and connect to the Wi-Fi so question repeats answers learning everybody ready well you're not even awake yet that coffee hasn't kicked in is everybody ready thank you yeah you don't have to be excited about me
you should be excited about our first speaker whose name got removed because somebody wants me to take an update while I am traveling that's rude thirsty Lee moose is a Linux kernel development follower he's been starting since the start of the century turns out he's known for his kernel log column which has over the years covered the features of more than 70 new Linux features in detail as elaborate and respected article
series is published by his employer the German CT magazines you're as big as computer and tech magazine both online and in print if you don't know what print is ask somebody who's got a beard like mine he used to contribute to the Linux kernel but has put that aside just so he can cover and
come to conferences like this and talk about open source please give a round of applause for Thorsten Lee moose yeah welcome everybody I haven't used such a mic for quite a while so if I don't hold it right just let me
know yeah but let's go here it's a 20s first time already and I think I'm when giving a keynote that's a big biggest chance to really give thanks to the organizers and all the volunteers that make this great conferences happen so give a round of applause please yeah thanks for all this work or warning
this talk is kind of part of the history talk but don't worry it won't be a history class I promise I make sure of that and everything I mentioned is kind of relevant for today and there will be a moral of the story at the end so let's get started the stage one of the first first time actually
happened in 2001 shortly before that Linux 2.4 had just been released and basically had all the important features needed back then kind of everything needed to conquer the world and bring us where we are today positive support graphical interface it was portable to various arc arcs and the
performance was good since then a ton of improvements have been much into the Linux kernel and I can only mention if quite a few of them because otherwise this talk would take all day or even two days maybe and one of the things that happened Linux was growing up 2.4 for example would likely not run very
well on today's computers obviously because lots of drivers will be missing but one of the things that wouldn't work is what would be problematic would be the number of CPU cores in modern systems because that back then uniprocessors were quite a norm if you had an SMP system with two
processors that was a normal back then but today we have CPUs with 12 or 16 cores actually and even smartphones have four cores and that might be way too much for Linux it was actually SMP capable since June 1996 already but back
then that was kind of brute force how it was made possible there was a big kernel lock and that's basically that only one CPU core was allowed to to execute kernel code at a time so I had two programs running in parallel and both wanted to call into the corner to do make it do something and they
had to wait for the other one to finish. That actually was solved with finer-grade locking that followed in 2.2 and 2.4 so the next two or three years and that made Linux scale a lot better already so in the 2.4 days it wasn't that bad anymore but other Unixes were known to scale a lot
better. The Linux developers actually continued to work on that and by 2.6 Linux had got a thousands of finer graded locks yeah but the big kernel lock was still around desperate even if some people had assumed it would be gone by 2.6 already. I looked it up actually 2.6.6 had about 500 locks
big kernel lock calls back then and it as it turned out many many more steps were needed and had to be taken and to get rid of the big kernel lock networks acting up here and if you're interested in all those details which
had to be done you can look some of them up on on LWN not which is a great site that reports about the happenings in the Linux kernel all the time as you can see during between 2004 and 2011 when the big kernel lock was removed there were lots of articles that explained where all the problems were
yeah and as I mentioned it Linux got rid of this big kernel lock that was a problem for scalability in 2012 so basically after about 11 years and that was possible thanks to heroic efforts by various developers especially we have to thank Art Bergman for that who actually took care of the last few
steps that are really really a lot of work without much gain maybe and yeah it was quite a game but it was really hard doing this this last things because they weren't odd drivers and things like that but scalability since then actually remains something being worked on if you look at LWN that again
there are many many more articles over the past few years that were about scalability and many small improvements happened over time it's kind of a never-ending story like recently there were some memory management optimizations there was a new schedule load balancing core that got merged into the Linux 5.5 kernel which is the latest right now and many other
things yeah and most people most of you that are not kernel developers don't notice any of this because all those changes happen basically under the radar but thanks to this Linux is and stays one of the best scaling OS kernels these days maybe it's even the best I was a bit
careful in the writing that so I went for one of the best maybe I was over overly careful there yeah that's one of the things that happened in various small steps during this past two decades and and getting rid of the kernel lock was really one of the big first achievements with that small
steps that happened and that was possible because and that was something everybody worked together on it's kind of common goal but more often they some competition between the kernel developers and and one of the thing that Linux kernel was actually still missing in the early first and days was
built in virtualization capabilities and that's not unusual because virtualization on x86 Linux was not very popular or not famous back then that it only happened during the mid-2000s with then some of you might remember getting popular in 2005 and x86 processes actually starting
getting virtualization capabilities back then and then back then actually looked like the obvious and fitting solution for the Linux world there was no no competition there everybody thought that would be what we what will make that what everybody would be using there was just one problem support for
it for runnings for using Zen as a host or a guest with Linux was out of tree but a lot of people didn't care that much and the other problem was Zen was actually kind of a kernel underneath the Linux kernel then suddenly out of the blue in October 2006 KVM came much already half a year later
into Linux kernel because it was quite small it was quite small and being compared with Zen actually didn't offer that good kind of feature set the performance was worse it had less features and actually required a CPU of virtualization capabilities some sometimes it looked a bit like a toy but in the end it turned out it was quickly improved because various people
and companies found interest in it and help with little steps making KVM better and as some of you might know in the end KVM turned out to be game gamechaser today it's basically used everywhere these days and actually one of the cornerstones for what it made Linux rule the cloud Zen is still
around and the support for running as host and guest with Linux actually got only matched five years later in the 2.0 days and these days Zen is quite small when compared to KVM so why did KVM succeed yeah one of the reasons
that might be a factor might be that Zen sources didn't get the code upstream fast enough but I think the real reason is KVM had a better more flexible and future-proof design and actually one that allowed Linux to stay in control because it was built into Linux not underneath it and that's obviously suited Linux more and it's that developers so they become became
interested in it helped making it better and yeah that's how it ended and that's why KVM rules the world these days and yeah that's most kind of history lessons history lesson but on the other hand that's things like that happen every day every now and then these days also for example recently
there was a DBDK that's a technique to make network packages go straight into userland applications and bypass the Linux kernel that obviously didn't suit the Linux kernel developers much so they started to fight back and worked on solution the Express data pass and XDP and something built upon
that's called a XDP socket where userland programs can can immediately get those packages so the kernel stays in control and it seems those two solutions actually can keep up with DBDK these days so it's likely I'd say if I
would bet I bet on these two solutions and I think they will gain territory back from DBDK because it's better integrated in Linux another example is asynchronous IO so the program can do something else when it reads or writes makes a kernel read or write data from some storage device that's normal in the
Windows world and but unusual in Linux except for maybe great big databases but these days something a solution finally shows up that's called IO U-ring it was merged into a kernel a bit more than one year ago and it's an answer to a similar bypass technique that's called SBDK and yeah and it's
actually will help getting the performance out of these new SSDs because they are really quite quite fast and to make make the get the performance out of this such an asynchronous IO solution is needed because the syscall overhead is way too much otherwise and the thing is just as KVM both these solutions got imported into the Linux kernel and started
quite small and then got improved in small steps by various people that found them interesting and it shows it that things like that had them all the time virtualization was not the only thing the only solution to make Linux a host for something there was something else and that Linux missed during the
early foster days there was support for containers and that's actually quite interesting because other Unixes back then supported them already free BSD for example did and Solaris learned it a little bit later for Linux it only became famous in 2014 and a lot of people sometimes wonder why did it take
so long yeah I took so long basically because the kernel lacked features to build something similar with Linux and yeah that's those features had to be built but that happened one step at a time it took years some of these features actually we use today for containers were
actually built for containers and docker that like the various namespaces some of those features we use for containers actually not directly one partly built for for container used like the C group stuff the control
group stuff that make sure one process can't take all the CPU or memory and other staff and that in the beginning actually was used a lot of lot with virtualization with KVM and some of the features we used to build containers these days actually were built for totally different use cases like capabilities and second and a few other things and the thing that made
docker popular in the end was actually docker combined these and a few other features in a new and more attractive way and that made Linux containers suddenly suddenly quite popular and in the end kind of changed the world funny detail there Alex C was designed to become the preferred solution and
that's a bit older and there were actually two other Linux container solution which which also an open possess that became quite small thanks to all the other things stock abroad and Linux we serve as the other solution that is basically forgotten these days they came early and used out of three pack patches but thanks to the kernel and small steps and
features you can you combine in interesting ways they docker overran them basically and is now the leading thing Alex C actually actually is still around definitely not as big as talker and the funniest detail that is just
imagine if it would have been one company that have invested all the money in bringing making the corner capable of running containers and building Alex C as usual and process on top of it and that actually might have been a pretty bad return of investment for them because yeah other companies can use those features you bought as well yeah and that that really
makes it a little bit risky for companies to invest that much money but on the other hand that's a problem for the kernel Linux the operating system actually got a way better and more flexible solution thanks to this and thanks to all the various small steps that were taken and what are the
reason why we have so many small features that docker could combine in a new and more attractive way doc already was quite unexpected but welcome surprise that's not the only time Linux kind of stuff and kind of features show up that's nobody really aimed for and one of those things
actually is changing the kernel these days and Linux basically is on a trip into the unknown right now what I'm talking about is an improved Berkeley package filter that's called BPF for short or these days CBF or classic
BPF and the improvements began in 2014-15 that's an internal mini VM mini virtual machine but not a like a virtual machine that emulates a different computer more like a Java VM where you can upload in programs to and then the kernel executes executes them that's something for 20 years ago
TCP dump for example relied on to only get those packages from the car into into user landed in it to see TCP dump the user was actually interested in that's needed because needed to for performance reason because coping
everything over simply is so much work it will slow everything way too much down this improved CBF actually got called got called eBPF you might have heard of this thing some people even call it just BPF for short I'm kind of angry with the developers there because now we have an old BPF
that's called BPF and a new BPF and nobody knows what what somebody's talking about yeah that's really sometimes annoying but most of the time if you read BPF these days it's actually the enhanced one that's meant yeah it became a really fast and much more powerful VM to run programs in
that's actually if you had suggested something like that to learn a store was 20 years ago I guess the idea would immediately have been shut down because it's kind of crazy but this days it worked and one of the reasons why it's work is actually it's got improved a small thing and then improved and
improved again and that way everybody could be sure that's not dangerous or something the network developers actually built this eBPF to scratch some interest they had and improved it and approved it again this xtp stuff I mentioned earlier is actually built upon this and really relies on it but
these days other kernel subsystems started to use it as well or will soon and more and more seem seem seem to be interesting actually on lwn net it's became kind of a running gets gag that some doing the articles there's often the case where some some solution is sort of complicated problem
and then often be BPF is suggested to use it it won't be used all the time but it seems it's getting into the kernel at various various areas and yeah eBPF is still not done I mean it's got developed over the past few year but it's improved more and more and starts to change the kernel
fundamentally and makes Linux actually gets more aspects of a microkernel this thing what some of you might remember this big debate of microkernels is a better design than the stuff that the model that Linux currently use which is more like a monolithic kernel but as I said Linux
gains more aspects of a microkernel and that's actually what Europe's biggest computer magazine wrote the German city magazine it looks like that and if some of you now see you see pump people giggle next to you to you that's because yeah that's what because I wrote that yeah maybe I should
try that on Wikipedia write something somewhere and then change and give myself a source yeah but I'm not only a popular fault for this kernel reporting I do that for 15 years now I'm also did a few things in my spare time for kind of regression tracking and that I was actually invited for the
current summit and so I know what I'm talking about and I'm not the only one that actually wrote this microkernel comparison I'll be lwn that actually mentioned it as well and there's another another running joke yeah you laugh but this one of the core developers that made a lot of things
happening you we all use every day sooner it's we laugh these days but maybe it will happen it maybe we stand here in 10 years and say yeah that's how it all began and there's also an another improvement that's coming where
the microkernel aspect was mentioned that's really fascinating to watch the rains to be seen what comes out of it maybe it's a we're at the beginning already in the middle of a small revolution that makes Linux more error resistant flexible and more powerful it remains to be seen thing is most people actually don't notice because it's happening in a lot of small steps and
without disrupting old features so that can can can be you don't have to care if you're not interested in that yeah long-standing wishes that's a different topic another area where Linux actually was behind on the in the early for some days was a proper tracing solution to look into the system or
specific program to look why the system is slow or why the program is slow and the famous solution in this area is actually D trace actually published in 2005 and built into Solaris and people for years wanted something similar with Linux and they got some things recently that's
called BBF compiler collection BCC for short and BBF trace and those are actually called D trace 2.0 these days by Brent and Greg which is one of the leading experts on one D trace at least according to Wikipedia and no I didn't write that there yeah and actually those two new solutions can the
2.0 is appropriate because BBF trace and BCC actually can do more than the old BCC more than D trace it's pretty cool if you want to know more about this look at Brent's website I mentioned it here and he also
published a book recently that's quite cool and gives a lot of details and into what you can do with modern kernels and and and tracing them and yeah it took basically like 10 or 15 years to get everything into the kernel and the funny thing is that actually happened without a design that
had something like BCC or BBF trace in mind they thanks they much thanks to evolution because the kernel developers actually built various building blocks over the past 10 or 15 years sometimes with smaller or different goals you have the tools like F trace, trace points, perf, k-probes and all those
things and then that those were one part of the solution the other part is eBPF there it is again and yeah then somebody combined those tool and and made new things possible and then actually BCC and BPF trace came out by
some people and tata yeah that's how we have D trace 2.0 these days really great how things work out and without a design like you would have normally when you're building an operating system yeah something impossible Linux will soon offer a really great and important new feature
one almost and one almost nobody would have expect during the early for stem days it will be real-time capable so it will be able to use Linux for your laser cutter or for your robot and your industry line that manufactures cars or whatever because it's kind of Linux can make sure that
program that's controlling your laser cutter is always called in time to react to certain events and that's really important for this use case yeah back during the olive early for stem days that was actually nothing people talked
about yet but it was an idea actually in some people's mind up minds already especially in the mind of Thomas Glaxner who's one of the leading or the leading developer for the real time kind of patches and he actually recently last fall on the Linux plumbers conference gave a great talk
about this the URL is here I also you don't have to write this down I will upload the slides to the website I try to do that before right before the the talk but the network was overloaded so you have to wait for that sorry but it's a great talk where he's looking back and mentions a few nightmares all this development gave him and one part of the talk is
actually he gave mentioned a few quotes like real-time people are crazy and not going ever to get merged into the Linux kernel and things like that and for I know I spoil the talk a little bit yeah but these quotes actually are all from Linus Torvalds himself that was most of them were
from 2005 from a great or 2004 great great debate of if we are making real time Linux real-time capable actually is a good idea yeah but developers actually didn't give up and they basically started working on it having
this external patch set and got small steps into small patches and small and into the mainline kernel and yeah that actually made Linux better for all of us even if we don't use real-time systems or we don't need them and the real-time patches hit quite a lot of problems and scale scalability issues
first and that in the end they fix them and that in the end made Linux better for all of us and yeah the thing is the RT developers actually had a lot of body blows and one of the worst was basically like five or six years ago they had basically like 90 to 90 percent of the route done or that
were needed to get make make Linux real-time capable but they needed basically needed money for the last few last mile on the last five years as it turned out yeah and the thing is that was needed because lots of company
companies that used the RT patches back then actually didn't help much with development and but lucky luckily the people were successful they came to the Linux Foundation and talk to them and they actually founded a project with a few companies in 2015 and yeah thanks to this project the main trip will
soon be finished because the real-time capabilities are the biggest the most important patch actually is in the Linux kernel already the config option to enable the real-time support it's not exposed yet because a few things missing the biggest thing is actually a rework for the print case stuff
that's actually which what's doing your logging which you can see with D message and that's but that's in the work and there was some disagreements but they were settled really recently and the patch was the new patch to make everything happen was sent to the Linux kernel mailing list for review recently so it's likely this will get into the the kernel this year's and
then make Linux real-time capable describing all the steps the real-time developers had to take was what take also a day or two maybe because if you go to LW and not and actually look what what problems were discussed over those years you you have many articles you can read and but it shows
even crazy goals that look unreachable can be achieved in small steps and yeah the thing is that's actually how most of the Linux features evolve as they often not designed by some some company or some some in a meeting or
something often it are simply individuals that want to realize an idea or a dream or and make Linux do something and sometimes they even abused companies to realize their ideas that happens they simply look for companies that might be willing to pay them and some of the developers sometimes have
to find other places to to find money but it shows really with a good idea and commitment and even big and crazy dreams dreams can be realized in real time patches actually are a really good example for that yeah I mentioned a
times that Linux is working differently a little bit and nevertheless it learned a lot of things but it took them quite quite long to get those features realized but that's just how the Linux world is because you can't
simply can't just hire 50 developers make them work for two or three years to build a specific feature like Sun for example could do of zones because if you do that there's a really the risk that after two or three years you get to the current developers and they say no we don't want that
that's way too big and you're doing this and this one wrong and because they want to see these small step incremental steps because that work quite great for the Linux column and that actually means more work for for the companies if you want to realize something yeah it's after develop
kernel developers really well often lead to the best solution on the market but it has disadvantages too so in now I'm going to check who's awake whose hands up and leave it open leave it up if you're awake yeah yeah so leave it leave it leave it up if you agree with standing here and it's
zfs actually the most sophisticated file system in the Unix world yeah yeah quite quite a few hands went down but about not really 50% but but close
with some people think it is but zfs and the Linux file systems actually one of those areas where a lot of people say Linux is still not not the best kernel for that because zfs is better and the funny thing is there were work on zfs for Linux actually actually was started in 2008 it's
called butterfess I guess most of you have heard about this but as most of you will likely know it's doesn't have hasn't reached that goal and yet and it doesn't look like it will be anytime soon if you go to Wikipedia we actually see a few features that are called unstable unstable on and a few
features that were announced or that set of s already had that are not even implemented yet so the big question is what took them so long yeah one other thing for sure it was overhyped and just like all the other features butterfess
was merged into the kernel when it was still quite small and then improved in various little small steps and that take take a lot of time as I showed with the other examples I gave earlier and it also shows how quick things improve and complicated areas mainly depends on how complex the area
is the problem actually is you will try to solve and how many individuals or companies back to the development and it turned out the problem scope here is really really complex and company a lot of companies didn't care too much some companies actually helped like Oracle's who's a Facebook and few others but some don't care much and didn't help no complain that's how
it thinks sometimes is are in the world so the big question is will Linux get something to compete with ZFS I'm pretty sure sooner or later it will the examples I gave really show that it might just take 10 more years
maybe just five but maybe 15 who knows we will see just to mention a few recent events there was this is file system because a lot of people have high expectations there I'd say be wait and see and keep your expectations under control to not create another hype because history shows it's a hard
problem the history of butterfess actually shows it's a hard problem that takes a lot of effort and because of s right now is basically a one-man show and not even submitted to mainland inclusion yet so it's unlikely to fly soon even if it got much companies would need to have a lot of testing
and testing in a field before this really becomes stable so that that will take a while if things really develop in this direction maybe in the end it turns out that but oh that's a butterfess gets improved and that becomes a set of s for Linux in the end just as planned that's nobody knows that yeah I talked a lot about features already but let's switch gears a little bit and
talk about Linux kernel development how the kernel is developed itself because during the early first time first time days the Linux kernel development meant looked really odd to outsiders there was no central development forge like the source forge gitlab or github development was
actually totally driven by email there were dozens of mailing lists no tracker for patch submissions no central issue tracker neither for developers nor users there were long unstable development phases there were so new features that got built and integrated into an unstable series sit there long and
reached users only after two or three years that was made a lot of people unhappy there was no predictable release cadence no driver data database where you could look up if your hardware support and how good and actually we had an overworked lead developer and because we didn't one of
the reasons why he was kind of overworked and we didn't even have a version control system back then for the younger ones in this round yes 20 years ago we had version control systems already most people most projects actually use them for the older ones yes those were CVS and SVN
and maybe those were the Middle Ages back then I don't know but git really made things a lot better yeah but then back to kernel development there were way more odd aspects for kernel development and the approach
actually improved quite somewhat since then like we have gets since 2005 and let me change the world really to the better thanks Linus it's the second project that quite made the world change and now I have your strange
pop-ups here that's blocking me my site yeah and we actually got a predictable release cadence release cycle since 2005 we basically get new releases from the Linux kernel every nine or ten weeks so it doesn't take that long to get a feature out to the users and this approach where every new version brings new features actually was called crazy by a lot of people
when when the Linux kernel switch to it but it turned out very well and actually browsers actually later picked it up so Firefox and Chrome we all are used to this this model that's basically whether Linux kernel build the has to actually do that we also got stable and long-term kernels that have
supported for longer like the latest lot of those long-term cones are supported for six years these days but to be honest many of the odd things I mentioned a few minutes ago are still around and some even got worse though so these days we don't have dozens of mailing lists we have hundreds of mailing lists and development is actually still driven by email there's
not there is a bugzilla but the thing is we can report issues but the thing is there are lots of developers don't look there because in most cases it's not the office official way to report bugs just a hint for those that want to report bugs to the kernel developers the proper place and most of the time
is a mailing list security also became much more important since then but still we have no automatic code checking in a central place most of the subsystem maintainers use something and the developer some of the developers also but nothing central here a lot of room for improvements here and on some
of those things actually is someone is working on them already and there's always the idea why not switch to a central forge like github and github for development because you would get a lot of things for free them but no that won't happen any time soon because just like with features the
developers demand that things are improved in small steps here too because yeah that's how it works well for them and yeah but that's really need someone that's motivated enough to do that without an immediately return of investment and that makes it sometimes a little bit hard
and that's why some of those things are still kind of archaic with Linux development it becomes more and more of a problem there was also recently on a plumbers conference and fall talk about it with what problems a lot of developers have to deal with these days thanks to that workflow group was
actually started and already got to work so a few improvements are coming there's now a Garrett instance which developers can use to submit patches to Linux kernel and went to be seen how the other how many of kernel developers will start to use this and how if they liked it but but as you can see it's
development is improved with small small steps just like with features and yeah that will take some time sometimes people ask and should the why can't the Linux foundation help you more maybe it should help a little bit more but I'm not sure how much because the Linux development model model really
worked well and I don't think it would be a good idea to basically organize them like OpenStack or Kubernetes are developed with lots of committees and hierarchy and things like that yeah that might not be the best for the Linux kernel nevertheless Linux kernel development meanwhile runs at the usual
pace every we get new kernel versions every nine or ten weeks for many many years now if you're interested in a few few numbers we are actually each of those versions brings about thirteen thousand five hundred commits sometimes
it's a thousand or two thousand more or less and all of those bring about three hundred thousand new lines every version so about every year the kind of gross about 1.5 million lines per year and that actually happens about 15 years after Andrew Martin who was back then number two and a
hierarchy wrote this and famous last words but the actual patch volume has to rub off one day as I said that was 15 years ago it didn't back then we had like I think six or eight thousand pet comets every kernel release as I said these days we often have 13,500 and the Latin later number is
actually stable these days so the patch volume is quite constant down yeah but that was not the only thing Andrew Martin wrote back then he also said we have to finish this thing one day yeah I don't think that will ever happen I guess Linux might be forgotten forgotten maybe in hundred years and because all
developers might work on something else or we still use it in hundred years who knows remains to be seen so now I'm coming to the end slowly summing things up now the Linux developers really solve big problems and small
steps the big unlock showed that the small steps lead really to better and more flexible solution like KVM did sometimes these small steps actually make groundbreaking new technologies possible like like doctor did the small building blocks that are built in the small steps actually sometimes can can
even help fulfilling all the wishes like the trace to does it for the wish for tracing solution and this process actually can lead to quite unexpected disrupting results like this BBF thing I mentioned really keep an eye on it it's going to be fun what's coming out of that but thing is that's
what made and makes Linux so great because those were just a big examples during the past two years at two decades the big features that were developed like that it's basically all the other stuff was was quite similar but it shows it's what makes Linux so great and reaching big and
chose it you can reach big goals with small steps and even if that takes time yeah and if something takes time it obviously also needs money because we all have to eat in the end of the day and yeah so to realize them that often need someone that's really committed Italy is someone that's an
individual what that wants to realize a dream and has a dream about a new feature and that drives makes everything happen to realize that in the corner because that's how all those features I mentioned to got developed and the real-time stuff I mentioned is really was a really big and crazy dream
but even that got realized this way nevertheless in some areas we are still not there yet and to improve things you have to basically become an individual that is committed and find money to get this dream realized and
then maybe Linux will get the file system that's as good or even better than set of s and we might get developer tools and schemes that are even better than what what we have these these days just like it was for example or other things that will have a positive and impact on the world or
the world of free and open source software like Linux and git had and have which just everything else I mentioned is we're just a dream in somebody's head that somebody realized in this case Linux that's it and that's if you're wondering slide 234 all those like I have so many things to say and so many
things in my head that's why I'm using to keep on track so are there any
questions we now have to switch mics if you're planning to leave this makes questions a little bit difficult we have about five minutes left for questions if someone has a question if folks leaving the room could leave the
room as quietly as possible so we can hear the intelligent discourse from the questions in the audience
to make use of quantum computers and quantum chips that are coming up on quantum computers yes thank you I have no idea I don't think anybody is working on on making Linux run on quantum computers maybe we need new
operating systems for them remains to be seen maybe somewhere and somewhere some lab somebody part of Linux there but I have no idea by the way if if you're exiting the room could you please do it from the middle or the back they were still trying to actually answer questions at the front of the room at the moment thank you for the talk I wanted to know do you think
but Linux has gotten faster or less fast during the time during the 20 years sorry I don't understand it's too loud could you maybe come here oh yeah
yeah oh yeah thanks that's now again do you think that the Linux channel has gotten faster during the year because you know a software grows it's sometimes slower there was many performance enhancements so do you
think it has gotten like slower or faster on the same hardware oh you mean if if it should be if it should be how it could be faster or what I like during all the time that passed oh you talked about do you think but the
kernel has gotten faster I it's too loud here sorry I can't understand it okay we're gonna try this again does anybody have a question that hopefully isn't oh did you ask if the Linux kernel was growing fat or what and the
question is whether Linux gets faster with these updates if even faster release updates when Linux gets faster with all the improvements yeah
it Linux basically gets faster basically with every new version always in little little steps also is but this is too slow in some some areas or where do you think it's too slow I think the point was with the increased code
base it might get slower over time if can you repeat it with the increased code base over time it might get slower because you have too many lines you mean because it's getting slower because it's so big no not necessarily right now but can it be in the future yeah the Linux kernel is quite modular so
you can build everything into it what you want but sure some of those features have some overhead that make Linux maybe slower and that's actually likely would become this overhead would be a problem if you would use a modern
Linux on a quite old system but on the other hand you can configure Linux quite quite modular and I mean it's used on a lot of embedded systems so it shows it can be made quite small and at the same time also work on quite big servers with hundreds of CPUs this is our is our last question last question
okay my name is Tolik sorry I speak a little bit English I would like to ask about if I understand you're right you said that each year we got 1.5 million lines more just your opinion what's happened in ten years so what
was it tested it who tested it I can't hear it so the speakers are away from here could you explain me how it's possible to test it at all how to
Intel doesn't care about commit from IBM or Facebook or another company says tested at all no no I guess nobody tests it all because you can build it in lots of different ways I have a lot of issues what this why they have a
lot of issues yeah yeah a lot of people try to testing the Linux but you can't test it all and that's also something that really needs to be get better which the workflow group also I think has on its roadmap to make sure the contesting gets better yeah okay I think we are ending this
if you go and want to give any feedback just talk to me even if you didn't like it yeah and if you want to follow me you can follow me here if you want thanks again and have a great first time