11# RuxOS
22
3- [ ![ CI] ( https://github.com/syswonder/ruxos/actions/workflows/build.yml/badge.svg?branch=main )] ( https://github.com/syswonder/ruxos/actions/workflows/build.yml )
4- [ ![ CI] ( https://github.com/syswonder/ruxos/actions/workflows/test.yml/badge.svg?branch=main )] ( https://github.com/syswonder/ruxos/actions/workflows/test.yml )
5-
6- An experimental modular operating system (or unikernel) written in Rust.
3+ <p align =" center " >
4+ <img src="doc/figures/ruxos-logo0.svg" alt="RuxOS-logo" width="500"><br>
5+ A unikernel operating system written in Rust.<br/>
6+ <a href="https://github.com/syswonder/ruxos/actions/workflows/build.yml"><img src="https://github.com/syswonder/ruxos/actions/workflows/build.yml/badge.svg?branch=main" alt="Build CI" style="max-width: 100%;"></a>
7+ <a href="https://github.com/syswonder/ruxos/actions/workflows/test.yml"><img src="https://github.com/syswonder/ruxos/actions/workflows/test.yml/badge.svg?branch=main" alt="Test CI" style="max-width: 100%;"></a>
8+ <br/>
9+ </p >
710
811RuxOS was inspired by [ Unikraft] ( https://github.com/unikraft/unikraft ) and [ ArceOS] ( https://github.com/rcore-os/arceos )
912
@@ -34,16 +37,16 @@ Example applications can be found in the [apps/](apps/) directory. All applicati
3437* [ ruxconfig] ( modules/ruxconfig/ ) : Platform constants and kernel parameters, such as physical memory base, kernel load addresses, stack size, etc.
3538* [ axlog] ( modules/axlog/ ) : Multi-level formatted logging.
3639
37- The currently supported applications (Rust) , as well as their dependent modules and features, are shown in the following table:
40+ The currently supported applications and programming languages , as well as their dependent modules and features, are shown in the following table:
3841
39- ### Rust
42+ ### Rust applications
4043
4144| App | Extra modules | Enabled features | Description |
4245| -| -| -| -|
4346| [ display] ( apps/display/ ) | axalloc, ruxdisplay | alloc, paging, display | Graphic/GUI test |
4447| [ shell] ( apps/fs/shell/ ) | axalloc, ruxdriver, ruxfs | alloc, paging, fs | A simple shell that responds to filesystem operations |
4548
46- ### C
49+ ### C applications
4750
4851| App | Enabled features | Description |
4952| -| -| -|
@@ -60,13 +63,24 @@ The currently supported applications (Rust), as well as their dependent modules
6063| [ pipe] ( apps/c/pthread/pipe/ ) | alloc, paging, multitask, pipe | A test for pipe API |
6164| [ sleep] ( apps/c/pthread/sleep/ ) | alloc, paging, multitask, irq | Thread sleeping test |
6265| [ tsd] ( apps/c/pthread/tsd/ ) | alloc, paging, multitask, irq | A test for pthread-key related API |
66+ | [ dl] ( apps/c/dl/ ) | paging, alloc, irq, musl, multitask, fs, pipe, poll, rtc, signal, virtio-9p | An example for dynamically loading apps |
6367| [ libc-bench] ( apps/c/libc-bench/ ) | alloc, multitask, fs, musl | A standard libc test for musl libc integration |
64- | [ iperf] ( apps/c/iperf/ ) | alloc, paging, net, fs, blkfs, select, fp_simd | A network performance test tool |
65- | [ redis] ( apps/c/redis/ ) | alloc, paging, fp_simd, irq, multitask, fs, blkfs, net, pipe, epoll, poll, virtio-9p, rtc | A Redis server on Ruxos |
6668| [ sqlite3] ( apps/c/sqlite3/ ) | alloc, paging, fs, fp_simd, blkfs | A simple test for Sqlite3 API |
69+ | [ iperf] ( https://github.com/syswonder/rux-iperf ) | alloc, paging, net, fs, blkfs, select, fp_simd | A network performance test tool |
70+ | [ redis] ( https://github.com/syswonder/rux-redis ) | alloc, paging, fp_simd, irq, multitask, fs, blkfs, net, pipe, epoll, poll, virtio-9p, rtc | Redis server on Ruxos |
6771| [ cpp] ( apps/c/cpp/ ) | alloc, paging, irq, multitask, fs, random-hw | C++ benchmark |
68- | [ dl] ( apps/c/dl/ ) | paging, alloc, irq, musl, multitask, fs, pipe, poll, rtc, signal, virtio-9p | An example for dynamically loading apps |
72+ | [ nginx] ( https://github.com/syswonder/rux-nginx ) | alloc, paging, fp_simd, irq, multitask, fs, blkfs, net, pipe, epoll, poll, select, rtc, signal | Run Nginx as web server |
73+ | [ wamr] ( https://github.com/syswonder/rux-wamr ) | alloc, paging, fp_simd, irq, multitask, fs, virtio-9p, signal, smp | Wasm runtime |
6974
75+ ### Programming languages
76+
77+ | Language | Description |
78+ | - | - |
79+ | C | Run C apps by RuxOS ruxlibc or standard musl libc supported by ruxmusl. Evaluated by libc-bench. |
80+ | C++ | Run C++ apps by c++ static library provided by musl libc. Passed c++ benchmark. Evaluated by c++ benchmark. |
81+ | [ Perl] ( https://github.com/syswonder/rux-perl ) | Run Perl standard library by musl libc. Evaluated by Perl benchmark. |
82+ | [ Python] ( https://github.com/syswonder/rux-python3 ) | Run Python apps by dynamically loading Python modules. Evaluated by Python benchmark. |
83+ | Rust | Run Rust standard library by modifying Rust std source. Evaluated by Rust tests. |
7084
7185## Build & Run
7286
@@ -197,6 +211,10 @@ make PLATFORM=aarch64-raspi4 A=apps/fs/shell FEATURES=driver-bcm2835-sdhci
197211make PLATFORM=x86_64-pc-oslab A=apps/c/redis FEATURES=driver-ixgbe,driver-ramdisk SMP=4
198212```
199213
214+ ## RuxGo
215+
216+ A convient tool to run RuxOS applications by concise command. See [ RuxGo-Book] ( https://ruxgo.syswonder.org/ ) for more information.
217+
200218## Design
201219
202220![ ] ( doc/figures/ruxos.svg )
0 commit comments