advanced Estimated learning time: 12 h

EC-20.4 Embedded Linux, Device Drivers and the Board Support Layer

You can explain what changes when an embedded system moves from a microcontroller to a processor running Linux, read a device tree entry, and describe how a driver connects a kernel interface to a piece of hardware.

Before:EC-11. Data Communications and Computer NetworksEC-16. Ethics, Safety, Sustainability and Standards

There is a size of system above which writing everything yourself stops being sensible, and below which an operating system with virtual memory is absurd. This topic is about the larger side of that line: what the bootloader, kernel and root filesystem each do, where the timing guarantees go when you cross it, and what a driver actually is once the mystique is removed.

Work through these

  • The line between a microcontroller and an applications processor

    Memory management hardware, external memory and a storage device are what make a general-purpose operating system possible, and their absence is what makes a microcontroller predictable. Knowing which side of that line a part sits on decides most of the software structure.

    NPTEL: Embedded System Design with ARM (IIT Kharagpur) · Course
  • Bootloader, kernel, root filesystem: what boots what, and in what order

    A board that will not start is almost always failing at one identifiable stage, and being able to name the stages turns a dead board into a question with an answer. Each stage also has its own way of telling you what it is doing.

  • The device tree: describing hardware the kernel cannot discover

    A processor cannot enumerate the parts wired to its pins the way a computer enumerates a plug-in card, so the wiring is written down in a separate description the kernel reads at boot. Most bring-up work on a new board is edits to that description.

    NPTEL: Embedded System Design with ARM (IIT Kharagpur) · Course
  • What a driver is: one kernel interface, one piece of hardware, and the mapping between

    A driver exposes a standard interface upward and talks to registers downward, and almost all of its complexity is in the middle. Reading one small existing driver end to end teaches more than any description of the model.

  • User space against kernel space, and why most work belongs above the line

    Code in the kernel can crash the whole system and is far harder to debug, so the standard advice is to do as little there as the hardware allows. Several interfaces exist specifically to let ordinary programs reach hardware safely.

    NPTEL: Design for Internet of Things (IISc Bangalore) · Course
  • What happens to your timing guarantees, and what a real-time kernel restores

    A general-purpose kernel will occasionally take milliseconds to get back to your code, which destroys any hard deadline. The usual answers are a real-time variant of the kernel, or leaving the hard timing on a separate small processor.

    NPTEL: Real-Time Systems (IIT Kharagpur) · Course

Sign in to keep your progress.

Free resources

Links last checked 4 Sept 2026.

Stuck here?

Ask a mentor. A real person answers, and they can see exactly which topic you're on. Usually within a couple of working days.

Checking your session…

Topics shown in module order.