<story><title>BPF: A New Type of Software</title><url>http://www.brendangregg.com/blog/2019-12-02/bpf-a-new-type-of-software.html</url></story><parent_chain><item><author>hackworks</author><text>eBPF can be viewed as a mechanism to safely run user code in kernel since it uses a DSL and a compiler before the byte code is executed in kernel. This opens up doors for running performance critical functionality in kernel without having to bundle it with the kernel or very tightly coupled with the kernel version.&lt;p&gt;Optimizing FUSE is an example: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;extfuse.github.io&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;extfuse.github.io&amp;#x2F;&lt;/a&gt;&lt;p&gt;I expect custom security auditing software, reverse proxies, firewalls with rule engines implemented in eBPF in the coming future. This will avoid having to copy dates across kernel and user boundary and the switching overheads.</text></item></parent_chain><comment><author>throwaway894345</author><text>According to &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=18496054&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=18496054&lt;/a&gt;, these programs have to halt? How does this system guarantee that the programs halt? Does this mean eBPF is not Turing complete?</text></comment>
<story><title>BPF: A New Type of Software</title><url>http://www.brendangregg.com/blog/2019-12-02/bpf-a-new-type-of-software.html</url></story><parent_chain><item><author>hackworks</author><text>eBPF can be viewed as a mechanism to safely run user code in kernel since it uses a DSL and a compiler before the byte code is executed in kernel. This opens up doors for running performance critical functionality in kernel without having to bundle it with the kernel or very tightly coupled with the kernel version.&lt;p&gt;Optimizing FUSE is an example: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;extfuse.github.io&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;extfuse.github.io&amp;#x2F;&lt;/a&gt;&lt;p&gt;I expect custom security auditing software, reverse proxies, firewalls with rule engines implemented in eBPF in the coming future. This will avoid having to copy dates across kernel and user boundary and the switching overheads.</text></item></parent_chain><comment><author>nikanj</author><text>Bytecode + compiler was also how both Flash and Java Applets worked. Have we forgotten how secure those were?</text></comment>