u/Rishies2010

ZenOS: SMP Preemptive operating system project
▲ 12 r/osdev

ZenOS: SMP Preemptive operating system project

Screenshot (Taken In-OS)

Screenshot (Taken In-OS)

Boot Screen

It is an operating system I am working on since 2 - 3 years.

It has got quite a lot of features now, and I have just released it's first version today.

Hence decided to post about its existence here.

Links: GitHub

It also has a package repository (Zen can download from the internet, basic HTTP/1.0)

It is a fully-from-scratch OS, with around 100 syscalls (i know thats massive), and most of the beauty is in the userland, it has a Window manager, Harp, and around 30 applications total.

It is Multicore, multithreading, preemptive (RR), supports disk, PS/2, USB, networking, and a lot more.

It has many ports such as BusyBox, Doom, Figlet, Lua, FreeType, etc. It boots up in <1 second. Am currently working on porting ClassiCube (yay)

Runs on mlibc, and follows the "Everything is a file" philosophy a bit. All programs are run from disk, with full disk support and FatFs.

Here's an excerpt from the README :

Kernel

  • - 64-bit x86_64 monolithic kernel
  • - Symmetric Multiprocessing (SMP)
  • - Preemptive round-robin SMP scheduler
  • - ELF64 userspace execution
  • - Dynamic loader
  • - Unix-style process model
  • - High-resolution timing via HPET
  • - ACPI-based hardware discovery and power management

Syscalls

  • 100+ POSIX-compatible / custom syscalls covering major app and C library needs.

Hardware & Drivers

  • - Framebuffer output
  • - PS/2 keyboard and mouse
  • - USB HID keyboard and mouse (xHCI)
  • - PC speaker
  • - Serial port for debugging and logging
  • - Local APIC and IOAPIC interrupt handling
  • - ATA disk driver (DMA/PIO, 28-bit LBA)
  • - PCI bus
  • - Intel e1000 Ethernet driver
  • - RTC, HPET

Networking

  • - TCP/IP stack
  • - DNS resolution
  • - **zen** — a package manager that fetches and installs packages over HTTP
  • - **wget** — downloads files over HTTP/1.0

Filesystem

  • - VFS layer with support for multiple mountpoints
  • - FAT32 via a port of [FatFs](https://elm-chan.org/fsw/ff/) by CHAN
  • - Native host-side disk image tooling (`fat_man`)

Userspace & Libc

Applications

I/O & Display

reddit.com
u/Rishies2010 — 14 hours ago