aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorOmar Rizwan <omar.rizwan@gmail.com>2020-10-23 22:47:59 -0700
committerOmar Rizwan <omar.rizwan@gmail.com>2020-10-23 22:50:59 -0700
commit2426e9f7a5aa7989573151270fa090b4c93ad53c (patch)
tree9edbcb72a01f717f864890001c702f87cbea269a /README.md
parent281e0a3d8cbc4ef5e2f2a32d6e347888d36c5209 (diff)
Tweak README and Makefile for new deps, Linux support.
Diffstat (limited to 'README.md')
-rw-r--r--README.md38
1 files changed, 13 insertions, 25 deletions
diff --git a/README.md b/README.md
index 77d99b1..1a90a2f 100644
--- a/README.md
+++ b/README.md
@@ -5,31 +5,25 @@
You need to both install the Chrome extension and run the native
filesystem.
-### Install the Chrome extension
-
-Go to the [Chrome extensions page](chrome://extensions).
-
-Enable Developer mode. Load-unpacked the `extension/` folder in this repo.
-
### Run the C filesystem
-First, make sure you `git submodule update --init` to get the `mmx`
-and `cJSON` dependencies. And make sure you have FUSE.
+First, make sure you `git submodule update --init` to get the
+`fs/cJSON` and `fs/base64` dependencies.
+
+And make sure you have FUSE. On Linux, for example, `sudo apt install
+libfuse-dev`. On macOS, get FUSE for macOS.
```
$ cd fs
$ mkdir mnt
-$ make [unmount] mount
+$ make
```
-### Connect the browser extension to the filesystem
+### Install the Chrome extension
-Once the filesystem is running and awaiting a WebSocket connection,
-you need to tell the browser extension to connect to it.
+Go to the [Chrome extensions page](chrome://extensions).
-Click the 'T' icon the extension put in your browser toolbar. The icon
-badge should change from red to blue, and the filesystem program
-should print that it's connected in the terminal.
+Enable Developer mode. Load-unpacked the `extension/` folder in this repo.
Now your browser tabs should be mounted in `fs/mnt`!
@@ -37,9 +31,7 @@ Now your browser tabs should be mounted in `fs/mnt`!
- `extension/`: Browser extension, written in JS
- `fs/`: Native FUSE filesystem, written in C
- - `tabfs.c`: Main thread. Talks to FUSE, implements fs operations.
- - `ws.c`: Side thread. Runs WebSocket server. Talks to browser.
- - `common.c`: Communications interface between tabfs and ws.
+ - `tabfs.c`: Talks to FUSE, implements fs operations, talks to browser.
When you, say, `cat` a file in the tab filesystem:
@@ -51,18 +43,14 @@ When you, say, `cat` a file in the tab filesystem:
userspace filesystem in `fs/tabfs.c`,
4. then `tabfs_read` rephrases the request as a JSON string and
- forwards it using `common_send_tabfs_to_ws` to `fs/ws.c`,
-
-5. and `fs/ws.c` forwards it to our browser extension over WebSocket
- connection;
+ forwards it to the browser extension over 'native messaging',
6. our browser extension in `extension/background.js` handles the
incoming message and calls the browser APIs to construct the data
for that synthetic file;
-7. then the data gets sent back in a JSON message to `ws.c` and then
- back to `tabfs.c` and finally back to FUSE and the kernel and
- `cat`.
+7. then the data gets sent back in a JSON native message to `tabfs.c`
+ and and finally back to FUSE and the kernel and `cat`.
(very little actual work happened here, tbh. it's all just
marshalling)