Za casual korisnike i manje od hardcore navijača, Linux je operativni sustav. Za puriste, međutim, naslov "Linux" je rezerviran za kernel koji ovlasti operativni sustav. Ako ste znatiželjni o tome što je Linux kernel, odgovorimo na to pitanje s pogledom na novi korisnik.
načini
Prije nego što objasnim što je kernel, važno je razumjeti izraze "korisnički način" i "način kernela". Korisnički mod je kada izvršavanje koda nema sposobnost izravnog pristupa hardveru ili referentnoj memoriji. Da bi pristupili hardveru i memoriji, kôd koji se pokreće u korisničkom načinu mora prenijeti upute u sučelja za API (Application Programming Interface) sustava. Kernel Mode je kada izvršavanje koda ima neograničen pristup svim hardverima i rezervirano je za najpouzdanijih funkcija operacijskog sustava.
Što je kernel?
Svaki operativni sustav ima kernel. Windows, MacOS, iOS, Android, Chrome OS i Linux svaki imaju sustav niske razine koji je odgovoran za povezivanje svih aplikacija s fizičkim hardverom računala. Bez jezgre, nijedna od vaših aplikacija ne bi mogla iskoristiti fizičko računalo; aplikacije kao što su Firefox, Chrome, LibreOffice, MS Office ili Outlook ne bi funkcionirale. Kernel je također odgovoran za dopuštanje procesima razmjene informacija pomoću onoga što se zove Inter-Process Communication (IPC).
Postoje (općenito govoreći) tri vrste jezgri:
- Monolitne kernele: ovi kerneli obuhvaćaju CPU, memoriju, IPC, upravljačke programe uređaja, upravljanje datotečnim sustavom i pozivi poslužitelja sustava. Također je odgovoran za predaju slobodne sistemske memorije aplikacijama. Ove vrste jezgri obično su bolji u pristupu hardveru i višezadaćnosti.
- Microkernels: Microkerneli imaju minimalistički pristup i upravljaju samo CPU-om, memorijom i IPC-om.
- Hibridne jezgre: Hibridni jezgri imaju mogućnost odlučiti što žele pokrenuti u bilo kojem načinu korisnika ili kernelu. Iako to pruža najbolje od oba svijeta, zahtijeva mnogo više od proizvođača hardvera za stvaranje upravljačkih programa koji služe za sučelje između pokretanja koda i hardvera.
Linux koristi otvoreni izvor, monolitni kernel, dok macOS i Windows koriste hibridne kernele. Linux kernel zamišljen je 1991. godine Linus Torvalds. Do danas, gospodin Torvalds i dalje je glavni razvojni programer na Linux kernelu, a programeri iz cijelog svijeta doprinose Linux kernelu. Ustvari, procjenjuje se da je gotovo 10.000 programera, od više od 1.000 tvrtki, pridonijelo Linux kernelu (budući da je praćenje započelo 2005. godine).
Gdje je kernel?
Ako otvorite prozor terminala i izdajete naredbu ls / boot, vidjet ćete datoteku koja se zove vmlinuz izvedbe (Gdje je VERSION ime ili broj izdavanja). Vmlinuz datoteka je stvarni Linux kernel koji se može pokrenuti, a "z" znači da je kernel komprimiran; pa umjesto vmlinux imamo vmlinuz.
Unutar tog / boot direktorij su i druge važne kernel datoteke, kao što su initrd.img-VERSION, system.map-VERSION i config-VERSION (Gdje je VERSION naziv ili broj izdanja). Te druge datoteke služe sljedećim ciljevima:
- initrd: koristi se kao mali RAMdisk koji ekstrahira i izvršava stvarnu datoteku kernela.
- system.map: koristi se za upravljanje memorijom, prije učitavanja jezgre.
- konfig: upućuje kernel o opcijama i modulima za učitavanje.
moduli
Bez modula, jezgra ne bi imala puno koristi. Moduli učinkovito uključe vozače potrebne za komunikaciju s hardverom bez konzumiranja sve vaše sistemske memorije. Moduli također dodaju funkcionalnost kernelu, kao što su komunikacija s perifernim uređajima, upravljanje datotekama, sigurnost itd. Moguće je popisati, dodavati i uklanjati module kernelu sa sljedećim naredbama:
- lsmod će popis svih trenutno učitanih kernel modula.
- insmod će učitati modul kernela u pokrenut kernel.
- rmmod će istovariti modul iz pokrenutog kernela.
Znači, uz pomoć nekih jednostavnih naredbi, Linux kernel može biti prilično fleksibilan.
Trenutni kernel
Od ovog pisanja, stabilna Linux kernel je 4.18.5, ali ne i sve Linux distribucije uključuju najnovije kernele. U stvari, ažurirana osnovna OS desktop distribucija pokreće kernel 4.15.0-30. Što znači taj broj? U slučaju najnovijeg kernela na Elementarnom OS, to znači:
- 4 je glavna verzija
- 15 je manja verzija
- 0-30 je revizija
Također je moguće preuzeti različite verzije Linux kernela iz kernel.org i sastaviti ga sami. Kompilacija Linux kernela najbolja je zadaća onima koji stvarno znaju što rade. Nepravilno sastavljena jezgra može prikazati sustav koji se ne može pokrenuti. Dakle, ako niste spremni za zaroniti u izazovnu zadaću sastavljanja koda na toj razini, upotrijebite zadani kernel koji se isporučuje i ažurira na raspodjeli izbora.