Communicating with Linux Devices

πŸ“š Hoofdstuk 23.1: Werken met Linux Apparaten (Device Interfaces & Mappen)

──────────────────────────────
πŸ’» Populaire Apparateninterfaces:
──────────────────────────────
Interface β†’ Beschrijving
──────────────────────────────────────────────────────────────
PCI/PCIe β†’ Verbinding met interne uitbreidingskaarten
(HDD, netwerkkarten, GPU, audio)
USB β†’ SeriΓ«le communicatie, ondersteunt apparaten zoals
muizen, toetsenborden, opslag
GPIO β†’ Digitale input/output pins voor eenvoudige
hardware-controle (bv. Raspberry Pi)

──────────────────────────────
πŸ“‚ Belangrijke Systeembestanden & Mappen:
──────────────────────────────

πŸ”§ `/dev` – Device Files:
β€’ Linux behandelt apparaten als bestanden in deze map

Type β†’ Voorbeelden
────────────────────────────────────────────────
Karakterapparaten (`c`) β†’ 1 karakter per keer, bv. terminals, seriΓ«le poorten
Blokapparaten (`b`) β†’ Blokken data tegelijk, bv. harde schijven, SSD’s

πŸ“„ Bestanden in `/dev`:
Bestand β†’ Functie
──────────────────────────────────────────────────────
/dev/null β†’ Gooi data weg (black hole)
/dev/zero β†’ Genereert null-bytes
/dev/random
/dev/urandom β†’ Genereert willekeurige data (`urandom` is minder veilig)

πŸ“¦ Device Mapper:
β€’ Virtuele laag voor blokapparaten
β€’ Gebruikt door:
- **LVM (Logical Volume Manager)**
- **LUKS (Linux Unified Key Setup)** voor encryptie

──────────────────────────────
🧠 `/proc` – Virtueel Hardware-informatiesysteem:
──────────────────────────────
β€’ Dynamisch aangemaakt door de kernel
β€’ Geeft real-time info over hardwarestatus

πŸ“„ Bestanden in `/proc`:
Bestand β†’ Inhoud
───────────────────────────────────────────────────
/proc/interrupts β†’ IRQ’s: hardware die CPU wil aanspreken
/proc/ioports β†’ I/O-poorten die apparaten gebruiken
/proc/dma β†’ DMA-kanalen voor directe data-overdracht naar RAM

πŸ”§ Tip:
Gebruik `setpci` om I/O-poortconflicten op te lossen
(zelden nodig door Plug and Play)

──────────────────────────────
πŸ–₯️ `/sys` – Hardware Info voor Gebruikers:
──────────────────────────────
β€’ Virtuele map met informatie over apparaten
(bus, kernelmodules, enz.)
β€’ Iedereen kan lezen (geen root nodig)
──────────────────────────────