Arphd4 96be7c1dab Fixed Boot Issues and Display issues! 1 ماه پیش
..
arkrt bc0a4ccab0 Fixed Boot Issues and Display issues! 1 ماه پیش
boot bc0a4ccab0 Fixed Boot Issues and Display issues! 1 ماه پیش
frameworks bc0a4ccab0 Fixed Boot Issues and Display issues! 1 ماه پیش
kernel 2c40294a47 Boot Phase Done. Added Boot Animation For after kernel initalistion. 1 ماه پیش
prebuilts 893a0465c9 Added proper booting method (95%). Rebuilt glibc with new kernel modules. Moved intrid and kernel into boot.img. (Sorry for the precompiled material. It will be removed once cleaning tasks are perfected). 1 ماه پیش
system bc0a4ccab0 Fixed Boot Issues and Display issues! 1 ماه پیش
vendor 2c40294a47 Boot Phase Done. Added Boot Animation For after kernel initalistion. 1 ماه پیش
.gitignore 9e91a953cf Add All new UI files Updates! Remove Swfit Network Splash! Add new arkrt updates! Add Display Service 1 ماه پیش
LICENSE 0cdcb6d04c LICENSING 1 ماه پیش
Makefile bc0a4ccab0 Fixed Boot Issues and Display issues! 1 ماه پیش
README.md bc0a4ccab0 Fixed Boot Issues and Display issues! 1 ماه پیش
arkos_architecture_guide.md bc0a4ccab0 Fixed Boot Issues and Display issues! 1 ماه پیش
ovmf.log bc0a4ccab0 Fixed Boot Issues and Display issues! 1 ماه پیش

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

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.