Skip to content

croakexciting/forfun-os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

croakexcitingcroakexciting
and
croakexciting
Oct 28, 2024
271a378 · Oct 28, 2024

History

33 Commits
Oct 10, 2024
Jun 19, 2024
Oct 28, 2024
Oct 28, 2024
Oct 28, 2024
Sep 19, 2024
Oct 1, 2024
Sep 27, 2024
Sep 26, 2024
May 30, 2024
Sep 26, 2024
Oct 28, 2024
Oct 10, 2024
Jul 15, 2024

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