References
Every line of Mikronix code is auditable. This page lists the sources Mikronix builds on -- what we took from each, and where it landed in the repository.
Operating systems
NetBSD -- primary reference
NetBSD is the main reference for Mikronix's design decisions.
The autoconf model (cfdriver, cfattach, cfdata), the kernel config
(GENERIC -> ioconf.c via tools/config.sh), the tree layout,
and the reference priority chain all follow NetBSD.
- What we took: autoconf model, config(8), tree layout,
sys/ - Where it is:
sys/kern/autoconf.c,tools/config.sh, - Source: NetBSD source tree
structure, resource zones (4.4BSD idea via NetBSD), bootinfo
sys/arch/*/GENERIC
4.4BSD-Lite2
- 4BSD-Lite2 is the second reference, especially for the VFS,
file operations, and the struct cdevsw device table.
- What we took: VFS layer,
struct cdevsw,fopsvtable, - Where it is:
sys/fs/vfs.c,sys/fs/devfs.c, - Source: 4.4BSD-Lite2
MikroFS design
sys/mnx/conf.h
Unix v6
Unix v6 is the third reference, especially for the process model (proc[0] as scheduler, v6-style task spawning) and the init system.
- What we took: process model (proc[0] = scheduler), init
- Where it is:
sys/kern/exec.c,sys/kern/mm.c, - Source: Lions' Commentary on UNIX 6th Edition
system (/etc/rc pattern), mikroshell design
bin/msh.c
OpenBSD
OpenBSD is the fourth reference, especially for coding style (KNF), man page format (mdoc), and the general Unix philosophy.
- What we took: KNF formatting, mdoc man pages, style(9),
- Where it is: All C source files (KNF),
share/man/(mdoc), - Source: OpenBSD source tree
dmesg output format, err(3)/warn(3), getopt(3)
sys/kern/printk.c
The BSD tradition
Every BSD keeps SOURCE/ORIGIN blocks in derived code. Mikronix does the same -- when code traces to a reference, the block names the origin. This is not unique to Mikronix; it is the BSD way.
Hardware references
ESP32-C6 Technical Reference Manual (TRM)
Espressif's official TRM is the primary hardware reference for register definitions, memory map, and peripheral layouts of the ESP32-C6 SoC.
- What we took: GPIO matrix, GPSPI2, I2C peripheral, UART,
- Where it is:
sys/arch/esp32/drivers/,sys/arch/esp32/ - Source: ESP32-C6 TRM
flash mapping, clock tree
SH8601 (QSPI AMOLED Display)
The SH8601 drives the 410x502 16-bit AMOLED panel. Mikronix drives it at the register level, derived from the Waveshare BSP.
- What we took: init sequence, register map, backlight control
- Where it is:
sys/arch/esp32/drivers/display_esp32.c, - Source: Waveshare BSP
sys/arch/esp32/components/
sys/arch/esp32/drivers/sh8601_esp32.c
FT5x06 (Touch Controller)
The FT5x06 I2C capacitive touch controller. Register-level driver.
- What we took: touch protocol, I2C address, register map
- Where it is:
sys/dev/input/ft5x06.c - Source: FocalTech FT5x06 datasheet
AXP2101 (Power Management IC)
The AXP2101 PMIC powers the board. Mikronix reads it at the register level -- battery status, voltage, temperature.
- What we took: register map, ADC channels, fuel gauge,
- Where it is:
sys/dev/power/axp2101.c - Source: X-Power AXP2101 datasheet V1.4
power gating behavior
PCF85063 (Real-Time Clock)
The PCF85063 I2C RTC provides real-time clock and calendar.
- What we took: 7 BCD register layout, normal mode (CTRL1=0x00)
- Where it is:
sys/dev/rtc/pcf85063.c - Source: NXP PCF85063 datasheet
ES8311 (Audio Codec)
The ES8311 handles audio output (ADC + DAC) via I2C control and PDM audio.
- What we took: I2C control register map, PDM configuration
- Where it is:
sys/dev/audio/es8311.c - Source: Everest Semi ES8311 datasheet
ES7210 (Microphone)
The ES7210 is the I2C microphone on the board.
- What we took: I2C address, register map
- Where it is:
sys/dev/audio/es7210.c - Source: Everest Semi ES7210 datasheet
Tools
bb (C99 Static Site Generator)
Mikronix's website is built with bb, a C99 static site generator written by Konrad Lother. Pure C, no dependencies, HTML 4.01 output, no JavaScript.
- What we took: the tool itself (not derived code)
- Where it is: git.hiddenbox.org/lotherk/bb-c
- Source: bb README
llama.cpp
Local LLM inference server. Mikronix agents run on llama.cpp servers (Qwen3.6-35B MoE).
- What we took: the inference engine (not derived code)
- Where it is: Local servers, agent orchestration
- Source: llama.cpp
litellm
LLM proxy and routing. Manages the agent fleet's inference endpoints.
- What we took: the proxy (not derived code)
- Where it is: Local infrastructure
- Source: litellm
Standards
POSIX.1-2017
Mikronix targets POSIX.1-2017 (POSIX.1-2008 + Technical Corrigendum 2). The syscall surface, VFS, /dev model, and task model follow POSIX semantics.
- Where it is documented:
docs/posix-compliance.md - Source: IEEE POSIX.1-2017
C99
All code is C99. No C++ in kernel/drivers/fs. static by default.
No fixed-size buffers, anywhere.
- Where it is documented:
docs/c99-guidelines.md - Source: ISO/IEC 9899:1999
BSD 2-clause license
Every file carries the BSD 2-clause header. The only license condition beyond the BSD text is the provenance attribution: if you fork or redistribute Mikronix, keep the statement with the code.
- Where it is: Every source file header
- Source: BSD 2-clause license
Where to find the proof
- Git log: git.hiddenbox.org/lotherk/mikronix -- every commit carries the responsible agent persona
- Boot logs:
refs/bootlogs/-- real serial output from the board - Journal:
refs/journal/-- controller records what was achieved - Regression tests:
regress/-- the acceptance triad: build, - AI-PROVENANCE.md: in the repo root -- the provenance statement
- sys/mnx/provenance.h: included by every public kernel header
and what had to be corrected
flash, boot log
travels with the code
-- the provenance fact is physically present in every compilation unit