From 3b18f423110ca9c835eb313e87057bea852127f8 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Sun, 9 Oct 2011 23:30:39 -0700 Subject: [PATCH] Updated the .gitignore file and added a README. --- .gitignore | 2 +- README | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 README diff --git a/.gitignore b/.gitignore index f4dc473..25b1f7e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ *.swp *.o -abusexmp +busexmp diff --git a/README b/README new file mode 100644 index 0000000..c39171e --- /dev/null +++ b/README @@ -0,0 +1,23 @@ +BUSE - A block device in user space + +Adam Cozzette +Fall 2011 + +This piece of code was inspired by FUSE, which allows the development of Linux +file systems that run in user space. The goal of BUSE is to allow virtual block +devices to run in user space as well. + +Currently BUSE is a work in progress and the existing code is hacked together. +Soon I hope to finish implementing everything robustly. + +Implementing a block device with BUSE is fairly straightforward. Simply fill +struct buse_operations (declared in buse.h) with function pointers that define +the behavior of the block device, and set the size field to be the desired size +of the device in bytes. Then call buse_main and pass it a pointer to this +struct. busexmp.c is a simple example example that shows how this is done. + +The implementation of BUSE itself relies on NBD, the Linux network block device, +which allows a remote machine to serve requests for reads and writes to a +virtual block device on the local machine. BUSE sets up an NBD server and client +on the same machine, with the server running executing the code defined by the +BUSE user.