Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The ubiquity but also the necessity of eBPF as ...

The ubiquity but also the necessity of eBPF as a technology to keep the kernel relevant

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

Kernel Recipes

December 22, 2021
Tweet

More Decks by Kernel Recipes

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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...
  7. 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
  8. 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
  9. 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