BTRON

Молоді студентські роки

Розкажу трохи про себе. Вчився я на Turbo Pascal і Assembler в 1988. Проміняв міжнародні олімпіади IOI, на яку їздили двоє моїх однокласників на Red Hat Linux 1.0 в 1998. Був кернел хакером NewOS Тревіса в часи бутстрепінга Haiku OS Акселем в 1999. З 2000 до 2005 вибирав на якій мові програмування будувати свою компанію, вибір зосередився на Erlang. Завоював в пізніші часи популярність завдяки веб-фреймвоку N2O, моїй імплементаціїх Nitrogen від Расті Клопхауза. В 2016 досліджували unicore unikernels разом з LING (xen) тоді ж поступив в аспірантуру по HoTT. В 2026 вирішив повернутися до систем віртуалізації під час написання звіту до судової системи по HashiCorp HCL, Kubernetes/Podman, Proxmox VE, HV (virtio) і Unikernels. і побудував демонстраційний стенд для презентації VirtIO 1.4 і масштабування в цьому уніфікованому середовищі не тільки промислових образів, які ми використовуємо в державі на Alpine і NetBSD але і MVP для вбудованих операційних систем, щоб забезпечити кластеризацію, стейджинг і інфраструктуру для виробництва дронів на троьох системах реального часу: NuttX (Грегорі Нута), LK (Тревіса Гейсельбрегта) і TRON (Кена Сакамури). Аби не афішувати цю діяльність будемо презентувати це як RETRO OS comparison, тільки ретро специфікації отримують сучасні віртуалізовані версії.

Віртуалізовані архітектури

Перед тим як будувати пайплайн для RTOS потрібно визначитися з платформами і система віртуалізаціями. Існує принципово 3 системи віртуалізації: xen, virtio і vmware. Із-за великих цінн на xen і vmware системи віртуалізації всі користувачі поступово інвестують в GPL ліцензований Proxmox VE (virtio), кожна ОС зараз (навіть вбудовані) підтримують VirtIO тому це база яку неможливо ігнорувати. Другий фундамент це чітке розділення на 3 класи ОС: 1) 8/16-біт (Nano), 2) 16/32-біт (MCU), 3) 32/64-bit (DC); тут найкраще зараз підходять AArch32 і AArch64, тут ми зосереджуємося на них.

Багато версії ядер

Оскільки BTRON3 3.20 -- це специфікація, грати на цьому ринку дуже просто: ви або підтримуєте її або ні. Тому пайплайн повинен зразу містити можливості для підміни TRON-сумісних ядер під різні потреби: так ми маємо POSIX шоб тестувати локально, QEMU для стабілізації VirtIO драйверів, а також оригінальне ядро ITRON Кена Сакамури портоване на Raspberry Pi 2/3 Йокобаяші. Також я хотів би презентувати своє урізане TRON ядро разом з TAD-браузером яке є ще більш мінімалістичною версією ніж стандарт 3.20.

Формалізація і гіпервізія

Важливо розуміти, що побувати RTOS з гарантованими властивостями (теоремам) -- це не просто вкрасти пару бібліотек на гітхабі, підправити інтерфейси спряження і обкласти тестами, --- ви повинні побудувати модель як минімум в System Fw або краще в MLTT і довести що код ізоморфний моделі (а краще щоб це був автоматичний екстракт). Саме за такою схемою верифікувався код гіпервізор seL4 (який гарантує властивості, тобто виконання теорем, на однопроцесорних ядрах). Якщо вам який інженер пропонує RTOS в 2026 без доведених властивостей які можна перевірити в Agda, Coq, Lean або в інших MLTT тайпчекерах -- гоніть в шию цьго дебіла. Ми доводимо все у власних тайпчекерах тому шо ми особисто послали нахуй всіх розробників Agda, Lean і Coq.

Комерціалізація

Для демонтрації всього стенда одразу я підготував детальний звіт з розробленими документамт:

А також сайт hv.synrc.com:

  • Applications
  • Products
  • Downloads
  • Planes ▾
      □ Security
      □ Control
      □ Web
      □ Compute
      □ Service
  • Languages ▾
      □ BEAM Elixir/Erlang
      □ CLR F#/C#
      □ JVM Scala/Java
  • Systems ▾
      □ Alpine
      □ NetBSD
      □ FreeBSD
      □ BTRON
      □ NuttX
      □ LK
  • Hypervision

B-TRON OS for SYNRC VE OS.1

A cleanroom recreation of the **B-TRON** (Business TRON / TRON OS Architecture for personal computers) specification and retro desktop environment. Designed using standard C99, rendering through SDL2, and organized into a authentic Japanese BTRON tree structure.

Specification

Raspberry Pi 2/3 T-Kernel 2.0 `Yokobayashi`

$ make tkernel
$ make run-tkernel
Yokobayashi T-Kernel

QEMU VirtIO T-Kernel 2.0 `Sakamura`

$ make sakamura
$ ./btron-sakamura.elf
Sakamura T-Kernel

QEMU VirtIO `Izumina`

$ make qemu
$ make run-qemu
QEMU VirtIO Synrc
MOZC TIP IME

POSIX `Takada`

$ make posix
$ make run-posix
POSIX Light

Source Tree

btron/
├── Makefile                    # Plain BSD/BeOS/TRON style Makefile
├── README.md                   # Cleanroom architecture & BTRON spec documentation
├── include/                    # Authentic Japanese BTRON Header Tree
│   └── btron/
│       ├── btron.h             # Master include header
│       ├── types.h             # Fundamental TRON types (W, H, B, UW, ID, ER, etc.)
│       ├── error.h             # TRON error codes (E_OK, E_SYS, E_NOMEM, E_PAR, etc.)
│       ├── itron.h             # μITRON Real-Time Kernel Primitives
│       ├── dp.h                # Display Primitives (Graphics engine)
│       ├── wnd.h               # Sakamura Window Manager APIs
│       ├── event.h             # BTRON System Event Queue
│       ├── vobj.h              # Real Body / Virtual Body Hyper-Data Model Engine
│       ├── troncode.h          # TRON Multilingual Character Code & Font Engine
│       └── desktop.h           # Desktop Shell & Panel Manager APIs
├── src/                        # Core Subsystems Implementation
│   ├── kernel/                 # μITRON Task & Synchronization Subsystem
│   ├── graphics/               # Display Primitives (DP) Vector & Raster Graphics
│   ├── window/                 # Sakamura BTRON Window Manager & Event Dispatcher
│   ├── vobject/                # Real Body / Virtual Body Hyper-Data Engine
│   ├── font/                   # TRON Character Code & Pixel Font Renderer
│   └── desktop/                # Cho-Kanji / BTRON Desktop Compositor & Main Launcher
└── apps/                       # Authentic BTRON Accessories
    ├── vobj_manager.c          # Real Body Cabinet & Virtual Body Explorer Window
    ├── t_editor.c              # TRON Text Editor (T-Editor) Window
    └── gterm.c                 # BTRON Terminal Shell (gterm) Window

Features

1. True Japanese BTRON API Header Hierarchy: - Includes `btron/btron.h`, `btron/types.h`, `btron/itron.h`, `btron/dp.h`, `btron/vobj.h`, `btron/wnd.h`, `btron/event.h`, and `btron/troncode.h`. - Native TRON type definitions: W, H, B, UW, UH, UB, VW, ID, ER, RECT, PNT, PAT, COLOR. - Real-time kernel primitives: cre_tsk, sta_tsk, slp_tsk, wup_tsk, cre_sem, wai_sem, sig_sem.

2. Real Body / Virtual Body Hyper-Data Model Engine (vobj): - Implements Sakamura's legendary hyper-data object engine where documents contain live embedded pointers (Virtual Bodies) to Real Bodies stored in disk cabinets.

3. Sakamura Cho-Kanji Retro Desktop & Window Manager: - Classic Sakamura teal desktop workspace with top status panel, clock, desktop cabinet launcher, and window z-ordering. - Double-bordered retro window frames with titlebars, close buttons, window dragging, and focus.

4. BTRON Accessories: - gterm: BTRON Terminal Console window. - t_editor: TRON Text Editor with virtual object icon embedding. - vobj_manager: Real Body Cabinet & Virtual Body Link Explorer.

Building & Running

In the spirit of NetBSD, BeOS, and TRON, compilation requires only a plain BSD Makefile:

$ make
$ ./btron

Clean Build

$ make clean