Comment by ddelnano
For kernel dev and eBPF, what kinds of resources or tutorials have you tried in the past? Have you ever tried building something small or contributing to an existing project?
Curious to hear what hurdles you ran into.
For kernel dev and eBPF, what kinds of resources or tutorials have you tried in the past? Have you ever tried building something small or contributing to an existing project?
Curious to hear what hurdles you ran into.
For Linux kernel dev, I found Linux Kernel Programming: A Comprehensive Guide to Kernel Internals to be a really helpful resource. For eBPF, the early chapters of Brendan Gregg’s BPF Performance Tools gave me the context I needed to get started.
From there, what’s helped me most is a cycle of reading new material, building prototypes and exploring how an open source system solves similar problems. I've definitely hit that wall as systems programming can get confusing fast.
I’ve also noticed that I sometimes get stuck trying to make something perfect before I’ve even started experimenting. Forcing myself to build the lowest-effort version of an idea has been surprisingly productive. Debugging things that don’t work is frustrating, but that failure often reveals insights I wouldn’t have discovered if I were overanalyzing.
You’ve probably seen some of these resources already, but just sharing in case any of it’s useful. I work with eBPF full-time and had many similar challenges along the way, but recommend jumping back in when you have the time.
For kernel, I have tried to write simple modules and it's okay. But when I am going deep in the internals, things become really complicated and my memories from OSes exam are rusty. For eBPF, I wrote a quite simple DNS visibility tools and while I am okay with the logic, I struggled on writing low-level C code that parse the network packet. Moreover, I found documentation incomplete and really confusing, for example: I would like to understand how the different queues are working and the only solution was to read the code. Right now, anyway, it seems that this aspect is improved; probably it's the time to play again with that!