Skip to content

JNode — A Java Operating System

Build Status Java 8 License

JNode is an experimental operating system written in Java. It builds its own JVM, kernel, drivers, filesystems, network stack, and GUI, and boots them on bare metal with only a few hundred lines of assembly at the very bottom. It's a platform for exploring OS design, JVM implementation, and system-level Java.


Developed with AI Agents

This is a fork of the classic JNode project, maintained as a living experiment in agent-driven development. GitHub Actions and OpenCode agents triage issues, implement fixes, review pull requests, update the wiki, and boot every build in QEMU before it lands. Batching is coordinated through an orchestrator workflow, with agentic skills for QEMU boot testing, JDWP debugging, and filesystem diagnosis.


Topic Description
:material-rocket-launch: Quick Start Build and boot your first JNode ISO
:material-hammer-wrench: Building Detailed build instructions for x86 and x86_64
:material-cpu-64-bit: Run in QEMU Test JNode in QEMU with serial logging
:material-virtualbox: Run in VirtualBox JDWP debugging support via VirtualBox

Architecture Overview

JNode consists of several major components:

graph TD
    A[Boot Loader] --> B[Kernel]
    B --> C[VmImpl / JVM]
    C --> D[Plugin System]
    D --> E[Core Services]
    E --> F[Drivers]
    E --> G[Filesystems]
    E --> H[Network Stack]
    E --> I[Shell]
    E --> J[GUI / AWT]

See Architecture Overview for details.


Subsystems

Subsystem Description Wiki Reference
Filesystems Ext2/3, FAT, ISO9660, NFS2, exFAT, HFS+, NTFS Filesystem-Layer
Network Stack IPv4, TCP, UDP, DNS, NetAPI Network-Stack
Shell Commands, syntax, aliases, plugins Shell-Commands
GUI/AWT Video drivers, input, AWT peers, Thinlet GUI-AWT
Drivers PCI, USB, IDE, SCSI, Ethernet, video, input Driver-Framework

See Subsystems for details.


Development

  • Build & Test — Ant-based build, JUnit, regression tests
  • Testing — JUnit, regression, boot testing

Reference

See Reference for details.


External Documentation

Full Wiki

The JNode Wiki contains 100+ detailed technical pages covering every subsystem, class, and design decision. This site provides a curated entry point; the wiki is the exhaustive reference.


Community


JNode is licensed under the GNU Lesser General Public License v2.1. See LGPL v2.1 for details.