luke-rt/txv6
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
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