Kas yra "Linux" branduolys ir ką jis daro?

Turinys:

Kas yra "Linux" branduolys ir ką jis daro?
Kas yra "Linux" branduolys ir ką jis daro?

Video: Kas yra "Linux" branduolys ir ką jis daro?

Video: Kas yra
Video: How to Torrent Safely & Anonymously — Updated Guide 2023 - YouTube 2024, Balandis
Anonim
 "Linux" branduolys yra vienas didžiausių atvirojo kodo projektų pasaulyje, kuriame yra daugiau nei 13 milijonų kodų eilučių, bet kas yra branduolys ir kam jis naudojamas?
"Linux" branduolys yra vienas didžiausių atvirojo kodo projektų pasaulyje, kuriame yra daugiau nei 13 milijonų kodų eilučių, bet kas yra branduolys ir kam jis naudojamas?

Taigi, kas yra branduolys?

Branduolis 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).

Skirtingi branduolių tipai

Be abejo, esant skirtingoms baimėms kurti branduolį ir architektūrines aplinkybes, egzistuoja skirtingi būdai. 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
Image

Vaizdas pagal popkornas upėje

Mikrokernel Mikrokranelis laikosi požiūrio, kad valdoma tik tai, ką turi: procesorius, atmintis ir IPC. Dauguma visko kito kompiuterio gali būti laikomi priedu ir gali būti tvarkomi vartotojo režimu. Mikrokerneliai turi perkeliamumo pranašumą, nes jiems nereikia nerimauti, jei pakeisite 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.

  • Perkeliamumas
  • Mažas diegimo pėdsakas
  • Mažas atminties pėdsakas
  • Saugumas

Minusai

  • Aparatūra yra 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 negali pasiekti kitų procesų be laukimo

Monolitinis branduolys Monolitiniai branduoliai yra priešingai nei mikrokernelai, nes jie apima ne tik CPU, atminties ir IPC, bet ir tokie dalykai kaip įrenginių tvarkyklės, failų sistemos valdymas ir sistemos serverių 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 ji netinkamai elgiasi.

  • Daugiau tiesioginės prieigos prie programinės įrangos
  • Paprastesni tarpusavio ryšių procesai
  • Jei jūsų įrenginys palaikomas, jis neturėtų būti papildomas įrenginys
  • Procesai reaguoja greičiau, nes nėra procesoriaus laiko eilutės

Minusai

  • Didelis diegimo pėdsakas
  • Didelis atminties pėdsakas
  • Mažiau saugus, nes viskas veikia vadove režimu
 Vaizdas per schoschie "Flickr"
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 į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.

  • 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

Minusai

  • Ar kenčia nuo to paties proceso vėlavimo, kaip mikrokernelis
  • Įrenginių tvarkykles turi tvarkyti naudotojas (paprastai)

Kur yra "Linux" branduolio failai?

Image
Image

Failo branduolys Ubuntu yra saugomas jūsų / boot aplanke ir yra 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ų rodoma, 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.
Į / 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ė, kad apeitų šiuos trūkumus, buvo sukurti branduolio modulius, kuriuos galima įkelti ir iškrauti paleidimo metu, taigi jūs 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ą, net nereikės 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.
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 pagrindinio branduolio funkcijų, tokių kaip įrenginiai, failų sistemos ir sistemos skambučiai. LKM turi failo plėtinį.ko ir paprastai saugomi kataloge / lib / modules. Dėl modulinio pobūdžio galite lengvai pritaikyti savo branduolį, nustatydami modulius, kuriuos norite įkelti ar nekelti, paleisdami komandą menuconfig arba redaguodami / boot / config failą arba galite įkelti ir iškrauti modulius naudodami modprobe komanda

Trečiosios šalies ir uždaro šaltinio moduliai yra prieinami kai kuriuose platinimuose, pvz., Ubuntu, ir negali būti diegiami pagal nutylėjimą, nes modulių šaltinio kodas nėra prieinamas. 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 nėra magija, bet tai yra labai svarbu, 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 Vaizdas pagal ingridtaylar

Rekomenduojamas: