Soaplin is a Limine-powered and UNIX-like operating system kernel mainly built for amd64.
Find a file
2025-05-16 15:58:51 +02:00
initramfs kernel: various changes. 2025-05-11 23:54:14 +02:00
kernel kernel: try some shit to get the compiler to put a backtrace 2025-05-16 15:58:51 +02:00
testing kernel - various changes 2025-05-16 08:01:37 +02:00
util try to fix page fault 2025-05-09 15:07:22 +02:00
.gitignore kernel - various changes 2025-05-16 08:01:37 +02:00
CONTRIBUTING.MD kernel: various changes. 2025-05-11 23:54:14 +02:00
GNUmakefile kernel - various changes 2025-05-16 08:01:37 +02:00
initramfs.tar kernel: various changes. 2025-05-11 23:54:14 +02:00
LICENSE kernel: some random modifications 2025-05-07 22:12:35 +02:00
limine.conf kernel - v0.7 beta 2025-05-15 18:49:09 +02:00
README.md kernel: try some shit to get the compiler to put a backtrace 2025-05-16 15:58:51 +02:00

Soaplin

The Soaplin kernel is a new Unix-like operating system kernel.

Features

  • x86_64 support (kinda)
  • Memory management (VMM/PMM/VMA/kmalloc)
  • Simple pre-emptive scheduler
  • Ring 3 (user mode) support
  • ELF loader
  • ACPI
  • Symetric Multiprocessing (It runs code, but the scheduler is running on 1 processor.)

In the works

  • Virtual File System
  • FPU support

To come

  • RTC support
  • EXT2 driver
  • FAT32 driver
  • TAR-based init ram disk
  • Video driver for Bochs graphics adapter, and the VMware display adapter.

Known bugs

  • If a user process calls the syscall handler by using interrupts, the system may crash due to a Page Fault.

Building

To build Soaplin, you must ensure you have these:

  • The Netwide Assembler (nasm)
  • A compiler (both GCC & Clang works!) (In the future, a custom toolchain would be built.)
  • A linker (both GNU LD & LLVM linker works too!)

Clone the repo, and run "make" in it!

Acknowledgements

Thanks to all these people ❤️

  • Limine contributors: The Limine bootloader, used for kicking up Soaplin
  • Kevin Alavik (kevinalavik): VMAs implementation
  • Astrido (asterd-og): IOAPIC/LAPIC (from ZanOS)