mlsanityData to 14 Oct 2026

KEN: Kernel Extensions using Natural Language

arXiv 2312.05531 ↗First posted 9 Dec 2023cs.AI cs.OScited by 0

Not on the map. Why?

Abstract (arXiv)

The ability to modify and extend an operating system is an important feature for improving a system's security, reliability, and performance. The extended Berkeley Packet Filters (eBPF) ecosystem has emerged as the standard mechanism for extending the Linux kernel and has recently been ported to Windows. eBPF programs inject new logic into the kernel that the system will execute before or after existing logic. While the eBPF ecosystem provides a flexible mechanism for kernel extension, it is difficult for developers to write eBPF programs today. An eBPF developer must have deep knowledge of the internals of the operating system to determine where to place logic and cope with programming limitations on the control flow and data accesses of their eBPF program enforced by the eBPF verifier. This paper presents KEN, an alternative framework that alleviates the difficulty of writing an eBPF program by allowing Kernel Extensions to be written in Natural language. KEN uses recent advances in large language models (LLMs) to synthesize an eBPF program given a user's English language prompt. To ensure that LLM's output is semantically equivalent to the user's prompt, KEN employs a combination of LLM-empowered program comprehension, symbolic execution, and a series of feedback loops. KEN's key novelty is the combination of these techniques. In particular, the system uses symbolic execution in a novel structure that allows it to combine the results of program synthesis and program comprehension and build on the recent success that LLMs have shown for each of these tasks individually. To evaluate KEN, we developed a new corpus of natural language prompts for eBPF programs. We show that KEN produces correct eBPF programs on 80% which is an improvement of a factor of 2.67 compared to an LLM-empowered program synthesis baseline.

Key facts. No citing papers in the map yet (data through 14 Oct 2026). Builds on 18 of its 64 references that are in the map. First posted on arXiv 9 Dec 2023.

Builds on

18 of 64 references.

References · 18

  1. 2021Evaluating Large Language Models Trained on Codecited by 8,320
  2. 2021Program Synthesis with Large Language Modelscited by 3,637
  3. 2023Code Llama: Open Foundation Models for Codecited by 2,139
  4. 2022Competition-Level Code Generation with AlphaCodecited by 1,462
  5. 2023Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generationcited by 1,391
  6. 2020CodeBERT: A Pre-Trained Model for Programming and Natural Languagescited by 1,310
  7. 2023Teaching Large Language Models to Self-Debugcited by 988
  8. 2023WizardCoder: Empowering Code Large Language Models with Evol-Instructcited by 733
  9. 2019Generalizing from a Few Examples: A Survey on Few-Shot Learningcited by 463
  10. 2021Unified Pre-training for Program Understanding and Generationcited by 366
  11. 2021Language-Agnostic Representation Learning of Source Code from Structure and Contextcited by 63
  12. 2021CoTexT: Multi-task Learning with Code-Text Transformercited by 61
6 more
  1. 2023A New Era in Software Security: Towards Self-Healing Software via Large Language Models and Formal Verificationcited by 42
  2. 2020Code Summarization with Structure-induced Transformercited by 29
  3. 2022Triangulating Python Performance Issues with Scalenecited by 5
  4. 2021A flow-based IDS using Machine Learning in eBPFcited by 3
  5. 2021Synthesizing Safe and Efficient Kernel Extensions for Packet Processingcited by 1
  6. 2023Programmable System Call Security with eBPFcited by 1

Built on by

Not cited yet.