Inspiration
I have an interest in eBPF in the context of computational storage. I'm also learning Python, so this seemed like an interesting project to pursue.
What it does
I've developed a visual debugger (Text User Interface) and an eBPF virtual machine that allows running and/or single-stepping through eBPF assembly (from a bpf target object).
How we built it
eBPF101 was built using Python and python-curses for the TUI.
Challenges we ran into
Learning Python, so relied on ChatGPT for Python idioms.
Accomplishments that we're proud of
From zero to working prototype in about two weeks!
What we learned
Expanding my Python knowledge and how to use curses with Python.
eBPF is a sparse instruction set, and should probably work towards a more optimized version (such as ARM's 16-bit thumb instructions instead of 64/128-bit instructions).
What's next for User-space eBPF VM and Debugger
Add maps (hash and arrays) to support greater fidelity. Improve the TUI and expand the VM's instruction set. Support modifying memory in the TUI. Support more helper functions.
Log in or sign up for Devpost to join the conversation.