Giter VIP home page Giter VIP logo

vamos's Introduction

VAMOS

VAMOS is a framework containing libraries and a set of tools for monitoring heterogeneous asynchronous events sources. Events are efficiently transferred via concurrent buffers in the shared memory.

The current developement version can be found in the branch dev. Code in the main branch may be highly outdated. If you cannot find something that you think should be here, write to <mchqwerty (at) gmail (dot) com>.

Build:

You can use the setup.sh script for a fast set-up

# git clone ...
cd vamos
python -m venv venv/
source venv/bin/activate

./setup.sh

For a more detailed build with more control over things, you can build everything manually:

# git clone ...
cd vamos
python -m venv venv/
source venv/bin/activate

make [OPTIONS]

OPTIONS may include:

  • BUILD_TYPE=[Debug|Release|RelWithDebInfo] the type of build to pass to cmake
  • LLVM_SOURCES=OFF to turn off building event sources based on instrumentation of LLVM
  • DYNAMORIO_SOURCES=OFF to turn off building event sources based on DynamoRIO
  • DynamoRIO_DIR=<path/to/dynamorio/cmake> to use a particular DynamoRIO build
  • TESSLA_SUPPORT=[ON|OFF] enable support for TeSSLa monitors

The used OPTIONS are stored into Makefile.config and re-used in future make runs. If you want to change the options, either delete the file or change values in there and run make reconfigure && make or make reset && make (warning: the latter will completely clean repositories, including all files that are not under git).

Using

Run source venv/bin/activate from the top-level directory and then run the desired script from one of the sub-repositories. The sub-repositories have their own READMEs.

Components

  • vamos-buffers implementation of shared memory buffers used to transfer events
  • vamos-common common parts shared by multiple VAMOS repositories (mostly python packages)
  • vamos-sources implementation of tracing various standard events in programs (event sources) and a specification language for that
  • vamos-compiler a compiler of the legacy VAMOS specifications
  • vamos-monitors manually written monitors, mostly for debugging and testing purposes
  • vamos-mpt a compiler for multi-trace prefix transducers

vamos's People

Contributors

fabianmuehlboeck avatar mchalupa avatar

Stargazers

 avatar  avatar

Watchers

 avatar

vamos's Issues

Split off vamos-streams from vamos-buffers

vamos-buffers should contain just buffers. We should probably also split off some helper implementation (shamon), probably into vamos-monitors as that is the place where it is used (turn it into a library).

[codegen] copy events in batches when possible

If we only forward events without modification, we can copy multiple events at once to reduce the number of memory operations. We can do that even with filtering if there are multiple consequent events that are not filtered out.

Remove different types of streams

All the streams we have right now are "generic", so remove the types alltogether. But keep in mind that in the future we want other implementations of streams like through pipes and sockets (not only SHM streams).

Do it only after #6 .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.