Kernel-level sensor access and EXT2-lite work covering character devices, synchronisation, blocking readers and filesystem internals.
The problem
Kernel code has to coordinate shared state and blocking I/O safely across concurrent user processes, while respecting the user/kernel boundary.
What was built
A Linux character-device driver for a sensor, using kernel file operations and synchronisation primitives, along with EXT2-lite filesystem work focused on on-disk structures.
Technical approach
- Expose sensor measurements through /dev character devices
- Implement open, read and release behaviour
- Coordinate shared buffers with semaphores, spinlocks and wait queues
- Put readers to sleep and wake them when a measurement is available
- Explore EXT2 inode, block and directory structures
Engineering decisions
- Use blocking readers instead of wasteful polling.
- Match the synchronisation primitives to the kernel context and the shared-state boundary.
- Format sensor data at the kernel/user-space interface.
- Keep the filesystem claims narrow until the final operations have been inspected.
How it was checked
- The repository supports character-device file operations and concurrent access.
- Semaphores, spinlocks and wait queues are part of the verified work.
- EXT2-lite exists as a filesystem implementation and work area.
What it shows
Low-level C and Linux reasoning: concurrency, blocking I/O, shared-state synchronisation and filesystem fundamentals.
About the source
Academic engineering project. EXT2 behaviour is described cautiously until the final implementation has been inspected.