Download

MEECHO OS / AARCH64

Microkernel.
Messages.
Every board.

An operating system for people who want to understand how things work. From the first message to real hardware.

Pre-releaseNew: a ready-to-flash SD card image for the BIGTREETECH CB2 — pre-release, 12 Oct 2026.

Version 0.1.0 / BSD-3-Clause / aarch64

THE MESSAGE IS THE SYSTEM001 — M
Meecho mark: M silhouette and message-passing arrow
MICROKERNEL.
MESSAGES.
EVERY BOARD.

00 / THE SYSTEM, VISIBLE

The message
is the system.

Meecho now has a Wayland desktop, a live X-ray of process messages and Mali-G52 acceleration on CB2. These features work from the source tree and will arrive in the next image.

X-ray view: system processes as labelled boxes, lines between them showing messages per second
01 / CB2 · 1920×1080SOURCE TREE · NEXT IMAGE

X-ray. Every box is a process: the file system, the memory manager, each driver. Every line is the messages between them, counted live by the kernel.

Open original PNG ↗
A terminal window with a passport overlay: pid, memory, messages per second to vfs, pm, vm
02 / CB2 · 1920×1080SOURCE TREE · NEXT IMAGE

Window passport. Click any window to see who it is to the system: its pid, its memory, and whom it talks to.

Open original PNG ↗
MEECHO desktop: panel at the top, a shell on the left, the nnn file manager on the right
03 / CB2 · 1920×1080SOURCE TREE · NEXT IMAGE

The desktop on a CB2 over HDMI: windows as columns on a scrolling strip, a panel with CPU and memory, the nnn file manager.

Open original PNG ↗
Command palette over the desktop: Terminal, Files, System monitor, Screenshot, window widths
04 / QEMU · 1280×720SOURCE TREE · NEXT IMAGE

Super+D opens the command palette: programs, screenshots, window widths.

Open original PNG ↗
System information and the mtop process list: vfs, vm, sdmmc, xhci, usb_kbd, dwmac as ordinary processes
05 / CB2 · 1920×1080SOURCE TREE · NEXT IMAGE

The microkernel in a process list: the disk driver, USB, the keyboard and the network card are ordinary processes. Shown in the earlier desktop palette.

Open original PNG ↗
0.1.0 Current releaseaarch64 Target architectureMINIX 3 FoundationCB2 + QEMU Tested targets

01 / ARCHITECTURE

A system of simple
interactions.

Less hidden complexity.
More room to experiment.

01

Small kernel. Big possibilities.

A microkernel separates the kernel from system servers. Each part has a focused responsibility.

02

It starts with a message.

Message passing connects independent processes into one system. That idea is built into the Meecho mark.

03

A foundation you can explore.

Derived from MINIX 3 and licensed under BSD-3-Clause. A foundation for exploring how an operating system works.

System servers
VFSOS serversProcesses
↕ MESSAGE PASSING ↕
MEECHO MICROKERNELaarch64

02 / PLATFORMS

Real hardware.
Virtual possibilities.

Start with QEMU in a minute, or with a BIGTREETECH CB2 on your desk.

BIGTREETECH CB2 with Rockchip RK3566
BIGTREETECH

CB2 ↗

The first Meecho OS board

✓ AVAILABLE · 0.1.0
Architecture
aarch64
SoC
Rockchip RK3566
Root filesystem
SD card or on-board eMMC

Boots from its own SD card image, or from Armbian's card with the MEECHO kit.

Download for CB2 ↗
VIRTUAL PLATFORM

QEMU ↗

Explore Meecho OS without physical hardware

✓ AVAILABLE · 0.1.0
Architecture
aarch64
Machine
QEMU virt
Root filesystem
Persistent virtio-blk
Download for QEMU ↗

Toward a second board: the SD/MMC driver also supports the Allwinner A64 … H616/H313 controller, tested so far only against QEMU's model of it. Drivers find their hardware in the device tree, so a new board is a list of new files, not a fork.

03 / DOWNLOADS

Meecho OS 0.1.0
is out.

Choose the ready-to-flash CB2 image, the QEMU package, or the 0.1.0 kit for an existing Armbian card.

MEECHO OS for QEMU
VIRTUAL MACHINE / aarch64

Version 0.1.0 · 63 MB

Kernel, boot archive, a persistent 512 MB root filesystem and a launch script. Needs qemu-system-aarch64 and nothing else.

Download for QEMU ↓SHA-256
37caffac6cb3a42573c7732938b4212ba3d44a1870f17bf59f9ca8a81729fe4f
MEECHO OS for CB2
BIGTREETECH CB2 / aarch64

Version 0.1.0 · 4.4 MB + 59 MB

The SD card kit boots Meecho once; the next power cycle returns to the vendor system. The eMMC root image is separate.

Download CB2 kit ↓Download eMMC root image ↗KIT SHA-256
aaa03cf87b3c2bca2a3dc9279900f4b32c8a723fc725fa685ffa6a6e628a6604

ROOT SHA-256
e7172b3f77425ee49f5538bcef1cacafee8af68a91260c05a787e4867d5fdf0c

04 / FIRST BOOT

Boot Meecho.
Pick your path.

Run it virtually in QEMU or boot the CB2 from its own SD card.

QEMU

Download, unpack and run. Log in as root with no password.

Command palette over the desktop: Terminal, Files, System monitor, Screenshot, window widths
Desktop previewFrom the source tree; arriving in the next image. The current QEMU download boots to a text console.

01 / INSTALL QEMU

# Debian / Ubuntu
sudo apt install qemu-system-arm

# macOS
brew install qemu

02 / BOOT MEECHO

tar xf meecho-qemu-0.1.0.tar.gz
cd meecho-qemu-0.1.0
./run.sh
  |\/|       __  __ ___ ___ ___ _  _  ___
==<-->==    |  \/  | __| __/ __| || |/ _ \
            | |\/| | _|| _| (__| __ | (_) |
            |_|  |_|___|___\___|_||_|\___/

MEECHO 0.1.0 (aarch64) -- microkernel. messages.

login:

Try the system

uname -a
ls /bin /sbin /usr/bin /usr/sbin | wc -l
cat /proc/cpuinfo /proc/uptime
ps ; mtop
ifconfig -a ; ping -c 3 10.0.2.2

Beyond the defaults

./run.sh -2          # enter at EL2
./run.sh -3          # use GICv3
./run.sh -2 -3 -s 4 # both, four cores
./run.sh -r          # ramdisk root
SSH=2222 ./run.sh    # forward SSH

Type poweroff to shut down cleanly. If something goes wrong, press Ctrl-A X. Files written to the default disk survive the next boot.

CB2 from an SD card

  1. Write the card (see Downloads) and put it in the CB2's SD slot.
  2. Connect a console. Either a USB-serial adapter on the debug header — uart2, 1500000 baud, 8N1 — or an HDMI monitor and a USB keyboard.
  3. Power on. The board boots from the card; login: appears.
  4. Log in as root, no password.
  5. Optional: ssh. The server is running but the image carries no keys. Add your public key to /etc/ssh/authorized_keys from the console, then ssh root@<board address> (the address comes from DHCP).

Boot switches: create an empty file in meecho/ on the card's FAT partition

FileEffect
root_ramdiskRoot in memory: a rescue boot that does not touch the card's root
root_emmcRoot on the board's eMMC instead of the card
no_hdmiNo screen: boot with the vendor's base device tree
no_smpOne CPU instead of four
verboseThe kernel reports each step of its start-up

The root partition is 1 GB whatever the card's size; there is no resize tool yet.

05 / DOCUMENTATION

Understand it.
Then boot it.

An introduction to the project and the ideas behind it.

01 What is Meecho OS? +

Meecho is a microkernel operating system for aarch64, derived from MINIX 3. Message passing is central to its architecture. BIGTREETECH CB2 is the first supported board, and a QEMU image is published alongside it.

02 How does the system boot? +

The firmware hands over one flat image and a boot archive holding twelve boot images. The kernel unpacks it, starts the system servers, and mounts the root filesystem — a ramdisk during the earliest boot, then virtio-blk under QEMU, or SD card or on-board eMMC on CB2, in Meecho's own journalled format.

03 What do I need to get started? +

For QEMU you need qemu-system-aarch64 and the QEMU image. For hardware you need a CB2, an SD card of 2 GB or more, and either a USB-serial console or an HDMI monitor with a USB keyboard. The ready-to-flash image and the 0.1.0 Armbian card kit are available above with checksums.

04 Do I lose Armbian? +

Not if you use a second card: the image lives entirely on the SD card and does not write to the eMMC. Take the card out and the board boots whatever it booted before.

05 Build it yourself +

Clone the aarch64 branch and follow BUILDING.md. A complete build takes about two hours on a fast machine.

06 License and attribution +

The project uses BSD-3-Clause and preserves the MINIX 3 copyright attribution. Download the copyright notice.

06 / WHAT WORKS TODAY

Tested in software.
Proven on a board.

The screen, USB keyboard and SD image were confirmed by a person on a physical BIGTREETECH CB2 on 13 October 2026.

FeatureQEMU virtCB2 board
Boots to a login prompt, shell respondsWorksWorks
Four cores, work spread across themWorks · 1.78× for four jobsWorks — four jobs on four cores take the time of one (12.9 s vs 12.2 s)
Whole system on one SD cardWorks (image booted as a disk)Works
Root filesystem survives power-offWorks · virtio-blkWorks · SD card or on-board eMMC
SD card slot — 4-bit, 50 MHz high speed—Works
eMMC — DMA and interrupts, about 15 MB/s read—Works
USB — xHCI, hubs, flash drives (about 16 MB/s)—Works
USB keyboard—Works
HDMI text console—Works · up to 1080p, mode from the monitor
USB mouseWorksWorks
Graphical desktop — Wayland, terminal, panel, palette, screenshotsWorks · in the source tree, next imageWorks · in the source tree, next image
X-ray: live map of processes and their messagesWorks · in the source tree, next imageWorks · in the source tree, next image
GPU — Mali-G52, OpenGL ES 3.1 through Mesa Panfrost—Works · in the source tree, next image
HTTPS with certificate checks — OpenSSL 3.5WorksWorks
Binary packages — pkg_add with signaturesWorksWorks
Dynamic linker (ld.elf_so, dlopen)WorksNot tested yet
Watchdogs — SoC hardware watchdog and kernel lock watchdogLock watchdog onlyWorks
Journal replay and fsck after corruptionWorksWorks
276 programs and 210 manual pagesWorksWorks
Network: ping and TCP to a real serverWorks · virtio-netWorks · GMAC + Motorcomm PHY
DHCP, name resolution and SSHWorksWorks
Real-time clockWorks · PL031No RTC on this board
Reboot and power-off through PSCIWorksWorks

CURRENT LIMITS

Honest edges.

  • A signal handler sees the interrupted code's floating-point state.
  • No audio.
  • The desktop and the GPU are in the source tree but not yet in a published image. The SD image of 12 October boots to a text console.
  • Programs are statically linked. The dynamic linker works, but the system is not built with it yet.
  • The SD image's root is 1 GB whatever the card's size; there is no resize tool yet.
  • Ethernet has been tested at 100 Mbit/s only; the gigabit path has not been exercised.
  • The bootloader is not built by the project: the SD image carries BIGTREETECH's Armbian U-Boot unmodified.

REAL CB2 BOOT OUTPUT

Each subsystem reports for itself.

MEECHO: loading from mmc 1:1
MEECHO: booting, archive 11505664 bytes
Starting kernel ...

MEECHO/aarch64: 4 cores, memory 0000000000200000-0000000080000000
eMMC "PJ3032": 61079552 sectors, 8-bit bus at 50000000 Hz, high speed
phy at 0: id 0x4f51e91b (Motorcomm YT8531)
link up: 100 Mbit/s, full duplex
Started VFS: 9 worker thread(s)
Root device name is c0d0
/dev/c0d0: clean

MEECHO/evbarm64 0.1.0 (console)

login:

07 / COMMUNITY

An OS starts with a kernel.
A project starts with people.

Source, documentation and a 9,400-line porting log are open.