Skip to content
/ soso Public

A Simple Unix-like operating system

License

Notifications You must be signed in to change notification settings

ozkl/soso

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Sep 21, 2025
e7bacfd · Sep 21, 2025

History

271 Commits
Jul 21, 2025
Jul 13, 2025
Sep 20, 2025
Mar 30, 2018
Sep 20, 2025
Mar 16, 2021
Sep 21, 2025
Sep 6, 2025
Dec 9, 2017
Dec 9, 2017
Nov 27, 2020
Sep 21, 2025
Sep 20, 2025
Sep 20, 2025
Sep 20, 2025
Sep 20, 2025
Jun 21, 2025
Jul 21, 2025
Jun 29, 2025

Repository files navigation

soso

Soso is a simple unix-like operating system written in Nasm assembly and mostly in C. It supports multiboot, so it is started by Grub. It can be built using Nasm and Clang. Tested build environments are Linux, FreeBSD.

As of version 0.4, executables are 32 bit static Linux binaries.

Soso is a 32-bit x86 operating system and its features are

  • Runs simple statically built Linux binaries (from version 0.4)
  • Multitasking with processes and threads
  • Paging
  • Higher half kernel (from version 0.4)
  • Kernelspace (runs in ring0) and userspace (runs in ring3) are separated
  • Virtual File System
  • FAT32 filesystem using FatFs
  • System calls
  • Userspace programs as ELF files (32 bit static Linux ELF executables)
  • mmap support
  • Framebuffer graphics (userspace can access with mmap)
  • Shared memory
  • Serial port
  • PS/2 mouse
  • Unix sockets
  • TTY driver

Soso

running

You can download a CD image (ISO file) from releases and try it in a PC emulator like QEMU. When it is started, you can run: "doom", "lua" in a terminal window.

To try Soso in QEMU, just run:

qemu-system-i386 -cdrom soso.iso

To run doom from a terminal window:

cd /initrd
doom

building

To build kernel just run:

make

this will build only kernel (kernel.bin).

Building userspace

You don't need a special compiler! Just build 32 bit static executables for Linux