Erinevus lehekülje "Tuum ja Baas" redaktsioonide vahel

Allikas: Kuutõrvaja
90. rida: 90. rida:
  
 
====Tuuma kompileermine ja paigaldamine====
 
====Tuuma kompileermine ja paigaldamine====
 +
 +
Kompileerimiseks tuleb liikuda kaustapuus '''/usr/src'' alla
  
 
  make buildkernel KERNCONF=TUUM1
 
  make buildkernel KERNCONF=TUUM1
  make installkernek KERNCONF=TUUM1
+
  make installkernel KERNCONF=TUUM1
  
 
muutuja KERNCONF abil tohib defineerida tuumanime juba /etc/make.conf'i alla lihtsustades veelgi kompileerimist.
 
muutuja KERNCONF abil tohib defineerida tuumanime juba /etc/make.conf'i alla lihtsustades veelgi kompileerimist.

Redaktsioon: 6. juuli 2008, kell 22:20

Sissejuhatus

Tuum ja Baas

Linux distributsioonid, võtame näiteks ühe populaarseima, Fedora Core(võiksime sama hästi võtta ka Gentoo Linux'i), koosnevad kahest loogilisest üksusest: tuumast ja kasutajamaailmast. BSD operatsioonisüsteemid, näiteks FreeBSD, koosnevad kolmest loogilisest üksusest: tuumast, kasutajamaailmast ja kolmandate osapoolte tarkvarast.

BSD pere operatsioonisüsteemides arendatakse tuuma ja kasutajamaailma koos. Selline tsentraliseeritud arendus- ja ülesehitusmudel tagab mugava dokumenteerimisvõimaluse nii tuumale kui ka “userlandile” korraga. Kogu operatsioonisüsteemi lähtekood on saadav ühest kohast korraga(üle CVS süsteemi).

Linux'i tuuma ja seda osa mida BSD nimetab kasutajamaailmaks arendatakse eraldi. Distributsioon iseenesest koosneb tuumast ja kõigest muust mida konkreetse distro kokkupanijad oma maitse järgi vajalikuks peab. Kui sulle valmis Linuxi distributsioonid ei istu, paned kokku enda oma: kernel ühest kohast, kõik muu hädavajaliku otsid üle interneti kah ise kokku, iga asi ise kohast. Paindlik aga aeganõudev, selle pärast eelistataksegi valmis Linux distributsioone.

Kuna kriitilised BSD operatsioonisüsteemi osad on kokku koondatud ühte kohta, nende arendus toimub juba aastatega väljakujunenud standartite alusel ja on korralikult dokumenteeritud, siis on sellisele süsteemile üsna mugav teha ka turvaauditit. Näiteks OpenBSD, mis on just keskendudnud turvalisusele, auditeerib periooditi nii oma tuuma, kasutajamaailma ja ka kolmandate osapoolte porditud koodi.

Linux osas tegelevad tuuma ja kasutajamaailma kokku koondamisega distributsiooni koostajad. Linux tuuma arendus on hästi organiseeritud ja ka dokumenteeritud. Kurvem lugu on kasutajamaailmaga - oma distributsiooni RedHat vaevalt lubab algajate kirjutatud utiliite, kuid kogu kasutajamaailm on vaja internetist üles otsida, kontrollida et see oleks uusim, parandatud kood, leida korrektne dokumentatsioon(mis ei ole alati just lihtne). Turvaauditit teha kogu distributsioonile võib olla mõnetigi keerukam kui BSD operatsioonisüsteemide puhul. See selleks.

BSD pere operatsioonisüsteemide uuendamine on isegi algaja taseme jaoks mugav: CVS serverist lähtekood, vastavalt siis mis versiooni endale soovid, paar tundi kompileerimist ja ongi tuum koos kasutajamaailmaga uuendatud, või uuendad ainult tuuma, vastavalt oma maitsele. Variante ja optimeerimise võimalusi on palju.

BSD pere operatsioonisüsteemides on tuum koos kasutajamaailmaga(ehk siis operatsioonisüsteemi põhi) eraldatud rangelt kolmandate osapoolte tarkvarast. Näiteks asuvad /bin ja /sbin kataloogides ainult operatsioonisüsteemi failid, kui te soovite oma süsteemi näiteks Apache veebiserverit või KDE töökeskkonda, siis paigaldatakse kõik vajalikud failid väljaspoole süsteemi ala, FreeBSD puhul /usr/local/bin jne, NetBSD kasutajatel /usr/pkg/bin. Eraldatud pole mitte ainult binaarfailid vaid ka /etc, /share /var jne.

Linux'i distributsioonide uuendamine toimub vastavalt igale distrole erinevalt, Gentoo eelistab enamjaolt kõike ise kompileerida, RedHat, Suse, Debian pakuvad juba valmis binaarkujul pakke kuid igaühe uuendamissüsteem on küllaltki omalaadne ja distrode vahel liikumine nõuab mõningat harjumist. Vanemad RedHat Linux'i kasutajad mäletavad veel ehk kunagist “rpm hell'i”.


FreeBSD uuendamine

FreeBSD uuendamiseks tuleb uuesti kompileerida kokku nii baas kui tuum. Sourcest saab tõmmata lihtsate vahenditega nii kõige viimase release kui ka veel arenduses olevaid versioone. FreeBSD võimaldab ka käigult kompileerida näiteks FreeBSD versioo 6 ümber versioon 7'meks. Ei tasuks ainult uuendamisel ühte versiooni vahele jätta näiteks üritada versioon 4 kompileerida kohe versiooniks 7 vaid esimesena versiooniks 5 ja siis 6 ning seejärel 7 alles. Sellise uuendamise teeb võimalikuks see ,et kõik kolmanda osapoole tarkvara paigaldatakse kausta /usr/local ja baas ning kernel on monoliitne ühtne bsd arendusmeeskonna poolt loodav. Selline võimalus teeb lihtsaks FreeBSD käigupealt uuendamise.

Koodi hankimine

FreeBSD 6x ja 7x sees on juba olemas käsk csup nii ,et ei pea enam cvsup-without-gui hakkama installima piisab kui teha cvsup fail nimega (nimi võib olla tahes milline) 7-sup ja sisuga

*default host=cvsup.eenet.ee
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_7
src-all

Ja anda käsk

csup 7-sup

Tuum

Operatsioonisüsteemi tuum laetakse mällu peale arvuti käivitamist esimesena ning tema ülesanne on vahendada füüsilisi seadmeid operatsioonisüsteemi programmidele.

Vajadus uue tuuma järele tekib tavaliselt siis, kui

  • soovite eemaldada või lisada olemasolevasse tuuma mõne seadme toetust, näiteks PS2 hiirt
  • soovite eemaldada või lisada tuuma teatud funktsioone, näiteks toetust IP pakettide filtreerimiseks

FreeBSD tuuma juurde kuuluvad samuti moodulid mis vaikimisi tekitatakse igakordsel tuuma paigaldamisel kataloogi /modules. Lähtetekstid

FreeBSD tuuma lähtetekstid tulevad koos reliisiga kaasa ja neid ei avaldata reliiside vahel sarnaselt näiteks Linuxi tuumale.

Konfigureerimine

Enne lähtetekstidest tuuma kompileerimist peab näitama, milliste omadustega tulemust soovitakse saada. Seda tehakse ühe tekstifaili sisu redigeerides.

Kerneli seadistusfail asub kaustas /usr/src/sys/arhidektuurinimi/conf nimega GENERIC näiteks 64 bitine kernelifail asub

/usr/src/sys/amd64/conf/GENERIC

Sisenege kataloogi /usr/src/sys/amd64/conf ning kopeerige meelepärase nime alla tuuma näidiskonfiguratsioonifail GENERIC

bash# cp GENERIC TUUM1

Tuuma nimi kirjutatakse traditsiooniliselt suurte tähtedega. Tuuma konfiguratsioonifaili süntaks on traditsiooniline, trellist (#) paremale jäävat teksti ja tühje ridu ignoreeritakse. Teistel ridadel on parameetrid ja nende väärtused süstaksiga

parameeter väärtus1 [väärtus2]

näiteks selline rida konfigureerib tuuma ISO9660 standardile vastavate CD-plaatide lugemise toetuse

options 	CD9660

aga rida

options    SMP  

lisab mitmeprotsessori toe

Samas kataloogis asuv fail LINT sisaldab kõikvõimalikke parameetreid koos kommentaaridega. Eriliste vajaduste puhul tasub seda faili uurida.


Tuuma kompileermine ja paigaldamine

Kompileerimiseks tuleb liikuda kaustapuus '/usr/src alla

make buildkernel KERNCONF=TUUM1
make installkernel KERNCONF=TUUM1

muutuja KERNCONF abil tohib defineerida tuumanime juba /etc/make.conf'i alla lihtsustades veelgi kompileerimist.

Olles installeerinud uue kerneli jäetakse ka eelmine kernel nime alla /kernel.old alles. Vana saate kasutada katkestades bootimise ja andes käsu

config> boot /kernel.old 

Samas kirjutatakse kernel.old igakord uuesti yle nii ,et tasuks siiski teha erineva nimealla eelnevast kernelist varukoopja

cd /boot
cp -r kernel.old kernel.generic

Ning boodil tuleb anda käsud.

unload
config>boot /boot/kernel.generic/kernel

Systeemi kompileerimine ja paigaldamine

seejärel siseneda kausta /usr/src ja anda käsud

make buildworld

ning kui need käsud läksid veatult läbi siis

make installworld

ja kõige viimasena kataloogis /etc paiknevate konfiguratsioonifailide võrdlemine ja uuenenute asendamine.

mergemaster

Selle käsu väljundit ja küsimusi tuleks hoolikalt jälgida sest mergemaster võib tahta kirjutada üle faile milledes võib leiduda väärtuslikke seadistusi.

Moodulid

Tuuma modulaarsuse põhjuseks on see, et parasjagu mitteoluline kood poleks arvuti mällu laetud ja ei raiskaks süsteemi ressurssi. Moodulid asuvad kataloogis /boot/kernel ja nendega manipuleerimine toimub järgmiste programmidega:

kldstat - kuvatakse nimekiri kernelisse laetud moodulites 
kldload nimi - moodul laetakse mällu 
kldunload nimi - moodul eemaldatakse mälust 


© EENet 2008