Kas yra „Linux“ branduolys ir ką ji daro?
Su daugiau nei 13 milijonų kodų linijų, „Linux“ branduolys yra vienas didžiausių atviro kodo projektų pasaulyje, bet kas yra branduolys ir kokiu būdu jis naudojamas?
Taigi, kas yra branduolys?
Branduolys yra žemiausias lengvai keičiamos programinės įrangos lygis, kuris sąsaja su kompiuterio aparatine įranga. Jis yra atsakingas už visų jūsų „naudotojo režimu“ veikiančių programų ir fizinės įrangos sąsają, taip pat procesų, žinomų kaip serveriai, gauti informaciją viena nuo kitos, naudojant tarpusavio procesus (IPC).
Įvairūs branduolių tipai
Žinoma, yra įvairių būdų, kaip sukurti branduolį ir architektūrinius aspektus, kai juos statote nuo nulio. Apskritai, dauguma branduolių suskirstyti į vieną iš trijų tipų: monolitinis, mikrokernelis ir hibridas. Linux yra monolitinis branduolys, o OS X (XNU) ir Windows 7 naudoja hibridinius branduolius. Paimkime greitą kelionę iš trijų kategorijų, kad vėliau galėtume išsamiau susipažinti.
Vaizdas pagal upcornas
„Microkernel“
Mikrokernelis laikosi požiūrio, kad valdo tik tai, ką turi: CPU, atmintį ir IPC. Beveik visa kita kompiuterio dalis gali būti vertinama kaip priedas ir gali būti tvarkoma vartotojo režimu. „Microkernels“ turi perkeliamumo pranašumą, nes nereikia jaudintis, jei pakeisite vaizdo plokštę ar net operacinę sistemą, kol operacinė sistema vis dar bando prieiti prie aparatūros taip pat. „Microkernels“ taip pat turi labai mažą pėdsaką, skirtą tiek atminties, tiek įdiegimo vietai, ir jie paprastai yra saugesni, nes tik tam tikri procesai vykdomi vartotojo režimu, kuris neturi aukštų leidimo kaip priežiūros režimo.
Privalumai
- Perkeliamumas
- Mažas įdiegimo pėdsakas
- Mažas atminties pėdsakas
- Saugumas
Minusai
- Aparatūra yra labiau suskaidyta per vairuotojus
- Aparatūra gali reaguoti lėčiau, nes tvarkyklės yra vartotojo režime
- Procesai turi laukti eilėje, kad gautų informaciją
- Procesai negali gauti prieigos prie kitų procesų be laukimo
Monolitinė branduolys
Monolitiniai branduoliai yra priešingi mikrokerneliams, nes jie apima ne tik procesorių, atmintį ir IPC, bet ir tokius dalykus kaip įrenginių tvarkyklės, failų sistemos valdymas ir sistemos serverio skambučiai. Monolitiniai branduoliai yra linkę geriau prieiti prie aparatūros ir daugiafunkcinio darbo, nes jei programoje reikia gauti informaciją iš atminties ar kito proceso, jis turi daugiau tiesioginės linijos, kad galėtų ją pasiekti, ir nereikia laukti eilėje, kad gautų viską. Tačiau tai gali sukelti problemų, nes kuo daugiau dalykų, kurie veikia prižiūrėtojo režimu, tuo daugiau dalykų, kurie gali sumažinti jūsų sistemą, jei jis tinkamai neveikia.
Privalumai
- Daugiau tiesioginės prieigos prie programinės įrangos įrangos
- Lengviau bendrauti tarpusavyje
- Jei jūsų prietaisas yra palaikomas, jis turėtų veikti be papildomų įrenginių
- Procesai reaguoja greičiau, nes nėra procesoriaus laiko eilės
Minusai
- Didelis įdiegimo pėdsakas
- Didelis atminties pėdsakas
- Mažiau saugus, nes viskas veikia prižiūrėtojo režimu
Vaizdas per schoschie į „Flickr“
Hibridinis branduolys
Hibridiniai branduoliai turi galimybę pasirinkti ir pasirinkti, ką jie nori paleisti vartotojo režimu ir ką jie nori paleisti prižiūrėtojo režimu. Dažnai tokie dalykai kaip įrenginių tvarkyklės ir failų sistemos I / O bus paleisti vartotojo režimu, o IPC ir serverio skambučiai bus saugomi prižiūrėtojo režimu. Tai duoda geriausius iš abiejų pasaulių, tačiau dažnai reikės daugiau techninės įrangos gamintojo darbo, nes visa jų atsakomybė tenka jiems. Ji taip pat gali turėti kai kurių latentinių problemų, kurios būdingos mikrobangeliams.
Privalumai
- Kūrėjas gali pasirinkti ir pasirinkti, kas veikia vartotojo režime ir kas veikia priežiūros režimu
- Mažesnis diegimo pėdsakas nei monolitinis branduolys
- Lankstesnis nei kiti modeliai
Minusai
- Gali nukentėti nuo to paties proceso atsilikimo, kaip ir mikrokernelis
- Įrenginių tvarkykles turi tvarkyti naudotojas (paprastai)
Kur yra „Linux“ branduolio failai?
Branduolio failas, Ubuntu, yra saugomas jūsų / boot aplanke ir vadinamas vmlinuz-versija. Vmlinuz pavadinimas kilęs iš unix pasaulio, kuriame jie vadino savo branduolius tiesiog „unix“ atgal į 60-ąjį, todėl Linux pradėjo skambinti savo branduolio „linux“, kai jis pirmą kartą buvo sukurtas 90-aisiais.
Kai buvo sukurta virtuali atmintis, skirta lengviau daugiafunkciniams gebėjimams, „vm“ failo priekyje buvo rodoma, kad branduolys palaiko virtualią atmintį. Jau kurį laiką „Linux“ branduolys buvo vadinamas vmlinux, tačiau branduolys pernelyg padidėjo, kad tilptų prie turimos įkrovos atminties, kad branduolio vaizdas būtų suspaustas, o galas x pakeistas į z, kad būtų rodoma, kad jis buvo suspaustas su zlib suspaudimu. Tas pats glaudinimas ne visada naudojamas, dažnai pakeičiamas LZMA arba BZIP2, o kai kurie branduoliai yra tiesiog vadinami „zImage“.
Versijos numeracija bus tokia: A.B.C.D, kur A.B greičiausiai bus 2,6, C bus jūsų versija, o D - jūsų pleistrai ar pataisymai.
/ Boot aplanke bus ir kitų labai svarbių failų, vadinamų initrd.img-version, system.map-versija ir config-version. „Initrd“ failas naudojamas kaip nedidelis RAM diskas, kuris išskleidžia ir atlieka faktinį branduolio failą. „System.map“ failas naudojamas atminties valdymui, kol branduolys visiškai įkeliamas, o konfigūracijos failas branduoliui nurodo, kokias parinktis ir modulius įkelti į branduolio vaizdą, kai jis yra rengiamas.
Linux branduolio architektūra
Kadangi „Linux“ branduolys yra monolitinis, jis turi didžiausią pėdsaką ir labiausiai sudėtingą kitų tipų branduolius. Tai buvo dizaino bruožas, kuris buvo per mažai diskusijų pradinėse „Linux“ dienose ir vis dar turi tą patį dizaino trūkumą, kad monolitiniai branduoliai būdingi.
Vienas dalykas, kurį „Linux“ branduolių kūrėjai padarė norėdami pasiekti šiuos trūkumus, buvo sukurti branduolio modulius, kuriuos galima įkelti ir iškrauti vykdymo metu, o tai reiškia, kad galite pridėti arba pašalinti savo branduolio funkcijas. Tai gali būti ne tik pridedama branduolio aparatinės įrangos funkcionalumo, bet ir moduliai, kuriuose veikia serverio procesai, pvz., Žemo lygio virtualizacija, tačiau ji taip pat gali leisti pakeisti visą branduolį, kai kuriais atvejais nereikia perkrauti kompiuterio.
Įsivaizduokite, jei galėtumėte atnaujinti į „Windows“ serviso paketą, bet nereikės iš naujo paleisti iš naujo ...
Branduolio moduliai
Ką daryti, jei „Windows“ jau buvo įdiegta kiekviena tvarkyklė ir jūs turėjote tik įjungti reikiamus tvarkykles? Iš esmės tai, ką branduolio moduliai daro „Linux“. Branduolio moduliai, taip pat žinomi kaip įkraunamas branduolio modulis (LKM), yra būtini norint, kad branduolys veiktų su visa jūsų aparatūra, nenaudojant visos turimos atminties.
Modulis paprastai prideda pagrindinės branduolio funkcijų, pvz., Įrenginių, failų sistemų ir sistemos skambučių. LKM turi failo plėtinį .ko ir paprastai jie saugomi kataloge / lib / modules. Dėl savo modulinės prigimties galite lengvai pritaikyti savo branduolį nustatydami modulius, skirtus įkelti arba ne įkelti, paleisdami komandą menuconfig arba redaguodami / boot / config failą, arba galite įkelti ir iškrauti modulius skristi su modprobe komandą.
Trečiųjų šalių ir uždarų šaltinių moduliai yra prieinami kai kuriuose paskirstymuose, pvz., „Ubuntu“, ir gali būti neįdiegti pagal nutylėjimą, nes modulių šaltinio kodas nėra prieinamas. Programinės įrangos kūrėjas (t. Y. NVidia, ATI) nepateikia šaltinio kodo, o sukuria savo modulius ir kaupia reikalingus .ko failus. Nors šie moduliai yra laisvi, kaip ir alaus, jie nėra laisvi, kaip ir kalboje, todėl jie nėra įtraukti į kai kuriuos paskirstymus, nes prižiūrėtojai mano, kad „brandina“ branduolį, teikdamas nemokamą programinę įrangą.
Branduolys nėra magija, bet jis yra visiškai būtinas bet kuriam tinkamai veikiančiam kompiuteriui. „Linux“ branduolys skiriasi nuo „OS X“ ir „Windows“, nes jame yra tvarkyklės branduolio lygiu ir daugelis dalykų palaikomi „iš dėžutės“. Tikimės, kad šiek tiek daugiau sužinosite apie tai, kaip jūsų programinė įranga ir aparatūra veikia kartu ir kokie failai reikalingi norint paleisti kompiuterį.
Kernel.org
Vaizdas pagal ingridtaylar