Skip to content

Commit f744d1b

Browse files
pkgdemonclaude
andcommitted
Add mach.ko → kernel built-in plan (options COMPAT_MACH), foundation for #180
Compile the out-of-tree Mach module into the NEXTBSD kernel: source migrates nextbsd/src/mach_kmod → nextbsd-kernel sys/compat/mach/, wired by a small sys/conf/{options,files} patch (fork untouched). MIG stubs pre-committed (no kernel-build codegen); syscalls already SYSINIT/kern_syscall_register (no syscalls.master regen). Gated by the boot smoke test. Linked from index. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent e1c3a49 commit f744d1b

2 files changed

Lines changed: 175 additions & 0 deletions

File tree

index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,10 @@ <h2>NextBSD</h2>
358358
<a href="nextbsd-apple-device-matching-plan.html?v=20260603">Eliminating standalone hwregd &mdash; Apple-shaped device matching &amp; autoload <span class="pill pill-warn">Convergence plan</span></a>
359359
<span class="desc">How to retire NextBSD&rsquo;s standalone devctl-socket + timer <code>hwregd</code> daemon and converge toward Apple&rsquo;s shape &mdash; in-kernel matching + match-notifications &amp; <code>busyState</code>/<code>waitQuiet</code> over Mach + a launchd-activated loader (Apple keeps <code>kextd</code>/<code>kernelmanagerd</code>; the win is event-driven, not zero daemons). Umbrella over #67 (settle window), #176 (busyState), and #168 (<code>EVFILT_MACHPORT</code> / fold into configd). Phased roadmap from a 3-agent scope of Apple XNU/IOKit + kext_tools, the NextBSD hwregd/configd/launchd/mach.ko tree, and FreeBSD kqueue internals.</span>
360360
</li>
361+
<li>
362+
<a href="nextbsd-mach-builtin-plan.html?v=20260603">mach.ko &rarr; kernel built-in (<code>options COMPAT_MACH</code>) <span class="pill pill-warn">Scoping</span></a>
363+
<span class="desc">Compile the out-of-tree Mach module <em>into</em> the <code>NEXTBSD</code> kernel instead of loading it as a <code>.ko</code> &mdash; the answer to &ldquo;how do we load <code>mach.ko</code> once <code>loader.conf</code> is gone?&rdquo; and the foundational step of #180 (eliminate <code>loader.conf</code>). Mostly build-system wiring: the MIG server stubs are pre-committed (no codegen in the kernel build) and the syscalls already register via a <code>SYSINIT</code>/<code>kern_syscall_register</code> (no <code>syscalls.master</code> regen). Source migrates <code>nextbsd/src/mach_kmod</code> &rarr; <code>nextbsd-kernel</code> <code>sys/compat/mach/</code>, wired by a small <code>sys/conf/{options,files}</code> patch; the fork is never touched. Gated by the boot smoke test.</span>
364+
</li>
361365
</ul>
362366

363367
<h2>Sample Projects</h2>

0 commit comments

Comments
 (0)