Drivers on macOS

Introduction to IOKit and BSD drivers on macOS

Karol Mazurek
17 min readJust now

--

INTRO

This article dives into the internals of XNU, specifically focusing on drivers. Since the main article on XNU has grown quite extensive, I decided to split this topic into its own pieces to keep things manageable — for you and me.

Here, you will learn what drivers do, how they are identified, and, most importantly, how we can interact with them from user mode.

Enjoy!

Drivers

They are software that allows OS communication with hardware. Think of them as translators between the hardware that speaks its own language and the OS that needs to understand it, e.g., when we plug in a USB device:

  1. The hardware sends electrical signals
  2. The driver converts these signals into data the OS can understand
  3. The OS can then interact with the device through the driver

We encounter two main types of drivers on macOS: IOKit and BSD.

BSD Drivers

--

--

Karol Mazurek
Karol Mazurek

No responses yet