Go to file
lidj d2f8ecf119 update some scripts 2023-08-31 20:02:24 +08:00
artificial_evaluation update some scripts 2023-08-31 20:02:24 +08:00
build init artificial evaluation 2023-08-07 21:09:23 +08:00
images ae: provide treesls-os.zip and update relative 2023-08-08 20:38:24 +08:00
scripts init artificial evaluation 2023-08-07 21:09:23 +08:00
.gitignore ae: update LICENSE, pulication and ae doc 2023-08-09 16:38:16 +08:00
.gitmodules ae: provide treesls-os.zip and update relative 2023-08-08 20:38:24 +08:00
LICENSE ae: update LICENSE, pulication and ae doc 2023-08-09 16:38:16 +08:00
README.md add passwd 2023-08-31 19:57:23 +08:00
artificial_eval.md ae: update LICENSE, pulication and ae doc 2023-08-09 16:38:16 +08:00
boot-treesls.png init artificial evaluation 2023-08-07 21:09:23 +08:00
load-treesls.png init artificial evaluation 2023-08-07 21:09:23 +08:00
qemu.exp ae: provide treesls-os.zip and update relative 2023-08-08 20:38:24 +08:00
treesls-os.zip ae: update LICENSE, pulication and ae doc 2023-08-09 16:38:16 +08:00

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