presentations/linuxgraphicsstack/slides/04-kernel.md

41 lines
1.3 KiB
Markdown

<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
<div> <!-- Left pane -->
<!-- Title -->
## Linux Kernel
- Communicates "directly" with hardware
- Provides drivers
- Initializes hardware
- Provides HAL
- Provides userspace APIs
- Provides planes for userspace to draw to
</div>
<div> <!-- Right pane -->
<!-- Title -->
![Image.](media/overview.svg) <!-- .element: style="width: 50%;" -->
</div>
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]: # (!!!) <!--------------------------------------------------------->