You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project provides a simple and easy to use Linux kernel module implementing a service similar to Windows mailslots, i.e. a driver for special device files accessible according to FIFO policy.
21
+
22
+
Developed for the course of *Advanced Operating Systems and Virtualization* (AOSV) taken in the A.Y. 2016/2017 for the *Master Degree in Engineering in Computer Science* (MSE-CS) at *Sapienza University of Rome*.
23
+
The original project specification can be found [here](https://www.dis.uniroma1.it/~quaglia/DIDATTICA/AOSV/examination.html).
24
+
25
+
## Features
26
+
The module is a Linux driver for special device files supporting the following features:
+**Atomic** message read/write, i.e. any segment read from or written to the file stream is seen as an independent data unit, a message, and it is posted/delivered atomically (all or nothing).
30
+
+ Support to **multiple instances** accessible concurrently by active processes/threads.
31
+
+**Blocking/Non-Blocking** runtime behaviour of I/O sessions (tunable via *open* or *ioctl* commands)
32
+
+ Runtime configuration (via ioctl) of the following parameters:
33
+
+*Maximum message size* (configurable up to an absolute upper limit).
34
+
+*Maximum mailslot storage size* which is dynamically reserved to any individual mailslot.
35
+
+ Compile-time configuration of the following parameters:
36
+
+*Range of device file minor numbers* supported by the driver (default: [0-255]).
37
+
+*Number of mailslot instances* (default: 256).
38
+
39
+
## Building
40
+
41
+
The project provides a Makefile and can be compiled using the `make` command line utility.
42
+
43
+
## Usage
44
+
45
+
Once built, the module can be manually installed using the `insmod mailslot.ko` command (or via the `install.sh` utility shell script, which installs the module and creates also 3 mailslots files in the `/dev/` directory).
46
+
Mailslot files can be created using the `mknod` command (for example usages, please see the `install.sh` script),
47
+
48
+
In order to uninstall the module, the `rmmod mailslot` command must be used, as well as mailslot files can removed using the `rm` command (if the installation script was used, the module can also be uninstalled using the provided `uninstall.sh` shell script, which removes also the 3 mailslots files created during the installation).
49
+
50
+
## License (GPL v2)
51
+
52
+
This program is free software; you can redistribute it and/or modify
53
+
it under the terms of the GNU General Public License as published by
54
+
the Free Software Foundation; either version 2 of the License, or
55
+
(at your option) any later version.
56
+
57
+
This program is distributed in the hope that it will be useful,
58
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
59
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
60
+
GNU General Public License for more details.
61
+
62
+
You should have received a copy of the GNU General Public License along
63
+
with this program; if not, write to the Free Software Foundation, Inc.,
64
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
0 commit comments