d2f8ecf119 | ||
---|---|---|
artificial_evaluation | ||
build | ||
images | ||
scripts | ||
.gitignore | ||
.gitmodules | ||
LICENSE | ||
README.md | ||
artificial_eval.md | ||
boot-treesls.png | ||
load-treesls.png | ||
qemu.exp | ||
treesls-os.zip |
README.md
TreeSLS: A Whole-system Persistent Microkernel with Tree-structured State Checkpoint on NVM
TreeSLS is a microkernel with transparent whole-system persistent support by quickly checkpointing every state in the system.
Publication
Fangnuo Wu, Mingkai Dong, Gequan Mo, Haibo Chen. TreeSLS: A Whole-system Persistent Microkernel with Tree-structured State Checkpoint on NVM. The 29th ACM Symposium on Operating Systems Principles (SOSP 2023).
Getting Started
First, clone the repo and checkout the ae branch:
> git clone https://ipads.se.sjtu.edu.cn:1312/opensource/treesls.git
> cd treesls
> git checkout ae # or checkout sosp23-ae, which is our artifacts tag
Then, unzip the os code in the top dir:
> unzip treesls-os.zip
- password:
sosp23treesls
- if any file conflict, choose
replace all
Now you can use:
> ./quick-build.sh
or use
> ./chbuild distclean
> ./chbuild defconfig x86_64 # x86_64 can be changed to other platforms, but treesls is now only implemented on x86_64
> ./chbuild build
to build the OS.
Run in QEMU
> ./qemu.exp # with a clean NVM backend
or
> ./build/simulate.sh # with an old NVM backend
Artificial Evaluation
Please refer to artificial_eval.md
File Tree
|- artificial_evaluation scripts for artificial evaluation
|- build
|- treesls.iso built os image
|- simulate.sh qemu simulation script
|- images provided os images with different setups
|- kernel
|- ckpt treesls checkpoint code
|- others other kernel modules
|- sls_config.cmake kernel flags related to treesls
|- scripts building scripts
|- tests some tests
|- user
|- demos ported real-world applications
|- musl-1.1.24 libc for treesls
|- sample-apps some small applications
|- sys-include headers for userspace system servers
|- system-servers userspace system servers
|- config.cmake user applications flags