Muokataan sivua Usein kysyttyjä kysymyksiä ytimestä

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
== Miksi muistia on niin vähän vapaana? ==
= Kernel - Usein kysyttyjä kysymyksiä =
"<tt>[[top]]</tt> näyttää, että muistia ei ole vapaana kuin muutamia megatavuja - mistä on kyse?" Muistista on eniten hyötyä, kun sitä käytetään. Ydin käyttää prosesseilta varaamatta jääneen vapaan muistin välimuistiksi, eli pitää siellä tiedostoja joita se on hiljattain [[tiedostojärjestelmä]]medialta lukenut. Välimuistiksi käytetty muisti on nopeasti vapautettavissa prosesseille, jos niiden muistintarve kasvaa. Niin kauan kun muistia ei tarvita, se kannattaa käyttää välimuistiksi jolloin se nopeuttaa järjestelmän toimintaa, aina kun samoja tiedostoja tarvitaan uudestaan. Kannattaakin siis tarkkailla ennemmin <tt>top</tt>-listauksen ''cached''- kuin ''free''-kenttää kun miettii paljonko muistia on vapaana.


== Kuinka ydin käännetään? ==
== Miksi 1 GiB:n muistista jää osa käyttämättä? ==
Lue ohjeet [[ytimen kääntämiseen]] lähdekoodista.


{{vanhentunut}}
Tarkempi kuvaus ongelman syistä ja ratkaisuista löytyy mm. artikkelista [http://groups-beta.google.com/group/cn.bbs.comp.unix.development.kernel/browse_thread/thread/ae812c4736d7aa10/0d1cc7cecaf6671d?q=linux+kernel+ram+896+arcangeli&rnum=1&hl=en&fwc=1 High Memory in the Linux Kernel]. Ytimen versiosta 2.6.16 alkaen on mahdollista käyttää ratkaisua, jossa muutetaan kernelin muistinjakoa, jolloin ei tarvitse vielä turvautua highmem-tukeen, joka tuo oman overheadinsä. Vanhemmille ytimille tarvittava patch löytyy mm. [http://members.optusnet.com.au/ckolivas/kernel/ Con Kolivasin seteistä].
Muisti voidaan jakaa neljällä eri tavalla:


== Miksi gigatavun muistista jää osa käyttämättä? ==
  * 3G/1G - vanha tapa, jossa muistia käytetään n. 896 MiB.
[[Prosessi]]n muistiavaruus on jaettu kahteen osaan, joista yksi osa on varattu vain [[ydin|ytimen]] käyttöön. 32-bittisiä osoitteita käyttävässä koneessa osoiteavaruuden koko on 4 gigatavua (4 GiB), joista perinteisesti ylin 1 GiB on ollut varattuna ytimelle ja loput 3 GiB prosessissa suoritettavan sovelluksen käytössä. Ytimelle varatussa osassa on kuvattuna koko fyysinen RAM-muisti &mdash; tämän lisäksi ydin tarvitsee 128 MiB:n osoiteavaruuden mm. ytimen sisäisen vmalloc-funktion käyttöön. Tämä ei ollut ongelma niin kauan kuin tietokoneiden muistin koko oli alle tuon 1 gigatavun, mutta muistin määrän kasvaessa on tullut tarve kasvattaa ytimelle varatun osuuden kokoa (tai keksiä jokin toinen ratkaisu ongelmalle).
  * 3G/1G - Jako koneille, joissa on tasan 1 GiB muistia.
 
  * 2G/2G - Jako koneille, joissa on tasan 2 GiB muistia.
Tarkempi kuvaus ongelman syistä ja ratkaisuista löytyy mm. artikkelista [http://groups-beta.google.com/group/cn.bbs.comp.unix.development.kernel/browse_thread/thread/ae812c4736d7aa10/0d1cc7cecaf6671d?q=linux+kernel+ram+896+arcangeli&rnum=1&hl=en&fwc=1 High Memory in the Linux Kernel]. Ytimen versiosta 2.6.16 alkaen on mahdollista käyttää ratkaisua, jossa muutetaan kernelin muistinjakoa, jolloin ei tarvitse vielä turvautua highmem-tukeen, joka tuo oman overheadinsä. Vanhemmille ytimille tarvittava patch löytyy mm. [http://members.optusnet.com.au/ckolivas/kernel/ Con Kolivasin seteistä].
  * 1G/3G - Jako koneille, joissa on tasan 3 GiB muistia.
Muisti voidaan jakaa viidellä eri tavalla:


{|cellpadding="5" cellspacing="0" border="1"
Haittapuoli esimerkiksi 2G/2G jaosta on se, että user space virtuaalimuistiavaruus (prosessin maksimikoko) on enää 2 GiB entisen reilun 3GiB:n sijasta. Tämä estää esimerkiksi [[wine|winen]] toiminnan ja saattaa haitata prosesseja, jotka käyttävät matalan tason muistinhallintaa. Useimpia tämä ei kuitenkaan haittaa.
!Ytimen konfigurointioptio
!Muistia käytössä
|-
|3G/1G user/kernel split||vanha tapa, jossa muistista hyödynnetään korkeintaan 1 GiB - 128 MiB
|-
|3G/1G user/kernel split (for full 1G low memory)||1 GiB täysin käytössä
|-
|2G/2G user/kernel split||muistista hyödynnetään korkeintaan 2 GiB - 128 MiB
|-
|2G/2G user/kernel split (for full 2G low memory)||2 GiB täysin käytössä
|-
|1G/3G user/kernel split||muistista hyödynnetään korkeintaan 3 GiB - 128 MiB
|}


Haittapuoli esimerkiksi 2G/2G jaosta on se, että user space virtuaalimuistiavaruus (prosessin maksimikoko) on enää 2 GiB entisen 3 GiB:n sijasta. Tämä estää esimerkiksi [[wine|winen]] toiminnan ja saattaa haitata prosesseja, jotka käyttävät matalan tason muistinhallintaa. Useimpia ohjelmia tämä ei kuitenkaan haittaa.
== Patchsetit (eli korjauspaketit) ==


Jos koneessa on enemmän kuin 2 GiB muistia ja 64-bittinen prosessori, on suositeltavaa käyttää 64-bittistä versiota Linuxista, jossa yllä kuvattuja ongelmia ei ole.
Yleisimpiä patchsettejä ovat mm. <br>
<br>
- mm (Andrew Mortonin kokeellinen patchset, tässä testataan paljon asioita)<br>
- ac (Alan Coxin patchset, RedHat tuntuu käyttävän näitä osina paketointiaan)<br>
- xx-git (tarkoittaa että paketti on git paketoinnista)<br>
- xx-pre (prerelease-versio)<br>
- xx-rc (release candicate versio)<br><br>


==Muutospaketit (engl. ''patchset'')==
Nämä yleisimmät patchsetit löydät suoraan [http://www.kernel.org kernel.org]:ista.


Yleisimpiä muutospaketteja ovat mm.
- [http://iphitus.loudas.com/archck.php beyond] ("archck, nitro")<br>
- [http://members.optusnet.com.au/ckolivas/kernel/ ck] (Con Kolivasin patchset, panostaa työpöytäkäytön vasteaikoihin). Ei kehitetä enää.<br>
- [http://sourceforge.net/projects/wolk WOLK] (WOLK patchset lisää monia pätsejä monista projekteista. Se tähtää vakauteen, skaalautuvuuteen, suorituskykyyn, ja erityisesti turvallisuuteen. Tosin kehitystyö on näköjään loppunut kokonaan.)<br>


* mm (Andrew Mortonin kokeellinen patchset, tässä testataan paljon asioita)
Vanilla on peruskerneli, eli tarkoittaa Linus Torvaldsin kernel-paketointia.
* ac (Alan Coxin patchset, RedHat tuntuu käyttävän näitä osina paketointiaan)
* xx-git (tarkoittaa että paketti on git paketoinnista)
* xx-pre (prerelease-versio)
* xx-rc (release candicate versio)


Nämä yleisimmät muutospaketit löydät suoraan [http://www.kernel.org kernel.org]:ista. Vanilla on peruskerneli, eli tarkoittaa kernel.orgin virallista versiota. Korjauspaketeilla pyritään korjaamaan tai säätämään jotain kernelin ominaisuutta, esimerkiksi laitetukea tai vasteaikaa. Isommat patchsetit yleensä lisäävät paljon ominaisuuksia.
Korjauspaketeilla pyritään korjaamaan tai säätämään jotain kernelin ominaisuutta,  
esimerkiksi laitetukea tai vasteaikaa. Isommat patchsetit yleensä lisäävät paljon ominaisuuksia.


Korjauspaketti asennetaan komennolla  
Korjauspaketti asennetaan komennolla  
Rivi 50: Rivi 40:
== Miten vältät yleisimmät ongelmat käynnistyksen yhteydessä ==
== Miten vältät yleisimmät ongelmat käynnistyksen yhteydessä ==


Parametri acpi=off voi auttaa bugisen ACPI-toteutuksen kiertämiseen.
Parametri acpi=off voi auttaa bugiseen ACPI-toteutuksen kiertämiseen.


Parametria init=/bin/sh voi käyttää salasanan vaihtoon.
Parametria init=/bin/sh voi käyttää salasanan vaihtoon.


Parametrillä vga=xxx voidaan määritellä framebuffer tilan resoluutio.
Parametrillä vga=xxx voidaan määritellä framebuffer tilan resoluutio.
== Kuinka kernel käännetään? ==
[[Kernelin kääntäminen]] on ohjeistettuna tässä wikissä.
== Kysy jotain? ==


[[Luokka:Järjestelmä]]
[[Luokka:Järjestelmä]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)

Tällä sivulla käytetty malline: