5Aug
Su daugiau nei 13 milijonų kodų eilučių, "Linux" branduolys yra vienas didžiausių atvirojo kodo projektų pasaulyje, bet kas yra branduolys ir kam jis naudojamas?
Taigi, kas yra branduolys?
A branduolys yra mažiausias lengvai keičiamos programinės įrangos, sujungtos su jūsų kompiuteryje esančia aparatine įranga, lygis. Ji yra atsakinga už visų programų, kurios veikia "vartotojo režimu", sąsaja su fizine aparatine įranga ir leidžiama procesams, vadinamiems serveriais, gauti informaciją iš vienos kitos naudojant tarpusavio ryšius( IPC).
Skirtingų branduolių tipai
Yra, žinoma, skirtingi būdai sukurti branduolį ir architektūrinius aspektus, kai pastatyti vieną iš nulio. Paprastai dauguma branduolių patenka į vieną iš trijų rūšių: monolitinį, mikrokranelį ir hibridą.Linux yra monolitinis branduolys, o OS X( XNU) ir Windows 7 naudoja hibridinius branduolius. Paimkime greitą trijų kategorijų kelionę, kad vėliau galėtume išsamiau aptarti.
Image by upscale popcorn
Mikrokernel
Mikrokernelė naudoja tik tai, ką jis turi valdyti: procesoriaus, atminties ir IPC.Gana daug kas kito kompiuteryje gali būti laikoma priedu ir gali būti tvarkoma vartotojo režimu. Mikrokerneliai turi perkeliamumo pranašumą, nes jiems nereikia nerimauti, jei pakeisite savo vaizdo plokštę ar net savo operacinę sistemą tol, kol operacinė sistema vis tiek stengiasi naudotis tokia pat aparatine įranga. Mikrokerneliai taip pat turi labai mažą pėdsaką tiek atminties, tiek vietos nustatymui, ir jie linkę būti saugesni, nes tik tam tikri procesai vykdomi naudotojo režime, kuris neturi didelio leidimo, kaip prižiūrėtojo režimas.
Pros
- Perkeliamumas
- Mažas diegimo pėdsakas
- Mažos atminties pėdsakas
- Apsauga
Suvart
- Aparatūra daugiau ištraukiama per tvarkykles
- Aparatūra gali reaguoti lėčiau, nes tvarkyklės yra vartotojo režime
- Procesai turi laukti eilėje gauti informaciją
- Procesai negaligauti prieigą prie kitų procesų laukdami
monolitinio branduolio
Monolitiniai branduoliai yra priešingai nei mikrokerneliai, nes jie apima ne tik procesoriaus, atminties ir IPC, bet ir tokius dalykus kaip įrenginių tvarkyklės, failų sistemos valdymas ir sistemos serverio skambučiai. Monolitiniai branduoliai linkę geriau naudotis aparatine įranga ir daugiafunkciais veiksmais, nes jei programa turi gauti informaciją iš atminties arba kitą procesą, jis turi daugiau tiesioginės linijos, kad galėtų ją pasiekti ir nereikia laukti eilėje, kad įvykiai būtų padaryti. Tačiau tai gali sukelti problemų, nes daugiau dalykų, kurie veikia vadove režimu, tuo daugiau dalykų, kurie gali sumažinti jūsų sistemą, jei jis netinkamai elgiasi.
Pros
- Daugiau tiesioginės prieigos prie aparatūros programoms
- Lengviau tarpusavyje bendrauti tarpusavyje
- Jei jūsų įrenginys palaikomas, jis neturėtų dirbti be jokių papildomų įrenginių.
- procesai reaguoja greičiau, nes nėra procesoriaus eilės
Cons
- didelisįdiegti pėdsaką
- Didelis atminties pėdsakas
- Mažiau saugus, nes viskas veikia vadovo režime
vaizdas per schoschie "Flickr"
Hybrid Kernel
Hybrid branduoliai turi galimybę pasirinkti ir pasirinkti, ką jie nori paleisti vartotojo režimu ir ką jie nori paleisti į supervisorrežimasDažnai tokie dalykai kaip įrenginių tvarkyklės ir failų sistemos įvestis / išvestis bus paleisti vartotojo režimu, o IPC ir serverio skambučiai bus laikomi priežiūros režime. Tai suteikia geriausio abiejų pasaulių, tačiau dažnai reikės daugiau aparatūros gamintojo darbo, nes visa vairuotojo atsakomybė priklauso nuo jų.Tai taip pat gali turėti tam tikrų latentinių problemų, kurios būdingos mikrokernelams.
Pros
- Kūrėjas gali pasirinkti ir pasirinkti, kas vyksta vartotojo režimu ir kas vyksta prižiūrėtojo režime
- Mažesnis įdiegimo pėdsakas nei monolitinis branduolys
- Lankstesnis nei kiti modeliai
Suvart
- Gali kenkti nuo to paties proceso vėlavimo, kai mikrokeru
- . Įrenginio tvarkykles reikia tvarkyti vartotojo( paprastai)
Kur yra Linux branduolio failai?
Branduolio failas Ubuntu yra saugomas jūsų / boot aplanke ir vadinamas vmlinuz- versija .Pavadinimas vmlinuz kilęs iš Unix pasaulio, kur 60-tieji metai savo "branduolių" vardu vadinosi "unix", taigi Linux pradėjo skambinti jų branduoliui "linux", kai jis pirmą kartą buvo sukurtas 90-tieji metai.
Kai buvo sukurta virtualioji atmintis, kad būtų lengviau atlikti daugiafunkcinius gebėjimus, failo priekyje buvo įdėta "vm", rodanti, kad branduolys palaiko virtualią atmintį.Vienu metu Linux branduolys buvo vadinamas vmlinux, bet branduolys peraugo, kad tilptų į laisvą įkrovos atmintį, taigi branduolio vaizdas buvo suspaustas, o pabaigos x buvo pakeistas į z, kad būtų parodyta, kad jis buvo suspaustas naudojant zlib kompresiją.Tas pats suspaudimas ne visada naudojamas, dažnai pakeičiamas LZMA ar BZIP2, o kai kurie branduoliai yra vadinami zImage.
Versijos numeracija bus formatu A.B.C.D, kur A.B tikriausiai bus 2.6, C bus jūsų versija, o D nurodo jūsų pataisymus ar pataisymus.
Į / boot aplanke taip pat bus kitų labai svarbių failų, vadinamų initrd.img-versija, system.map-versija ir config-versija. Initrd failas yra naudojamas kaip mažas RAM diskas, kuris ištraukia ir vykdo tikrąjį branduolio failą.System.map failas yra naudojamas atminties valdymui, kol branduolys visiškai įkeliamas, o konfigūracijos failas nurodo branduoliui, kokias parinktis ir modulius įkelti į branduolio vaizdą, kai jis yra renkamas.
Linux branduolio architektūra
Kadangi Linux branduolys yra monolitinis, jis turi didžiausią pėdsaką ir sudėtingumą kitų tipų branduoliuose. Tai buvo dizaino ypatybė, kuria buvo gana daug diskusijų pirmosiomis "Linux" dienomis ir vis dar atlieka vienodus dizaino trūkumus, dėl kurių monolitiniai branduoliai būdingi.
Vienas dalykas, kurį Linux branduolio kūrėjai padarė siekdami išspręsti šiuos trūkumus, buvo sukurti branduolio modulius, kuriuos galima įkelti ir iškrauti paleidžiant, tai reiškia, kad galite pridėti ar pašalinti savo branduolio funkcijas skraidydami. Tai gali apimti ne tik pridėtinę branduolio įrangos funkcionalumą, įtraukiant modulius, kuriuose veikia serverio procesai, pavyzdžiui, žemo lygio virtualizavimas, bet taip pat gali pakeisti visą branduolį, kai kuriais atvejais nereikės iš naujo paleisti kompiuterio.
Įsivaizduokite, ar galite atnaujinti į "Windows" pakeitimų paketą, nereikalaujant iš naujo paleisti. ..
branduolio moduliai
Ką daryti, jei "Windows" jau įdiegė visus tvarkykles, ir jums reikėjo įjungti reikalingus tvarkykles? Tai iš esmės yra tai, ką branduolio moduliai daro "Linux".Branduolio moduliai, taip pat žinomi kaip įkeliamo branduolio modulis( LKM), yra būtini, kad branduolys veiktų su visa jūsų aparatine įranga, nenaudojant visos laisvos atminties.
Modulis paprastai prideda prie bazinio branduolio funkcijų, pavyzdžiui, įrenginius, failų sistemas ir sistemos skambučius. LKM turi failo plėtinį. ko ir paprastai saugomi /lib/ modulių kataloge. Dėl modulinio pobūdžio galite lengvai pritaikyti savo branduolį, nustatydami modulius, kuriuos norite įkelti ar nekelti, paleisdami komandą menuconfig arba redaguodami /boot/ konfigūracijos failą, galite modulius įkelti ir iškrauti naudodami komandą modprobe.
trečiųjų šalių ir uždarojo šaltinio moduliai yra prieinami kai kuriuose platinimuose, pvz., Ubuntu, ir negali būti diegiami pagal nutylėjimą, nes modulių šaltinio kodas nėra. Programinės įrangos kūrėjas( t. Y. NVidia, ATI, be kita ko) neteikia šaltinio kodo, o kuria savo modulius ir renka reikalingus. ko failus platinimui. Nors šie moduliai yra laisvi, kaip ir alui, jie nėra laisvi kaip kalboje ir todėl nėra įtraukti kai kurie paskirstymo, nes palaikytojai jaustųsi, kad "branduolį" "užkerkšta", suteikiant nemokamą programinę įrangą.
Branduolys yra ne magija, bet visiškai būtina, kad bet kuris kompiuteris veiktų tinkamai. Linux branduolys skiriasi nuo OS X ir Windows, nes jame yra tvarkyklių branduolio lygis ir daugelis dalykų palaikomi "iš lauko".Tikimės, kad sužinosite šiek tiek daugiau apie tai, kaip jūsų programinė ir techninė įranga veikia kartu ir kokie failai jums reikia paleisti kompiuterį.
Kernel.org
Image by ingridtaylar