tachyon:用于系统调用流的RecordReplay

  • o6_116495
    了解作者
  • 21.1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-13 04:40
    上传日期
太子 Tachyon是一种通过将一个进程的系统调用转发到另一个进程来提供记录,重播和串联执行的系统。 这仍然是研究质量代码,并且不稳定。 建造 git子模块指出了Tachyon的非hackage依赖性。 要拉下它们,请运行 git submodule init git submodule update 如果您安装了 ,则应该只需运行nix-build shell.nix即可进行构建。 否则,陷入每一个ptrace和trace ,运行cabal install在每一个,然后运行cabal install在根目录下。 用法 Tachyon软件包提供了两个实用程序: tracer和corediff 。 示踪剂 可以在3种不同的模式下调用tracer :“记录”,“重播”和“串联”。 tracer RecordMode executable logfile 将executable进行的系统
tachyon-master.zip
  • tachyon-master
  • .gitmodules
    149B
  • ptrace
  • trace
  • src
  • SyscallTable.hs
    15.6KB
  • Args.hs
    1.5KB
  • Syscall.hs
    7.7KB
  • TracerLoop.hs
    9.2KB
  • corediff.hs
    1.1KB
  • tracer.hs
    3.1KB
  • TypedSyscalls.hs
    8.5KB
  • ATRandom.hs
    2.1KB
  • Trace.hs
    918B
  • Encoding.hs
    2.6KB
  • Util.hs
    189B
  • tachyon.cabal
    724B
  • default.nix
    401B
  • README.md
    2.2KB
  • shell.nix
    856B
  • tests
  • hello
  • goodbye.c
    99B
  • Makefile
    347B
  • hello.c
    97B
  • .gitignore
    14B
  • .gitignore
    88B
内容介绍
# Tachyon Tachyon is a system for providing record, replay, and tandem execution by forwarding one process's system calls to the other. This is still research quality code and is not extraordinarily stable. ## Building Tachyon's non-hackage dependencies are pointed to by git submodules. To pull them down, run ``` git submodule init git submodule update ``` If you have [Nix](http://nixos.org) installed, you should just be able to run `nix-build shell.nix` to build. Otherwise, descend into each of `ptrace` and `trace`, running `cabal install` in each, then run `cabal install` in the root directory. ## Usage The Tachyon package provides two utilities: `tracer` and `corediff`. ### Tracer `tracer` can be invoked in 3 different modes: Record, Replay, and Tandem. ``` tracer RecordMode executable logfile ``` will record the stream of system calls made by `executable` to `logfile`. Similarly, ``` tracer ReplayMode executable logfile ``` will execute `executable` using `logfile` as its system call stream source. Finally, ``` tracer TandemMode exe1 exe2 ``` will run `exe1` and `exe2` simultaneously, attempting to rewrite the system call from `exe1` into something that `exe2` can use. ### Corediff `corediff` allows you to diff cores generated when running the `tracer` process. This is primarily of interest for debugging in the case that replay is not proceeding as expected. ## Caveats This code is somewhat brittle, you may need to update or add features to get it to work on your particular kernel version/libc version etc. A good start if you notice unexpected deviations is to run `corediff` on cores you expect to be equal, and try to determine if any differences detected are problematic. Threading is implemented by forcing system calls to interleave the same way on subsequent runs. This does not actually induce determinism, though it does come close. If you want to operate on threaded binaries in any kind of stable environment, I suggest you combine Tachyon with some sort of memory determinizer (e.g. [dthreads](http://www.cs.umass.edu/~emery/pubs/dthreads-sosp11.pdf)). If you have a specific problem, feel free to file an issue, and I'll try to look into it. However, this is not my current project, so any support is on a strictly best effort basis.
评论
    相关推荐
    • git软件 
      Git软件 Git-2.18.0-64-bit软件.exe
    • Git
      Git命令 版本库又名仓库( repository )Git Bash 列出隐藏文件 ls -ah 显示文件内容 cat <yourfile> 仓库初始化 cd <your> git init 把文件添加到仓库 git add <yourfile> 把文件提交到仓库 git commit -m ...
    • GitExtensions
      GitExtensions,git,中文
    • 学习Git
      学习Git Ravi常用命令 git log --oneline -n5 Gerrit Confluence页面 > git diff # Compare "working tree" against the last (HEAD) commit on this branch. > git diff --cached # Compare "staged files"/"index...
    • Git
      #LearningGit我的实践Git的本地和远程命令
    • git
      git
    • git码云
      Git-2.7.2-32-bit_setup.1457942412.exe
    • git
      吉特
    • git
      git
    • Git
      吉特