Iepriekšējā rakstā mēs izskaidrojām, kas ir Linux kodols, un tagad sīkāk aplūkosim, kādus funkcionālos uzdevumus tas veic. Monolītās OS Linux kodols veic visplašāko uzdevumu klāstu. Ienākošo sistēmas izsaukumu apstrāde notiek augstākajā līmenī. Šie izsaukumi ir saskarne starp kodolu un lietotāja lietojumprogrammām. Aparatūras signāli un pārtraukumi tiek apstrādāti zemākā līmenī.
Tomēr kodola uzdevums nav tikai apstrādāt pārtraukumus. Tas ietver arī ierīču vadības programmas. Lai apstrādātu signālus, kas nāk no ierīcēm, ir vajadzīgi draiveri. Tiem ir atvēlēta lielāka kodola daļa. Daļa no tās ir bināro failu veidā. Kodola versija bez slēgtiem draiveriem ir Linux-libre, praksē tā nav tik viegli lietojama, jo ne vienmēr ir iespējams uzbūvēt datoru, kura pamatā ir komponenti tikai ar atvērtiem draiveriem.
Citi funkcionālie kodola uzdevumi ir darbs ar abstrakcijām. Virtuālos pavedienus ģenerē virtuālais pavediens, atmiņas pārvaldnieks piešķir un izolē daļu operatīvās atmiņas īpaši procesam, virtuālā failu sistēma veido vienotu vietu failu glabāšanai, kontaktligzdas izveido tīkla modulis. Tādējādi tiek radīti nosacījumi augsta drošības līmeņa nodrošināšanai. Starpprocesu mijiedarbības sistēma nodrošina, ka, piekļūstot vieniem un tiem pašiem datora resursiem, nerodas konflikti, kā arī nodrošina datu apmaiņu starp procesiem.
No lietotāja programmatūras puses tā izskatās kā fiziskā aparatūra ar to atšķirību, ka procesors un operatīvā atmiņa nesazinās tieši, bet gan ar sistēmas izsaukumu starpniecību. Direktorijā /dev
ir simboliskas un bloku atsauces uz perifērijas ierīcēm. Bloku atsauču īpatnība ir tā, ka tās darbojas tikai ar noteikta lieluma blokiem.
Neskatoties uz to, ka kodols kontrolē visus procesus, tas pats neko nedara, tam ir nepieciešama lietotāja programmatūra un tās izpildītie procesi. Starp pamatprogrammatūru ir GNU palīgprogrammas - bez tām grūti iedomāties jebkuru Linux izplatīšanu. Viens no piemēriem ir Bash
apvalks, kas ļauj ievadīt komandas konsolē.