Skip to main content

Kaj je jedro Linuxa?

Anonim

Za navidezne uporabnike in navdušence, ki niso navdušeni, je Linux operacijski sistem. Za puristi pa je naslov "Linux" rezerviran za jedro, ki upravlja operacijski sistem. Če ste radovedni glede tega, kaj je jedro Linuxa, odgovorimo na to vprašanje s pogledom na novega uporabnika.

Načini

Preden razložimo, kaj je jedro, je pomembno razumeti izraze "uporabniški način" in "način jedra". Uporabniški način je, ko izvajanje kode nima zmožnosti neposrednega dostopa do strojne opreme ali referenčnega pomnilnika. Za dostop do strojne opreme in pomnilnika mora koda, ki se izvaja v uporabniškem načinu, prenesti navodila na vmesnike aplikacijskega programiranja (API) sistema. Kernel Mode je, ko izvedba kode neomejen dostop do vse strojne opreme in je rezervirana za najbolj zaupanja vredne funkcije operacijskega sistema.

Kaj je jedro?

Vsak operacijski sistem ima jedro. Windows, MacOS, iOS, Android, Chrome OS in Linux imajo sistem nizke ravni, ki je odgovoren za povezovanje vseh aplikacij s fizično strojno opremo računalnika. Brez jedra nobena od vaših aplikacij ne bi mogla uporabiti fizičnega računalnika; aplikacije, kot so Firefox, Chrome, LibreOffice, MS Office ali Outlook, ne bi delovale. Jedro je tudi odgovorno za to, da procesi omogočajo izmenjavo informacij z uporabo tako imenovanega Inter-Process Communication (IPC).

Obstajajo (na splošno) tri vrste jedrc:

  • Monolitna jedrca: ta jedra obsegajo CPU, pomnilnik, IPC, gonilnike naprav, upravljanje datotečnega sistema in klice sistemskega strežnika. Prav tako je odgovoren za oddajanje brezplačnega sistemskega pomnilnika aplikacijam. Te vrste jeder so običajno boljše pri dostopanju do strojne opreme in večopravilnostnih naprav.
  • Mikrokerneli: Mikrokrmilniki imajo minimalističen pristop in upravljajo le CPU, pomnilnik in IPC.
  • Hibridna jedra: Hybrid Kernels se lahko odločijo, kaj želijo zagnati v uporabniškem ali jedrskem načinu. Čeprav to zagotavlja najboljše iz obeh svetov, od proizvajalcev strojne opreme potrebuje veliko več, da bi ustvarili gonilnike, ki služijo za povezovanje med tekanjem kode in strojne opreme.

Linux uporablja odprtokodno jedro, Monolithic Kernel, medtem ko MacOS in Windows uporabljata hibridna jedra. Jedro Linuxa je leta 1991 zasnoval Linus Torvalds. Do danes je gospod Torvalds še naprej vodilni razvijalec v jedru Linuxa, razvijalci iz vsega sveta pa prispevajo k jedru Linuxa. Dejansko se ocenjuje, da je skoraj deset tisoč razvijalcev iz več kot 1.000 podjetij prispevalo k jedru Linuxa (od sledenja se je začelo leta 2005).

Kje je jedro?

Če odprete terminalsko okno in izdajte ukaz ls / boot, boste videli datoteko, imenovano vmlinuz-VERSION (Kjer je VERSION ime ali številka izdaje). Datoteka vmlinuz je dejansko zagonsko jedro Linuxa in "z" pomeni, da je jedro stisnjeno; zato namesto vmlinux imamo vmlinuz.

Znotraj tega / boot imenika so še druge pomembne datoteke jedra, kot so initrd.img-VERSION, system.map-VERSION in config-VERSION (kjer je VERSION bodisi ime ali številka izdaje). Te druge datoteke služijo naslednjim namenom:

  • initrd: uporablja se kot majhen RAMdisk, ki ekstraktira in izvaja dejansko datoteko jedra.
  • system.map: se uporablja za upravljanje pomnilnika pred nalaganjem jedra.
  • config: navodilo jedru o tem, katere možnosti in modulov naložite.

Moduli

Brez modulov se jedro ne bi veliko uporabljalo. Moduli učinkovito vključijo gonilnike, potrebne za komunikacijo s strojno opremo, ne da bi porabili ves sistemski pomnilnik. Moduli prav tako dodajajo funkcionalnost jedru, kot je komuniciranje s perifernimi napravami, upravljanje datotečnih sistemov, varnost itd. V jedru je mogoče seznam, dodajanje in odstranjevanje modulov z naslednjimi ukazi:

  • lsmod bo seznam vseh trenutno naloženih modulov jedra.
  • insmod bo vstavil modul jedra v tekoče jedro.
  • rmmod bo odstranil modul iz tekočega jedra.

Tako lahko s pomočjo nekaterih preprostih ukazov jedro Linuxa precej prilagodljivo.

Trenutna jedra

Od tega pisanja je stabilno jedro Linuxa 4,18,5, vendar vse distribucije Linuxa ne bodo vključevale najnovejšega jedra. Pravzaprav posodobljena distribucija namizja Elementary OS teče jedro 4.15.0-30. Kaj to pomeni? V primeru najnovejšega jedra na Elementarni OS to pomeni:

  • 4 je glavna različica
  • 15 je manjša različica
  • 0-30 je revizija

Prav tako je mogoče prenesti različne različice jedra Linux iz kernel.org in ga sami sestaviti. Zbirka jedra Linuxa je najboljša naloga tistim, ki resnično vedo, kaj počnejo. Nepravilno sestavljeno jedro lahko povzroči, da je sistem neuporaben. Torej, razen če ste pripravljeni na potapljanje v zahtevno nalogo sestavljanja kode na tej ravni, uporabite privzeto jedro, ki ste ga dobili in posodobitve na vaši distribucijski izbiri.