Linux kernel and filesystem engineering

Concurrent character-device access and filesystem-internals work at the kernel boundary.

Origin
Academic engineering project
Areas
Linux & Systems

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.

Tell us what you want to build.

A product, a website, a search problem or a system that should work better. We reply with a plain answer and the first step.

Email
[email protected]
Phone
+30 698 179 8240

A few sentences are enough (at least 20 characters).

We use your details only to answer your inquiry. See our privacy policy.