ArceOS 框架设计

ArceOS的整体架构如下所示:

图片

ArceOS 是一个开源的、组件化的Unikernel。以组合组件库的方式构建系统。使用Rust开发。

具有一下特点和功能:

ArceOS 由apps、crates、modules组成

当前ArceOS项目的apps列表如下:

Applications (Rust)

App Extra modules Enabled features Description
helloworld A minimal app that just prints a string
exception paging Exception handling test
memtest axalloc alloc, paging Dynamic memory allocation test
display axalloc, axdisplay alloc, paging, display Graphic/GUI test
yield axalloc, axtask alloc, paging, multitask, sched_fifo Multi-threaded yielding test
parallel axalloc, axtask alloc, paging, multitask, sched_fifo, irq Parallel computing test (to test synchronization & mutex)
sleep axalloc, axtask alloc, paging, multitask, sched_fifo, irq Thread sleeping test
priority axalloc, axtask alloc, paging, multitask, sched_cfs Thread priority test
shell axalloc, axdriver, axfs alloc, paging, fs A simple shell that responds to filesystem operations
httpclient axalloc, axdriver, axnet alloc, paging, net A simple client that sends an HTTP request and then prints the response
echoserver axalloc, axdriver, axnet, axtask alloc, paging, net, multitask A multi-threaded TCP server that reverses messages sent by the client
httpserver axalloc, axdriver, axnet, axtask alloc, paging, net, multitask A multi-threaded HTTP server that serves a static web page
udpserver axalloc, axdriver, axnet alloc, paging, net A simple echo server using UDP protocol

Applications (C)

App Extra modules Enabled features Description
helloworld A minimal C app that just prints a string
memtest axalloc alloc, paging Dynamic memory allocation test in C
sqlite3 axalloc, axdriver, axfs alloc, paging, fp_simd, fs Porting of SQLite3