A konfigurációs állomány
általános formátuma igen egyszerű.
Minden sor tartalmaz egy kulcsszót és egy vagy
több paramétert. A további
egyszerűsítés kedvéért a
legtöbb sor csak egyetlen paramétert tartalmaz.
Bármi, ami egy #
(kettőskereszt)
jelet követ, megjegyzésnek minősül és
nem számít konfigurációs elemnek. A
most következő részek bemutatják az egyes
kulcsszavakat abban a sorrendben, ahogy azokat a
GENERIC
állományban is
megtalálhatjuk. Az
architektúrafüggő opciók és
eszközök teljes listáját a
GENERIC
állománnyal egy
könyvtárban levő NOTES
állományban találhatjuk meg. Az
architektúrától független
opciókat a /usr/src/sys/conf/NOTES
állományban találjuk.
A FreeBSD 5.0 megjelenése óta a
konfigurációs állományokban
használható az include
direktíva. Ennek segítségével egy
másik konfigurációs állomány
tartalma logikailag beilleszthető az aktuálisba,
így könnyebbé válik egy már
meglevő állományhoz tartozó kisebb
mennyiségű változtatás
karbantartása. Például ha csupán
pár egyszerű kiegészítést
szeretnénk hozzáadni a
GENERIC
rendszermaghoz, akkor elegendő
a hozzá vett eltéréseket
nyilvántartanunk egy külön
konfigurációs állományban:
Valószínűleg sok rendszergazda
számára jelentős előnyt jelent ez a
megoldás a konfigurációs
állományok korábbról már
megszokott újraírásával szemben: a
helyi konfigurációs állomány csak a
GENERIC
rendszermag helyi rendszerre
vonatkozó eltéréseit tartalmazza. Így
amikor frissítjük a rendszerünket, a
GENERIC
rendszermag összes
újítása elérhetővé
válik, kivéve ha explicit módon le nem
tiltottuk ezeket a noptions
vagy a
nodevice
megadásával. A fejezet
további részében egy átlagos
konfigurációs állománnyal fogunk
foglalkozni, mind a beállítások, mind pedig
az eszközök tekintetében.
Ha olyan állományt akarunk
készíteni, amely tartalmazza az összes
lehetséges opciót, például
teszteléshez, futtassuk le root
felhasználóként az alábbi
parancsot:
#
cd /usr/src/sys/i386
/conf && make LINT
Itt a GENERIC
rendszermag-konfigurációs állomány
ismertetése következik, az
érthetőség kedvéért
helyenként megjegyzésekkel kibővítve. A
bemutatott állománynak majdnem pontosan meg kell
egyeznie a rendszerünkben található
/usr/src/sys/
állománnyal.i386
/conf/GENERIC
A számítógépünk
architektúráját adja meg. A
következők valamelyikének kell lennie:
alpha
, amd64
,
i386
, ia64
,
pc98
, powerpc
, vagy
sparc64
.
A fenti beállítás
segítségével megadhatjuk, milyen
típusú processzor található a
számítógépünkben. Több
ilyen sorunk is lehet (ha például nem lennénk
biztosak benne, hogy az I586_CPU
vagy
I686_CPU
értéket kellene
megadnunk), de a saját rendszermagunk
összeállításához érdemes
csak egyet meghagynunk. Ha nem ismerjük pontosan a
processzorunk típusát, vessünk egy
pillantást a /var/run/dmesg.boot
állományra és keressük ki
belőle.
Ez a rendszermag azonosítója.
Változtassuk meg rendszermagunk nevére, legyen
például
, ha a
korábbi utasításokat követtük. Az
SAJAT
ident
után írt sztring fog
megjelenni a rendszermag neve mellett a rendszer
indítása során, ezért fontos, hogy az
új rendszermagunknak más nevet adjunk, ha meg
akarjuk különböztetni az általában
használttól (például egy
tesztelésre szánt rendszermagot akarunk
készíteni).
A device.hints(5) használható az
eszközmeghajtók
beállítására. A loader(8) a
rendszer indítása során
alapértelmezés szerint a
/boot/device.hints
állományt
olvassa be erre a célra. A hints
beállítás használatával ezeket
a „hinteket” statikusan bele tudjuk
építeni a rendszermagba. Ebben az esetben nincs
szükségünk külön
device.hints
állomány
létrehozására a /boot
könyvtárban.
A FreeBSD hagyományos fordításának
folyamata során a rendszermagot a -g
használatával készítjük el,
aminek köszönhetően hibakeresési
információkat tudunk átadni a gcc(1)
fordítónak.
A FreeBSD alapértelmezett rendszerütemezője. Ne változtassuk meg!
Ha engedélyezzük, a rendszermagban futó szálakat meg tudják szakítani más, magasabb prioritású szálak. Ez segít növelni a rendszer válaszadási sebességét és csökkenti a megszakításokat kezelő szálak várakozását.
A hálózatkezelés támogatása. Ne töröljük ki, még akkor sem, ha nem tervezzük hálózatra kapcsolni a rendszert. Sok programnak szüksége van legalább az ún. loopback típusú hálózat támogatására (vagyis a számítógépünkön belüli hálózati kapcsolatokra), ezért ez feltétlenül kötelező!
Engedélyezi az IPv6 kommunikációs protokollok használatát.
Ez a legalapvetőbb merevlemezes állományrendszer. Hagyjuk meg, ha merevlemezről akarjuk indítani a rendszerünket.
Ez a beállítás engedélyezi a
rendszermagban a Soft Updates használatát, amely
segít felgyorsítani a lemez írási
sebességét. Ha már a rendszermag ezt a
funkcionalitást ismeri, akkor még külön az
egyes lemezeken is engedélyezni kell. Nézzük
meg a mount(8) kimenetét, hogy lássuk, a
rendszerünkben levő lemezek közül melyiken van
ténylegesen engedélyezve a Soft Updates
használata. Ha nem látjuk benne sehol sem a
soft-updates
opciót, akkor azt
(meglevő állományrendszerek esetén) a
tunefs(8) vagy (új állományrendszerek
esetén) a newfs(8) parancsokkal tudjuk
bekapcsolni.
Ezzel a beállítással engedélyezhetjük a rendszermagban a hozzáférés-vezérlési listák támogatását. Ez a kiterjesztett attribútumok és az UFS2 használatára támaszkodik. Ezt a lehetőséget részleteiben a 14.12. szakasz - Az állományrendszerek hozzáféréseit vezérlő listákban tárgyaljuk. Az ACL alapértelmezés szerint támogatott, és ha korábban már használtuk, akkor semmiképpen se kapcsoljuk ki, mert ezzel az eddig létrehozott hozzáférés-vezérlési listáink érvénytelenné, az állományaink pedig védtelenné válnak.
Ezzel a beállítással némi memória feláldozása árán fel tudjuk gyorsítani a nagyobb könyvtárakon végzett lemezműveletek sebességét, ezért ezt a beállítást érdemes nagyobb szerverekre vagy interaktivitást igénylő munkaállomásokra tartogatni, és eltávolítani olyan esetekben, amikor a FreeBSD-t olyan kisebb számítógépeken használjuk, ahol a memória kevés és a lemezműveletek sebessége kevésbé fontos, például egy tűzfalon.
Ezzel az opcióval engedélyezni tudjuk a rendszer indítását memóriában tárolt virtuális lemezekről.
A hálózati állományrendszer támogatása. Hacsak nem akarunk TCP/IP-n keresztül állományrendszereket csatlakoztatni egy UNIX® állományszerverről, kivehetjük.
Az MS-DOS® állományrendszer. Hacsak nem
akarunk DOS-ra formázott merevlemezes
partíciót csatlakoztatni a
rendszerindítás során, nyugodtan
elhagyhatjuk. A fentebb leírtak szerint az első olyan
alkalommal automatikusan betöltődik, amikor egy DOS
partíciót csatlakoztatni akarunk. Sőt, a
nagyszerű emulators/mtools
szoftver
segítségével külön
csatlakoztatás és leválasztás
nélkül tudunk DOS-os floppykat olvasni (és az
MSDOSFS
-re egyáltalán nincs is
szüksége).
Az ISO 9660 állományrendszert a CD-k használják. Vegyük ki, ha nincs a számítógépben CD-ROM meghajtó, vagy csak ritkán fogunk CD-ket csatlakoztatni (mivel a hozzá tartozó modul magától betöltődik az első adat CD csatlakoztatása során). Az audio CD-k nem használják ezt az állományrendszert.
A futó programok állományrendszere. Ez
csak a /proc
könyvtárra
csatlakoztatott „színlelt”
állományrendszer, amelynek
segítségével a ps(1) és
hozzá hasonló programok képesek több
információt adni a futó programokról.
A PROCFS
használata a legtöbb
esetben nem indokolt, mivel a különféle
nyomkövető és felügyeleti eszközök
képesek a PROCFS
használata
nélkül is működni:
alapértelmezés szerint a telepített
rendszerek sem csatlakoztatják ezt az
állományrendszer.
A 6.X verziójú rendszermagokban a
PROCFS
használatához
engedélyeznünk kell a PSEUDOFS
használatát is.
Ezzel a beállítással engedélyezni tudjuk nagy mennyiségű partíció támogatását egyetlen lemezen.
Kompatibilitás a 4.3BSD-vel. Ne vegyük ki, mert bizonyos programok furcsán fognak viselkedni a hiánya esetén.
Ez a beállítás szükséges a FreeBSD 5.X i386™ és Alpha rendszerein a FreeBSD korábbi verzióihoz fordított alkalmazások támogatásához, melyek régebbi rendszerhívásokat használnak. Az összes i386™ és Alpha típusú rendszeren ajánlott engedélyezni, mivel itt előfordulhatnak régebbi alkalmazások. A többi platform, mint például az ia64 vagy a SPARC64®, támogatása csak az 5.X verzióban jelent meg, ezért ott nincs szükség erre.
Ezt a beállítást a FreeBSD 6.X és afeletti verziókban kell használni az olyan FreeBSD 5.X verziókra fordított alkalmazások futtatásának támogatásához, melyek a FreeBSD 5.X rendszerhívásait használják.
Ezzel a beállítással a rendszermag 5 másodpercig várakozni fog a SCSI eszközök keresése előtt. Ha kizárólag csak IDE típusú merevlemezeink vannak, nyugodtan kihagyhatjuk, máskülönben érdemes a rendszerindítás gyorsítása érdekében csökkenteni ezt az értéket. Természetesen, ha így teszünk és a FreeBSD nem tudja felismerni a SCSI eszközeinket, akkor növeljük meg valamennyivel.
Engedélyezi a rendszermagban futó rutinok nyomonkövetését, ami hasznos lehet a hibák keresése során.
Ezzel a beállítással engedélyezni tudjuk a rendszerben a System V típusú osztott memória használatát. Leggyakrabban az X rendszer XSHM kiterjesztése használja, amelyen keresztül számos műveletigényes grafikus program működését fel lehet gyorsítani. Ha X-et használunk, mindenképpen szükségünk lehet erre.
A System V üzenetek támogatása. Ez a beállítás csupán néhány száz byte-tal növeli a rendszermagot.
A System V szemaforok támogatása. Nem túl gyakran alkalmazzák ezeket, de ez csak néhány száz byte-ot tesz hozzá a rendszermaghoz.
A ipcs(1) parancs -p
paraméterével ki tudjuk listáztatni azokat
a futó programokat, amelyek ezen System V
eszközöket használják.
A POSIX® 1993-as változatában megjelent valósidejű bővítések. A Portgyűjteményben megjelenő egyes alkalmazások használják ezeket (mint például a StarOffice™).
Ez a beállítás kell ahhoz, hogy a
/dev
könyvtárban létre
tudjunk hozni eszközleírókat a
billentyűzethez.
A Giant annak a kölcsönös
kizárási mechanizmusnak (blokkolt mutexnek) a neve,
amely a rendszermag erőforrásainak jelentős
részét védi. Manapság ez már
egy elfogadhatatlanul szűk keresztmetszetet képez a
teljesítményben, ezért a fejlesztésben
fokozatosan felváltják az egyes
erőforrásokat külön-külön
védő zárolások. Az
ADAPTIVE_GIANT
beállítás
hatására a Giant a helyzethez igazodóan
forgó (spin) mutexek közé kerül. Ez azt
jelenti, hogy amikor egy szál zárolni akarja a Giant
mutexet, de ezt már megtette előtte egy másik
processzorról futó szál, a szál
tovább fut és várakozni fog a
zárolás feloldására. Normális
esetben ugyanis egy szál továbbra is blokkolt
állapotban marad, várakozva a futásra. Ha
nem tudunk dönteni, hagyjuk változatlanul.
Hozzátesszük, hogy a FreeBSD 8.0-CURRENT és
későbbi változataiban az össszes mutex
alapértelmezés szerint adaptív, hacsak meg
nem adjuk a NO_ADAPTIVE_MUTEXES
beállítást. Ennek
eredményeképpen a Giant most már
alapból adaptív, ezért esetükben az
ADAPTIVE_GIANT
nem szerepel a rendszermag
beállításai között.
Az apic
nevű eszköz
engedélyezésével használhatjuk a
hardveres APIC-ot a megszakítások
vezérlésére. Az
apic
alkalmazható egy- és
többprocesszoros rendszerek esetén is egyaránt,
de az SMP rendszermagoknál szükséges.
Több processzor támogatásánál
mindenképpen tegyük hozzá az options
SMP
beállítást is.
Az apic eszköz csak az i386 architektúrán létezik, ezért a többi architektúrán nem szabad használnunk ezt a beállítást.
Abban az esetben engedélyezzük, ha EISA-s alaplapunk van, ezzel aktiváljuk az EISA buszra csatlakoztatott eszközök automatikus felismerését és beállíthatóságát.
Tegyük hozzá a konfigurációs állományhoz, ha PCI-os alaplapuk van. Ezzel engedélyezhetjük a PCI kártyák automatikus felismerését és a PCI és ISA buszok közti átirányítást.
Ez a hajlékonylemezes meghajtó vezérlője.
Ez az eszközmeghajtó felelős az összes
ATA és ATAPI eszközért. A modern
számítógépeken csak egyszer kell
megadnunk a device ata
sort a
beállítások között az összes
PCI-os ATA/ATAPI eszköz felismeréséhez.
Az ATA lemezmeghajtók
támogatásához erre van még
szükség a device ata
mellett.
Az ATA RAID-meghajtók kezeléséhez erre a
sorra van szükség a device ata
mellett.
Az ATAPI CD-meghajtók használatához ezt
is tegyük a konfigurációba a device
ata
mellé.
A device ata
használata mellett erre
van még szükségünk az ATAPI floppy
meghajtók kezeléséhez.
Az ATAPI szalagos egységek használatához
ezt a sort is tegyük a konfigurációba a
device ata
mellé.
Ezzel a beállítással a vezérlők számozása állandó lesz. Nélküle az eszközszámok dinamikusan kerülnek kiosztásra.
SCSI-vezérlők. Vegyük ki azokat, amelyekkel
ténylegesen nem rendelkezünk. Ha csak IDE
eszközeink vannak a rendszerünkben, az összeset
eltávolíthatjuk. A
_REG_PRETTY_PRINT
végződésű sorok a megfelelő
meghajtók hibakerési
beállításait takarják.
SCSI-perifériák. Itt is érvényes, hogy kivehetjük azokat az eszközöket, amelyekkel nem rendelkezünk. De ha csak IDE hardvereink vannak, teljesen eltávolíthatjuk ezeket.
Annak ellenére, hogy valójában nem igazi SCSI-eszközök, az USB-s umass(4) és még néhány más egyéb meghajtó is használja a SCSI alrendszert. Emiatt semmiképpen se távolítsuk el a SCSI támogatást a rendszerünkől abban az esetben, ha ilyen meghajtókat is használni szándékozunk.
Az ismert RAID-vezérlők. Ha közülük egyikkel sem rendelkezünk, távolítsuk el ezeket a konfigurációból.
A billentyűzet vezérlője
(atkbdc
) az AT-s billentyűzet és a
PS/2 stílusú pozícionáló
eszközök vezérléséhez
szükséges I/O szolgáltatásokat
biztosítja. Erre a vezérlőre a
billentyűzet meghajtójának
(atkbd
) és a PS/2
pozícionáló eszközök
eszközmeghajtójának (psm
) is
szüksége van.
Az atkbd
meghajtó, a
atkbdc
vezérlővel együtt, adja
a hozzáférést az AT billentyűzet
vezérlőre csatlakoztatott AT 84 és a fejlettebb
AT billentyűzetek felé.
Használjuk ezt az eszközt, ha az egerünk a PS/2 portra csatlakozik.
A billentyűzet multiplexer alapszintű támogatása. Ha nem kívánunk a jövőben egynél több billentyűzetet csatlakoztatni a rendszerünkre, nyugodt szívvel kivehetjük ezt a sort.
Videokártya meghajtó.
Nyissunk egy üdvözlőképernyővel! A képernyőkímélőknek is szükségük van erre az eszközre.
Az sc
az alapértelmezett
meghajtó a konzolok számára, és sokban
hasonlít a SCO konzolra. Mivel a legtöbb
teljesképernyős program a termcap
termináladatbázis könyvtáron
keresztül éri el a konzolt, nem igazán
számít, hogy ezt vagy a
VT220
-kompatibilis vt
konzolmeghajtót használjuk. Ha bármilyen
gondunk lenne a teljesképernyős programok
futtatásával ezen a konzolon, a
bejelentkezéskor állítsuk a
TERM
környezeti változónkat a
scoansi
értékre.
Ez a VT220-kompatibilis konzolmeghajtó, amely
visszafelé kompatibilis a VT100/102-vel is. Remekül
működik olyan laptopokon, ahol a hardver nem
használható az sc
konzollal. Itt
ugyanúgy érdemes egyébként a
vt100
értékre vagy a
vt220
értékre
állítani a TERM
környezeti
változónkat. Hasznosnak bizonyulhat abban az
esetben is, amikor hálózaton keresztül nagy
mennyiségű és eltérő
típusú számítógépekhez
csatlakozunk, és ahol a termcap
és terminfo
adatbázisokban az
sc
bejegyzései gyakran nem is
érhetőek el — a vt100
viszont
virtuálisan az összes platformon
elérhető.
Írjuk bele a konfigurációba, ha van AGP kártya a rendszerünkben. Ezzel engedélyezzük az AGP és az AGP GART támogatását az ezeket ismerő kártyák számára.
A fejlett energiagazdálkodás
támogatása. Laptopok esetén hasznos,
habár ez alapértelmezés szerint nincs
engedélyezve a GENERIC
konfigurációban.
Az energiagazdálkodási események, mint például APM és ACPI időzítőjének eszközmeghajtója.
A PCMCIA támogatása. Mindenképpen szükségünk lesz rá, ha laptopunk van.
Ezek azok a soros portok, amelyek az MS-DOS®/Windows®
világban csak COM
portokként ismernek.
Ha van egy belső modemünk a
COM4
-en és egy soros portunk a
COM2
-n, a modem IRQ-ját meg kell
változtatnunk 2-re (valamilyen homályos
műszaki okból kifolyólag a COM2 = IRQ9), hogy
hozzá tudjunk férni FreeBSD-ből. Ha
többportos soros kártyánk lenne, lapozzuk fel
a sio(4) man oldalát, és ott hozzá
megtaláljuk a /boot/device.hints
állományba írandó megfelelő
értékeket. Egyes videokártyák
(különösen az S3 chipekre
épülők) az I/O címeket
0x*2e8
alakban használják,
és mivel rengeteg olcsó soros kártya nem
kódolja vissza egészében a 16 bites I/O
címteret, ütközni fognak ezekkel a
kártyákkal, és ezáltal a
COM4
port gyakorlatilag
elérhetetlenné válik.
Minden egyes soros portnak egyedi IRQ-ja kell legyen (hacsak
nem használunk olyan többportos
kártyát, amely támogatja a megosztott
megszakításokat), ezért a
COM3
és
COM4
esetén
alapértelmezett IRQ-k nem
használhatóak.
Ez az ISA busz párhuzamos portjának felülete.
A párhuzamos porthoz tartozó busz támogatása.
A párhuzamos portra csatlakozó nyomtatók támogatása.
A fentiek közül mind a három szükséges a párhuzamos porton csatlakozó nyomtatók használatához.
Ez a párhuzamos port hálózati felületének meghajtója.
Általános célú („geek port”) és IEEE1284 I/O.
Ez az Iomega Zip meghajtóihoz tartozó
eszköz. A működéséhez
szükség van az scbus
és
da
engedélyezésére. A
legjobb teljesítményt EPP 1.9 módban
működő portokkal lehet kihozni belőle.
Tegyük bele a konfigurációba ezt az eszközt, ha egy olyan „buta” soros vagy párhuzamos PCI kártyánk van, amelyet a puc(4) segédmeghajtó ismer.
Különféle PCI hálózati kártyák meghajtói. Vegyük ki azokat, amelyek nem találhatóak meg a rendszerünkben.
Az MII busz engedélyezése elengedhetetlen
bizonyos 10/100-as PCI Ethernet kártyák
használatához, konkrétan azokéhoz,
amelyek az MII-vel együttműködni képes
adó-vevőt használnak vagy az MII-höz
hasonló adó-vevő vezérlő
felületet valósítanak meg. A device
miibus
hozzáadása a rendszermaghoz
magával vonja az általános miibus API
és az összes PHY meghajtó
támogatását, beleértve azt az
általános PHY eszközt is, amelyet az egyes
eszközmeghajtók külön nem
támogatnak.
Meghajtók, melyek az MII busz vezérlőkódját használják.
ISA Ethernet meghajtók. A konkrétan
támogatott kártyák teljes
felsorolását lásd a
/usr/src/sys/
állományban.i386
/conf/NOTES
Általános 802.11 támogatás. Erre a sorra mindenképpen szükség van a vezeték nélküli hálózatok használatához.
A 802.11 eszközök esetén a titkosítás támogatása. Ezeket a sorokat akkor adjuk meg, ha titkosítást akarunk használni vagy a 802.11i biztonsági protokolljait.
A különböző vezeték nélküli kártyák támogatása.
Ez a TCP/IP általános loopback eszköze. Ha
telnettel vagy FTP-vel rácsatlakozunk a
localhost
címére (vagyis a 127.0.0.1
-re), akkor rajta keresztül
saját magunkhoz jutunk vissza. Ennek a megléte
kötelező!
Kriptográfiai szempontból biztonságos álvéletlenszám generátor.
Az ether
eszközre csak abban az
esetben van szükség, ha Ethernet
kártyánk van. Ez magában foglalja az
általános Ethernet protokoll
kódját.
Az sl
a SLIP használatát
engedélyezi. Ez egy régi protokoll, amelyet
azóta már szinte teljesen kiszorított a PPP,
mivel azt könnyebb beállítani és sokkal
jobban is illik a modem-modem kapcsolatokhoz, illetve sokkal
erőteljesebb.
Ez a tárcsázós kapcsolatok rendszermagon
belüli PPP támogatását adja meg. Van a
PPP-nek egy külső, a felhasználói
programként megvalósított változata
is, amely a tun
eszközt használja
és sokkal nagyobb rugalmasságot kínál
fel, illetve olyan lehetőségeket, mint
például az igény szerinti
tárcsázás.
Ezt a felhasználói PPP szoftver használja. A könyv PPP-ről szóló részében többet is megtudhatunk róla.
Ezek a „pszeudo terminálok”, vagy
más néven szimulált bejelentkezési
portok. A bejövő telnet
és
rlogin
munkamenetek használják,
valamint az xterm és a
hozzá hasonló alkalmazások, mint
például az Emacs.
A memóriában levő pszeudo lemezes meghajtók.
Megvalósítja az IPv6 IPv4 feletti, az IPv4 IPv6
feletti, az IPv4 IPv4 feletti és az IPv6 IPv6 feletti
közvetítését. A gif
eszköz „magától
másolódik”, vagyis szükség
szerint hozza létre a megfelelő
eszközleírókat.
Ez a pszeudo eszköz elfogja a hozzá küldött csomagokat és átadja ezeket az IPv4/IPv6 fordítással foglalkozó démonnak.
A Berkeley csomagszűrője. Ez egy olyan pszeudo eszköz, amely lehetővé teszi, hogy a hálózati csatolók forgalmát megfigyeljük, mivel a (pl. Ethernet) hálózatunkon minden csomagot elkap. Ezek a csomagok lemezre is menthetőek vagy kielemezhetőek a tcpdump(1) program segítségével.
A bpf(4) eszközt a dhclient(8) is használja többek közt az alapértelmezett átjáró IP-címének megszerzéséhez. Ha DHCP-t akarunk használni, hagyjuk így.
A különféle USB eszközök támogatása.
A különféle Firewire eszközök támogatása.
A FreeBSD által ismert további
eszközökről a
/usr/src/sys/
állományból
tájékozódhatunk.i386
/conf/NOTES
A sok memóriával rendelkező számítógépek esetén szükség lehet a felhasználói és rendszerszintű virtuális címek (Kernel Virtual Address, KVA) 4 gigabyte feletti használatára. Ennek a korlátozásnak a kiküszöbölésére az Intel® külön támogatást épített be a Pentium® Pro és az azt követő processzorok 36 bites fizikai címzésének kialakításához.
A Fizikai Címkiterjesztés (Physical Address
Extension, PAE) az Intel® Pentium® Pro
és későbbi processzoraiban
található meg, és lehetővé
teszi egészen 64 gigabyte-ig a
memóriahasználatot. A FreeBSD is támogatja
ezt a tulajdonságot a PAE
rendszermag
beállítás használatával,
és megtalálható a FreeBSD összes
jelenlegi verziójában. Az Intel®
architektúrájú processzorok
memóriaszervezésének korlátai
miatt nem különböztethető meg a 4 gigabyte
alatti és feletti memória. A 4 gigabyte felett
található memóriaterületek
egyszerűen hozzáadódnak a
rendelkezésre álló
memóriához.
A rendszermagban a PAE támogatását egyszerűen az alábbi sor hozzáadásával tudjuk engedélyezni:
A FreeBSD-ben a PAE támogatása csak az Intel® IA-32 architektúrájú processzoraihoz érhető el. Emellett meg kell említenünk, hogy a FreeBSD-ben található PAE támogatás nem lett szélesebb körben próbára téve, ezért a FreeBSD többi megbízható elemeihez képest csak béta állapotúnak tekinthető.
A FreeBSD PAE támogatásának van néhány hiányossága:
Egy futó program a virtuális memóriában nem képes 4 gigabyte-nál többet elérni.
A bus_dma(9) felületet nem
használó eszközmeghajtók
adathibákat okozhatnak a PAE-t
támogató rendszermagokban, és emiatt
nem ajánljuk a használatukat. Ebből a
megfontolásból
készítettünk egy
PAE
nevű
konfigurációs állományt a
FreeBSD-hez, amelyben nem szerepel egyetlen olyan
meghajtó sem, amely ismereteink szerint nem
működik együtt a PAE-t
támogató rendszermagokkal.
Bizonyos finomhangolási
beállítások a
memóriahasználatot a rendelkezésre
álló fizikai memória
mennyiségéből
számítják ki. A
PAE támogatással
működő rendszerek esetében
megjelenő sok memória miatt azonban az ilyen
eszközök szükségtelenül
több területet foglalhatnak le. Erre
példa lehet a kern.maxvnodes
sysctl változó, amely a rendszermag
által maximálisan
felhasználható virtuális
csomópontok számát korlátozza.
Ajánlott tehát az ilyen és ehhez
hasonló beállítások
értelmes értékre
történő
visszaállítása.
Szükséges lehet a rendszermag
virtuális címterének
(KVA) növelése vagy a
rendszermag által túlságosan nagy
méretűre foglalt címterű
különféle erőforrások
(lásd fentebb) csökkentése a
KVA kifogyásának
elkerülésére. A KVA
területének növelését a
KVA_PAGES
beállításával tehetjük
meg.
Ha gondjaink lennének a teljesítménnyel vagy a megbízhatósággal, keressük fel a tuning(7) man oldalt. A pae(4) man oldalon pedig a FreeBSD PAE támogatásáról találhatunk naprakész információkat.
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.