Erinevus lehekülje "Tuum ja Baas" redaktsioonide vahel
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 | + | 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
Sisukord
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