Para sa mga kaswal na gumagamit at mas mababa kaysa sa hardcore tagahanga, Linux ay isang operating system. Gayunman, sa mga purists, ang pamagat na "Linux" ay nakalaan para sa kernel na nagpapalakas sa operating system. Kung ikaw ay kakaiba kung ano ang Linux kernel, hayaan ang sagot na tanong na may isang mata sa bagong user.
Mga Mode
Bago namin ipaliwanag kung ano ang isang kernel, mahalaga na maunawaan ang mga salitang "user mode" at "kernel mode". Ang mode ng User ay kapag ang pagpapatupad ng code ay walang kakayahang direktang ma-access ang hardware o reference memory. Upang makakuha ng access sa hardware at memorya, ang code na tumatakbo sa user mode ay dapat na magtalaga ng mga tagubilin sa Mga Application Programming Interface (API). Ang Kernel Mode ay kapag ang pagpapatupad ng code ay walang ipinagpapahintulot na access sa lahat ng hardware at nakalaan para sa pinaka pinagkakatiwalaang mga pag-andar ng isang operating system.
Ano ang Kernel?
Ang bawat operating system ay may kernel. Ang bawat isa sa Windows, macOS, iOS, Android, Chrome OS, at Linux ay may isang mababang antas na sistema na may pananagutan sa pag-interfacing ng lahat ng mga application sa pisikal na hardware ng computer. Kung wala ang kernel, wala sa iyong mga application ang magagawang gamitin ang pisikal na computer; Hindi gagana ang mga app tulad ng Firefox, Chrome, LibreOffice, MS Office, o Outlook. Ang kernel ay responsable din para sa pagpayag sa mga proseso upang makipagpalitan ng impormasyon gamit ang tinatawag na Inter-Process Communication (IPC).
Mayroong (karaniwang nagsasalita) tatlong uri ng kernels:
- Mga monolitikong kernels: ang mga kernel ay sumasaklaw sa CPU, memorya, IPC, mga driver ng aparato, pamamahala ng file system, at mga tawag sa server ng system. Responsable din ito sa pagbibigay ng libreng system memory sa mga application. Ang mga uri ng kernels ay karaniwang mas mahusay sa pag-access ng hardware at multitasking.
- Microkernels: Ang Microkernels ay kumukuha ng minimalistang diskarte at pinamahalaan lamang ang CPU, memory, at IPC.
- Hybrid kernels: Ang Hybrid Kernels ay may kakayahang magpasya kung ano ang nais nilang tumakbo sa alinman sa User o Kernel Mode. Kahit na ito ay nagbibigay ng pinakamahusay sa parehong mundo, ito ay nangangailangan ng higit pa mula sa mga tagagawa ng hardware upang lumikha ng mga driver na maglingkod sa interface sa pagitan ng pagpapatakbo ng code at hardware.
Ang Linux ay gumagamit ng isang open source, Monolithic Kernel, samantalang ang macOS at Windows ay parehong gumagamit ng Hybrid Kernels. Ang Linux kernel ay ipinanganak noong 1991 ni Linus Torvalds. Sa araw na ito, si Ginoong Torvalds ay patuloy na namumuno sa kernel ng Linux, habang ang mga developer mula sa buong mundo ay nag-ambag sa kernel ng Linux. Sa katunayan, tinatayang halos 10,000 mga developer, mula sa higit sa 1,000 mga kumpanya, ang nag-ambag sa kernel ng Linux (dahil nagsimula ang pagsubaybay noong 2005).
Nasaan ang Kernel?
Kung buksan mo ang isang terminal window at i-isyu ang command ls / boot, makikita mo ang isang file na tinatawag vmlinuz-VERSION (Kung saan ang VERSION ay ang pangalan o numero ng paglabas). Ang vmlinuz file ay ang aktwal na bootable na kernel ng Linux, at ang "z" ay ipahiwatig na ang kernel ay naka-compress; kaya sa halip ng vmlinux mayroon kaming vmlinuz.
Sa loob ng / na direktoryo ng boot ay iba pang mahalagang mga kernel file, tulad ng initrd.img-VERSION, system.map-VERSION, at config-VERSION (Kung saan ang VERSION ay alinman sa isang pangalan o numero ng paglabas). Ang iba pang mga file na ito ay nagsisilbi sa mga sumusunod na layunin:
- initrd: Ginamit bilang isang maliit na RAMdisk na extracts at executes ang aktwal na kernel file.
- system.map: ginagamit para sa pamamahala ng memorya, bago ang pagkarga ng kernel.
- config: tinuturuan ang kernel kung anong mga opsyon at mga module na mai-load.
Mga Module
Walang mga modules, ang kernel ay hindi gaanong magagamit. Ang mga module ay epektibong i-on ang mga driver na kinakailangan upang makipag-ugnayan sa hardware na walang pag-ubos sa lahat ng iyong system memory. Ang mga modyul ay nagdaragdag din ng pag-andar sa kernel, tulad ng pakikipag-usap sa mga peripheral, pamamahala ng mga system file, seguridad, atbp Posible upang ilista, idagdag, at alisin ang mga module sa kernel gamit ang mga sumusunod na command:
- lsmod ilista ang lahat ng mga kasalukuyang load na kernel module.
- insmod ay mag-load ng isang kernel module sa tumatakbo na kernel.
- rmmod ay mag-ibis ng isang module mula sa running kernel.
Kaya nakikita mo, sa tulong ng ilang simpleng mga utos, ang Linux kernel ay maaaring maging ganap na kakayahang umangkop.
Ang Kasalukuyang Kernel
Sa pagsulat na ito, ang matatag na kernel ng Linux ay 4.18.5, ngunit hindi lahat ng distribusyon ng Linux ay magsasama sa pinakabagong kernel. Sa katunayan, ang na-update na desktop na pamamahagi ng Elementary OS ay nagpapatakbo ng kernel 4.15.0-30. Ano ang ibig sabihin ng numerong iyon? Sa kaso ng pinakabagong kernel sa Elementary OS, nangangahulugang:
- 4 ang pangunahing bersyon
- 15 ay ang Minor na bersyon
- 0-30 ang rebisyon
Posible ring mag-download ng iba't ibang mga bersyon ng kernel ng Linux mula sa kernel.org at itala ito sa iyong sarili. Ang compilation ng Linux kernel ay isang gawain na pinakamahabang kaliwa para sa mga talagang alam kung ano ang ginagawa nila. Ang isang hindi wastong naipon na kernel ay maaaring mag-render ng isang system na hindi mabubukas. Kaya, maliban kung handa ka na sumisid sa mapaghamong gawain ng pag-ipon ng code sa antas na ito, gamitin ang default na kernel na nagpapadala at nag-update sa iyong pamamahagi ng pagpili.