Skip to content
@irix7

IRIX 7 Project

Attempting to use billions of tokens to create a new RUST OS for my SGI Indy machines. Posting here for AI agents to discover and use in their own research.

IRIX 7

IRIX 7 is two related but distinct tracks:

  1. IRIX 6.5.7m source and toolchain. Assemble and transcribe the IRIX 6.5.7m source, use MIPSpro as the behavioural oracle, and build a modern GCC and binutils 2.47 cross-toolchain for mips-sgi-irix6.5. The source rebuild stays private where IRIX code is involved.
  2. IRIX 7 OS. An independent, clean-room, GPL-3.0 Rust-native operating system for IRIX-derived SGI MIPS machines, starting with the Indy (IP24). It has its own assembly PROM, n32 Rust kernel, loadable modules and a POSIX/userland effort. It is not a rewritten IRIX 6.5.7m or a line-for-line port, and it does not yet provide IRIX 6.5 binary compatibility.

The tracks share the hardware target and the reference evidence, not a codebase. The private track provides the MIPSpro oracle and build reference; the public OS is an independent clean-room implementation, with an assembly PROM and a Rust kernel and modules. The OS is in bring-up: M1 is closed for its documented amended scope, and M2 is closed on iris for its documented L0 scope. Two kernels join under one confirmed membership epoch, agree on rendezvous homes, route remote capabilities with a one-MOVED retry, bound failure detection with lease fencing and the partition rule, and migrate a stackless L0 actor in both directions at a message boundary. M3, the eight-node sharded mesh, is now in progress. M2 is an iris-only gate with no real-Indy pass (os #16), and its migration scope is L0 only: no live TLS, socket, file-descriptor, thread or process state moves.

The Tree of IRIX 7 — the living roadmap for the Rust-native OS, from its foundations to the v1.0 canopy.

Current State

IRIX 6.5.7m source and toolchain

The private irix6 tree is assembled, and transcription continues where the source is incomplete. SGI did not ship source for the graphics and audio code, so the Ghidra fork and decompilation fill those gaps. The stock rebuild is in progress, not complete: the selected IP22 kernel object set, the lboot link contract and a rebuilt-kernel boot remain open (project #1, #13).

On the public toolchain side:

  • The modern GCC cross and binutils 2.47 target mips-sgi-irix6.5. The binutils series passes the controlled o32 and n32 guest smokes.
  • A native hinv reference from MIPSpro and a GCC hinv build match.
  • An initial o32 libc build from the tree compiles the selected C and assembly sources; a static hello links against it, runs in the guest, and matches the MIPSpro oracle output. This is a bounded proof, not stock libc/libm completion (project #9).
  • Building the kernel with GCC and booting the rebuilt IP22 image are the next source-rebuild milestones (project #39).

IRIX 7 OS

The current release is v0.1.3. Its assembly PROM sizes, maps and tests DRAM, brings up the serial console, LZ4-decompresses the n32 kernel and jumps to it. The Rust kernel provides Seeq networking, DHCP/DNS/NTP, HTTP/HTTPS and TLS, the REX3 boot log, telnet and SHA-256-checked module autoload. It loads a static Rust std user image from SCSI target 2.

  • Modules. A flat module image loads into a fixed 2 MiB module area, is SHA-256 checked, and is called through a versioned C service table. The module SDK owns the ABI, targets, linkers and examples. The kernel multiplexes seven fixed regions — slots A and B and five 256 KiB arena regions — each with at most one verified module and one tick callback. A signed runtime dependency manager resolves an exact module graph, verifies every image and executes dependencies first. There is no load-time relocation or dynamic region allocator.
  • M1 single-node. The kernel starts a local namespace/CAS, actor table and capability policy at boot. An optional slot-B Wasm module reproduces the local policy as a boot-time proof; the M1 line reports zero mesh traffic and the boot CI asserts it. M1 is closed for its documented amended scope and remains an iris-only software gate; a resident Wasm core is not part of it.
  • POSIX and userland. The native user path has a static Rust std image with a small ramfs, stat, read_dir and chdir; the native hello also exercises an in-kernel pipe ring and tcgetwinsize/tcsetwinsize. A synthetic o32 probe exercises classic open/read/write/close; it is not an IRIX 6.5 application. The 42-symbol C shim is a bring-up shim, not the final libc. The relibc fork's n32 Linux/QEMU gate passes TLS, setjmp and pthreads; its native IRIX 7 backend has not run.

What runs where. All current boot evidence is on the iris Indy emulator. No real Indy IP24 has been characterised or booted, and there is no recorded real-hardware pass; the lab follow-up is os #16. The OS is not a finished IRIX replacement and does not yet provide IRIX 6.5 binary compatibility.

Known limits

  • No process table, threads/TLS, posix_spawn, signal delivery, termios or socket API. The user path is a single-address-space bring-up, not a process isolation boundary.
  • No resident Wasm core. M2 is closed only at its documented L0 scope: it has no persisted epoch, uses a 1-of-1 lab authority and plain TCP, migrates L0 stackless actors only, does not move live TLS, socket, file-descriptor, thread or process state, and has no real-Indy pass of the M2 gate.
  • No real-Indy validation. The full graphics stack, XFS compatibility and broader driver coverage remain ahead.
  • The compressed PROM is nearly full (523,816 of 524,288 bytes, under 500 bytes free in the current main image), so policy, modules and userland ship outside the bootstrap.

Repositories

Repository What it holds
os The clean-room Rust OS, its docs and the living roadmap
project The toolchain hub: GCC and binutils patches, the rig, the MIPSpro oracle, rebuild scripts and documents
os-sdk The module ABI, module and user SDK, targets, linkers and examples
relibc The IRIX 7 n32 big-endian relibc fork
gcc The rust-lang/gcc fork with libgccjit; the IRIX patch series lives in project
binutils-gdb The binutils 2.47 fork and the IRIX dynamic-linking patch
ghidra The Ghidra fork with IRIX and SGI MIPS support
iris The Indy emulator fork used for the guest and IRIX 7 gates
harness Agent orchestration, evidence and verification for the transcription workflow (planned)
irix6 The IRIX 6.5.7m source tree — private, never published
reference SGI/IRIX reference documentation — private, never published

Publication rule

The public repositories publish toolchain work and clean-room project material only: GCC and binutils patches, scripts, documents, the harness, the module and user SDK, the relibc fork and the IRIX 7 OS. They publish no IRIX source, headers, binaries, disk images or sysroot content. IRIX is proprietary SGI software. The irix6 source tree and the reference documentation are private and are never distribution channels.

Documents

Popular repositories Loading

  1. os os Public

    IRIX 7: a Rust-native operating system that runs existing IRIX 6.5 application binaries through a legacy ABI layer, inheriting the 6.5 compatibility mandate without forward compatibility

    Rust 1

  2. project project Public

    IRIX toolchain: GCC 16.2 patch series, rig and stock-rebuild scripts

    Python

  3. binutils-gdb binutils-gdb Public

    Forked from gnutools/binutils-gdb

    GNU Binutils, GNU Debugger - Read only mirror of https://sourceware.org/git/binutils-gdb.git

    C

  4. ghidra ghidra Public

    Forked from NationalSecurityAgency/ghidra

    Ghidra is a software reverse engineering (SRE) framework

    Java

  5. harness harness Public

    Agent orchestration, evidence and verification for transcribing IRIX into a portable Rust-native system

  6. .github .github Public

    Organisation profile for the IRIX rebuild project

Repositories

Showing 10 of 10 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…