TinyOS is a minimal freestanding i686 kernel written in C++ and booted by GRUB via the Multiboot specification. The project is organized into small modules so it stays easy to extend and can later be ported to other architectures.
TinyOS is authored by UNITRONIX (Krzysztof Nienartowicz). TinyOS source code and documentation are licensed under the GNU General Public License version 3 (GPL-3.0-or-later). See LICENSE, NOTICE and docs/licensing.md.
TinyOS is developed as an AI-assisted operating system project. AI assistance is used for planning, documentation, implementation slices, code review and test planning, while the repository keeps the project grounded in explicit source files, roadmaps and reproducible build/test commands.
AI assistance is not a runtime dependency. The current TinyOS kernel does not include an AI subsystem; the AI-assisted part describes the development workflow used to grow the system gradually and safely.
- The current reference target is
i686on QEMU PC hardware, booted as aGRUBMultiboot ISO. - The documented minimum runtime envelope is still 32 MiB RAM; lower-memory runs are experimental probes before any baseline change. The desktop-capable ISO has reached
2561Kon QEMU/GRUB. The physical terminal-only build profile currently reaches2529K, while2528Kand64Kdo not reach TinyOS serial output. - TinyOS is terminal-first today, with VGA text output, PS/2 keyboard input,
sysinfo,status/syscheckdiagnostics, risk listing, active profile checks, path inspection,filemgr,textedit,fileuiand RAMFS metadata. ATERMINAL_ONLY=1build profile can omit the desktop, window manager, cursor and PS/2 mouse paths from the linked kernel. - The GUI path is planned incrementally through renderer, terminal, widget and event scaffolds before a richer desktop becomes the default.
- Security work is treated as a high-priority track: trusted package metadata, image/provisioning contracts, integrity diagnostics and password-hashing policy are documented before broader runtime privileges are enabled.
- Project provisioning is host-first for now, with signed/encrypted artifacts, isolated project workspaces, device variants and remote access kept behind explicit opt-in policy.
- Installed-system support is currently a ready contract plus a RAMFS mock:
examples/install.profile,install-plan,check-install-profile,/system/install.txt,/system/profile.txt,installinfo,installcheck,install,profileinfo,profilecheckand/receipts/install.receiptexist, while real disk installation is planned after persistent storage and filesystem contracts mature. - Future portability targets include
x86_64andaarch64, but they should only be promoted after repeatable boot, storage and smoke tests exist for each target.
GRUBbootable kernel- text mode
VGAoutput - polling-based
PS/2keyboard input - tiny text shell
- shell diagnostics and TinyOS-native RAMFS tools such as
sysinfo,status,syscheck,riskinfo,profileinfo,profilecheck,helpsearch,pathcheck,filemgr,textedit,fileui,files,fsmap,show,describe,writeandedit - terminal file workflow:
filemgrprovides a two-pane RAMFS manager with view, edit, create, delete, copy and move actions;texteditprovides an interactive RAMFS editor with load, replace, append, clear, save, reload and file-info actions;fileuiremains as a lighter single-pane browser - static TinyOS device registry with
devicesdiagnostics - RAM-backed block device scaffold with
blockinfodiagnostics - read-only block VFS mount under
/volumeswithstorageinfodiagnostics - framebuffer/text-grid surface scaffold with
fbinfodiagnostics - renderer scaffold with
renderinfo,rendertestandrenderfilltestdiagnostics - terminal UI scaffold with
terminalinfo,terminaltest,terminalclearandterminalpaneltestdiagnostics - TUI widget scaffold with
widgetinfo,widgettest,widgetdispatchandwidgetactiontestdiagnostics - UI event queue scaffold with
uieventinfo,uieventpump,uieventpeekanduieventtestdiagnostics - language/runtime manifest with
runtimeinfodiagnostics for native and planned sandboxed app targets - application capability profile manifest with
appinfodiagnostics for future native, GUI, web-style and self-hosted apps - application launch policy dry-checks with
launchinfoandlaunchcheck .tappapplication package registry, trust store and install-gate checks withtappinfo,tapps,tapp,tappcheck,tappverify,trustinfoandtrust- system management tool manifest with
tools,toolinfoandtool <command>diagnostics - secure image/provisioning manifest with
imageinfo,provisioninfoanddeployinfodiagnostics - installed-system contract with
installinfo,installcheck, RAMFSinstallmock, active RAMFS profile checks and host install-profile validation - project provisioning workbench plan for isolated workspaces, device variants, resource budgets and remote access
- host
.tappsigning helpers:keygen-app,trust-app,sign-appandverify-app - documented minimum runtime target:
i686, Multiboot ISO, VGA text mode, PS/2 keyboard and 32 MiB RAM, with experimental terminal-only probes down to2529K - simple system API layer
Makefilebuild andQEMUrun targets- editable from
Visual Studio Communityas aMakefileproject
make isoBuild the experimental terminal-only ISO without the desktop/window-manager/mouse objects:
make terminal-only-isomake runThe default boot path starts the TinyOS terminal. The framebuffer desktop remains an optional preview through make run-framebuffer-preview.
docs/os-roadmap.md- staged plan for growing TinyOS into a real OS.docs/implementation-roadmap.md- current implementation milestones.docs/security-roadmap.md- security and hardening priorities.docs/installed-system-pattern.md- target install flow and installed-system documentation pattern.docs/provisioning-workbench.md- project provisioning workflow and tool plan.docs/system-requirements.md- minimum and recommended runtime/build requirements.docs/plan-dojrzalosci-systemu.md- plan wdrożenia dojrzałości (funkcjonalność, bezpieczeństwo, użyteczność).docs/licensing.md- GPL-3.0 policy and third-party boundary notes.
TinyOS project source is licensed under GPL-3.0-or-later. Project ownership and author metadata are recorded in NOTICE. The current ISO build uses GRUB as an external bootloader through grub-mkrescue/grub2-mkrescue; GRUB is also GPL-licensed and compatible with TinyOS distribution.
scripts/tinyos-dev.sh install-deps --install
scripts/tinyos-dev.sh check
scripts/tinyos-dev.sh testOr directly with Make:
make prepare-test-env
make test-boot
make test-minimalThe boot smoke test runs QEMU headlessly and writes serial output to build/boot-smoke.log.
If the build toolchain is not installed yet but build/tinyos.iso already exists, use make test-existing-iso.
For a longer runtime check, use make test-stability.
For experimental low-memory measurements, use make test-lowmem-probe for the default ISO or make test-terminal-lowmem-probe for the physical terminal-only profile.
The included TinyOS.vcxproj is a Makefile project for editing in Visual Studio Community. Use MSYS2 and set the MSYS2_BASH environment variable if the helper script scripts/build.ps1 cannot find bash.exe automatically from the IDE.