Skip to content

luke-rt/txv6

Repository files navigation

txv6: Transactional Extensions for xv6

txv6 is a fork of xv6-riscv with transactional operating-system semantics
inspired by TxOS (SOSP 2009)

UPSTREAM ATTRIBUTION

This repository is derived from xv6-riscv from MIT PDOS:
https://pdos.csail.mit.edu/6.1810/

xv6 remains an educational operating system. This fork keeps the xv6
structure and extends it with transaction support in selected kernel paths.

LICENSE

This project uses the MIT License inherited from xv6, with additional
copyright for fork-specific modifications.
See LICENSE.

WHAT THIS FORK ADDS

- Transaction lifecycle syscalls: txbegin, txcommit, txabort, txstatus.
- Per-process transaction context and transaction status tracking.
- Workset-based update model with shadow data and commit/abort hooks.
- Write-Write conflict detection and resolution with tx_abort_now()
- User-level transactional tests (for example, txtest).
- New setjmp()/longjmp() implementation to support mid-transaction aborts.

BUILDING AND RUNNING

Prerequisites:
- RISC-V toolchain
- qemu-system-riscv64

Run:
- make qemu

From the xv6 shell, run transactional tests such as:
- txtest

About

An extension of the xv6-riscv kernel with transactional semantics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors