Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kernel Recipes 2019 - The ubiquity but also the necessity of eBPF as a technology to keep the kernel relevant


Published on

Traditionally operating systems are black boxes designed by system engineers that users simply have to “fit into”. Users do not want to be placed in a box, rather they want to use a system that is flexible enough for their needs. In this sense, traditional system developers are arrogant.

Kernel development has to be done in a careful and well crafted manner, it should not be rushed. But this rate of change absolutely cannot keep up with the continually changing needs of users.

Without the necessary level of flexibility, the resulting rigidity will open the doors for competing operating systems to replace Linux as their platform. These systems would simply be giving the users what they actually want. So we must evolve or die.

Therefore, my talk will be about how eBPF is essential as not just a fancy framework for cool fast networking and interesting tracing and introspection, but rather it is an essential component for the long term longevity and survival of the Linux kernel.

David Miller

Published in: Software
  • Be the first to comment

  • Be the first to like this

Kernel Recipes 2019 - The ubiquity but also the necessity of eBPF as a technology to keep the kernel relevant

  1. 1. Keeping the kernel relevant with BPF David S. Miller (Red Hat Inc.)
  2. 2. Kernel APIs Are Hard You must define the problem being solved Also, consider existing interfaces Look into extensibility and future needs Are there holes in the design Can it be exploited Will it be obsolete soon
  3. 3. Kernel Changes Take Time Then you have to implement it You have to write tests for it (!!!) You must propose it upstream You must address feedback And repeat all above steps each time Enterprise distros get it a year later
  4. 4. Kernel APIs Are Confinement You define the interface and boundaries And then that’s it No flexibility This is inherent in syscall interface structure The limits are always small and precise
  5. 5. Systems Developers Are Arrogant To design syscalls properly you must be arrogant You are putting the caller into a box You “know better” than the user Users don’t want to be in a box Users want to solve their problems And this may change tomorrow
  6. 6. Users Want Arbitrary Policy … and they want it now Maximum flexibility is mandatory This mean rapid prototyping… ...but for kernel things By the user For the user
  7. 7. Kernel Development Pace New features should be well thought out Implementation and design should be discussed Bug fixes should attack the problem not the symptoms Testing should be complete and rigorous All of these things take time...
  8. 8. Picasso Born October 25, 1881 Blue period: 1901-1904 Red Period: 1904-1906 Leading to...
  9. 9. Les Demoiselles d'Avignon Painted by Picasso around 1907 Widely regarded as the first cubist work Hidden in Picasso’s studio for some time Like BPF, people just weren’t ready for it yet
  10. 10. Why is BPF Surprising? It fundamentally seems contradictory It provides freedom of expression… ...yet containment and safety All at the same time This can’t possibly work
  11. 11. Education is Essential We need knowledge transfer If you understand BPF… ...explain it to other people If you know someone who understands BPF… ...ask them to teach it to you Do it for the sake of the kernel
  12. 12. Thank You Linus Torvalds Alexei Starovoitov and Daniel Borkmann Jesper Dangaard Brouer And all the sad cats...