e408942bc0 | ||
---|---|---|
artificial_evaluation | ||
docs | ||
kernel | ||
scripts | ||
tests | ||
user | ||
.clang-format | ||
.clang-tidy | ||
.gdbinit | ||
.gitignore | ||
CMakeLists.txt | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
artificial_eval.md | ||
chbuild | ||
config.cmake | ||
quick-build.sh |
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
To build the OS, you can use:
./quick-build.sh
or use
./chbuild defconfig x86_64 # x86_64 can be changed to other platforms, but treesls is now only implemented on x86_64
./chbuild build
Run in QEMU
./qemu.exp # with a clean NVM backend
or
./build/simulate.sh # with the old NVM backend
Docker
By default, we provide a pre-built Docker image, you can simply use the build command and it will be automatically downloaded.
If you want to build this image from scratch, you can use the following command to build from the provided dockerfile.
docker build -t <image_name> .
To use the newly built container, you can modify the Docker image name in the chbuild
file (specifically, line 218 in the _docker_run()
function) to the image you have built.
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
TreeSLS's Implementation
Please refer to TreeSLS.md
LICENSE
LICENSE of ported applications are given in subdirs.