<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/linux-7-3-binfmt-misc-to-allow-bpf-programs-to-dynamically-choose-execution-environments-c4kuy2anw" -->

---
title: Linux 7.3 binfmt_misc To Allow BPF Programs To...
description: Linux 7.3 is set to extend binfmt_misc so binary interpreters can be chosen programmatically instead of using a fixed string at registration time, enabling...
canonical: https://daily.dev/posts/linux-7-3-binfmt-misc-to-allow-bpf-programs-to-dynamically-choose-execution-environments-c4kuy2anw
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Linux 7.3 binfmt_misc To Allow BPF Programs To Dynamically Choose Execution Environments | daily.dev
og:description: Linux 7.3 is set to extend binfmt_misc so binary interpreters can be chosen programmatically instead of using a fixed string at registration time, enabling...
og:url: https://daily.dev/posts/linux-7-3-binfmt-misc-to-allow-bpf-programs-to-dynamically-choose-execution-environments-c4kuy2anw
og:image: https://api.daily.dev/og/posts/c4Kuy2ANW.png
og:image:alt: Linux 7.3 binfmt_misc To Allow BPF Programs To Dynamically Choose Execution Environments
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Linux 7.3 binfmt_misc To Allow BPF Programs To Dynamically Choose Execution Environments

**[Phoronix](https://daily.dev/sources/phoronix)** · 3 min read · 0 upvotes · 0 comments

## Summary

Linux 7.3 is set to extend binfmt_misc so binary interpreters can be chosen programmatically instead of using a fixed string at registration time, enabling relocatable binaries where the dynamic loader is found relative to the binary file - useful for NixOS and similar platforms. The overhaul also lets BPF programs attach to binfmt_misc entries to dynamically pick a loader or interpreter per binary, and adds two new dispatch modes: transparent dispatch (interpreter loads the binary via AT_EXECFD while preserving argv and process identity) and loader substitution (binary runs natively but with a swapped interpreter). The changes come via Christian Brauner's VFS pull request ahead of the Linux 7.3 merge window opening, pending review from Linus Torvalds.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.phoronix.com/news/Linux-7.3-binfmt-misc>

## Questions this post answers

### What binfmt_misc changes are coming in Linux 7.3?

Linux 7.3 reworks binfmt_misc so a binary type's interpreter can be computed programmatically per exec instead of being a fixed string set at registration. This lets NixOS and similar platforms implement relocatable binaries whose dynamic loader is found relative to the binary file, and it adds the ability to attach BPF programs to binfmt_misc entries to dynamically choose the loader or interpreter per binary.

_Track kernel changes like this binfmt_misc rework on daily.dev before they land in your distribution._

### What are the two new dispatch modes added to binfmt_misc in Linux 7.3?

The two modes are transparent dispatch and loader substitution. Transparent dispatch lets the interpreter load the binary through AT_EXECFD while leaving the argument vector untouched and labeling mm->exe_file and comm with the binary, raising the AT_FLAGS_TRANSPARENT_INTERP aux vector bit. Loader substitution executes the binary natively but swaps out only the interpreter.

_Developers building custom loaders can follow kernel VFS changes like these on daily.dev._

## Similar posts on daily.dev

- [Linux kernel will support $ORIGIN, sort of](https://daily.dev/posts/linux-kernel-will-support-origin-sort-of-bzag7lotz) · Farid Zakaria’s Blog · 1 upvotes · 0 comments
- [Today I learned: binfmt\_misc](https://daily.dev/posts/today-i-learned-binfmt-misc-6poztaubx) · Hacker News · 0 upvotes · 0 comments
- [Linux 7.3 Adds New "bpf\_sock\_read\_xattr" Feature For systemd, BPF Programs](https://daily.dev/posts/linux-7-3-adds-new-bpf-sock-read-xattr-feature-for-systemd-bpf-programs-p0lubk51i) · Phoronix · 0 upvotes · 0 comments
- [Linux 7.2-rc2 BPF Code Being Hardened Against JIT Spraying Attacks](https://daily.dev/posts/linux-7-2-rc2-bpf-code-being-hardened-against-jit-spraying-attacks-lwswzjcnp) · Phoronix · 0 upvotes · 0 comments
- [eBPF on Hard Mode](https://daily.dev/posts/ebpf-on-hard-mode-xc9nqtwhy) · Lobsters · 0 upvotes · 0 comments

---

Tags: [#linux](https://daily.dev/tags/linux), [#nixos](https://daily.dev/tags/nixos)

[View this post on daily.dev](https://daily.dev/posts/linux-7-3-binfmt-misc-to-allow-bpf-programs-to-dynamically-choose-execution-environments-c4kuy2anw)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Linux 7.3 binfmt_misc To Allow BPF Programs To Dynamically Choose Execution Environments","url":"https://daily.dev/posts/linux-7-3-binfmt-misc-to-allow-bpf-programs-to-dynamically-choose-execution-environments-c4kuy2anw","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/linux-7-3-binfmt-misc-to-allow-bpf-programs-to-dynamically-choose-execution-environments-c4kuy2anw"},"datePublished":"2026-08-16T10:43:05.110Z","dateModified":"2026-08-16T10:43:56.743Z","description":"Linux 7.3 is set to extend binfmt_misc so binary interpreters can be chosen programmatically instead of using a fixed string at registration time, enabling...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e2519218e90e6da92e11a8c325929280?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e2519218e90e6da92e11a8c325929280?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Phoronix","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Phoronix","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/6a26ba379dd64932830aa0c9803dd7ee","url":"https://daily.dev/sources/phoronix"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/linux-7-3-binfmt-misc-to-allow-bpf-programs-to-dynamically-choose-execution-environments-c4kuy2anw","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"linux,nixos","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Phoronix","item":"https://daily.dev/sources/phoronix"},{"@type":"ListItem","position":3,"name":"Linux 7.3 binfmt_misc To Allow BPF Programs To Dynamically Choose Execution Environments"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/linux-7-3-binfmt-misc-to-allow-bpf-programs-to-dynamically-choose-execution-environments-c4kuy2anw#faq","mainEntity":[{"@type":"Question","name":"What binfmt_misc changes are coming in Linux 7.3?","acceptedAnswer":{"@type":"Answer","text":"Linux 7.3 reworks binfmt_misc so a binary type's interpreter can be computed programmatically per exec instead of being a fixed string set at registration. This lets NixOS and similar platforms implement relocatable binaries whose dynamic loader is found relative to the binary file, and it adds the ability to attach BPF programs to binfmt_misc entries to dynamically choose the loader or interpreter per binary. Track kernel changes like this binfmt_misc rework on daily.dev before they land in your distribution."}},{"@type":"Question","name":"What are the two new dispatch modes added to binfmt_misc in Linux 7.3?","acceptedAnswer":{"@type":"Answer","text":"The two modes are transparent dispatch and loader substitution. Transparent dispatch lets the interpreter load the binary through AT_EXECFD while leaving the argument vector untouched and labeling mm->exe_file and comm with the binary, raising the AT_FLAGS_TRANSPARENT_INTERP aux vector bit. Loader substitution executes the binary natively but swaps out only the interpreter. Developers building custom loaders can follow kernel VFS changes like these on daily.dev."}}]}
```

