Current Development Progress

  1. Main subsystems and components
  2. Hardware drivers
  3. Software drivers
  4. ABI

Main subsystems and components

FeatureStatusDocs
x86-64 SupportMost recent
Memory managementMost recentOutdated
SMPAlmost done
Device managementAlmost doneNeed updates
Device's I/ODoneMost recent
Interrupt handlingAlmost doneNeed updates
Device classes subsystemAlmost doneNeed updates
Virtual file system*In progressTODO
Time subsystemAlmost doneTODO
Scheduler*In progressTODO
Processes and threads*In progressTODO
Userspace*In progressTODO
Linux compatibility*In progressTODO
Windows compatibilityPlannedTODO
Logging subsystemMost recentMost recent

Hardware drivers

DriverStatusDocs
PCI/PCI-EAlmost done
NVMeAlmost done
UART (8250)Done
AHCIPlanned
USB (XHCI)Planned
PS/2 KeyboardDone

Software drivers

DriverStatusDocs
ext2*In progress
tmpfs*In progress
initramfs*In progress
ext4Planned
devfs*In progress
procfsPlanned
sysfsPlanned
NTFSPlanned
FAT32Planned
/dev/tty*In progress
/dev/console*In progress

Progress on ABI

GNU/Linux

SyscallDetails
arch_prctlnot complete
bkr
clock_gettime
fstat
fstatat64
get_robust_list
getcwd
getegidnot complete
geteuidnot complete
getgid
getpid
getppid
getrandomnot really complete, currently uses pseudo-random algorithm to generate numbers
gettidthread id is not implemented yet
getuid
ioctl
mmap
mprotect
open
pread64
preadv
prlimit64
pwrite64
pwritev
read
readv
rseqonly set a pointer, the sequence itself not handled yet
set_robust_listonly set an array pointer, futex is not implemented
set_tid_address
stat
time
uname
write
writev