What it is
Kernel work from CSE 330 Operating Systems, projects 2 and 5.
What I built
- Loadable Linux kernel modules written in C.
- A custom system call added to a recompiled kernel, plus a userspace driver program to exercise it.
- A block device abstraction with an
ioctlinterface and kernel-side buffer management.
How it works
A loadable module is inserted into the running kernel without a reboot. A new system call goes the
other way: it needs the kernel rebuilt so the call is in the syscall table, and then a userspace
program can invoke it by number. The block device project exposes its controls through ioctl, so
userspace sends commands to the device and the kernel side manages the buffers.