/ / Kas yra „Linux“ branduolys ir ką jis veikia?

Kas yra „Linux“ branduolys ir ką jis veikia?

vaizdas

Turėdamas daugiau nei 13 milijonų kodo eilučių, „Linux“ branduolys yra vienas didžiausių atvirojo kodo projektų pasaulyje, tačiau kas yra branduolys ir kam jis naudojamas?

Taigi, kas yra branduolys?

Branduolys yra žemiausias lengvai pasiekiamas lygiskeičiamą programinę įrangą, kuri sąsaja su kompiuterio aparatūra. Jis yra atsakingas už visų jūsų programų, veikiančių „vartotojo režimu“, sujungimą su fizine aparatine įranga ir leidimą procesams, vadinamiems serveriais, gauti informaciją vienas iš kito, naudojant tarpprocesinį ryšį (IPC).

Skirtingi branduolių tipai

Žinoma, yra įvairių būdų sukurtibranduolys ir architektūriniai sumetimai, statant vieną nuo nulio. Apskritai dauguma branduolių skirstomi į vieną iš trijų tipų: monolitinį, mikrokernelinį ir hibridinį. „Linux“ yra monolitinis branduolys, o OS X (XNU) ir „Windows 7“ naudoja hibridinius branduolius. Trumpai apžvelgsime tris kategorijas, kad vėliau galėtume išsamiau išsiaiškinti.


Paveikslėlis miesto popcorn

Mikrokernelis
Mikrokanalas vadovaujasi tik valdymuką ji turi: procesorius, atmintis ir IPC. Beveik visa kita kompiuteryje gali būti laikoma priedu ir gali būti tvarkoma vartotojo režimu. Mikrokanalai turi perkeliamumo pranašumą, nes jiems nereikia jaudintis, jei keičiate vaizdo plokštę ar net operacinę sistemą, kol operacinė sistema vis tiek bando pasiekti aparatūrą tuo pačiu būdu. Mikrokanalai taip pat turi labai mažą atminties ir diegimo vietos plotą, todėl jie yra saugesni, nes tik konkretūs procesai vykdomi vartotojo režimu, kuriam nėra aukštų privatumo režimo leidimų.

Argumentai už

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

Minusai

  • Techninė įranga yra labiau abstrahuojama per tvarkykles
  • Aparatinė įranga gali reaguoti lėčiau, nes tvarkyklės veikia vartotojo režimu
  • Norėdami gauti informacijos, procesai turi laukti eilėje
  • Procesai negali gauti prieigos prie kitų procesų nelaukdami

Monolitinis branduolys
Monolitiniai branduoliai yra priešingimikrokanalai, nes jie apima ne tik centrinį procesorių, atmintį ir IPC, bet taip pat apima tokius dalykus kaip įrenginių tvarkyklės, failų sistemos valdymas ir sistemos serverio skambučiai. Monolitiniai branduoliai linkę geriau naudotis aparatūra ir atlikti daugiafunkcinius uždavinius, nes jei programai reikia gauti informacijos iš atminties ar kito vykdomo proceso, ji turi tiesioginę prieigą prie jos ir nereikia laukti eilėje, kad viskas būtų atlikta. Tačiau tai gali sukelti problemų, nes kuo daugiau dalykų vykdoma prižiūrėtojo režimu, tuo daugiau dalykų gali sugadinti jūsų sistemą, jei jis netinkamai elgiasi.

Argumentai už

  • Daugiau tiesioginės prieigos prie programų aparatinės įrangos
  • Procesai palengvina tarpusavio ryšį
  • Jei jūsų įrenginys palaikomas, jis turėtų veikti be jokių 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ę atsirinkti irpasirinkti, ką jie nori paleisti vartotojo režimu ir ką nori paleisti prižiūrėtojo režimu. Dažnai tokie dalykai kaip įrenginių tvarkyklės ir failų sistemos I / O bus vykdomi vartotojo režimu, o IPC ir serverio skambučiai bus palaikomi prižiūrėtojo režimu. Tai suteikia geriausius iš abiejų pasaulių, tačiau dažnai reikės daugiau įrangos gamintojo darbo, nes visa vairuotojo atsakomybė tenka jiems. Tai taip pat gali turėti tam tikrų latentinio laikotarpio problemų, būdingų mikrokanalams.

Argumentai už

  • Kūrėjas gali pasirinkti, kas veikia vartotojo režimu, o kas veikia supervizoriaus režimu
  • Mažesnis nei monolitinis branduolys
  • Lankstesnis nei kiti modeliai

Minusai

  • Gali nukentėti nuo tokio paties proceso vėlavimo kaip ir mikrokernelis
  • Įrenginių tvarkykles turi valdyti vartotojas (paprastai)

Kur yra „Linux“ branduolio failai?

vaizdas

Branduolio failas Ubuntu yra saugomas aplanke / įkrova ir yra vadinamas vmlinuz-versija. Pavadinimas „vmlinuz“ kilo iš „unix“ pasaulio, kur jie branduolį vadino tiesiog „unix“ 60-aisiais, todėl „Linux“ pradėjo vadinti savo branduolį „linux“, kai jis pirmą kartą buvo sukurtas devintajame dešimtmetyje.

Kai virtualioji atmintis buvo sukurta lengviauDaugiafunkcinių užduočių atlikimas, failo priekyje buvo dedamas „vm“, kuris parodytų, kad branduolys palaiko virtualiąją atmintį. Kurį laiką „Linux“ branduolys buvo vadinamas vmlinux, tačiau branduolys išaugo per didelis, kad tilptų turimoje įkrovos atmintyje, todėl branduolio vaizdas buvo suglaudintas, o pabaiga x buvo pakeista į z, kad būtų parodyta, kad ji buvo suspausta su „zlib“ glaudinimu. Tas pats glaudinimas ne visada naudojamas, dažnai pakeičiamas LZMA ar BZIP2, o kai kurie branduoliai tiesiog vadinami „zImage“.

Versijos numeracija bus tokia forma: A.B.C.D, kur A.B tikriausiai bus 2,6, C bus jūsų versija, o D nurodo jūsų pataisas ar pataisymus.

Aplanke / įkrova bus ir kitųsvarbūs failai, vadinami initrd.img-version, system.map-version ir config-version. Initrd failas naudojamas kaip mažas RAM diskas, išgaunantis ir vykdantis tikrąjį branduolio failą. „System.map“ failas naudojamas atminties valdymui, kol branduolys visiškai neįsikrauna, o konfigūracijos failas nurodo branduoliui, kokias parinktis ir modulius įkelti į branduolio atvaizdą, kai jis bus kompiliuotas.

„Linux“ branduolio architektūra

Kadangi Linux branduolys yra monolitinis, jis turididžiausias pėdsakas ir sudėtingumas, palyginti su kitų rūšių branduoliais. Tai buvo dizaino bruožas, apie kurį ankstyvosiose „Linux“ dienomis buvo nemažai diskutuojama ir kuris vis dar turi tuos pačius dizaino trūkumus, kuriuos turi monolitiniai branduoliai.

Vienas dalykas, kurį padarė „Linux“ branduolio kūrėjaiapeiti šiuos trūkumus turėjo sudaryti branduolio modulius, kuriuos galima būtų įkelti ir iškrauti vykdant laiką, tai reiškia, kad jūs galite pridėti arba pašalinti savo branduolio funkcijas skraidydami. Tai gali būti ne tik techninės įrangos funkcijų pridėjimas prie branduolio, įtraukiant modulius, kurie palaiko serverio procesus, pavyzdžiui, žemo lygio virtualizaciją, bet tai taip pat gali leisti pakeisti visą branduolį nereikalaujant iš naujo paleisti kompiuterio kai kuriais atvejais.

Įsivaizduokite, jei galėtumėte atnaujinti „Windows“ pakeitimų paketą ir jums niekada nereikėtų iš naujo paleisti ...

Branduolio moduliai

vaizdas

Ką daryti, jei „Windows“ turėtų visas tvarkyklesjau įdiegta ir tereikėjo įjungti reikiamas tvarkykles? Iš esmės branduolio moduliai daro „Linux“. Branduolio moduliai, dar žinomi kaip įkeltas branduolio modulis (LKM), yra būtini norint išlaikyti branduolį veikiančią visa jūsų aparatine įranga, neišnaudojant visos turimos atminties.

Paprastai modulis prideda bazės funkcijųbranduolys tokiems dalykams kaip įrenginiai, failų sistemos ir sistemos skambučiai. LKM failo plėtinys yra .ko ir paprastai saugomi aplanke / lib / modules. Dėl jų modulinio pobūdžio galite lengvai tinkinti savo branduolį, nustatydami modulius įkelti arba neįkelti, paleisdami komandą menuconfig, arba redaguodami / boot / config failą, arba galite įkelti ir iškrauti modulius skraidydami su modprobe. komanda.

Trečiųjų šalių ir uždarojo šaltinio moduliai yrapasiekiama kai kuriuose paskirstymuose, pavyzdžiui, „Ubuntu“, ir gali būti neįdiegta pagal numatytuosius nustatymus, nes nėra modulių šaltinio kodo. Programinės įrangos kūrėjas (t. Y. „NVidia“, ATI, be kita ko) nepateikia šaltinio kodo, o sukuria savo modulius ir sukompiluoja reikalingus .ko failus. Nors šie moduliai yra nemokami, kaip ir aluje, jie nėra laisvi, kaip ir kalba, todėl nėra įtraukiami į kai kuriuos paskirstymus, nes prižiūrėtojai jaučia, kad jis „sugadina“ branduolį, teikdamas nemokamą programinę įrangą.

Branduolys nėra stebuklinga, bet jis yra visiškaibūtina bet kuriam tinkamai veikiančiam kompiuteriui. „Linux“ branduolys skiriasi nuo „OS X“ ir „Windows“, nes jame yra tvarkyklės branduolio lygyje ir daug dalykų palaikoma „iš dėžutės“. Tikimės, kad jūs sužinosite šiek tiek daugiau apie tai, kaip jūsų programinė ir aparatinė įranga veikia kartu ir kokius failus reikia norint paleisti kompiuterį.

Kernel.org
Paveikslėlis ingridtaylar