]> Projects (at) Tadryanom (dot) Me - AdrOS.git/summary
 
descriptionAdrOS - A Unix-like Operating System for hobby/academic study.
last changeThu, 11 Jun 2026 04:13:50 +0000 (01:13 -0300)
homepage URLhttps://adros-project.tadryanom.me/
content tags
shortlog
2026-06-11 Tulio A M Mendesdocs: remove ROOTFS_HANDOFF_PLAN.md master
2026-06-11 Tulio A M Mendesrootfs-handoff: implement rootwait boot parameter
2026-06-11 Tulio A M Mendesrootfs-handoff: implement remount,rw after filesystem...
2026-06-11 Tulio A M Mendesrootfs-handoff: add UUID= and LABEL= support for root...
2026-06-11 Tulio A M Mendesrootfs-handoff: add ext2 filesystem state verification
2026-06-11 Tulio A M Mendesrootfs-handoff: Milestone D - adapt /sbin/init and...
2026-06-11 Tulio A M Mendesrootfs-handoff: Milestone C - integrate pivot_root...
2026-06-11 Tulio A M Mendesrootfs-handoff: Milestone B - add early userspace ...
2026-06-11 Tulio A M Mendesrootfs-handoff: Milestone E - add boot policy parameters
2026-06-11 Tulio A M Mendesrootfs-handoff: Milestone A - redefine root= semantics...
2026-06-11 Tulio A M Mendesdocs: remove URGENT_SECURITY_STATUS_2026-06-09.md
2026-06-11 Tulio A M Mendescsprng: fix undefined behavior in entropy pool initiali...
2026-06-11 Tulio A M Mendesuid: add utmp syscalls and integrate with login
2026-06-11 Tulio A M Mendesuid: add login command with password authentication
2026-06-11 Tulio A M Mendesuid: add /etc/shadow and check_password function
2026-06-11 Tulio A M Mendesuid: add /etc/passwd to initrd for UID infrastructure
...
heads
7 weeks ago master
readme

AdrOS

Overview

AdrOS is a Unix-like, POSIX-compatible, multi-architecture operating system developed for research and academic purposes. The goal is to build a secure, monolithic kernel from scratch, eventually serving as a platform for security testing and exploit development.

Architectures Targeted

Technical Stack

Features

Boot & Architecture

Memory Management

Process & Scheduling

Syscalls (x86, int 0x80 + SYSENTER)

TTY / PTY

Filesystems (8 types)

Networking

Drivers & Hardware

Boot & Kernel Infrastructure

Userland

Dynamic Linking

Threads & Synchronization

Security

Testing

Running

x86 (primary)

make ARCH=x86 iso
make ARCH=x86 run

ARM64 (QEMU virt)

make ARCH=arm
make run-arm

RISC-V 64 (QEMU virt)

make ARCH=riscv
make run-riscv

MIPS32 (QEMU Malta)

make ARCH=mips
make run-mips

QEMU debug helpers: - make ARCH=x86 run QEMU_DEBUG=1 - make ARCH=x86 run QEMU_DEBUG=1 QEMU_INT=1

Status

See POSIX_ROADMAP.md for a detailed checklist.

All 31 planned POSIX tasks are complete, plus 60 additional features (91 total). The kernel has 141 syscalls with 124 tested (87.9% coverage) by the 120 smoke tests. The kernel covers ~98% of the core POSIX interfaces needed for a practical Unix-like system. All 120 smoke tests, 152 battery checks, and 212 host tests pass clean. ARM64, RISC-V 64, and MIPS32 boot on QEMU.

Rump Kernel integration is in progress — prerequisites (condition variables, TSC nanosecond clock, IRQ chaining) are implemented and the rumpuser hypercall scaffold is in place.

Syscall Test Coverage

Metric Value
Syscalls implemented 141
Syscalls tested by fulltest 124 (87.9%)
Syscalls without test 17 (12.1%)
Smoke tests 120
Battery checks 152
Host tests 212

17 untested syscalls: shmctl, set_thread_area (indirect via clone), accept, connect, send, recv, sendto, recvfrom, fdatasync, getaddrinfo, sendmsg, recvmsg, aio_suspend, setsockopt, getsockopt, getpeername, wait4

Remaining POSIX Gaps

For 100% POSIX compliance, the following categories are still missing: - pthreads complete — mutex/cond/rwlock exist in ulibc but need kernel-level thread lifecycle, cancellation, per-thread errno via TLS - TCP loopback — connect()/accept() hang in QEMU; network I/O tests disabled - Filesystem POSIX — mkfifo/mknod, fchmod/fchown/lchown, fchdir, sync/syncfs, statfs/fstatfs, readlinkat/mkdirat/fchmodat - Process/credentials — chroot, getgroups/setgroups, saved setuid, ptrace, nice/getpriority/setpriority - POSIX timers — timer_create/timer_delete/timer_settime/timer_gettime, clock_settime/clock_getres/clock_nanosleep - IPC — shmctl IPC_RMID/IPC_STAT, unnamed semaphores (sem_init/sem_destroy), mq_notify/mq_getattr/mq_setattr - Memory — mremap, msync, mincore - Signals — sigwait/sigwaitinfo/sigtimedwait

Directory Structure