Die meisten Systeme laufen gut mit Standard-Kerneln. In Embedded-, performancekritischen oder hardwarespezifischen Umgebungen können jedoch Grenzen sichtbar werden, die direkte Anpassungen auf Kernel-Ebene erfordern.
Diese Arbeit ist in der Regel fokussiert und problemgetrieben: bestehendes Verhalten verstehen, die Einschränkung identifizieren und den Kernel nur dort ändern, wo es notwendig ist.
Wo das notwendig wird
Typische Fälle sind fehlende Hardware-Unterstützung, Performance-Engpässe, Timing-Probleme, Boot-Einschränkungen oder Situationen, in denen sich Kernel-Subsysteme nicht so verhalten, wie es für eine bestimmte Anwendung erforderlich ist.
Typische Arbeitsbereiche
- Kundenspezifische Kernel-Builds für bestimmte Distributionen oder Geräte
- Anpassung der Kernel-Konfiguration für Embedded- oder eingeschränkte Systeme
- Anpassung von Kerneln an bestimmte Boot-Umgebungen (initramfs, Early Boot)
- Integration oder Anpassung von Patches für benötigte Funktionen
- Anpassung von Scheduling-, Speicher- oder Subsystemverhalten bei Bedarf
- Unterstützung von Hardware durch Änderungen auf Kernel-Ebene
- Entwicklung und Debugging ladbarer Kernel-Module (LKM)
- Erweiterung der Kernel-Funktionalität möglichst ohne vollständige Neubuilds
- Kompatibilität über Kernel-Updates hinweg erhalten
- Optimierung von Boot-Zeit oder Laufzeit-Performance
- Reduzierung des Footprints in Embedded-Umgebungen
- Abstimmung des Power-Managements für konkrete Einsatzfälle
Was das in der Praxis bedeutet
Statt auf breite Kernel-Anpassung zu setzen, konzentriert sich die Arbeit auf konkrete Probleme. Dadurch bleiben Systeme wartbar, und der langfristige Aufwand bei Updates oder Weiterentwicklung der Plattform wird reduziert.
Arbeit auf Kernel-Ebene ist oft eng mit Treiberwartung, Hardware-Integration oder System-Debugging verbunden und Teil eines größeren Vorhabens, das System als Ganzes zuverlässig funktionieren zu lassen.