Skip to main content

Enrolment options

Block & Filesystem Drivers
Embedded Linux Development
Preview Course

Embedded Linux Development

Block & Filesystem Drivers

HRDC Reg. No: 10001657747
Duration: 21 hours (3 days)

Course Overview

This intensive 3-day course provides a comprehensive and hands-on exploration of Linux Block Device and Filesystem Driver Development. Participants will learn how storage systems operate at a low level, from disk structures and partitioning to block I/O handling within the Linux kernel.

The course progresses from implementing a RAM-based block driver to designing and developing a fully functional custom filesystem integrated with the Linux Virtual Filesystem (VFS). By combining theory with real-world implementation, participants gain deep insight into Linux storage architecture and driver development.


Who Should Attend

  • Embedded Software Engineers
  • Linux Kernel Developers
  • Device Driver Developers
  • System Programmers
  • Firmware Engineers

Why Choose This Course

  • HRDC claimable training (HRDC Reg. No: 10001657747)
  • Hands-on block and filesystem driver development
  • Covers modern Linux Block I/O (multi-queue architecture)
  • Build a custom filesystem from scratch
  • Deep understanding of Linux storage internals

Learning Outcomes

By the end of this course, participants will be able to:

  • Understand Linux storage architecture from block devices to filesystems
  • Design and implement custom block device drivers
  • Handle block I/O requests and scheduling mechanisms
  • Work with BIO structures and kernel data flows
  • Design filesystem structures and metadata layouts
  • Validate filesystem designs in user space
  • Integrate custom filesystems with the Linux VFS layer
  • Implement file operations such as read, write, and directory management
  • Debug and extend Linux storage drivers

Prerequisites

Participants should have:

  • Strong C programming knowledge
  • Experience with Linux environment
  • Understanding of basic Linux drivers (character drivers)
  • Knowledge of kernel constructs (mutex, semaphore, interrupts, wait queues)

Lab Setup

Hardware Requirements

  • High-performance laptop (minimum 16GB RAM)
  • 100GB free disk space
  • x86_64 system (Intel/AMD)
  • BIOS virtualization enabled

Software Requirements

  • Ubuntu Linux (20.04 / 22.04 LTS)
  • Linux kernel source code
  • GCC, Make, Binutils
  • Kernel headers
  • Git
  • QEMU (recommended)

Tools

  • gdb, dmesg, strace, objdump
  • Filesystem tools (mkfs, fdisk, losetup)

Environment Setup

  • Root/sudo access
  • Pre-configured VM recommended
  • Backup snapshot before kernel experiments

Teaching Methodology

  • Instructor-led technical sessions
  • Hands-on implementation for every concept
  • Step-by-step driver development
  • Debugging and kernel-level experimentation

  • (0)
  • Guest access