- Tillsammans med framebuffer-gänget har vi jobbat på att förbättra det grafiska subsystemet för att försöka bringa lite reda i grafiken på Linux och undvika den situation vi har nu då flera kärnmoduler och drivrutiner krigar om grafiken, det skriver utvecklaren Jesse Barnes i ett brev till epostlistan linux-kernel.

- För att få lite feedback så tänkte jag att jag postar en beskrivning över hur vi har strukturerat sakerna så här långt, tillsammans med lite kod för att få lite feedback på åt vilket håll utvecklingen går.

Jesse Barnes ger följande anledningar till varför det är bättre att grafiken sköts av kärnan och inte av en applikation i userspace.

  • Viloläge: Idag litar kärnan på externa applikationer som X, vbetool eller ännu värre ACPI för att sätta rätt videoläge efter att datorn väckts ur viloläge. Att lägga koden i kärnan låter kärnan sköta sådant utan att vi behöver gå via video-BIOS och det kommer att gå mycket snabbare.
  • Avlusning: Som jag skrev tidigare, om något skulle gå snett när datorn väcks ur viloläge får inte användaren någon indikation på vad som gick snett. Om kärnan styr detta kan vi få ut de här meddelandena på skärmen i form av en kernelpanic.
  • Icke X-program: Grafiska program som inte baseras på X har två möjliga sätt att använda skärmen. Antingen genom att ta över hårdvaran själv eller att gå via framebuffer-lagret. Om kärnan sköter grafiken blir det enklare att utveckla den typen av program.
  • Byte av videoläge: Idag är kärnan beroende av externa program för att sätta rätt videoläge och det fungerar inte alltid och kan orsaka hängningar.

Källa: KernelTrap

Vår notering: Det ser alltså ut som att Linux går mot samma håll som Windows i det här hänseendet. Microsoft valde tidigt att lägga grafiken i ring 0, det vill säga baka in stödet i kärnan. Fördelarna är en snabbare, mer effektiv grafikhantering men samtidigt blir du beroende av att tillverkarna av grafikkretsar skriver ordentliga drivrutiner eftersom de då kan tokhänga systemet om något går snett.