My project is a group‑built USB keyboard Linux device driver written in C, with separate kernel‑space and user‑space components. We implemented a custom character driver under kernel/ that exposes the keyboard data to user space, and a user program under user/ that interacts with the device, plus shell scripts (start.sh, close.sh) to compile, insert/remove the module, and launch the app with the correct privileges. The whole project is designed as a hands‑on exercise in low‑level Linux development, covering kernel modules, device files, and safe communication between kernel and user space.