kernel

by sos-os

sos-os / kernel

The Stupid Operating System

208 Stars 16 Forks Last release: Not found Other 1.2K Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Stupid Operating System

Build Status MIT License Latest RustDoc Gitter

SOS is a simple, tiny toy OS implemented in Rust.

I'm writing this mostly for fun, to learn more about OS design and kernel hacking, so don't expect anything new or exciting out of this project.

Inspiration, and a reasonable amount of code, taken from @phil-opp's great series of blog posts on the subject, Charlie Somerville's rustboot, and Samy Pessé's How to Make an Operating System.

design goals

  • POSIX compliance is not a goal (though it would be cool)
  • Hybrid/loosely microkernel (i.e., move code to user space when convenient/practical)
  • Possibly provide the Rust stdlib at the OS level.
  • JVM-style memory allocation?
  • Possibly experiment with a Plan 9-esque networking stack eventually?

building & running

I've included a simple

Makefile
to automate building and running SOS. This README lists most of the important make targets, but there's also a

$ make help
command, which will print a list of all available targets.

setting up your build environment

In order to build SOS, you'll need to properly configure your build environment. Since this process is fairly complex, I've provided some automatic installation shell scripts to make it a bit more painless.

  • $ make env
    will install and configure build dependencies

If you don't trust the scripts, or if you're curious to know what they're doing, you can also follow the manual install instructions in

BUILDING.md
.

building & running the OS

  • $ make kernel
    compiles & links the kernel binary
  • $ make iso
    makes the kernel and builds a bootable ISO image
  • $ make run
    compiles the kernel, makes the ISO, and boots QEMU from the ISO

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.