All Projects → uw-unsat → yggdrasil

uw-unsat / yggdrasil

Licence: other
No description or website provided.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to yggdrasil

go-mtree
File systems verification utility and library, in likeness of mtree(8)
Stars: ✭ 55 (+111.54%)
Mutual labels:  filesystem, verification
emojifs
emojifs is a FUSE filesystem that allows you to manipulate custom emojis on your various Slacks and Discords
Stars: ✭ 30 (+15.38%)
Mutual labels:  filesystem
core-v-verif
Functional verification project for the CORE-V family of RISC-V cores.
Stars: ✭ 283 (+988.46%)
Mutual labels:  verification
flysystem-curlftp
Flysystem Adapter for the FTP with cURL implementation
Stars: ✭ 36 (+38.46%)
Mutual labels:  filesystem
diskover-community
Diskover Community Edition - Open source file indexer, file search engine and data management and analytics powered by Elasticsearch
Stars: ✭ 1,257 (+4734.62%)
Mutual labels:  filesystem
flutter file utils
Flutter package for managing files on Android
Stars: ✭ 35 (+34.62%)
Mutual labels:  filesystem
cloudstore
简易分布式云存储服务
Stars: ✭ 22 (-15.38%)
Mutual labels:  filesystem
nestjs-storage
Nestjs file system / file storage module wrapping flydrive
Stars: ✭ 92 (+253.85%)
Mutual labels:  filesystem
xv6-file-system-visualizer
Online Visualizer for xv6 File System Image
Stars: ✭ 33 (+26.92%)
Mutual labels:  filesystem
Django-WebApp
This is a web-app created using Python, Django. By using this user can login, upload files and also can view and download files uploaded by other users.
Stars: ✭ 285 (+996.15%)
Mutual labels:  filesystem
pyFileManager
This script lets you automatically relocate files based on their extensions. Very useful from the downloads folder !
Stars: ✭ 22 (-15.38%)
Mutual labels:  filesystem
verify-apple-id-token
Verify the Apple id token on the server side.
Stars: ✭ 49 (+88.46%)
Mutual labels:  verification
passport-activedirectory
Active Directory strategy for passport.js
Stars: ✭ 28 (+7.69%)
Mutual labels:  verification
laravel-otp-login
Adds a customizable, translatable, configurable OTP verification step to Laravel Auth. You can add your own SMS provider too.
Stars: ✭ 16 (-38.46%)
Mutual labels:  verification
gtree
Output tree🌳 or Make directories📁 from #Markdown or Programmatically. Provide CLI, Golang library and Web (using #Wasm ).
Stars: ✭ 88 (+238.46%)
Mutual labels:  filesystem
GitFS
A FUSE filesystem that stores data on Git
Stars: ✭ 26 (+0%)
Mutual labels:  filesystem
DocumentReader-iOS
iOS Framework for reading and validation of identification documents
Stars: ✭ 54 (+107.69%)
Mutual labels:  verification
dropbox-fs
📦 Node FS wrapper for Dropbox
Stars: ✭ 35 (+34.62%)
Mutual labels:  filesystem
neural-network-lyapunov
Synthesizing neural-network Lyapunov functions (and controllers) as stability certificate.
Stars: ✭ 82 (+215.38%)
Mutual labels:  verification
OpenGnsys
OpenGnsys (pronounced Open Genesis) is a free and open source project that provides tools for managing and deploying different operating systems.
Stars: ✭ 15 (-42.31%)
Mutual labels:  filesystem
See recent updates and contact information at:

	http://locore.cs.washington.edu/yggdrasil/

# How to run the Yxv6 file system

We have tested it using the following setup:

- Cython 0.25.2
- Python 2
- Z3 4.4.2 (git commit e3f0aff318b5873cfe858191b8e73ed716405b59)
- Linux (with FUSE)

Install these packages before proceeding.  Other platforms or
versions may not work.

To compile:

	$ make all prod

To mount:

	$ python2 yav_xv6_main.py -o max_read=4096 -o max_write=4096 -s a -- /dev/sXX

To run verification:

	$ make verify

If your system doesn't have `cython2`, you may want to change it
to `cython` in the makefile (similarly for `python2`).

# What are the guarantees of a verified file system in Yggdrasil like Yxv6

The proof is that a file system implementation is a crash refinement
of its specification.  See the OSDI'16 paper for details.

Note that this does not mean that a verified file system in Yggdrasil
has zero bugs.  There can be bugs in the specification (or things
not modeled by the specification, like error code), the verification
toolchain, and the unverified part (e.g., the glue code to FUSE,
FUSE itself, and the Linux kernel).

# What's new in this version of Yxv6

This implementation of Yxv6 is a clean-up version.  It mostly follows
the design described in the OSDI'16 paper, with a few differences:

- the log size is doubled;
- the garbage collector (for orphan inodes) is more complete;
- ported to a new version of Cython;
- moved more code out of the unverified FUSE layer into the verified part.

You may notice changes in runtime performance and verification time
depending on your platform and tools (e.g., Z3).

# What file system features are missing from Yxv6

Yxv6 is a research prototype.  The implementation has the following
limitations:

- based on FUSE in user space than in the kernel
- Python runtime required (even after compiled by Cython)
- mtime only, no ctime/atime
- file size is limited
- verification time may vary depending on the Z3 version
- no ACL support
- no fallocate support
- no hardlinks

We don't think they are necessarily fundamental limitations of the
toolkit---feel free to send us pull requests if you add some of
these features.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].