Arphd4 b87222aa38 Fix DRM File! Update Sub-Version 1 month ago
..
arkrt 6e8d86ec38 Fixed UI Issues. Added Keyboard and Mouse Support. Added 4K viewing for text (partial). UEFI Is Broken in this commit using it is not suggested. Fixed Issues and bugs and warnings! Patched Black Screen and RGB Falshing. 1 month ago
boot b87222aa38 Fix DRM File! Update Sub-Version 1 month ago
frameworks b87222aa38 Fix DRM File! Update Sub-Version 1 month ago
kernel 2c40294a47 Boot Phase Done. Added Boot Animation For after kernel initalistion. 1 month ago
prebuilts 6e8d86ec38 Fixed UI Issues. Added Keyboard and Mouse Support. Added 4K viewing for text (partial). UEFI Is Broken in this commit using it is not suggested. Fixed Issues and bugs and warnings! Patched Black Screen and RGB Falshing. 1 month ago
system 6e8d86ec38 Fixed UI Issues. Added Keyboard and Mouse Support. Added 4K viewing for text (partial). UEFI Is Broken in this commit using it is not suggested. Fixed Issues and bugs and warnings! Patched Black Screen and RGB Falshing. 1 month ago
vendor 6e8d86ec38 Fixed UI Issues. Added Keyboard and Mouse Support. Added 4K viewing for text (partial). UEFI Is Broken in this commit using it is not suggested. Fixed Issues and bugs and warnings! Patched Black Screen and RGB Falshing. 1 month ago
.gitignore 9e91a953cf Add All new UI files Updates! Remove Swfit Network Splash! Add new arkrt updates! Add Display Service 1 month ago
CREDITS.md 6e8d86ec38 Fixed UI Issues. Added Keyboard and Mouse Support. Added 4K viewing for text (partial). UEFI Is Broken in this commit using it is not suggested. Fixed Issues and bugs and warnings! Patched Black Screen and RGB Falshing. 1 month ago
LICENSE 0cdcb6d04c LICENSING 1 month ago
Makefile 6e8d86ec38 Fixed UI Issues. Added Keyboard and Mouse Support. Added 4K viewing for text (partial). UEFI Is Broken in this commit using it is not suggested. Fixed Issues and bugs and warnings! Patched Black Screen and RGB Falshing. 1 month ago
README.md 6e8d86ec38 Fixed UI Issues. Added Keyboard and Mouse Support. Added 4K viewing for text (partial). UEFI Is Broken in this commit using it is not suggested. Fixed Issues and bugs and warnings! Patched Black Screen and RGB Falshing. 1 month ago
arkos_architecture_guide.md 6e8d86ec38 Fixed UI Issues. Added Keyboard and Mouse Support. Added 4K viewing for text (partial). UEFI Is Broken in this commit using it is not suggested. Fixed Issues and bugs and warnings! Patched Black Screen and RGB Falshing. 1 month ago
ovmf.log bc0a4ccab0 Fixed Boot Issues and Display issues! 1 month ago

README.md

ArkOS

A Linux-based operating system built from scratch — designed to be easy to use, easy to compile, and open for customization.

See ArkOS: Comprehensive System Architecture for more details

✨ Features

Feature Status
Custom BIOS bootloader (stage1 + stage2)
VESA graphics boot animation (60 FPS expanding dot)
Verified Boot (SHA256 key-signed OS binary)
Native Swift splash screen via Linux framebuffer
Linux kernel 7.0 with custom initramfs
Prebuilt Clang/LLVM toolchain
.ark configuration file format
Modular build system with progress output
Service Manager 🔜
Package Manager 🔜

🏗️ Building

Prerequisites

Tool Purpose
clang (prebuilt, included) C compilation
swiftc Swift compilation
nasm x86 assembly
python3 Boot image packing & signing
qemu-system-x86_64 Testing
mkfs.ext4 Disk image generation
cpio, gzip Initramfs packing

Build & Run

cd arkos/
make build    # Compiles everything, generates disk images
make run      # Launches QEMU with the built images (BIOS Mode)
make run-uefi # Launches QEMU in UEFI Mode
make clean    # Removes all build artifacts

Note: UEFI mode (make run-uefi) currently has a few known errors and trying it out is not recommended.

The build system uses the prebuilt Clang toolchain at prebuilts/clang/ for all C compilation. No system compiler dependency.

Build Output

The build system shows modular progress:

╔══════════════════════════════════════╗
║       ArkOS Build System v2.0        ║
╚══════════════════════════════════════╝

[ 1/14] Cleaning previous build
[ 2/14] Creating staging directories
[ 3/14] Integrating frameworks
[ 4/14] Preparing boot files
...
[14/14] Generating disk images

╔══════════════════════════════════════╗
║          Build complete! ✓            ║
╚══════════════════════════════════════╝

Output Images

All images are generated in finished/:

Image Description
boot.img Bootloader + animation + kernel + initramfs
sys.img System partition (frameworks, libraries)
vend.img Vendor partition (DRM, keys, mirror info)
avb.img Android Verified Boot metadata
vbmeta.img Verified boot metadata
dtbo.img Device tree blob overlay

📁 Project Structure

arkos/
├── boot/                    # Bootloader source & configs
│   ├── source/              # Assembly source (bootloader.asm, stage2.asm) and C source (bootloader.c)
│   │   └── animationframes/ # Pre-generated boot animation frames
│   ├── initramfs.img        # Base initramfs image
│   └── *.ark                # Boot configuration files
├── frameworks/              # OS frameworks (Swift, DRM, SwiftUI)
├── kernel/                  # Linux kernel source + prebuilt bzImage
├── prebuilts/               # Prebuilt toolchains
│   └── clang/               # LLVM/Clang 22 toolchain
├── system/                  # Core system components
│   ├── init.c               # PID 1 init process (Verified Boot)
│   ├── display/             # Display compositor (ui_daemon) and boot animation
│   ├── sha256.c/h           # SHA256 implementation for signing
│   └── fb_helper.c          # Framebuffer ioctl helper
├── vendor/                  # Vendor-specific files
│   ├── verify/              # Verified Boot keys & signing tools
│   ├── mirror/              # Mirror configuration
│   └── Widewine/            # DRM (Widevine) integration
├── arkrt/                   # ArkOS runtime monolithic daemon
├── Makefile                 # Top-level build entry point
└── finished/                # Build output (generated)

🔐 Verified Boot

ArkOS implements a custom Verified Boot chain:

  1. The build system reads the signing key from vendor/verify/securebuild.ark
  2. sign.py computes SHA256(KEY + arkrt_binary)signature.bin
  3. At boot, init.c recomputes the hash and compares against signature.bin
  4. Mismatch → Kernel Panic (system halts with security warning)
  5. Match → Boot continues into the arkrt daemon and UI layer

⚠️ Never commit your real signing key to a public repository. Use vendor/verify/key.py to generate new keys.

📄 License

See LICENSE for details.