4 ms·
Just a nit, I don't think it's correct to call eBPF "user mode". It's just a different, much more sandboxed, way of running kernel-mode code.
by School-Cotton 2y ago
Just a nit, I don't think it's correct to call eBPF "user mode". It's just a different, much more sandboxed, way of running kernel-mode code.
- anotherhue 2y agoWe could call it, I don't know, "Protected Mode"?
- yencabulator 2y agoIf you can crash Linux with an eBPF program, many more asses will have fires lit under them than just this one vendor.
- senectus1 2y agoheh.. Linus would have a fit :-D
- boudin 2y agoIt's what crowdstrike call it. To run falcon sensor as ebpf, you need to set it up as "user mode" which, I agree with you, is poorly named.
- ghostpepper 2y agoI would wager that even most software developers who understand the difference between kernel and user mode aren't going to be aware there is a "third" address space, which is essentially a highly-restricted and verified byte code virtual machine that runs with limited read-only access to kernel memory
- School-Cotton 2y agoNot that it changes your point, and I could be wrong, but I'm pretty sure eBPF bytecode is typically compiled to native code by the kernel and runs in kernel mode with full privileges. Its safety properties entirely depend on the verifier not having bugs.
- ghostpepper 2y agoall code is native code eventually (although there are experimental cpus that can execute java byte code directly eg. [0]https://en.wikipedia.org/wiki/Java_processor https://en.wikipedia.org/wiki/Java_processor )
- School-Cotton 2y agoNo, lots of VMs don't have any JIT and just interpret bytecode with a loop around a big switch statement (e.g. Python before 3.13).
- parl_match 2y agofwiw there's like a billion devices out there with cpus that can run java byte code directly - it's hardly experimental. for example, Jazelle for ARM was very widely deployed
- ChainOfFools 2y agoListed in that wiki, along with the much older Picojava