Skip to content

sysheap/sentientos

Repository files navigation

SentientOS

ci
This projects makes my dream come true - write my own operating system. I'm doing this mostly for fun, so don't expect a fully-fledged operating system on basis of the RISC-V architecture. Exactly like SerenityOS this project doesn't use third-party runtime dependencies. If third-party dependencies are used, then only for the Build.

I started doing some coding videos on Youtube. Go and check it out if you want sysheap channel

Status

Implemented

  • Page allocator
  • Heap allocator
  • Interrupt handling (PLIC -> UART interrupts)
  • Testing harness
  • Executing in supervisor mode
  • Userspace processes
  • Scheduler
  • Systemcalls
  • Networkstack (udp)
  • SMP

TODO

  • VirtIO / Filesystem
  • TCP
  • Async Runtime in Kernel
  • GUI
  • See todo

How do I run it?

To run the operating system you need to have the following tools installed:

  • Rust
  • just
  • nextest
  • qemu-system-riscv64
  • binutils-riscv64-linux-gnu

To install them on Ubuntu you can execute the following commands

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo apt install qemu-system-riscv64 binutils-riscv64-linux-gnu
cargo install just cargo-nextest --locked

To run the operating system execute

just run

What can I do?

Type help into the shell to get some information. If you type the name of a program it get's executed. If you add an ampersand at the end of the command it get's executed in the background. See src/userspace/src/bin for programs which can be executed.

Justfile

The justfile contains useful commands which I often use. To run them you first need to install just (just a command runner). cargo install just. To get a list of all commands execute just -l.

About

SentientOS

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages