Kernel:Introduction
Introduction
The Kernel: namespace serves as a comprehensive, community-driven repository for detailed technical documentation of the IRIX kernel, derived from reverse engineering efforts on IRIX 6.5 binaries. This initiative focuses on analyzing, decompiling, and annotating kernel object files to produce high-level, functional descriptions of subsystems, data structures, and behaviors. The documentation is intended to preserve and disseminate deep technical knowledge about IRIX's unique kernel architecture, which remains largely undocumented outside of original Silicon Graphics sources.
Objectives
The primary goal is to create accurate, readable documentation of IRIX kernel components based on decompiled and extensively commented binary code. This effort emerged in response to the challenges encountered during the IRIX-32 project, where direct access to original source code proved impractical. By leveraging modern reverse engineering tools and AI-assisted analysis, the project aims to produce standalone technical articles that describe kernel functionality without relying on or distributing proprietary source code.
A key operational objective is to maintain clear separation between active IRIX development communities and the volunteer reverse engineering team. This isolation ensures compliance with legal and ethical boundaries while allowing independent progress on documentation.
Ultimately, these articles provide a reliable reference for understanding IRIX kernel internals, supporting historical preservation, academic study, and potential future reimplementations.
Rationale
IRIX represents a sophisticated UNIX variant optimized for high-performance graphics, scientific computing, and real-time applications on MIPS architecture. Many of its kernel innovations—particularly in virtual memory management, NUMA support, ELF loading, and hardware-specific optimizations—remain poorly documented in public sources. This namespace seeks to fill that gap by systematically documenting subsystems as they existed in IRIX 6.5, the final major release.
The documentation serves as groundwork for skilled developers interested in faithfully reimplementing portions of the IRIX kernel. By providing detailed functional overviews, data structure descriptions, and behavioral analyses derived from binary analysis, it enables clean-room reimplementation efforts without exposure to original source code.
Methods
Documentation is produced through careful reverse engineering of IRIX 6.5 kernel binaries. Primary tools include:
- Ghidra for disassembly, decompilation, and structural analysis
- mips2c and related projects for improving decompiler output readability
- decomp.me for collaborative decompilation matching
All articles are written from decompiled output that has been extensively commented and analyzed by engineers. A strict policy is maintained: no original source code is reproduced or distributed within these pages. Descriptions focus on functional behavior, data flows, and algorithmic logic. Where necessary, function prototypes (names, return types, and parameters) may be included for clarity, but only as derived from binary analysis.
Articles emphasize high-level overviews, key data structures, and IRIX-specific behaviors while highlighting deviations from standard UNIX or SVR4 conventions.
Personnel
- Młynar – Documenting Engineer from Politechnika Wrocławska: primary decompiler and commenter responsible for detailed analysis and annotation of kernel objects
- Yura – Engineer from Shenzhen: supporting documentation and verification. MIPS ASM analysis.
- Raion – Primary documenter and formatter: article structuring, MediaWiki formatting, and coordination
This volunteer effort combines expertise in MIPS architecture, kernel internals, and reverse engineering to produce accurate technical documentation for the broader IRIX preservation community.