Mikä on Linux-ydin ja mitä se tekee?

Sisällysluettelo:

Mikä on Linux-ydin ja mitä se tekee?
Mikä on Linux-ydin ja mitä se tekee?

Video: Mikä on Linux-ydin ja mitä se tekee?

Video: Mikä on Linux-ydin ja mitä se tekee?
Video: Lonely (short version) - YouTube 2024, Maaliskuu
Anonim
 Linux-ytimellä on yli 13 miljoonaa koodin riviä yksi suurimmista avoimen lähdekoodin hankkeista maailmassa, mutta mikä on ydin ja mihin sitä käytetään?
Linux-ytimellä on yli 13 miljoonaa koodin riviä yksi suurimmista avoimen lähdekoodin hankkeista maailmassa, mutta mikä on ydin ja mihin sitä käytetään?

Joten Mikä on ydin?

Järjestelmä on alhaisin helposti vaihdettavan ohjelmiston taso, joka liittää tietokoneesi laitteistoon. Sen tehtävänä on liittää kaikki sovellustekniikka, joka toimii "käyttäjäkäytössä" fyysiselle laitteistolle ja antaa prosesseille, joita kutsutaan palvelimiksi, saada tietoja toisiltaan prosessin välityksellä (IPC).

Erilaiset ytimet

Tietenkin on erilaisia tapoja rakentaa ydin ja arkkitehtoniset näkökohdat, kun rakennat yhden tyhjästä. Yleensä useimmat ytimet kuuluvat yhteen kolmesta tyypistä: monoliitti, mikrokerneli ja hybridi. Linux on monoliittinen ydin, kun taas OS X (XNU) ja Windows 7 käyttävät hybridisydämiä. Otetaan nopea kiertue kolmesta luokasta, jotta voimme mennä tarkemmin myöhemmin.

Image
Image

Kuvaaja: alavarttua popcornia

mikroytimen Microkernel ottaa lähestymistavan vain hallintaan, mitä sillä on: CPU, muisti ja IPC. Liian paljon kaikkea muuta tietokoneessa voidaan nähdä lisävarusteena ja sitä voidaan käsitellä käyttäjäkäytössä. Microkerneleillä on siirrettävyyden etu, koska niiden ei tarvitse huolehtia, jos muutat videokorttisi tai jopa käyttöjärjestelmääsi niin kauan kuin käyttöjärjestelmä yrittää edelleen käyttää laitteistoa samalla tavalla. Mikrokeskeleillä on myös hyvin pieni jalanjälki sekä muistille että asennuspaikalle, ja ne ovat yleensä turvallisempia, koska vain tiettyjä prosesseja käytetään käyttäjäkäytössä, jolla ei ole suuria käyttöoikeuksia esimiehenä.

Plussat

  • siirrettävyys
  • Pieni asennus jalanjälki
  • Pieni muistin jalanjälki
  • turvallisuus

Haittoja

  • Laitteisto on enemmän abstrakti kuljettajien kautta
  • Laitteisto saattaa reagoida hitaammin, koska ohjaimet ovat käyttötilassa
  • Prosessien on odotettava jonoon saadakseen tietoa
  • Prosessit eivät pääse käsiksi muihin prosesseihin odottamatta

Monoliittinen ydin Monoliittiset ytimet ovat mikrokernelien vastakohta, koska ne käsittävät paitsi CPU: n, muistin ja IPC: n, mutta ne sisältävät myös asioita kuten laiteohjaimet, tiedostojärjestelmän hallinta ja järjestelmäpalvelimen puhelut. Monoliittiset ytimet pyrkivät paremmin käyttämään laitteistoja ja monitoimityötä, koska jos ohjelma tarvitsee tietoja muistista tai muusta prosessista, sillä on suora linja päästäkseen siihen, eikä sen tarvitse odottaa jonoa saadakseen asiat päätökseen. Tämä voi kuitenkin aiheuttaa ongelmia, koska enemmän asioita, jotka toimivat valvojan tilassa, sitä enemmän asioita, jotka voivat heikentää järjestelmääsi, jos ei toimi oikein.

Plussat

  • Suorat pääsy laitteistoihin ohjelmille
  • Helppo prosessi kommunikoida toistensa välillä
  • Jos laitetta tuetaan, sen pitäisi toimia ilman lisäasennuksia
  • Prosessit reagoivat nopeammin, koska prosessoriin ei ole jonota

Haittoja

  • Suuri asennusjalusta
  • Suuri muistin jalanjälki
  • Vähemmän turvattu, koska kaikki toimii valvontatilassa
 Kuvan kautta schoschie on Flickr
Kuvan kautta schoschie on Flickr

Hybrid-ydin Hybridi-ytimillä on mahdollisuus valita ja valita, mitä he haluavat käyttää käyttäjäkäytössä ja mitä he haluavat suorittaa ohjaustilassa. Usein ajankohtaiset asiat, kuten laiteajurit ja tiedostojärjestelmän I / O, suoritetaan käyttäjätilassa, kun IPC ja palvelinkutsut säilytetään ohjaustilassa. Tämä antaa molempien maailmojen parhaat puolet, mutta vaatii usein laitteiston valmistajan enemmän työtä, koska kaikki kuljettajien vastuu riippuu niistä. Se voi myös olla joitakin latentio-ongelmia, jotka liittyvät mikrokerneleihin.

Plussat

  • Kehittäjä voi valita, mitä käytät käyttäjäkäytössä ja mikä toimii ohjaustilassa
  • Pienempi asennusjalusta kuin monoliittinen ydin
  • Joustavampi kuin muut mallit

Haittoja

  • Voidaan kärsiä samasta prosessin viivästä kuin mikrosydän
  • Laiteohjaimia on hallittava käyttäjän (tyypillisesti)

Missä ovat Linux-ytimen tiedostot?

Image
Image

Ubuntun ytimen tiedosto tallennetaan / boot-kansioosi ja sitä kutsutaan vmlinuz-versio. Nimi vmlinuz tulee unix-maailmasta, jossa he käyttivät puheenvuoronsa yksinkertaisesti "unixiksi" 60-luvulla, joten Linux alkoi soittaa ydinään "linux", kun se kehitettiin 90-luvulla.

Kun virtuaalimuistia kehitettiin helpottamaan monitoimityökykyä, "vm" asetettiin tiedoston etupuolelle osoittamaan, että ydin tukee virtuaalimuistia. Jonkin aikaa Linux-ydintä kutsuttiin vmlinuxiksi, mutta ydin kasvoi liian suureksi, jotta se sopisi käytettävissä olevaan käynnistysmuistiin, jolloin ytimen kuva pakattiin ja loppu x muutettiin z: ksi, jotta se osoittaisi sen pakattuiksi zlib-pakkauksella. Tätä samaa pakkausta ei aina käytetä, usein korvattu LZMA: lla tai BZIP2: lla ja joitakin ytimiä yksinkertaisesti kutsutaan zImageksi.

Versiomääritys on muodossa A.B.C.D jossa A.B on luultavasti 2.6, C on versio, ja D ilmaisee korjaustiedostoja tai korjauksia.

/ Boot-kansiossa on myös muita erittäin tärkeitä tiedostoja, joita kutsutaan initrd.img -versio, system.map-versio ja config-versio. Initrd-tiedostoa käytetään pienenä RAM-levynä, joka poistaa ja suorittaa varsinaisen ytimen tiedoston.System.map-tiedostoa käytetään muistihallinnassa ennen ytimen lataamista kokonaan ja konfigurointitiedosto kertoo ytimelle, mitä vaihtoehtoja ja moduuleita ladataan ytimen kuvaan, kun sitä kootaan.
/ Boot-kansiossa on myös muita erittäin tärkeitä tiedostoja, joita kutsutaan initrd.img -versio, system.map-versio ja config-versio. Initrd-tiedostoa käytetään pienenä RAM-levynä, joka poistaa ja suorittaa varsinaisen ytimen tiedoston.System.map-tiedostoa käytetään muistihallinnassa ennen ytimen lataamista kokonaan ja konfigurointitiedosto kertoo ytimelle, mitä vaihtoehtoja ja moduuleita ladataan ytimen kuvaan, kun sitä kootaan.

Linux-ytimen arkkitehtuuri

Koska Linux-ytimessä on monoliittinen, sillä on suurin jalanjälki ja monimutkaisuus verrattuna muihin ytimen tyyppeihin. Tämä oli design-ominaisuus, joka oli melko vähän keskustelua Linuxin alkuajoista ja sisältää edelleen joitain samankaltaisia suunnitteluvirheitä, joita monoliittiset ytimet ovat luontaisia.

Eräs asia, jota Linuxin ydinkehittäjät kehittivät näiden puutteiden korjaamiseksi, oli tehdä ytimen moduulit, jotka voidaan ladata ja purkaa ajon aikana, joten voit lisätä tai poistaa ytimen ominaisuuksia lennossa. Tämä voi mennä pidemmälle kuin vain lisäämällä laitteiston toiminnallisuutta ytimeen sisällyttämällä moduulit, jotka suorittavat palvelinprosesseja, kuten alhaisen tason virtualisoinnin, mutta se voi myös sallia koko ytimen korvaamisen tarvitsematta käynnistää tietokonetta joissakin tapauksissa.

Kuvittele, voisitko päivittää Windows-huoltopakettia tarvitsematta käynnistää uudelleen …

Ytimen moduulit

Entä jos Windowsilla olisi jo kaikki ajurit saatavilla jo asennettuna ja sinun tarvitsee vain käynnistää tarvittavat ohjaimet? Tämä on olennaisesti mitä ytimen moduulit tekevät Linuxille. Kernel-moduulit, jotka tunnetaan myös kuormitettavalle ytimen moduulina (LKM), ovat välttämättömiä, jotta ydin toimisi kaikkien laitteidesi kanssa käyttämättä kaikkia käytettävissä olevaa muistia.
Entä jos Windowsilla olisi jo kaikki ajurit saatavilla jo asennettuna ja sinun tarvitsee vain käynnistää tarvittavat ohjaimet? Tämä on olennaisesti mitä ytimen moduulit tekevät Linuxille. Kernel-moduulit, jotka tunnetaan myös kuormitettavalle ytimen moduulina (LKM), ovat välttämättömiä, jotta ydin toimisi kaikkien laitteidesi kanssa käyttämättä kaikkia käytettävissä olevaa muistia.

Moduuli lisää tyypillisesti peruskornin toimintoja esimerkiksi laitteisiin, tiedostojärjestelmiin ja järjestelmäpuheluihin. LKM: issä on tiedostopääte.ko ja ne tallennetaan tyypillisesti / lib / modules -hakemistoon. Modulaarisen luonteensa ansiosta voit helposti mukauttaa ydintäsi asettamalla moduulit ladataksesi tai lataamatta käynnistyksen aikana menuconfig-komennolla tai muokkaamalla / boot / config -tiedostoasi tai voit ladata ja purkaa moduleita lennossa modprobeilla komento.

Kolmannen osapuolen ja suljetun lähdemoduulin käytettävissä on joissakin jakeluissa, kuten Ubuntu, eikä niitä voi asentaa oletusarvoisesti, koska moduulien lähdekoodi ei ole käytettävissä. Ohjelmiston kehittäjä (toisin sanoen nVidia, ATI) ei tarjoa lähdekoodia vaan rakentaa omat moduulit ja koota tarvittavat.ko-tiedostot jakeluun. Vaikka nämä moduulit ovat vapaita, kuten olut, ne eivät ole ilmaisia kuten puheissa, joten jotkin jakelut eivät sisälly niihin, koska ylläpitäjät kokevat ytimen "rikkomatta" tarjoamalla ei-vapaita ohjelmistoja.

Järjestelmä ei ole taikuutta, mutta se on täysin välttämätöntä sille, että jokin tietokone toimii oikein. Linux-ytimessä on erilainen kuin OS X ja Windows, koska se sisältää ohjaimia ytimen tasolla ja tekee monia asioita tuettuna "ulos laatikosta". Toivottavasti tiedät hieman enemmän siitä, miten ohjelmisto ja laitteisto toimivat yhdessä ja mitä tiedostoja tietokoneen käynnistämiseen tarvitaan.

Kernel.org Kuvaaja: ingridtaylar

Suositeltava: