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.
- Syscall
- Task schedule
- Memory manager
- Process manager and IPC
- Filesystem
- Arch integration
- Board integration
- User process development
- Syscall
- Task schedule (Round Robin)
- Memory and MMU manager
- Process manager and IPCs
- Simple filesystem
- CPUs (riscv64, aarch64)
- Boards (qemu virt)
- Virtio blk driver
- Board support (k210, rpi4)
- Thread
- Network driver and TCP/UDP stack
- Multi-core
- Driver Interrupt
- Linux app adaptation
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
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.