presentations/linuxgraphicsstack/slides/04-kernel.md

1.3 KiB

Linux Kernel

  • Communicates "directly" with hardware
    • Provides drivers
    • Initializes hardware
  • Provides HAL
  • Provides userspace APIs
    • Provides planes for userspace to draw to

Image.

Notes: Then there's the beloved Linux kernel.

Being that it is a kernel, one of it's main jobs is to communicate with the hardware. It does this through the use of drivers, which provides the rest of the kernel with a stable interface.

Popular examples of these drivers are:

  • i915 and xe, which are for Intel GPUs
  • amdgpu, which is for AMD GPUs
  • And nouveau, which is for NVIDIA.

There are quite a few more than this, but I'd be here all day if I talked about them.

The kernel also brings up the hardware to a usable state so that userspace can communicate with it.

Userspace can communicate with the graphics hardware using a Hardware Abstraction Layer, which in the kernel is provided by the Direct Rendering Manager and the Kernel Mode Setting interface.

[comment]: # (!!!)