- Notifications
You must be signed in to change notification settings - Fork1
Windows mailslots for the Linux kernel
License
rikyoz/LinuxMailslotsModule
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Features •Building •Usage •License
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.
Developed for the course ofAdvanced Operating Systems and Virtualization (AOSV) taken in the A.Y. 2016/2017 for theMaster Degree in Engineering in Computer Science (MSE-CS) atSapienza University of Rome.The original project specification can be foundhere.
The module is a Linux driver for special device files supporting the following features:
- FIFO (FirstInFirstOut) access policy semantic (viaopen/close/read/write services).
- 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).
- Support tomultiple instances accessible concurrently by active processes/threads.
- Blocking/Non-Blocking runtime behaviour of I/O sessions (tunable viaopen orioctl commands)
- Runtime configuration (via ioctl) of the following parameters:
- Maximum message size (configurable up to an absolute upper limit).
- Maximum mailslot storage size which is dynamically reserved to any individual mailslot.
- Compile-time configuration of the following parameters:
- Range of device file minor numbers supported by the driver (default: [0-255]).
- Number of mailslot instances (default: 256).
The project provides a Makefile and can be compiled using themake
command line utility.
Once built, the module can be manually installed using theinsmod mailslot.ko
command (or via theinstall.sh
utility shell script, which installs the module and creates also 3 mailslots files in the/dev/
directory).Mailslot files can be created using themknod
command (for example usages, please see theinstall.sh
script),
In order to uninstall the module, thermmod mailslot
command must be used, as well as mailslot files can be removed using therm
command (if the installation script was used, the module can also be uninstalled using the provideduninstall.sh
shell script, which removes also the 3 mailslots files created during the installation).
This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public License alongwith this program; if not, write to the Free Software Foundation, Inc.,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Copyright © 2017 - 2018 Riccardo Ostani (@rikyoz)
About
Windows mailslots for the Linux kernel