O extensie de kernel este o bucată de software de calculator care este încărcată în componenta centrală a unui sistem de operare. Extensiile de kernel pot fi folosite pentru a oferi funcționalitate sau suport hardware care altfel nu ar face parte din kernel. Deseori, unei extensii de kernel i se permite să efectueze sarcini sau să acceseze părți ale sistemului de operare pe care software-ul normal nu le poate. În unele sisteme de operare, extensiile nucleului sunt denumite module kernel sau pur și simplu module.
În majoritatea sistemelor de operare, accesul la rețele, sistemele de fișiere și apelurile de sistem sunt restricționate pentru a menține un sistem stabil și sigur. Extensiile de kernel pot accesa aceste funcții și sisteme deoarece rulează ca parte a nucleului. Un nucleu fără extensii este cunoscut ca nucleu de bază. Extensiile pot fi adăugate sau eliminate din nucleul de bază.
Extensiile permit o mai mare flexibilitate în capacitățile unui nucleu fără a crește complexitatea nucleului de bază. De exemplu, o extensie de kernel poate fi încărcată pentru a activa funcțiile de economisire a energiei adecvate pentru computerele laptop. Aceste caracteristici de obicei nu sunt incluse în nucleul de bază, deoarece este posibil ca sistemul de operare să nu fie utilizat pe un laptop.
De asemenea, extensiile sau modulele de kernel pot fi încărcate și descărcate dinamic, ceea ce înseamnă că sunt adăugate și eliminate din kernel după cum este necesar. Acest lucru permite computerului să economisească memorie și alte resurse atunci când extensia nu este utilizată. Un adaptor de rețea Universal Serial Bus (USB) poate încărca driverele necesare ca extensii de kernel atunci când este conectat, apoi descarcă extensiile când dispozitivul este scos.
Au mai multă autoritate decât alte programe, așa că extensiile și modulele de kernel pot cauza probleme unice. Un driver de dispozitiv prost codificat care rulează ca extensie de kernel ar putea cauza blocarea întregului sistem. Din acest motiv, dezvoltatorii de software sunt adesea încurajați să folosească extensiile de kernel numai atunci când nu există nicio alternativă.
Pentru majoritatea utilizatorilor, configurarea extensiilor are loc automat. Unii utilizatori, în special cei care utilizează anumite sisteme de operare, gestionează ei înșiși extensia kernel-ului sau modulele. Există variații în versiunile de nuclee, astfel încât extensia și modulele ar putea să nu fie compatibile cu toate nucleele sau cu toate sistemele de operare.