-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a60f053
commit b2fc51d
Showing
3 changed files
with
78 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,51 @@ | ||
[![Build-Linux](https://github.com/frs69wq/file-system-module/actions/workflows/build.yml/badge.svg)](https://github.com/frs69wq/file-system-module/actions/workflows/build.yml) | ||
|
||
|
||
# File System Module for SimGrid | ||
# FSMod: File System Module for SimGrid | ||
|
||
This project implements a simulated file system on top of [SimGrid](https://simgrid.frama.io/simgrid/), to | ||
be used in any SimGrid-based simulator. | ||
|
||
## Prerequisites and installation | ||
## Overview | ||
|
||
TBD | ||
This project implements a simulated file system "module" on top of [SimGrid](https://simgrid.frama.io/simgrid/), to | ||
be used in any SimGrid-based simulator. | ||
It supports the notion of partitions that store directories that store files, with the | ||
expected operations (e.g., create files, move files, unlink files, unlink directories, check for existence), | ||
and the notion of a file descriptor with POSIX-like operations (open, seek, read, write, close). | ||
|
||
The simulated file system implementation in FSMod is not full-featured (e.g., no notion of ownership, no notion of permission). | ||
The biggest limitation is that a directory cannot contain another directory. That is, | ||
a directory `/dev/a/tmp` could contain a file `foo.txt`, and a directory `/dev/a/tmp/other/c` could | ||
contain a file `bar.txt`. But, directory `/dev/a/tmp` does **not** contain directory `other`. | ||
`/dev/a/tmp` and `/dev/a/tmp/other/c` are two completely unrelated directory (there is no directory `/dev/a/tmp/other`). | ||
In other words, each directory simply has a path-like unique name and can only contain files. | ||
The rationale is that the intended use of this module is purely for simulation. As | ||
a result, full-fledged file system functionality is not (or rarely) needed (and would add | ||
overhead to the simulation). We expect that in most cases users will need/use a single directory. | ||
|
||
## Dependencies and installation | ||
|
||
The only required dependency is [SimGrid](https://simgrid.frama.io/simgrid/). An optional dependency | ||
is [Google Test](https://github.com/google/googletest) for compiling the unit tests. | ||
|
||
Here is the typical Ubuntu installation procedure: | ||
|
||
```bash | ||
cd file-system-module | ||
mkdir build | ||
cd build | ||
cmake .. | ||
make -j4 | ||
sudo make install | ||
``` | ||
|
||
after which the FSMod library and header files will be installed in `/usr/local/`. | ||
|
||
## Examples | ||
|
||
TBD | ||
Example SimGrid simulators that use FSMod are provided in the `examples` directory (see `README.md` file therein). | ||
|
||
## API Reference | ||
|
||
TBD | ||
The FSMod API is documented on [Read the docs](http://XXXX). | ||
|
||
|
||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# FSMod Examples | ||
|
||
TBD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters