Kas ir Linux kodols?

Ikdienas lietotājiem un mazāk nekā stingrajiem faniem, Linux ir operētājsistēma. Pūristiem tomēr virsraksts Linux ir rezervēts kodolam, kas nodrošina operētājsistēmu.

Režīmi

Pirms izskaidrojam, kas ir kodols, ir svarīgi saprast terminus lietotāja režīms un kodola režīms. Lietotāja režīms ir tad, kad koda izpildei nav iespējas tieši piekļūt aparatūrai vai atsauces atmiņai. Lai piekļūtu aparatūrai un atmiņai, kodam, kas darbojas lietotāja režīmā, instrukcijas jādeleģē sistēmas lietojumprogrammu saskarnēm. Kodola režīms ir tad, kad koda izpildei ir neierobežota piekļuve visai aparatūrai — tas ir rezervēts operētājsistēmas visuzticamākajām funkcijām.

Datora ekrāns ar kodu.

Kas ir kodols?

Katrai operētājsistēmai ir kodols. Windows, macOS, iOS, Android, Chrome OS, un Linux katrā ir zema līmeņa sistēma, kas ir atbildīga par visu lietojumprogrammu saskarni ar datora fizisko aparatūru. Bez kodola neviena no jūsu lietojumprogrammām nevarētu izmantot fizisko datoru; tādas lietotnes kā Firefox, Chrome, LibreOffice vai Outlook nedarbosies. Kodols ir arī atbildīgs par to, lai procesi varētu apmainīties ar informāciju, izmantojot tā saukto starpprocesu komunikāciju.

Ir (vispārīgi runājot) trīs veidu kodoli:

  • Monolīti kodoli: Šie kodoli ietver Procesors, atmiņa, IPC, ierīču draiveri, failu sistēmas pārvaldība un sistēmas servera izsaukumi. Tas ir arī atbildīgs par brīvās sistēmas atmiņas nodošanu lietojumprogrammām. Šāda veida kodoli parasti spēj labāk piekļūt aparatūrai un vairākuzdevumu veikšanai.
  • Mikrokodoli: Mikrokodoli izmanto minimālistisku pieeju un pārvalda tikai centrālo procesoru, atmiņu un IPC.
  • Hibrīdie kodoli: Hibrīdajiem kodoliem ir iespēja izlemt, ko tie vēlas palaist lietotāja vai kodola režīmā. Lai gan tas nodrošina labāko no abām pasaulēm, tas prasa daudz vairāk no aparatūras ražotājiem, lai izveidotu draiverus, kas kalpo saskarnei starp darbīgo kodu un aparatūru.

Linux izmanto atvērtā pirmkoda monolīto kodolu, savukārt macOS un Windows izmanto hibrīda kodolus. Linux kodolu 1991. gadā izstrādāja Linuss Torvalds. Līdz pat šai dienai Torvalds joprojām ir galvenais Linux kodola izstrādātājs, savukārt izstrādātāji no visas pasaules sniedz ieguldījumu Linux kodola izveidē. Faktiski tiek lēsts, ka gandrīz 10 000 izstrādātāju no vairāk nekā 1000 uzņēmumiem ir devuši ieguldījumu Linux kodola izveidē kopš izsekošanas sākuma 2005. gadā.

Kur atrodas kodols?

Ja atverat termināļa logu un izdodat komandu ls /boot, jūs redzēsit failu ar nosaukumu vmlinuz-VERSION(Kur VERSION ir laidiena nosaukums vai numurs). Vmlinuz fails ir faktiskais sāknējamais Linux kodols un z norāda, ka kodols ir saspiests — tā vietā vmlinux mums ir vmlinuz.

Sāknēšanas direktorija saraksts.

Šajā /boot direktorijā ir citi svarīgi kodola faili, piemēram, initrd.img-VERSION, system.map-VERSION un config-VERSION (kur VERSION ir nosaukums vai laidiena numurs). Šie citi faili ir paredzēti šādiem mērķiem:

  • initrd: izmanto kā nelielu RAM disku, kas izvelk un izpilda faktisko kodola failu.
  • system.map: izmanto atmiņas pārvaldībai pirms kodola ielādes.
  • konfigurācija: norāda kodolam, kādas opcijas un moduļus jāielādē.

Moduļi

Bez moduļiem kodols nebūtu īpaši noderīgs. Moduļi efektīvi ieslēdz draiverus, kas nepieciešami saziņai ar aparatūru, nepatērējot visu sistēmas atmiņu. Moduļi arī pievieno kodolam funkcionalitāti, piemēram, saziņu ar perifērijas ierīcēm, failu sistēmu pārvaldību, drošību utt. Uzskaitiet, pievienojiet un noņemiet moduļus kodolam, izmantojot šādas komandas:

  • lsmod uzskaita visus pašlaik ielādētos kodola moduļus.
  • insmod ielādē kodola moduli darbojošā kodolā.
  • rmmod izlādē moduli no strādājošā kodola.

Ar dažu vienkāršu komandu palīdzību Linux kodols var būt diezgan elastīgs.

Pašreizējais kodols

Linux kodoli
kernel.org

Linux kodols tiek atjaunināts bieži, taču ne visos Linux izplatījumos būs iekļauts jaunākais kodols.

Jūs varat brīvi lejupielādēt dažādas Linux kodola versijas no kernel.org un apkopo to pats. Linux kodola kompilācija ir uzdevums, ko vislabāk uzticēt tiem, kuri patiešām zina, ko dara. Nepareizi kompilēts kodols var padarīt sistēmu nebootable. Tāpēc, ja vien neesat gatavs ienirt sarežģītajā koda kompilēšanas uzdevumā šajā līmenī, izmantojiet noklusējuma kodolu, kas tiek piegādāts un atjaunināts jūsu izvēlētajam izplatīšanai.

FAQ

  • Kāda hipervizora funkcionalitāte ir iebūvēta Linux kodolā?

    Kodola virtuālā mašīna (KVM) ir iebūvēta Linux daļa, kas pārvērš Linux par hipervizora programmatūru, kas izveido un palaiž virtuālās mašīnas. KVM ir atvērtā pirmkoda virtualizācijas tehnoloģija, kas ļauj galvenajam Linux resursdatoram darbināt virtuālās mašīnas, kas ir virtuālās vides, kas zināmas arī kā viesi.

  • Kādā valodā ir rakstīts Linux kodols?

    Linux kodols ir rakstīts C programmēšanas valodā. C tiek izmantots daudzām vispārējas nozīmes programmēšanas vajadzībām. C sadala programmu dažādos moduļos, un katru moduli var rakstīt atsevišķi vai kopā.

  • Kā pārbaudīt Linux kodola versiju?

    Lai uzzinātu, kuru Linux kodola versiju izmantojat, ievadiet hostnameectl komandrindā. Tiks nolasīta nākamā līdz pēdējai rindai Kodols: Linux un skaitļu virkne. Pirmais numurs ir galvenā kodola versija, otrais numurs ir galvenā laidiena versija, bet trešais numurs ir nelielas pārskatīšanas līmenis.