En Linux- drivrutin skiljer sig väsentligt från sin Windows-motsvarighet . Linux-drivrutiner är skapade enbart för att tillhandahålla ett gränssnitt till hårdvaran . De gör inga antaganden om hur hårdvaran ska användas . Också , de brukar inte ger någon typ av grafiska gränssnitt för hårdvaran . De flesta drivrutiner för Linux Maskinvara som stöds är en del av Linuxkärnan källan träd och underhålls av Linux utveckling community . Funktion
En drivrutin funktion är att ge tillgång till en del av maskinvaran . I Windows görs detta genom Application Binary Interface ( ABI ) kallar att Microsoft ger till föraren utvecklare . Drivrutinen för Windows sedan levereras till användaren som en binär ansökan .
Linux , det finns ingen ABI eller Application Programming Interface ( API ) för drivrutiner . Istället ger Linuxkärnan en stabil användargränssnitt för ansökningar . Drivrutiner är skapade som moduler av Linuxkärnan som döljer detaljerna i hur apparaten fungerar . Dessa moduler uppfyller en uppsättning standardiserade samtal som är oberoende av drivrutinerna själva .
Funktioner
En av de viktigaste funktionerna i Linux drivrutiner är att de är modulär . De kan vara och är byggda separat från resten av kärnan. Detta innebär att varje modul ( eller drivrutinen ) kan användas eller tas bort från kärnan vid körning beroende på vilken hårdvara är tillgänglig . Är också byggda med den åtskillnad mellan mekanismen och politik
Drivers . Mekanismen är vad funktioner tillhandahålls , och policy är hur funktionerna skall användas . Linux drivrutin är politiken gratis . Föraren kommer åt hårdvaran men inte tala om för användaren hur det kan eller bör användas .
Enhetsklasser
Linuxkärnan separerar maskinvaruenheter i tre huvudtyper : tecken , anordningar block, och nätverksgränssnitt . En Character Enheten kan användas som en ström av tecken eller bytes, som liknar en fil . Dessa enheter inkluderar textkonsollen , tangentbordet och serieportar .
Ett block är en anordning som endast kan nås i datablock ( vanligtvis en kilobyte eller annan effekt av 2 ) och kan vara värd ett filsystem , som en diskenhet . Linux tillåter applikationer att läsa och skriva för att blockera enheter som ett tecken enhet , så att de hanteras på ett speciellt sätt av kärnan .
En nätverksenhet möjliggör utbyte av data med andra värdar . Dessa anordningar är vanligtvis hårdvara, men kan även vara rent programvara . Kärnan har ett annat sätt att kommunicera med nätverksenheter än med tecken eller blockera enheter . Istället för att läsa och skriva till enheten hanterar det pakettransmission .
Körkortslagstiftning
Linuxkärnan är licensierad under GNU General Public License ( GPL ) vilket innebär det är öppen källkod och fritt tillgängligt för vem som helst att ladda ner , modifiera och vidaredistribuera så länge omfördelas koden är också licensierad under GPL . Detta innebär dock inte gälla för Linux drivrutiner .
Eftersom kärnan är modulär , blir enhetens drivrutin inte en del av kärnan . Istället ansluter den kärnan genom ett väl definierat gränssnitt . Om drivrutinen använder endast denna modul gränssnitt , men det behöver inte vara licensierade under GPL . Men om drivrutinen faktiskt använder en del av kärnan kod för att arbeta i stället för gränssnittet tillgängliga , måste det täckas under GPL .
Sammanslagning med Kernel
När en drivrutin blir accepterad som " arbetar " med Linux kernel Development laget , kommer det att bli en del av stambanan Linux källkoden till kärnan . Det betyder att det kommer att hållas uppdaterad genom efterföljande kernel förändringar , kommer att arbeta med alla centralenheter (processorer ) som stöds av Linux , och kommer att fastställas och förstärkas genom Linuxutveckling community .
Källkoden träd har moduler för de flesta av hårdvara som stöds av Linux . Det är därför , så länge du använder Linux hårdvara som stöds , kan du ladda operativsystemet och har din hårdvara fungerar utan att installera extra drivrutiner .