Skip to content

croakexciting/forfun-os

Repository files navigation

Forfun OS

中文

1 Introduction

Forfun OS is a unix-like kernel, written by rust. Now support riscv64 and aarch64 CPU architectures. It is an simple OS just for os learning, only complete basic functions.

kernel architecture

1.1 Design Docs (ongoing)

2 Features and TODOs

2.1 Features

  • Syscall
  • Task schedule (Round Robin)
  • Memory and MMU manager
  • Process manager and IPCs
  • Simple filesystem
  • CPUs (riscv64, aarch64)
  • Boards (qemu virt)
  • Virtio blk driver

2.2 TODOs

  • Board support (k210, rpi4)
  • Thread
  • Network driver and TCP/UDP stack
  • Multi-core
  • Driver Interrupt
  • Linux app adaptation

3 Quick Start

Install the dev environment ref to installation guide

You can also use docker for quick start

make docker_start

make docker_into

Build and run forfun os ref to Build and run

# default run on riscv64 qemu virt
make build

make createfs

make run

# use BOARD arg change target board
make BOARD=aarch64_qemu build

make BOARD=aarch64_qemu createfs

make BOARD=aarch64_qemu run

Run some app on the very simple shell

# run hello_world
>> hello_world
hello world!

# run sleep_test
>> sleep_test

# use crtl-c to stop unterminated app

Contact me

Forfun os is just a toy project and not tested, if you find any bug or have any idea and comment, please create a issue or pull request.

About

A OS toy writen by pure rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published