ArceOS的整体架构如下所示:
ArceOS 是一个开源的、组件化的Unikernel。以组合组件库的方式构建系统。使用Rust开发。
具有一下特点和功能:
当前ArceOS项目的apps列表如下:
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 |
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 |