-
Notifications
You must be signed in to change notification settings - Fork 0
A simple fifo-like linux kernel module, meant as a learning exercise.
License
natebragg/ipcdevice
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The goal of this project is to: Implement a Linux kernel character device driver to pass messages between two processes. The message passing should be bi-directional. Also implement a series of ioctls that can transform the messages as they pass through the kernel: 1) An ioctl to ROT13 encode the message. 2) An ioctl to base64 encode the message. 3) An ioctl to reverse the message. ---- For the sake of disclosure, my references for this project include the following: http://www.freesoftwaremagazine.com/articles/drivers_linux http://www.xml.com/ldd/chapter/book/ch05.html drivers/char/generic_nvram.c, drivers/char/raw.c (and a few others) Documentation/ioctl/ioctl-number.txt http://www.makelinux.net/ldd3/chp-3-sect-4 http://lwn.net/Articles/119652/ ---- Before first use, add a udev rule - something like this: echo "KERNEL==\"ipcdevice\", MODE:=\"666\"" > /etc/udev/rules.d/99-ipcdevice.rules To use: make make demo_p_c make demo_duplex insmod ipcdevice.ko ./demo_p_c -f corpora/lipsum_biggest ./demo_duplex $(cat corpora/lipsum_small) # to test the IOCTLs, use any combination of -13, -r and -64: ./demo_p_c -13 -f corpora/lipsum_small rmmod ipcdevice
About
A simple fifo-like linux kernel module, meant as a learning exercise.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published