Wat zijn kernelextensies?
Een kernelextensie is een stuk computersoftware dat in de centrale component van een besturingssysteem wordt geladen. Kernel-extensies kunnen worden gebruikt om functionaliteit of hardware-ondersteuning te bieden die anders geen onderdeel van de kernel zou zijn. Een kernelextensie mag vaak taken uitvoeren of toegang krijgen tot delen van het besturingssysteem die normale software niet kan. In sommige besturingssystemen worden kernelextensies kernelmodules genoemd, of gewoon modules.
In de meeste besturingssystemen is de toegang tot netwerken, bestandssystemen en systeemoproepen beperkt om een stabiel en veilig systeem te behouden. Kernel-extensies hebben toegang tot deze functies en systemen omdat ze als onderdeel van de kernel worden uitgevoerd. Een kernel zonder extensies staat bekend als een basiskernel. Extensies kunnen worden toegevoegd aan of verwijderd uit de basiskernel.
Uitbreidingen zorgen voor meer flexibiliteit in de mogelijkheden van een kernel zonder de complexiteit van de basiskernel te vergroten. Een kernelextensie kan bijvoorbeeld worden geladen om energiebesparende functies in te schakelen die geschikt zijn voor laptops. Deze functies zijn meestal niet opgenomen in de basiskernel omdat het besturingssysteem mogelijk niet op een laptop wordt gebruikt.
Kernel-extensies of modules kunnen ook dynamisch worden geladen en verwijderd, wat betekent dat ze naar behoefte worden toegevoegd aan en verwijderd uit de kernel. Hiermee kan de computer geheugen en andere bronnen besparen wanneer de extensie niet in gebruik is. Een Universal Serial Bus (USB) -netwerkadapter kan de vereiste stuurprogramma's laden als kernel-extensies wanneer deze worden aangesloten en vervolgens de extensies verwijderen wanneer het apparaat wordt verwijderd.
Ze hebben meer autoriteit dan andere programma's, dus kernelextensies en modules kunnen unieke problemen veroorzaken. Een slecht gecodeerd apparaatstuurprogramma dat als kernelextensie wordt uitgevoerd, kan ervoor zorgen dat het hele systeem crasht. Om deze reden worden softwareontwikkelaars vaak aangemoedigd om alleen kernelextensies te gebruiken als er geen alternatief is.
Voor de meeste gebruikers gebeurt de configuratie van extensies automatisch. Sommige gebruikers, vooral gebruikers die bepaalde besturingssystemen gebruiken, beheren zelf de kernelextensie of modules. Er zijn variaties in de versies van kernels, dus uitbreiding en modules zijn mogelijk niet compatibel met alle kernels of alle besturingssystemen.