diff --git a/hu_HU.ISO8859-2/books/faq/book.sgml b/hu_HU.ISO8859-2/books/faq/book.sgml
index 20337cb307..20c0a5164d 100644
--- a/hu_HU.ISO8859-2/books/faq/book.sgml
+++ b/hu_HU.ISO8859-2/books/faq/book.sgml
@@ -1,15406 +1,15395 @@
%books.ent;
]>
Gyakran Ismételt Kérdések a &os;
6.X és
7.X változatairólA &os; Dokumentációs Projekt
- $FreeBSD$
+ $FreeBSD: doc/hu_HU.ISO8859-2/books/faq/book.sgml,v 1.15 2009/10/11 12:24:11 pgj Exp $199519961997199819992000200120022003200420052006200720082009A &os; Dokumentációs Projekt
&bookinfo.legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.adobe;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.iomega;
&tm-attrib.linux;
&tm-attrib.microsoft;
&tm-attrib.mips;
&tm-attrib.netscape;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.sgi;
&tm-attrib.sparc;
&tm-attrib.sun;
&tm-attrib.usrobotics;
&tm-attrib.xfree86;
&tm-attrib.general;
Ezek a gyakran ismételt kérdések a &os;
6.X és
7.X változataira vonatkoznak.
Az összes bejegyzés a &os;
6.X vagy annál újabb
változataira vonatkozik, hacsak azt külön nem
jelezzük. Ha szeretnénk segíteni a
projektnek, akkor küldjünk egy levelet a &a.doc;
címére! Ennek a dokumentumnak a legfrissebb
változata mindig elérhetõ a &os; World Wide Web szerverérõl.
HTTP-n keresztül letölthetõ egyetlen nagy HTML állományként,
vagy a &os;
FTP szerverérõl szöveges, &postscript;
PDF stb. formátumban. Továbbá keresni is tudunk a
GYIK-ban.Fordította és a
fordítást karbantartja: &a.hu.pgj;BevezetésÜdvözöljük a &os;
6.X-7.X
Gyakran Ismételt Kérdéseiben!Hasonlóan a Usenetes GYIK-okhoz, ennek a dokumentumnak
is az a célja, hogy a &os; operációs
rendszerrel kapcsolatban feltegye a legyakrabban ismételt
kérdéseket (és persze megválaszolja
ezeket!). Habár eredetileg azért
íródott, hogy megspórolja a feleslegesen
elvesztegetett sávszélességet és hogy
megelõzze a régóta ismert
kérdések újbóli
feltételét, a GYIK idõközben egy
értékes
információforrássá is
vált.Igyekeztünk minden megtenni annak
érdekében, hogy a GYIK a lehetõ legtöbb
információt szolgáltassa. Ha
szeretnénk javaslatokat tenni a
továbbfejlesztésére, írjunk
bátran a &a.doc; címére!Mi az a &os;?Ha tömören akarjuk összefoglalni, akkor a
&os; egy AMD64, &intel; EM64T, &i386;, PC-98, IA-64, &arm;,
&powerpc; és &ultrasparc; platformokra fejlesztett
&unix;-szerû operációs rendszer, amely a
Kaliforniai Egyetem (Berkeley) rendszerének
4.4BSD-Lite kiadására
épül, valamint a 4.4BSD-Lite2
kiadásból tartalmaz még
néhány továbbfejlesztést.
Továbbá közvetett módon még
felhasználja a Berkeley Net/2
kiadásának &i386; architektúrára
készített portját, a
386BSD forrásait is, amit annak
idején William Jolitz készített, noha
ebbõl ténylegesen már csak nagyon
kevés található a rendszerben. A &os;
részletesebb bemutatása és annak
tulajdonságai a &os; honlapján
találhatóak.A &os;-t munkához, oktatáshoz és
szórakozáshoz rengeteg cég,
internetszolgáltató, kutató,
informatikus, diák és otthoni
felhasználó használja a világ
minden táján.A &os; bõvebb bemutatásához olvassuk
el a &os;
kézikönyvet.Mi a &os; Projekt célja?A &os; Projektnek az a célja, hogy olyan
szoftvereket állítson elõ, amelyek
tetszõlegesen felhasználhatóak,
mindenféle kötöttségek
nélkül. A fejlesztõk közül sokan
nagyon sok idõt és munkát fektetnek a
forráskódba (és így a
Projektbe), ami nyilván megérdemelne
némi anyagi ellensúlyozást olykor, de
egyáltalán nem ragaszkodunk hozzá.
Úgy érezzük, mindenek elõtt az a
küldetésünk, hogy
feltétel nélkül segítsünk
mindenkit a munkánkkal, függetlenül annak
szándékaitól, így a
munkánk a lehetõ legnagyobb körben
kerül felhasználására és
így nyújtja a lehetõ legtöbb
hasznot. Véleményünk szerint ez az egyik
legalapvetõbb célja a szabad szoftvereknek
és ezt a hozzáállást
támogatjuk a leginkább.A forrásaink között
található, GNU General
Public License (GPL) vagy a GNU
Library General Public License (LGPL)
licencelésû munkák azonban már
valamivel több kötöttséggel
járnak, habár ezek inkább a
közzétételükre vonatkoznak, nem
pedig annak ellenkezõjére, ahogy azt
általában megszokhattuk. A GPL licencû
szoftverek kereskedelmi célú
felhasználásának további
esetleges nehézségei miatt azonban
lehetõségeink szerint igyekszünk ezeket
olyan szoftverekkel felváltani, amelyek a kevésbé
szigorúbb &os; licencet
alkalmazzák.A &os; licenc tartalmaz valamilyen
megszorítást?Igen. Ezek a megszorítások azonban nem az
adott munka felhasználását
szabályozzák, hanem csupán azt, hogy
miként viszonyuljunk a &os; Projekthez. Ha komoly
kétségeink lennének a
licenceléssel kapcsolatban, olvassuk a jelenleg
érvényes
licencet (angolul). Az egyszerû
kíváncsiskodók kedvéért
nagyjából így tudnánk
összefoglalni a licencet:Ne állítsuk, hogy mi
készítettük.Ne pereljük a Projektet, ha nem
mûködik.A &os; képes kiváltani a jelenleg
használt operációs
rendszerünket?A legtöbb ember számára igen. A
kérdés megválaszolása azonban
természetesen nem ennyire
egyértelmû.Sokan nem is magát az operációs
rendszert, hanem inkább az alkalmazásokat
használják. Valójában pedig
maguk az alkalmazások azok, amelyek az
operációs rendszert használják.
A &os;-t úgy alakították ki, hogy az
alkalmazások számára egy szilárd
és mindentudó környezetet
nyújtson. Támogatja a
böngészõk, irodai programcsomagok,
levelezõ programok, grafikus programok,
programozási környezetek, hálózati
szerverek széles választékát,
és szinte minden mást, amire csak
szükségünk lehet. Az ilyen
alkalmazások legnagyobb része
elérhetõ a Portgyûjteményen
keresztül.Ha viszont olyan alkalmazást
kívánunk használni, amely csak bizonyos
operációs rendszereken érhetõ el,
nem tudjuk magát az operációs rendszert
egyszerûen lecserélni alatta. Bizonyos
esetekben azonban elõfordulhat, hogy &os; alatt is
találunk hozzá hasonló
alkalmazásokat. Amikor egy stabil irodai vagy
internet szerverre van szükségünk, esetleg
egy megbízható munkaállomásra,
vagy egyszerûen csak megszakítások
nélkül szeretnénk végezni a
munkánkat, a &os;-ben igényeinkhez
mérten szinte minden megtalálhatunk. A
világon rengeteg felhasználó,
beleértve a kezdõket és a tapasztalt
&unix; rendszergazdákat egyaránt, asztali
operációs rendszerként is a &os;-t
használja.Ha egy másik &unix; környezetrõl
akarunk &os;-re váltani, akkor a legtöbb dolog
már ismerõs lehet számunkra. Amennyiben
viszont valamilyen grafikus operációs
rendszerrõl, például &windows;-ról
vagy a &macos; valamelyik régebbi
változatáról szándékozunk
átállni, minden bizonnyal idõt kell majd
szánnunk a feladatok &unix; stílusú
megvalósításának
megismerésére. Ez a GYIK és a &os;
kézikönyv ehhez tökéletes
kiindulási alapot biztosít.Miért hívják &os;-nek?Szabadon (mint free)
felhasználható, akár kereskedelmi
célokra is.Az operációs rendszer teljes
forráskódja bárki által
szabadon elérhetõ, minimális
megkötésekkel arra vonatkozóan, hogy
miként használható és
más (kereskedelmi vagy nem kereskedelmi)
munkák részeként miként
építhetõ be,
terjeszthetõ.Bárki, akinek fejlesztési vagy
hibajavítási javaslata van a rendszerrel
kapcsolatban, szabadon benyújthatja azt, amely
aztán bekerül a források
közé (egy-két
nyilvánvaló ellenõrzést
követõen).Érdemes valamint rámutatni, hogy a
szabad szót az imént két
értelemben is használtuk: az egyik
jelentése szerint költségek
nélkül, míg a másik
jelentése szerint tetszés
szerint. Egy-két
tiltott dologtól,
például azt állítjuk, hogy mi
írtuk, eltekintve tényleg bármit
csinálhatunk vele.Mi a különbség a &os;, a NetBSD,
OpenBSD és a többi nyílt
forráskódú BSD operációs
rendszerek között?James Howard The BSD Family Tree
címmel (angolul) készített egy alapos
leírást a különbözõ
projektek közti eltérések
bemutatására.Melyik a &os; legújabb változata?Jelen pillanatban a &os; fejlesztése két
párhuzamos ágon folyik, és mind a
kettõbõl készülnek kiadások. A
6.X sorozat kiadásai a
6-STABLE ágból,
míg a 7.X sorozat
kiadásai a 7-STABLE
ágból készülnek.Az 7.0-s kiadás megjelenéséig a
6.X sorozat volt a
-STABLE. Az 7.0 kiadás
megjelenésével azonban a
6.X ág
meghosszabbított
támogatást kapott, és
már csak a nagyobb hibákat,
például a biztonsági hibákat
javítják benne. Az
6-STABLE ágból még
várhatóak további kiadások is,
azonban ezt jelenleg már
örökségi ágnak
tekintjük, és a legtöbb munka már a
7-STABLE részeként
jelenik meg.A &rel.current;
változat a 7-STABLE ág
legfrissebb kiadása, amely &rel.current.date;ban
jelent meg. Az 6-STABLE
ágból a &rel2.current;
a legfrissebb kiadás, amely &rel2.current.date;ban
jelent meg.Ha röviden össze akarjuk foglalni, akkor a
-STABLE változatokat
elsõsorban az internet-szolgáltatók,
vállalkozások számára
ajánljuk, illetve minden olyan
felhasználó számára, aki a
legújabb (és minden bizonnyal még
instabil) -CURRENT
pillanatkiadásokhoz viszonyítottan a
legkevesebb változtatással
kívánnak egy megbízható, stabil
verziót használni a rendszerbõl. Ugyan
bármelyik ágból
készülhetnek, azonban a
-CURRENT esetében
meglehetõsen sok változásra kell
felkészülnünk (a
-STABLE ághoz képest) az
egyes kiadások között.A kiadások néhány havonta
készülnek. Mivel a legtöbben ennél
pontosabban követik a &os; forrásait
(lásd a &os.current;
és &os.stable;
változatokra vonatkozó
kérdéseket), ennél valamire többre
van szükségünk, hiszen a források
folyamatosan változnak.A &os; egyes kiadásairól a Kiadások
megjelentetését összefoglaló
oldalon tájékozódhatunk a &os;
honlapján.Mi az a &os;-CURRENT?A &os.current;
az operációs rendszer aktív
fejlesztés alatt álló változata,
amely idõvel az új &os.stable;
ággá válik. Ez a változat
tulajdonképpen csak a rendszeren dolgozó
fejlesztõk és a megátalkodott
hobbifelhasználók számára
érdekes. A kézikönyverre vonatkozó szakaszában
olvashatunk részletesebben a
-CURRENT
használatáról.Ha nem mozgunk otthonosan az operációs
rendszerek világában, vagy ha nem tudjuk
megmondani a különbséget egy valódi
és egy ideiglenes probléma között,
akkor nem javasoljuk a &os.current;
használatát. Ez a fejlesztési vonal
nagyon gyorsan fejlõdik és néha
lefordíthatatlan állapotba kerül. A
&os.current; változat
használóitól elvárjuk, hogy
képesek legyenek felmérni a felbukkanó
problémákat, és közülük
csak azokat jelenteni, amelyek valóban hibákat
takarnak és nem pedig csak apró
bökkenõk. Ezért a
&a.current; olvasói általában A
make world parancs valami csoportra panaszkodik
típusú kérdéseket
általában figyelembe se veszik.A -CURRENT és
-STABLE ágak aktuális
állapotáról minden hónapban
pillanatkiadások
készülnek. Célunk ezzel:A telepítõ legfrissebb
változatának tesztelése.Idõt és
sávszélességet szeretnénk
megspórolni a -CURRENT vagy
-STABLE változatok azon
felhasználóinak, akik az iméntiek
hiányából fakadóan nem
tudják naponta frissíteni a
rendszerüket.Kiindulási pontokat
rögzítünk a kód aktuális
állapota alapján, ha késõbb
netalán valamilyen szörnyûség
történne. (Noha a CVS
általában védelmet nyújt az
ilyen rémisztõ dolgok
bekövetkezése ellen.)Az összes tesztelendõ
újítást és
javítást ezen a módon
kívánjuk a lehetõ legszélesebb
körben elérhetõvé tenni.Egyik -CURRENT
pillanatkiadás sem tekinthetõ
hétköznapi felhasználásra
alkalmasnak. Ha egy megbízható
és széles körben tesztelt rendszerre van
szükségünk, akkor vagy maradjunk a
kiadásoknál vagy használjuk a
-STABLE vonalból
készült pillanatkiadásokat.A pillanatkiadások innen
érhetõek el.Minden aktívan fejlesztett ághoz havonta
készülnek hivatalos pillanatkiadások. A
népszerûbb &arch.i386; és &arch.amd64;
ágakból azonban napi kiadások is
elérhetõek a a
címen.Mit takar a &os;-STABLE?Amikor a &os; 2.0.5 megjelent, a &os;
fejlesztése kettévált. Az egyik
ág neve -STABLE,
a másiké pedig -CURRENT
lett. A &os;-STABLE az olyan
internet-szolgáltatók és egyéb
vállalkozások számára
készült, ahol a fejlesztés alatt
álló újítások vagy a
hirtelen váltások által okozott
problémák gyakran nem engedhetõek meg.
Ide csak olyan hibajavítások és kisebb
módosítások kerülnek, amelyeket
alaposan leteszteltek. A &os;-CURRENT
ezzel szemben a 2.0 megjelenése óta egyetlen,
szakadásmentes fejlesztési vonalat
képvisel, amely a &rel.current;-RELEASE és az
azon túli kiadások felé halad. Ha
többet szeretnénk megtudni a jelenlegi
ágak állapotáról és a
következõ kiadások
ütemezésérõl, akkor ezzel
kapcsolatban olvassuk el a &os; Release Engineering
címû cikk kiadások
leágaztatásáról
szóló részét (angolul). Az
ágak jelenlegi állapota és a
jövõbeni kiadások ütemterve a Kiadások információk oldalán
található (angolul).A 2.2-STABLE ág a 2.2.8
megjelenésével nyugdíjba vonult. A
3-STABLE ág a 3.5.1 mint az utolsó 3.X
kiadás megjelenésével ért
véget. A 4-STABLE ág a 4.11 mint az
utolsó 4.X kiadással fejezõdött be.
Ezekbe az ágakban a legtöbb esetben már
csak biztonsági javításokat
végeznek. Az 5-STABLE ág fejlesztése
az utolsó 5.X
kiadás, az 5.5 megjelenésével
lezárult. A 6-STABLE ág fejlesztése
még folytatódik valameddig, de ez alatt
leginkább már csak a biztonsági
rések és egyéb komoly
problémák javításait kell
érteni.A &rel.current;-STABLE a jelenleg fejlesztett
-STABLE ág. A
&rel.current;-STABLE ágból megjelent
legfrissebb kiadás a &rel.current;-RELEASE, amely
&rel.current.date;ban jelent meg.A 8-CURRENT a -CURRENT ág
legfrissebb változata, és ez a &os;
következõ generációja. Errõl
az ágról a Mi az a &os;-CURRENT?
kérdésnél szolgálunk
részletesebb információkkal.Mikor készülnek &os; kiadások?A &a.re; átlagosan a &os; egy újabb
nagyobb változatát 18 havonta, míg egy
kisebb kiadását 8 havonta jelenteti meg. A
kiadások dátumát elõre kihirdetik,
így a rendszeren dolgozó emberek pontosan
tudják, hogy mikorra kell befejezniük a
munkájukat és letesztelni azt. Minden
kiadást egy tesztelési idõszak elõz
meg, ahol megbizonyosodnak róla, hogy az
elkészült újítások nem
veszélyeztetik az új kiadás
megbízhatóságát. A legtöbb
felhasználó pontosan ezt a
típusú elõvigyázatosságot
szereti legjobban a &os;-ben, még annak
árán is, hogy a legújabb
finomságok bekerülésére még
a -STABLE ág esetén
gyakran sokat kell várni.A kiadások szerkesztésérõl
(valamint a soronkövetkezõ kiadások
ütemezésérõl) a &os;
honlapján belül ezen
az oldalon olvashatunk részletesebben
(angolul).Akik egy kicsivel több izgalomra vágynak,
azok részére az elõbb említett,
naponta készített bináris
pillanatkiadásokat ajánljuk.Ki felel a &os;-ért?A &os; Projektre vonatkozó fontosabb
döntéseket, mint például a Projekt
haladási irányát vagy hogy vehet
részt a forráskód
fejlesztésében, egy 9 fõs irányító
csoport hozza. Rajtuk kívül még
egy több mint 350 fõs
fejlesztõi csapat jogosult
közvetlenül módosítani a &os;
forrásait.A legtöbb bonyolultabb változtatást
általában azonban a megfelelõ levelezési listákon
is megvitatják, amiben bárki
különösebb korlátozás
nélkül részt vehet.Honnan lehet a &os;-t beszerezni?A &os; összes fontosabb kiadása
elérhetõ anonim FTP-n keresztül a &os; FTP
oldaláról:A legfrissebb 7-STABLE kiadás, a
&rel.current;-RELEASE ebbõl
a könyvtárból érhetõ
el.Havonta készülnek pillanatkiadások
a -CURRENT és a
-STABLE
ágakból, de ezek leginkább a
legújabb változatot tesztelõk
és a fejlesztõk számára
fontosak.A legfrissebb 6-STABLE kiadás, a
&rel2.current;-RELEASE ebbõl
a könyvtárból érhetõ
el.Ha a &os;-t CD-n, DVD-n vagy más egyéb
telepítõeszközön szeretnénk
megkapni, akkor ezzel kapcsolatban nézzük meg
a
kézikönyvet.Hogyan lehet elérni a hibajelentések
adatbázisát?A felhasználók kéréseit
tartalmazó hibajelentések
adatbázisát a honlap webes
hibajelentésekkel foglalkozó felületén
keresztül érhetjük el.A &man.send-pr.1; parancs
segítségével tudunk e-mailen
keresztül hibajelentéseket és
egyéb változtatási
kéréseket küldeni. Emellett még
böngészõ segítségével
is tudunk hibajelentéseket küldeni a honlap
webes
hibabejelentõ felületén.Mielõtt beküldenénk egy
hibajelentést, olvassuk el a Writing
&os; Problem Reports címû cikket
(angolul), amelybõl megtudhatjuk, hogyan
készítsünk jól
hasznosítható hibajelentéseket.Honnan tudhatunk meg még többet?Nézzük meg a &os; Projekt
honlapjáról elérhetõ dokumentációkat.
Dokumentációs és
támogatásMilyen jó könyvek szólnak a
&os;-rõl?A Projekt igen széles körû
dokumentációval rendelkezik, amely a
következõ linkrõl érhetõ el:
.
Emellett a GYIK végén szereplõ,
valamint a kézikönyvben található
irodalomjegyzék
tartalmazza az ajánlott könyveket.A dokumentáció elérhetõ
más formátumokban is, például
szöveges (ASCII) állományban vagy
&postscript;-ben?Igen. A dokumentáció több
különbözõ állomány-
és tömörítési
formátumban elérhetõ az &os; FTP
oldalán belül a /pub/FreeBSD/doc/
könyvtárból.A dokumentációt több
különbözõ módon
osztályozhatjuk. Többek közt:A dokumentum neve alapján,
például faq (GYIK), vagy
handbook
(kézikönyv).A dokumentum nyelv és
karakterkódolása alapján. Ezeket a
&os; rendszerekben, a
/usr/share/locale
könyvtárban megtalálható
nyelvi beállítások nevei szerint
adjuk meg. Jelenleg a következõ nyelveken
és kódolásokban érhetõ
el a dokumentáció:NévLeírásen_US.ISO8859-1Angol (Egyesült
Államok)bn_BD.ISO10646-1Bengáli vagy bangla
(Banglades)da_DK.ISO8859-1Dán (Dánia)de_DE.ISO8859-1Német
(Németország)el_GR.ISO8859-7Görög
(Görögország)es_ES.ISO8859-1Spanyol (Spanyolország)fr_FR.ISO8859-1Francia (Franciaország)hu_HU.ISO8859-2Magyar (Magyarország)it_IT.ISO8859-15Olasz (Olaszország)ja_JP.eucJPJapán (Japán, EUC
kódolás)mn_MN.UTF-8Mongol (Mongólia, UTF-8
kódolás)nl_NL.ISO8859-1Holland (Hollandia)no_NO.ISO8859-1Norvég (Norvégia)pl_PL.ISO8859-2Lengyel (Lengyelország)pt_BR.ISO8859-1Portugál (Brazília)ru_RU.KOI8-ROrosz (Oroszország, KOI8-R
kódolás)sr_YU.ISO8859-2Szerb (Szerbia)tr_TR.ISO8859-9Török
(Törökország)zh_CN.GB2312Egyszerûsített kínai
(Kína, GB2312
kódolás)zh_TW.Big5Hagyományos kínai (Tajvan,
Big5 kódolás)Nem mindegyik dokumentum érthetõ el
mindegyik nyelven.A dokumentum formátuma alapján. A
dokumentumok több különbözõ
formátumban állnak rendelkezésre.
Mindegyik formátum használatának
megvannak az elõnyei és
hátrányai. Egyes formátumok
inkább az interneten keresztüli
olvasgatásra megfelelõek, mások pedig
nyomtatott formában nyújtanak
esztétikus hatást. A több
különbözõ formátumnak
köszönhetõen az olvasók
igényeik szerint el tudják olvasni a
dokumentáció különbözõ
részeit akár a képernyõn,
akár papíron. Jelenleg a
következõ formátumokban
érhetõek el a dokumentumok:FormátumLeíráshtml-splitKis méretû,
hiperhivatkozásokkal ellátott HTML
állományok
gyûjteményehtmlEgyetlen óriási, az
egész dokumentumot tartalmazó HTML
állománypdbA Palm Pilot adatbázisának
formátuma, amelyet az iSilo
segítségével tudunk
olvasnipdfAz Adobe-féle Portable Document
Formatps&postscript;rtfA Microsoft Rich Text
formátumatxtEgyszerû szöveges
állományAmikor egy ilyen dokumentumot betöltünk
a Wordbe, akkor az oldalszámok maguktól
nem frissülnek. Ehhez a dokumentum
betöltése után nyomjuk le a
CtrlA,
CtrlEnd,
F9 billentyûket.A tömörítés és
csomagolás típusa alapján. Ezek
közül jelenleg hármat
használunk.Ahol a formátum
html-split, ott az
állományokat a &man.tar.1;
segítségével csomagoltuk
össze. Az így keletkezõ
.tar állományt
ezek után az alábbi részben
szereplõ tömörítési
megoldásokkal
tömörítettük.Az összes többi formátum
esetén csak egyetlen állomány
keletkezik, amelynek a neve
típus.formátum
(tehát például
article.pdf,
book.html és így
tovább).Ezeket az állományokat
azután két
tömörítési
eljárással
tömörítjük.EljárásLeírászipA zip
formátum. &os; alatt ezt úgy
tudjuk kitömöríteni, ha
elõször telepítjük a
archivers/unzip
portot.bz2A bzip2
formátum. Nem olyan elterjedt, mint a
zip, de
általában kisebb
méretû
állományokat
készít. Ilyen
állományokat akkor tudunk
kitömöríteni, ha
telepítjük a archivers/bzip2
portot.Ennek megfelelõen tehát a
kézikönyv bzip2-vel
tömörített &postscript;
változata a handbook/
könyvtáron belül
book.ps.bz2 néven
található.Miután kiválasztottuk a számunkra
megfelelõ letöltendõ formátumot
és tömörítési
módszert, magunknak kell letölteni a
kiválasztott tömörített
állományokat, majd kibontani ezeket és
átmásolni a megfelelõ helyre.Például, ha a GYIK fejezetekre darabolt,
&man.bzip2.1; segítségével
tömörített változata a
doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2
állományban található meg. A
letöltéséhez és
kibontásához a következõket kell
tennünk:&prompt.root; fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2
&prompt.root; bzip2 -d book.html-split.tar.bz2
&prompt.root; tar xvf book.html-split.tarA mûvelet befejezõdésével kapunk
néhány .html
kiterjesztésû állományt. Ezek
közül az egyik neve
index.html, ebben
található a tartalomjegyzék, a
bevezetés és a dokumentum többi
részére mutató hivatkozások.
Ezeket az állományokat kell
szükség szerint átmásolnunk vagy
átmozgatnunk a megfelelõ helyre.Hol található információ a
&os; levelezési listáiról?Az összes velük kapcsolatos
információt a kézikönyv
levelezési listákról
szóló részében
találjuk.Milyen &os; hírcsoportok léteznek?Az összes rájuk vonatkozó
információt a kézikönyv
hírcsoportokról szóló
részében találjuk meg.Vannak &os;-s IRC (Internet Relay Chat)
csatornák?Igen, a legtöbb nagyobb IRC hálózaton
található &os;-vel foglalkozó
csatorna:Az EFNet
hálózaton található
#FreeBSD csatorna
lényegében egy &os;-vel foglalkozó
fórum, de itt ne nagyon
próbálkozzunk segítséget
kérni a többiektõl, ha netalán
lusták lennénk elolvasni a man oldalakat
vagy éppen kutatunk valamit. Ez a hely
elsõsorban csevegésre szolgál, ahol
mindenféle téma felmerül, a
szextõl kezdve a sportokon keresztül a
nukleáris fegyverekig éppen úgy,
ahogy a &os;-rõl is. Mi szóltunk
elõre! A szerver a irc.efnet.org
címen érhetõ el.Az EFNet
hálózaton található
#FreeBSDhelp csatorna kifejezetten a
&os; felhasználók
megsegítését veszi célba.
Az itt levõk sokkal szívesebben
válaszolnak a kérdéseinkre, mint a
#FreeBSD csatornán.A Freenode
hálózaton található
##FreeBSD csatornán mindig
sokan vannak, itt bármilyen
témában kérhetünk
segítséget. A beszélgetések
idõnként ugyan kifutnak a szigorú
szakmai témákból, de a &os;-vel
kapcsolatos kérdések itt mindig
elsõbbséget élveznek.
Szívesen segítünk bárkinek,
és lehetõség szerint igyekszünk
a kézikönyv megfelelõ részeire
hivatkozni, vagy adni valamilyen
útmutatást arra vonatkozóan, hogy
merre tájékozódhatunk
részletesebben a problémánkkal
kapcsolatban. Ez alapvetõen egy angol nyelvû
csatorna, habár a világ minden
tájáról érkeznek tagjaink.
Ha az anyanyelvünkön szeretnénk
inkább csevegni, akkor elõször
tegyük fel a kérdésünket
angolul, aztán próbálkozzunk a
megfelelõ
##freebsd-nyelv
csatornán.A DALNET
hálózaton található
#FreeBSD csatorna az Egyesült
Államokból a irc.dal.net
szerveren, Európából pedig az
irc.eu.dal.net szerveren keresztül
érhetõ el.A DALNET
hálózaton található
#FreeBSDHelp csatorna az
Egyesült Államokból a
irc.dal.net szerveren,
Európából pedig a
irc.eu.dal.net szerveren keresztül
érhetõ el.Az UNDERNET
hálózaton található
#FreeBSD csatorna az Egyesült
Államokból a
us.undernet.org,
Európából pedig a
eu.undernet.org szerveren
keresztül érhetõ el. Mivel ez a
csatornát leginkább
segítségnyújtásra tartjuk
fenn, készüljünk fel arra, hogy a
hivatkozott dokumentumokat is el kell olvasnunk.A RUSNET
hálózaton található
#FreeBSD csatorna az oroszul
beszélõ &os; felhasználók
számára igyekszik segítséget
nyújtani. Emellett viszont remek hely a nem
szakmai jellegû témák
megvitatásához is.A Freenode
hálózaton található
#bsdchat csatorna a
hagyományos kínai (UTF-8
kódolású) nyelvet
beszélõ &os; felhasználókat
igyekszik segíteni. A nem szakmai jellegû
témák részére is egy remek
hely.Az említett csatornák mindegyike
egymástól független, és nem
állnak egymással kapcsolatban. Sõt,
még a csevegési stílusuk is
eltérõ, ezért érdemes a
saját stílusunkhoz leginkább
illeszkedõt megkeresni. Mint ahogy az
összes IRC csatorna
esetében elõfordul, itt is könnyedén
érhetnek bennünket személyes
sértések vagy egyszerûen csak sok
szóbeli sárdobálást
láthatunk (mivel jóval több az ilyen
helyeken a balga ifjú, mint a higgadtabb idõs)
— ezekkel ne is törõdjünk!Hol kaphatok kereskedelmi szintû &os;
tréninget és támogatást?A DaemonNews nyújt kereskedelmi szintû
támogatást és tréninget a
&os;-hez. Errõl részletesebb
információkat a BSD Mall
honlapján kaphatunk.A &os; Mall is nyújt keresdelmi
támogatást a &os;-hez. Errõl a honlapjunkon
tudhatunk meg többet.A BSD Certification Group, Inc. DragonFly BSD,
&os;, NetBSD és OpenBSD rendszerekhez ad
rendszergazdai képesítéseket.
Amennyiben érdekel minket, látogassunk el a
honlapjukra.
Kérünk minden olyan további
szervezetet, amely tréninget vagy
támogatást kíván nyújtani
a Projektnek, hogy jelentkezzenek és felvesszük
õket a listánkra!NikClaytonnik@FreeBSD.orgTelepítésMilyen állományokat kell
letöltenünk a &os;
telepítéséhez?Ehhez a következõ három floppy image-re
lesz alapvetõen szükségünk:
floppies/boot.flp,
floppies/kern1.flp és
floppies/kern2.flp. Ezeket az
image-eket az fdimage vagy &man.dd.1;
segédprogramokkal kell rámásolnunk
lemezekre.Ha magukat a terjesztéseket akarjuk
letölteni (mert például egy DOS
típusú állományrendszerrõl
akarunk telepíteni), akkor az alábbi
terjesztéseket kell beszereznünk:base/manpages/compat*/doc/src/ssys.*A teljes folyamatot, valamint a
telepítéssel kapcsolatos általános
tudnivalókat valamivel bõvebben a kézikönyv
&os; telepítésével foglalkozó
részébõl ismerhetjük
meg.Mit tegyünk, ha a floppy image-ek nem férnek
rá egyetlen lemezre?Egy 3,5 colos (1,44 MB
kapacitású) lemezen
1 474 560 byte-nyi adat fér el. A
rendszerindításhoz használt image
mérete is pontosan
1 474 560 byte.A rendszerindító lemezek
elõkészítése során
elkövetett hibák általában a
következõk:Amikor az image-eket FTP-n keresztül
töltjük le, elfelejtünk
bináris (binary)
átviteli módot használni.Egyes FTP kliensek alapértelmezés
szerint szöveges (ascii)
módban viszik át az
állományokat, és ennek során
megpróbálják a sorvége
karaktereket az adott operációs rendszer
konvenciói szerint átalakítani.
Ilyenkor szinte kétségtelen, hogy ezzel
tönkreteszik az image-et. Ezért ne
felejtsük el ellenõrizni a letöltött
image-eket: ha a méretük nem egyezik meg
pontosan a szerveren levõ
változatukéval, akkor
gyaníthatóan a letöltés
közben történt velük
valami.Megoldás: miután csatlakoztunk a
szerverhez, de még mielõtt elkezdük volna
a letöltést, az FTP kliens
parancssorában gépeljük be, hogy
binary.Az image lemezre másolása a DOS
copy parancsának (vagy
hasonló grafikus eszközök)
használatával.A copy és a hozzá
hasonló programok nem használhatóak
erre a célra, mivel az image-eket
közvetlenül a rendszeindításhoz
hozták létre. Ennek megfelelõen az
egyes image-ek a lemezek teljes tartalmát
sávról sávra tartalmazzák,
és így nem hétköznapi
állományként kell velük
bánni. Ezeket a floppykra alacsonyszintû
eszközök (például az
fdimage vagy
rawrite)
segítségével, nyers
módban kell felvinni, ahogy azt a &os;
telepítését leíró
útmutatóban is olvashatjuk.Hol található leírás a &os;
telepítésérõl?A telepítés részletes
leírása a kézikönyv &os; telepítésérõl szóló részében
olvasható.Mire van szükség a &os;
használatához?A &os; használatához egy 486-os vagy jobb
processzorral rendelkezõ
számítógépre, 24 MB vagy
annál több memóriára, és
legalább 150 MB tárhelyre lesz
szükségünk.A &os; összes változata képes futni
szinte bármilyen olcsó MDA típusú
grafikus kártyával, de az &xorg;
használatához már VGA vagy annál
jobb videokártya szükségeltetik.Lásd .Hogyan lehet saját telepítõfloppyt
készíteni?Jelen pillanatban ennek nincs
egyszerû módja. Minden
egyes kiadáshoz tartoznak
telepítõfloppyk, használjuk
ezeket.Ha egy módosított kiadást akarunk
készíteni, kövessük a(z angol
nyelvû) Release Engineering
cikk útmutatásait.A számítógépre lehet
egynél több operációs rendszert is
telepíteni?Olvassuk el a A &os;
telepítése és használata
más operációs rendszerekkel
együtt címû cikket.&windows; mellé is telepíhetõ
&os;?Elõször telepítsük a &windows;t,
majd a &os;-t. A &os; boot managere ekkor képes lesz
a &windows; és a &os; indítására
is. Vigyázzunk, mert ha a &windows;t
telepítjük fel másodikként, akkor
az minden figyelmeztetés nélkül
durván felülírja az aktuális boot
managert. Ha ezt tapasztaljuk, akkor olvassuk el a
következõ szakaszt.A &windows; letörölte a boot managert! Hogyan
lehet visszaállítani?A &os;-hez tartozó boot managert
háromféleképpen tudjuk
újratelepíteni:Indítsuk el a DOS-t, lépjünk be a
&os; terjesztéshez tartozó tools
könyvtárba és keressük meg a
bootinst.exe nevû
állományt. Indítsuk el a
következõ módon:...\TOOLS>bootinst.exe boot.binEkkor a boot manager visszakerül a
helyére.Használjuk a &os;-hez létrehozott
rendszerindító lemezeket, és a
telepítõben válasszuk a
Custom (Egyéni
telepítés) menüpontot, majd azon
belül válasszuk a
Partition
(Partíció) pontot. Itt válasszuk
ki azt a meghajtót, ahol korábban a boot
managerünk volt (ez valószínûleg
a felsorolásban az elsõ lesz) és
amikor belépünk a
partíciószerkesztõbe, akkor
egybõl válasszuk a Write
(W) opciót (tehát ne
változtassunk semmit). Ez
megerõsítést fog kérni, amire
válasszuk a &gui.yes; gombot, és amikor a
boot manager kiválasztása rész
jelenik meg, válasszuk a FreeBSD
Boot Manager pontot. Ezzel a boot manager
újra a lemezre íródik.
Miután ezzel végeztünk,
lépjünk ki a telepítõbõl
és indítsuk újra a
rendszerünket a megszokott módon.Indítsuk a rendszerünket a &os;
rendszerindító lemezérõl (vagy
CD-jérõl), majd válasszuk a
telepítõben a
Fixit (Javítás)
menüpontot. Ezután válasszuk a
javítófloppy vagy a(z
élõ
állományrendszerrel rendelkezõ) 2.
CD használatát, majd lépjünk
be a javításhoz elindított
parancsértelmezõbe. Ezt követõen
adjuk ki az alábbi parancsot:Fixit#fdisk -B -b /boot/boot0 eszközA parancsban az
eszköz helyére
annak az eszköznek a nevét adjuk meg,
amelyrõl a rendszert szoktuk indítani,
például ad0 (az
elsõ IDE-lemez), ad4 (az
elsõ IDE-lemez valamelyik vezérlõn),
da0 (az elsõ SCSI-lemez)
stb.Az A, T és X sorozatú IBM Thinkpad
laptopok lefagynak a &os; telepítése
utáni elsõ indulásuk során. Hogy
lehet ezen segíteni?Ezeken a gépeken az IBM BIOS-ának egy
korai hibás változata található,
amely a &os; által használt
partíciókat tévesen
suspend-to-disk típusú
partícióknak tekinti. Ennek
következtében amikor a BIOS
megpróbálja értelmezni a &os;
által létrehozott partíciót,
megakad.Az IBM
Ahogy Keith Frechette
(kfrechet@us.ibm.com) írta
levelében. szerint az alábbi típus/BIOS
változatokban található meg ez a
hiba.TípusBIOST20IYET49WW vagy késõbbiT21KZET22WW vagy késõbbiA20pIVET62WW vagy késõbbiA20mIWET54WW vagy késõbbiA21pKYET27WW vagy késõbbiA21mKXET24WW vagy késõbbiA21eKUET30WWÚgy értesültünk, hogy az IBM
BIOS-ok késõbbi változataiban ismét
felbukkant ez a típusú hiba.
Ebben az üzenetben &a.nectar; a &a.mobile;
tagjainak egy olyan módszert mutat be, ami
segíthet, ha az újabb típusú IBM
laptopunk nem tudja elindítani a &os;-t, és
így váltani tudunk a BIOS elõzõ vagy
következõ verziójára.Ha régebbi típusú BIOS-szal
rendelkezünk és a frissítés nem
megoldható, akkor a &os;-t telepíthetjük
úgy is, hogy megváltoztatjuk a &os;
által használt partíció
azonosítóját és egy olyan
rendszerindító blokkot telepítünk,
amelyik képes ezt kezelni.Ehhez elõször is a gépet egy olyan
állapotba kell visszahoznunk, ahol már
túl tudunk jutni a rendszerindító
képernyõn. Ezt úgy tudjuk elérni,
ha nem engedjük, hogy a gép indulása
közben észrevegye az elsõdleges lemezen
található &os; partíciót. Erre
az egyik lehetséges megoldás, ha a
gépbõl ideiglenesen eltávolítjuk a
merevlemezt és átrakjuk egy régebbi
ThinkPadba (például egy ThinkPad 600-as
típusba) vagy a megfelelõ
átalakító használatával
az asztali számítógépünkbe.
Miután ezzel megvagyunk, töröljük le a
&os; partícióját és tegyük
vissza a lemezt. Ekkor a ThinkPad újból
mûködõképes lesz.Ezt követõen az alábbi
utasításokat követve tudjuk
telepíteni a &os;-t:Töltsük le a boot1
és boot2
állományokat a
címrõl. Olyan helyre tegyük ezeket,
ahol késõbb is még el tudjuk
érni.A megszokott módon telepítsük a
&os;-t a ThinkPadre. Ilyenkor ne
használjuk a Veszélyesen
dedikált (Dangerously Dedicated)
módot. A telepítés
befejezése után ne
indítsuk újra a gépet.Váltsunk át a vészhelyzetekben
használatos parancsértelmezõre
(Emergency Holographic Shell, AltF4)
vagy indítsuk el egy javításhoz
használt (fixit)
parancsértelmezõt.Az &man.fdisk.8; segítségével
változtassuk meg a &os;-s partíció
azonosítóját a
165 értékrõl a
166 értékre (ezt a
típust az OpenBSD használja).Másoljuk át az imént
letöltött boot1 és
boot2 állományokat a
helyi állományrendszerre.A &man.disklabel.8;
segítségével
rögzítsük a boot1
és boot2 tartalmát a
&os; slice-unkra.&prompt.root; disklabel -B -b boot1 -s boot2 ad0snahol az n annak a
slice-nak a sorszáma, ahová a &os;-t
telepítettük.Indítsuk újra a gépet. A
rendszerindító parancssorban ekkora
megjelenik az OpenBSD
indításának lehetõsége.
Ezen keresztül tudjuk a &os;-t
elindítani.A kedves Olvasónak meghagytuk azt az esetet,
amikor ugyanezen a konfiguráción OpenBSD
és &os; rendszereket akarunk egyszerre
használni.Lehet telepíteni hibás szektorokat
tartalmazó lemezre is?Igen, ez lehetséges, de egyáltalán
nem ajánlott.Manapság ha egy IDE-meghajtón hibás
szektorokat találunk, akkor az arra utal, hogy
hamarosan tönkremegy (a meghajtó belsõ
átképezõ funkciói már
képesek megbirkózni a rossz szektorok
növekvõ számával, ami arra enged
következtetni, hogy a lemez felülete jelentõs
mértékben sérült). Ezért
inkább egy új merevlemezes meghajtó
vásárlását javasoljuk.Ha hibás SCSI-meghajtónk van, ezt a választ olvassuk
el.Furcsa dolgok történnek a
telepítõfloppy használata közben! Mi
okozhatja?Ha olyan furcsa dolgokkal találkozunk a
telepítõfloppy használata során,
mint például a lemez állandó
darálása vagy a rendszer váratlan
újraindulása, akkor a következõ
három kérdést érdemes
feltennünk magunknak:Biztos, hogy új, frissen formázott,
teljesen hibamentes floppykat használunk
(tehát olyanokat, amelyeket egy frissen bontott
dobozból vettünk ki, és nem
olyanokat, amelyeket valamelyik magazin
mellékletébõl szedtük ki vagy
éppen három évig az ágy
alatt tároltunk)?Biztos, hogy bináris (vagy image)
módban töltöttük le a lemezek
image-eit? (Ne szégyelljük, mindenki
életében legalább egyszer
töltött már le véletlenül
bináris állományt szöveges
formátumban!)&windows; 95 vagy &windows; 98 alatt DOS
módban használtuk az
fdimage vagy
rawrite parancsot? Ezek az
operációs rendszerek
általában nem férnek össze az
olyan programokkal, amelyek közvetlenül a
hardverrel akarnak kommunikálni, amire a lemezek
írásához is szükség
van. Ez a probléma leginkább akkor
merülhet fel, amikor a grafikus felületen
belül egy DOS ablakban futtatjuk ezeket a
programokat.Kaptunk olyan visszajelzést is, hogy gondjaink
lehetnek, ha &netscape;-pel töltjük le a
rendszerindító lemezeket, ezért
lehetõség szerint igyekezzünk más
FTP klienst használni.ATAPI CD-meghajtóról indult a rendszer, de
a telepítõ szerint nem található
semmilyen CD-meghajtó. Hova tûnt?Ezt a problémát általában
egy rosszul beállított CD-meghajtó
okozza. A CD-meghajtó rengeteg
számítógépben a
másodlagos IDE-vezérlõ slave (szolga)
portján található, a master (mester)
port használata nélkül. Ez az ATAPI
specifikációi szerint nem szabályos, de
a &windows; ezzel különösebben nem
törõdik, a BIOS pedig egyszerûen figyelmen
kívül hagyja a rendszer indítása
során. Ezért képes a BIOS ilyenkor
látni a CD-meghajtót, és ezért
nem képes a &os; teljes
telepítésnél használni.Ezen úgy tudunk segíteni, ha a
CD-meghajtónkat az IDE-vezérlõn
átállítjuk masterre, vagy arra az
IDE-vezérlõre teszünk egy master
eszközt.PLIP (Parallel Line IP) használatával
lehet laptopra telepíteni?Igen. Ehhez csupán egy szabványos
Laplink-kábel kell. Amennyiben szükséges,
a párhuzamos vonali
hálózatkezelés
beállításához olvassuk el kézikönyv
PLIP-rõl szóló
részét.A lemezmeghajtók esetében milyen
geometriai beállításokat érdemes
használni?A lemez geometriája alatt a
lemezen található cilinderek, fejek
és a sávonkénti szektorok
számát értjük. Ezt a
továbbiakban csak CHS-értéknek
nevezzük (mint Cylinder/Head/Sector). Ebbõl
állapítja meg a PC-s BIOS, hogy a lemezen
honnan kell olvasnia és hova kell
írnia.Ez rengeteg félreértést okoz az
újdonsült rendszergazdák
számára. Elõször is
megemlítenénk, hogy egy SCSI-lemez
fizikai geometriája ebben az
esetben teljesen lényegtelen, mivel a &os;
lemezblokkokban gondolkozik. Igazából nem
létezik a fizikai geometria fogalma,
ugyanis a szektorok sûrûsége a lemezen
felületén belül sem állandó.
Amit a gyártók általában
fizikai geometriának hívnak, az
általában az a geometria, amely a legkevesebb
helyveszteséggel jár. Az IDE-lemezek
esetében a &os; ugyan CHS-értékekkel
dolgozik, de ezt minden modernebb meghajtó
legbelül blokkhivatkozásokká
alakítja.Egyedül tehát a logikai
geometria számít. Ez a válasz, amikor a
BIOS megkérdezi a meghajtónkat: Mik a
geometriai beállításaid?,
és ennek felhasználásával
kommunikál vele a késõbbiekben. Mivel a
&os; is ezt az értéket használja fel a
rendszer indításánál, fontos,
hogy jól adjuk meg. Ez különösen
abban az esetben számít, amikor több
operációs rendszer is található
a lemezen, hiszen mindegyiküknek azonos geometriai
beállításokat kell használniuk.
Ellenkezõ esetben komoly gondok léphetnek fel a
rendszer indítása során!A SCSI-lemezek esetében a
beállítandó geometria
értéke attól függ, hogy a
vezérlõn használjuk-e a
bõvített fordítás
támogatását (extended translation
support, amelyet gyakran csak úgy neveznek, hogy
Support for DOS disks >1GB vagy ehhez
hasonlóan). Ha ezt letiltottuk, akkor
használjuk az N cilinder,
64 fej és 32 szektor
sávonkénti felírást, ahol
N a lemez MB-okban
számított mérete. Így
például egy 2 GB méretû lemez
geometriai beállítása
2048 cilinder, 64 fej és 32 szektor
sávonként.Ha viszont
engedélyeztük (ami gyakran
elõfordul, mivel így lehet az &ms-dos; bizonyos
korlátozásait megkerülni) és a
lemez kapacitása 1 GB-nál több,
adjunk meg M cilindert, 255
fejet, 63 (és nem 64) szektort
sávonként, ahol az
M a lemez MB-okban mért
kapacitása osztva 7,844238-al (!). Tehát az
iménti példában is említett
2 GB-os meghajtó esetében 261 cilindert,
255 fejet és sávonként 63 szektort
kapunk.Ha nem lennénk benne biztosak, vagy a &os;-nek a
telepítés közben nem sikerül
megállapítania a lemez geometriai
beállításait, mi magunk is könnyen
meg tudjuk határozni, ha készítünk
egy kis méretû DOS partíciót a
lemezen. A BIOS ekkor észlelni fogja a
megfelelõ geometriai
beállításokat, és ha már
nincs rá tovább szükségünk,
akkor a partíciószerkesztõben nyugodtan
törölhetjük. Hálózati
kártyák és hasonló hardverek
programozásához azonban még a
késõbbiekben hasznos lehet.Használhatjuk viszont a &os;-hez mellékelt
pfdisk.exe segédprogramot is.
Ezt a &os; CD vagy a &os; FTP oldalainak tools
könyvtárában találhatjuk meg.
Ennek a programnak a segítségével ki
tudjuk deríteni, hogy a lemezen levõ többi
operációs rendszer milyen geometriai
beállításokat használ. Az
így kapott értékeket fel tudjuk
használni a
partíciószerkesztõben.Van valamilyen korlátozás a lemezek
felosztására vonatkozóan?Igen. A rendszerindításhoz
használt (gyökér)partíciónak
az 1024. cilinder alatt kell kezdõdnie, mivel a BIOS
csak így képes betölteni onnan a
rendszermagot. (Ez a korlátozás a PC-s
BIOS-ok miatt van, nem a &os; miatt.)A SCSI-lemezek esetében ez
általában azt jelenti, hogy
rendszerindításhoz használt
partíciónak az elsõ 1024 MB alatt
kell kezdõdnie (vagy az elsõ 4096 MB alatt,
ha a bõvített fordítást is
engedélyeztük — lásd az
elõzõ kérdést). Az IDE-lemezek
esetében ez 504 MB-nak felel meg.A &os; kompatibilis valamilyen disk managerrel?A &os; felismeri az Ontrack Disk
Managert és figyelembe veszi. A
többi disk managert nem támogatja.Ha egyedül csak a &os;-t akarjuk használni,
akkor nincs szükségünk disk managerre.
Egyszerûen csak állítsunk be egy akkora
méretû lemezt, amivel a BIOS képes
még megbirkózni (a határ
általában 504 MB) és majd a &os;
kideríti, hogy valójában mennyi hely
áll a rendelkezésére. Ha
régebbi gyártmányú
merevlemezünk van MFM-vezérlõvel, akkor a
&os;-nek konkrétan meg kell mondanunk, hogy mennyi
cilindert használhat.Ha a &os; mellett más operációs
rendszereket akarunk használni, akkor ezt disk manager
nélkül is megtehetjük. Egyedül arra
kell vigyáznunk, hogy a &os;
indításához használt
partíció és a másik
operációs rendszer slice-a az elsõ 1024
cilinder alatt kezdõdjön. Ha nagyon
körültekintõek akarunk lenni, akkor erre a
célra egy 20 MB méretû
rendszerindító partíció
tökéletesen megfelel.Amikor a &os;-t telepítése után
elõször elindul, akkor egy
Hiányzó operációs
rendszer vagy egy Missing Operating
System hiba jelenik meg. Mi
történt?Ez általában akkor fordul elõ, amikor
a &os; és a DOS vagy más operációs
rendszerek nem értenek egyet a lemez geometriai
beállításaiban.
Telepítsük újra a &os;-t és
ezúttal figyelmesen kövessük a fentebb
adott utasításokat!Miért nem lehet továbblépni a boot
manager F?
menüjénél?Ez az elõbbi kérdéssel kapcsolatos
probléma egy másik tünete: a BIOS és
a &os; által használt geometriai
beállítások nem egyeznek! Amennyiben a
vezérlõ vagy a BIOS támogatja a
cilinderek fordítását (amelyet gyakran
>1GB driver support néven
találhatunk meg), akkor próbáljuk meg
átállítani és így
újratelepíteni a &os;-t.Az összes forrást telepíteni
kell?Alapvetõen nem. Ettõl függetlenül
azonban javasoljuk legalább a base
források telepítését, ahol
számos olyan állomány
megtalálható, amelyekre a
késõbbiekben még hivatkozni fogunk,
valamint a sys (rendszermag)
források telepítését, amelyben a
rendszermag forrásai találhatóak. A
rendszeren belül azonban a mûködéshez
semmi sem igényli közvetlenül a
források jelenlétét, egyedül
talán a rendszermag
beállítását végzõ
&man.config.8; program. A rendszermag forrásainak
kivételével a rendszerben a
fordítás menetét úgy
építettük fel, hogy akár egy
írásvédett módon csatlakoztatott
NFS állományrendszerrõl is képes
legyen dolgozni (a rendszermag forrásaira
vonatkozó megszorítások miatt azonban
azt javasoljuk, hogy ezt közvetlenül ne a
/usr/src
könyvtárba csatlakoztassuk, hanem egy
másik helyre, ahol aztán szimbolikus linkek
segítségével másoljuk le a
forráskód
könyvtárszerkezetének legfelsõ
szintjét).Ha kéznél vannak a források
és tisztában vagyunk a
rendszerfordítás folyamatával, akkor a
késõbbiekben sokkal könnyebben tudjuk a
&os; rendszerünket frissíteni.A források egyes részeinek
kiválasztásához lépjünk be a
telepítõprogram
Custom (Egyéni
telepítés), majd a
Distributions
(Terjesztések) menübe. Kell rendszermagot fordítani?Egy új rendszermag fordítása
korábban fontos része volt a &os;
telepítésének, de a legújabb
kiadások már kihasználják a
rendszermag beállításának sokkal
baratságosabb módszereit is. A &os; 5.X
és az azt követõ változatokban
már a betöltõbõl könnyen be
tudjuk állítani a rendszermagot a
beépített hints
(eszközökre vonatkozó
útmutatások) módszere által
felkínált rugalmasabb
lehetõségeknek
köszönhetõen.Egy új rendszermag készítése
viszont olyan esetekben még továbbra is hasznos
lehet, amikor csak azokat a meghajtókat akarjuk
megtartani benne, amelyekre ténylegesen
szükségünk van. Ezzel többnyire
memóriát tudunk megspórolni,
habár a legtöbb rendszer esetében erre
igazából nincs
szükségünk.A jelszavak tárolására
használható-e DES, Blowfish vagy MD5,
és ha igen, akkor hogyan lehet megadni?A &os; alapértelmezés szerint
MD5-alapú jelszavakat
használ. Ezeket a DES
algoritmuson alapuló hagyományos &unix;-os
jelszavaknál sokkal megbízhatóbbnak
tartják. A DES formátum természetesen
továbbra is elérhetõ olyan esetekben,
amikor a kevésbé biztonságos
jelszavakat használó régi
operációs rendszerekkel akarunk
együttmûködni. Emellett a &os;-ben
lehetõségünk van a sokkal
biztonságosabb Blowfish jelszóformátum
használatára is. Az új jelszavak
formátumát az
/etc/login.conf
állományban található
passwd_format bejelentkezési
tulajdonság adja meg, amelynek értéke
des, blf (amennyiben
elérhetõ), illetve md5 lehet.
A bejelentkezési tulajdonságokkal kapcsolatban
a &man.login.conf.5; man oldalt érdemes
elolvasni.A rendszerindító lemez elõször
elindul, de aztán miért akad meg a
Probing Devices...
képernyõn?Ha a rendszerünkhöz IDE-s &iomegazip; vagy
&jaz; meghajtót csatlakoztattunk, akkor
próbálkozzunk újra az
eltávolítása után. A
rendszerindító floppy ugyanis hajlamos
összekeverni a meghajtókat. A rendszer
telepítése után természetesen
újra csatlakoztathatjuk a meghajtót. Ezt
remélhetõleg egy következõ
verzióban már kijavítják.A rendszer telepítését
követõ újraindítás után
miért jelenik meg a panic: can't mount
root hibaüzenet?Ez a hiba a rendszerindító blokk és
a rendszermag közti
félreértésbõl, a lemezes
eszközök helytelen kezelésébõl
fakad. Ilyen hibát általában olyan
rendszerekben kapunk, ahol két masternek
beállított IDE-lemez található
vagy ha az egyes IDE-vezérlõkre csak egy-egy
eszközt csatlakoztattunk és a &os;-t a
másodlagos IDE-vezérlõre
kapcsolódó lemezre telepítettük.
Ekkor a rendszerindító blokk szerint a
rendszert az ad0 (de a BIOS-ban a
második) lemezre telepítettük,
miközben a rendszermag szerint ez a másodlagos
IDE-vezérlõn elhelyezkedõ elsõ lemez,
az ad2. Az eszközök
felkutatása után a rendszermag
megpróbálja a rendszerindító
blokk által nyilvántartott
eszközrõl, az ad0
lemezrõl csatlakoztatni a rendszerindító
partíciót, ami viszont számára a
ad2 eszköz lesz, így ez
a próbálkozása meghiúsul.Ezt a félreértést a
következõ módokon lehet helyretenni:Indítsuk újra a rendszert és
nyomjuk le az Enter billentyût,
amikor a Booting kernel in 10 seconds; hit
[Enter] to interrupt szöveg megjelenik.
Ezzel a rendszerbetöltõ parancssorába
kerülünk.Ezután gépeljük be a
set
root_disk_unit="lemezszám"
sort. Itt a
lemezszám
értéke 0 lesz, ha a
&os;-t az elsõdleges IDE-vezérlõ
master portján levõ merevlemezre
telepítettük, 1, ha az
elsõdleges IDE-vezérlõ slave
portjára, 2, ha a
másodlagos IDE-vezérlõ master
portjára, és végül
3, ha a másodlagos
IDE-vezérlõ slave portjára.Most már begépelhetjük, hogy
boot, és így a
rendszernek el is kell indulnia.Ha ezt a változtatást
véglegesíteni akarjuk (vagyis nem akarjuk
ugyanezt eljátszani a &os; minden egyes
indítása során), akkor a
/boot/loader.conf.local
állományba vegyünk fel a
root_disk_unit="lemezszám"
sort.Tegyük át a &os;-t tartalmazó
lemezt az elsõdleges IDE-vezérlõre,
és ezzel megszûnik az iménti
félreértés.Mennyi memóriát tudunk
használni?A memóriára vonatkozó
korlátozások platformonként
változnak. Egy szabványos &i386;
telepítés esetén például
ez a határ 4 GB, de &man.pae.4;
segítségével akár még
ennél több is elérhetõ. Ehhez
olvassuk el az &i386; platformon 4 GB-nál
több memória használatára
vonatkozó utasításokat.
A &os;/pc98 esetén a korlát szintén
4 GB, azonban itt a PAE nem használható.
A &os; által támogatott összes többi
architektúra elméletileg ennél
több memóriát képes kezelni
(több terabyte-ot).Mik az FFS állományrendszerek
korlátai?Az FFS állományrendszerek
méretének elméleti határa
8 TB (2 milliárd blokk), illetve az
alapértelmezett 8 KB-os blokkméret
esetén 16 TB. A gyakorlatban azonban
szoftveresen ebbõl 1 TB használható
ki, de kisebb módosításokkal
akár 4 TB-os állományrendszer is
használható (és létezik).Egyetlen FFS állományrendszerbeli
állomány mérete
megközelítõleg legfeljebb
1 milliárd blokk lehet, ami 4 KB-os
blokkmérettel számolva 4 TB-ot
jelent.
4 KB-os blokkméret esetén a
háromszoros indirekcióval származtatott
blokkok a gyakorlatban is kihasználhatóak,
és az egészet elméletben egyedül
csak az állományrendszerben így
ábrázolható blokkok maximális
száma korlátozná (ami kb.
10243 + 10242 + 1024),
azonban a gyakorlatban ezt az
állományrendszeri blokkokra vonatkozó
1 GB - 1 méretû (rossz) határ
korlátozza. Az állományrendszeri
blokkok számát ugyanis ki kellene terjeszteni
a 2 GB - 1 méretig. 2 GB - 1
számú blokk használata körül
jelentkezik ugyan néhány hiba, de ezek
4 KB-os blokkméret esetén nem is
érhetõek el.A 8 KB-nál nagyobb blokkméretek
esetén mindenre a blokkok 2 GB - 1
maximális mennyisége érvényes,
de a gyakorlatban ezt a blokkok számának
1 GB - 1 határa korlátozza. Az
eredeti 2 GB - 1 mennyiségû blokk
használata gondokat okozhat.Egy új rendszermag fordítása
után miért jelenik meg a
archsw.readin.failed hibaüzenet
az indítás során?Mert a rendszermag és a
felhasználói programok verziója
eltér. A rendszermag frissítésekor
feltétlenül használjuk a make
buildworld és a
make buildkernel
parancsokat is!A rendszerindítás második
fokozatában közvetlenül meg tudjuk adni a
betöltendõ rendszermagot, ha a betöltõ
indítása elõtt, a |
jel megjelenésekor lenyomunk egy
billentyût.A telepítés megszakad a rendszer
indítása közben, mit lehet ezzel
kezdeni?Próbáljuk meg letiltani az ACPI
támogatást. Ezt úgy tudjuk megtenni,
hogy amikor a rendszertöltõ elindul, lenyomjuk a
Szóköz billentyût. Ekkor
a következõt kapjuk:OKItt gépeljük be az alábbi
parancsot:unset acpi_loadMajd ezt:bootHardverkompatibilitásÁltalános kérdésekA &os; rendszerükhöz szeretnénk
hardvert vásárolni. Melyik
gyártmány/márka/típus a
legjobb?Ez állandó téma a &os;
levelezési listákon. Mivel a hardverek gyorsan
változnak, nem is számíthatunk
másra. Továbbra is
határozottan javasoljuk, hogy olvassuk át
figyelmesen a &os; &rel.current; vagy
&rel2.current;
változatához tartozó
hardverjegyzéket (Hardware Notes) és
nézzünk után a levelezési
listák
archívumában mielõtt
bármire is rákérdeznéünk a
legfrissebb és legjobb hardverek ügyében.
Könnyen elõfordulhat, hogy éppen a
múlt héten esett szó arról a
típusú eszközrõl, amirõl
éppen érdeklõdni
szeretnénk.Ha laptoppal kapcsolatban lenne
kérdésünk, akkor nézzük meg a
&a.mobile; archívumát. Minden más
esetben érdemes inkább a &a.questions;
archívumait megnézni vagy az adott hardverhez
tartozó levelezési listát
böngészni.MemóriaA &os; képes 4 GB-nál,
16 GB-nál vagy akár
48 GB-nál több memóriát
(RAM-ot) támogatni?Igen. A &os; operációs
rendszerként képes az adott platformon
kihasználni az összes rendelkezésre
álló fizikai memóriát. Ne
felejtsük el azonban, hogy az egyes platformokon
ennek határa eltér. Például
az &i386; platformon a PAE
használata nélkül legfeljebb csak
4 GB memóriát tudunk elérni
(amely azonban a PCI számára fenntartott
címtér miatt a valóságban
némileg kevesebb), illetve a
PAE használatával
legfeljebb 64 GB memóriát. Az AMD64
platformokon viszont már egészen 1 TB
memóriáig is elmehetünk.A &os; miért jelez 4 GB-nál
kevesebb memóriát &i386;
architektúrájú
számítógépeken?Az &i386; platformon a címtér
32 bites, ami azt jelenti, hogy itt legfeljebb
4 GB memória címezhetõ meg
(és érhetõ el).
Ráadásul a címtér bizonyos
tartományait a hardvereszközök
számára tartják fenn
különbözõ célokra,
például a PCI eszközök
mûködtetésére és
vezérlésére, a videomemória
hozzáférésére stb.
Ennélfogva az operációs rendszer
és annak rendszermagja által
felhasználható teljes memória
mérete jelentõsen kevesebb, mint 4 GB.
Ezen a típusú
konfigurációkon általában
3,2 GB és 3,7 GB között mozog
a maximálisan kihasználható fizikai
memória mérete.Ha mégis 3,2 vagy
3,7 GB-nál több memóriát
szeretnénk elérni (4 GB-ot vagy
akár annál is többet), akkor ahhoz a
PAE nevû speciális
módosításra lesz
szükségünk. A PAE a
Physical Address Extension
(Fizikai címkiterjesztés)
rövidítése, és egy olyan
módszerre utal, amellyel a 32 bites x86
típusú processzorokon tudunk
4 GB-nál több memóriát
címezni. Lényegében nem
csinál mást, csak 4 GB-os
határ felé képezi le azokat a
memóriaterületeket, amelyeket
egyébként a hardverek
részére tartanak fenn, ezzel
kiegészíti a fizikai
memóriát (&man.pae.4;). A
PAE használatának
számos hátránya van: ebben a
módban a megszokottnál (vagyis
PAE nélkül)
némileg lassabb a memória
elérése, illetve ilyenkor a
betölthetõ rendszermag-modulok (lásd
&man.kld.4;) sem támogatottak. Emiatt az
összes meghajtót bele kell
fordítanunk a rendszermagba.A PAE használatát
általában a PAE
nevû, a rendszermaghoz gyárilag
mellékelt konfigurációs
állománnyal engedélyezhetjük.
Ezt eleve úgy állították
össze, hogy gond nélkül
készíteni tudjuk egy ilyen rendszermagot.
Érdemes azonban megemlíteni, hogy a
konfigurációs állomány
bizonyos tekintetben egy kissé
konzervatív, mivel egyes PAE
esetén használhatatlannak megjelölt
meghajtók valójában mégis
minden gond nélkül
hozzáadhatóak a
konfigurációhoz. Ezzel kapcsolatban azt
javasoljuk, hogy ha az adott meghajtó
használható valamelyik 64 bites
architektúrán (például
AMD64-en), akkor nagy
valószínûséggel
PAE-vel is mûködni fog.
Amennyiben saját magunk szeretnénk egy
PAE-rendszermagot
készíteni, akkor a következõ
sort tegyük bele a konfigurációs
állományba:options PAEA PAE alkalmazása
napjainkban annyira már nem jellemzõ, mivel az
újabb x86 hardverek mindegyike képes
64 bites (AMD64 vagy &intel; 64) módban
futni. Ebben az esetben már lényegesen
nagyobb címtér használatára
nyílik lehetõségünk, így
nincs szükségünk további
trükkökre. A &os; támogatja az AMD64
architektúrát, így ha
4 GB-nál több memóriát
szeretnénk elérni, akkor inkább a
&os; ezen változatát érdemes
alkalmazni.Architektúrák és
processzorokA &os; az x86-on kívül támogat
más architektúrájú rendszereket
is?Igen. A &os; jelenleg az Intel x86 és az AMD64
architektúrákon mûködik. A Az Intel
EM64T, IA-64, &arm;, &powerpc;, sun4v és &sparc64;
architektúrák is támogatottak. A
további tervezett platformok között van
még a &mips; és az &s390;, a &mips;
aktuális állapotáról és
&a.mips; segítségével
értesülhetünk. Az újabb
architektúrákhoz kapcsolódó
általános jellegû
megbeszéléseket a &a.platforms; foglalja
össze.Amennyiben a
számítógépünk
architektúrája nem szerepel a jelenleg
támogatottak között, és valamilyen
gyors megoldásra lenne szükségünk,
akkor javasoljuk a NetBSD vagy az OpenBSD
használatát.A &os; támogatja a szimmetrikus
többprocesszoros (SMP) rendszereket?A &os; általánosságban véve
támogatja a többprocesszoros rendszereket, noha
egyes esetekben a BIOS vagy az alaplap
hibájából fakadóan
problémáink adódhatnak. A &a.smp;
átolvasása segíthet tisztázni
ezeket.A &os; képes kihasználni az Intel
processzorai által felkínált
HyperThreading (HTT) támogatás elõnyeit.
Az options SMP
beállítással fordított
rendszermagok alapból maguktól felismerik a
rendszerünkben található logikai
processzorokat. A &os; alapértelmezett
ütemezõje ezeket a logikai processzorokat a
többivel teljesen egyenrangúnak tekinti, vagyis
semmilyen ütemezési kérdés
eldöntésénél nem fogja
figyelembevenni az egy processzoron belül
elhelyezkedõ logikai processzorokat. Ezen naív
ütemezési felfogás miatt bizonyos
esetekben a rendszerünk teljesítménye nem
tökéletesen optimális, ezért
adódhatnak olyan helyzetek, amikor a
machdep.hlt_logical_cpus
sysctl-változó
segítségével szükséges
lehet a logikai processzorok használatának
letiltása. Ezenkívül még a
machdep.hlt_logical_cpus
sysctl-változón keresztül
lehetõségünk van leállítani
az üresjáratban mûködõ
processzorokat. Ennek részleteirõl
bõvebben a &man.smp.4; man oldalon olvashatunk.Merevlemezes, szalagos, CD- és
DVD-meghajtókA &os; milyen típusú merevlemezes
meghajtókat ismer?A &os; ismeri az EIDE-, SATA-, SCSI- és
SAS-meghajtókat (és a velük kompatibilis
vezérlõket, errõl bõvebben lásd
a következõ szakaszt), valamint az összes
olyan meghajtót, amely az eredeti Western
Digital (MFM, RLL, ESDI és
természetesen az IDE) interfészt
használja. Néhány egyedi
fejlesztésû ESDI vezérlõ nem fog
mûködni, ezért lehetõleg maradjunk a
WD1002/3/6/7 interfészeknél és azok
másolatainál.Milyen SCSI- vagy SAS-vezérlõket
ismer?A teljes listát a &os;
hardverjegyzékében találhatjuk meg a
&rel.current;
vagy &rel2.current;
kiadásban.Milyen szalagos meghajtókat ismer?A &os; a SCSI és QIC-36 (QIC-02
interfésszel) szabványokat ismeri. Ezek
közé értendõek a 8 mm-es
(más néven Exabyte) és
DAT-meghajtók is.Bizonyos régebbi 8 mm-es meghajtók
nem egészen kompatibilisek a SCSI-2 szabvánnyal,
ezért a &os;-vel sem feltétlenül
képesek együttmûködni.A &os; támogatja a szalagok
cseréjét?A &os; &man.ch.4; eszközön és a
&man.chio.1; parancson keresztül támogatja a SCSI
szabványú szalagcserélõket. A
használat pontos részleteirõl a
&man.chio.1; man oldalán olvashatunk
részletesebben.Ha nem az AMANDA vagy a
hozzá hasonló programokat használjuk,
amelyek alapból ismerik a
szalagcserélés lehetõségét,
akkor ne feledkezzünk meg arról, hogy a szalagot
csak az egyik helyrõl a másikra tudjuk mozgatni,
ezért nekünk kell figyelnünk arra, hogy
melyik rekeszben vannak szalagok és a
meghajtónak ezek közül melyiket kell
használnia.A &os; milyen CD-meghajtókat ismer?Bármilyen támogatott
SCSI-vezérlõhöz csatlakoztatható
SCSI-meghajtót ismer.Ezenkívül még az alábbi
CD-interfészek ismertek:Mitsumi LU002 (8 bites), LU005
(16 bites) és FX001D (16 bites, dupla
sebességû).Sony CDU 31/33ASound Blaster nem-SCSI CD-meghajtókMatsushita/Panasonic CD-meghajtókATAPI kompatibilis IDE CD-meghajtókAz összes ismert nem-SCSI kártya nagyon
lassan mûködik a SCSI-meghajtókhoz
képest, és bizonyos ATAPI CD-meghajtók
nem használhatóak.A Daemon News-tól és a
&os; Mall-tól rendelhetõ hivatalos &os;
CD-krõl akár közvetlenül el is tudjuk
indítani a rendszert.A &os; milyen CD-RW meghajtókat ismer?A &os; bármilyen ATAPI-kompatibilis IDE CD-R vagy
CD-RW meghajtót ismer. Ennek részleteit
lásd a &man.burncd.8; man oldalán.A &os; ezeken kívül még
tetszõleges SCSI CD-R vagy CD-RW meghajtót
támogat. A használatukhoz
telepítsük a cdrecord
programot a portok vagy csomagok közül, és
gondoskodjunk róla, hogy a
pass eszköz
támogatása benne legyen a
rendszermagban.A &os; ismeri az &iomegazip; meghajtókat?A &os; alapból ismeri a SCSI és ATAPI
(IDE) interfészen kommunikáló
&iomegazip; meghajtókat. A SCSI ZIP-meghajtók
ugyan egyedül az 5 és 6 target ID-krõl
hajlandóak mûködni, de ha a
SCSI-kártyánk BIOS-a támogatja, akkor
még a rendszert is el tudjuk indítani
róluk. Egyelõre nem tisztázott, hogy
milyen kártyák képesek a 0 és 1
ID-ken kívül máshonnan is rendszert
indítani, ezért ennek a
hozzátartozó dokumentációben
érdemes utánajárnunk.A &os; ezenkívül még a
párhuzamos porton csatlakoztatható
ZIP-meghajtókat is ismeri. Ehhez
ellenõrizzük, hogy a rendszermagunkban
megtalálhatóak az
scbus0,
da0,
ppbus0 és
vp0 meghajtók (a
GENERIC rendszermagban a
vp0 kivételével
mindegyik szerepel). Segítségükkel a
párhuzamos vonalon csatlakozó meghajtó
a da0s4 eszközön
keresztül érhetõ el. Ennek
megfelelõen az állományrendszerek a
mount /dev/da0s4 /mntvagy (DOS
esetén) a mount -t msdosfs /dev/da0s4
/mnt parancs kiadásával
csatlakoztathatóak.Emellett még érdemes a GYIK cserélhetõ lemezes
meghajtókról szóló
részét is elolvasnunk ebben a
fejezetben, valamint a
formázásról
szóló megjegyzést az
adminisztrációról szóló
fejezetben.A &os; ismeri a &jaz;, EZ és a többi
cserélhetõ lemezes meghajtót?Használhatóak. Ezek többsége
SCSI eszköz, ezért a &os; SCSI-lemezként
látja, az IDE csatolós EZ pedig
IDE-meghajtóként érhetõ el.A rendszer indítása elõtt ne
felejtsük el bekapcsolni a külsõ
egységeket.Ha
tárolóeszközt akarunk cserélni a
rendszer mûködése közben, olvassuk el
a &man.mount.8;, &man.umount.8; és (SCSI
eszközök esetén) a &man.camcontrol.8; vagy
(IDE eszközök esetén) a &man.atacontrol.8;
man oldalakat, valamint a GYIK egy késõbbi
részében található részt a
cserélhetõ lemezes
meghajtókról.Egér és billentyûzetA &os; ismeri az USB billentyûzeket?A &os; alapból ismeri az USB billentyûzeket.
Miután engedélyeztük rendszerünkben
az USB billentyûzet támogatását,
az AT billentyûzet /dev/kbd0
lesz és az USB billentyûzet pedig
/dev/kbd1, már amennyiben
mind a kettõt csatlakoztattuk a
számítógépünkhöz. Ha
viszont csak USB billentyûzetünk van, akkor az a
/dev/ukbd0 lesz.Ha az USB billentyûzetet konzolban akarjuk
használni, akkor erre figyelmeztetnünk kell a
konzolos meghajtót. Ezt úgy tudjuk megtenni,
ha a következõ parancsot lefuttatjuk a rendszer
indítása közben:&prompt.root; kbdcontrol -k /dev/kbd1 < /dev/console > /dev/nullAmikor viszont csak USB billentyûzetünk van,
akkor az /dev/ukbd0
eszközön keresztül tudjuk elérni,
ezért a parancsnak ilyenkor így kell
kinéznie:&prompt.root; kbdcontrol -k /dev/ukbd0 < /dev/console > /dev/nullHa véglegesíteni akarjuk ezt a
beállítást, akkor tegyük a
keyboard="/dev/ukbd0" sort az
/etc/rc.conf
állományba.Miután ezt megcsináltuk, az USB
billentyûzet X alatt is mûködni fog minden
további beállítás
nélkül.Ezzel a paranccsal tudunk visszaváltani az
alapértelmezett billentyûzetre:&prompt.root; kbdcontrol -k /dev/kbd0 > /dev/nullA &man.kbdmux.4; meghajtón keresztül az
alábbi parancsok kiadásával
engedélyezhetjük az elsõdleges AT
billentyûzet és a másodlagos USB
billentyûzet párhuzamos
használatát a konzolon:&prompt.root; kbdcontrol -K < /dev/console > /dev/null
&prompt.root; kbdcontrol -a atkbd0 < /dev/kbdmux0 > /dev/null
&prompt.root; kbdcontrol -a ukbd1 < /dev/kbdmux0 > /dev/null
&prompt.root; kbdcontrol -k /dev/kbdmux0 < /dev/console > /dev/nullRészletesebb információkat az
&man.ukbd.4;, &man.kbdcontrol.1; és &man.kbdmux.4;
man oldalakon találhatunk.Az USB billentyûzet menet közbeni
csatlakoztatása és
leválasztása nem feltétlenül fog
mûködni. Ezért a problémák
elkerülése érdekében azt
javasoljuk, hogy a rendszer indítása
elõtt mindenképpen csatlakoztassuk a
billentyûzetet és hagyjuk egészen
úgy, amíg le nem
állítottuk.A nem szabványos buszos egereket hogyan lehet
beállítani?A &os; ismeri a buszos, illetve a Microsoft, Logitech
és az ATI által gyártott InPort buszos
egereket. A GENERIC rendszermag azonban
ehhez nem tartalmaz meghajtót. A rendszermag
konfigurációs állományába
a következõ sort kell megadni, ha egy buszos
egereket támogató rendszermagot akarunk
készíteni:device mse0 at isa? port 0x23c irq5A buszos egerekhez általában saját
interfészkártya is tartozik. Ezeket a
kártyákat a fentitõl eltérõ
portcímre és IRQ megszakításra
is beállíthatjuk. Részletesebb
információkat az egerünk man
oldalán és a &man.mse.4; man oldalon
olvashatunk.Hogyan lehet PS/2 (egérportos vagy
billentyûzetes) egeret
használni?Az PS/2 egereket alapból támogatjuk. Az
ehhez szükséges psm
meghajtó megtalálható a
rendszermagban.Ha a saját magunk által
összeállított rendszermagunk nem
tartalmazza ezt a meghajtót, akkor a
következõ sort kell felvennünk a
konfigurációs állományba:device psm0 at atkbdc? irq 12Miután a rendszermag a rendszer
indítása során helyesen észlelte
a psm0 eszközt,
magától létrejön.Az egeret az X Window Systemen kívül is
lehet valamilyen módon használni?Ha az alapértelmezett konzolos &man.syscons.4;
meghajtót használjuk, akkor a szöveges
felületû konzolokon az egérmutató
segítségével tudunk
szövegrészeket kijelölni és
másolni. Ehhez nem kell mást tennünk,
csupán elindítani a &man.moused.8;
egérdémont és engedélyezni az
egérmutatót a virtuális
konzolokon:&prompt.root; moused -p /dev/xxxx -t yyyy
&prompt.root; vidcontrol -m onItt az xxxx az egeret
leképezõ eszköz neve és az
yyyy az egérhez
használt protokoll típusa. Az
egérdémon a legtöbb egér
esetén képes magától
megállapítani az alkalmazott protokoll
típusát, kivéve a régebbi soros
egereket. Az auto érték
megadásával tudjuk aktiválni ezt az
automatikus felderítést. Amennyiben ez nem
mûködik, a &man.moused.8; man oldalán
nézhetünk után a támogatott
protokolloknak.Ha PS/2 egerünk van, akkor egyszerûen csak
vegyük fel a moused_enable="YES" sor
az /etc/rc.conf
állományba, és az
egérdémon elindul a rendszer
indítása közben. Valamint hogy ha az
egérdémont a konzol helyett az összes
virtuális konzolon is használni akarjuk, akkor
az /etc/rc.conf
állományba tegyük bele a
allscreens_flags="-m on" sort.Miután az egérdémon elindult,
valamilyen módon koordinálni kell az egér
hozzáférését az
egérdémon és az összes többi
program, például az X Window System
között. Errõl a
problémáról a GYIK Miért nem mûködik X
alatt az egér? kérdésében
olvashatunk részletesebb.Hogyan lehet szöveget kijelölni és
másolni a szöveges konzolban?Ahogy sikerült elindítanunk az
egérdémont (lásd az elõzõ szakaszt), tartsuk
lenyomva az egér elsõ (bal oldali)
gombját és az egér
mozgatásával jelöljük ki a
szöveget. Ezután nyomjuk le a második
(középsõ) gombját, amivel a kurzor
mellett megjelenik az imént kijelölt
szöveg. A harmadik (jobb oldali) gomb
segítségével a szöveg
kijelölését tudjuk
kiterjeszteni.Amennyiben az egerünkön nem
található középsõ gomb, az
egérdémon beállításainak
segítségével
megpróbálkozhatunk emulálni vagy
áthelyezni a vele kapcsolatos funkciókat egy
másik gombra. A &man.moused.8; man oldalán
olvashatunk errõl részletesebben.Az egéren van mindenféle görgõ
és gomb. Ki lehet ezeket valahogy használni
&os; alatt is?A válaszunk erre sajnos csupán annyi, hogy
Attól függ. A
különbözõ
kiegészítõkkel rendelkezõ egerekhez
általában egy külön meghajtó
szükségeltetik. Hacsak az egér
meghajtóprogramja vagy a hozzátartozó
felhasználói program nem nyújt
valamilyen támogatást, az eszköz
egyszerûen csak egy szabványos két- vagy
háromgombos egérként fog
funkcionálni.Ha az X Window környezetben akarunk
görgõket használni, esetleg ezt a szakaszt érdemes
elolvasnunk.A laptopokon megtalálható
egér/trackball/touchpad hogyan
használható?Olvassuk el az elõzõ
kérdésre adott választ.A Delete billentyû hogyan
használható a sh és
csh
parancsértelmezõkben?A Bourne Shell
esetében az alábbi sorokat kell megadnunk az
.shrc állományunkban.
Lásd &man.sh.1; és &man.editrc.5;.bind ^? ed-delete-next-char # a konzolhoz
bind ^[[3~ ed-delete-next-char # az xtermhezA C Shell esetében a
következõ soroknak kell az
.cshrc állományba
kerülnie. Lásd &man.csh.1;.bindkey ^? delete-char # a konzolhoz
bindkey ^[[3~ delete-char # az xtermhezTovábbi információkat ezen az
oldalon találhatunk.Hálózati és soros
eszközökA &os; milyen hálózati
kártyákat ismer?Ezek teljes listáját a &os; egyes
kiadásaihoz tartozó hardverjegyzékben
találjuk meg.A &os; ismer szoftveres modemeket, például
winmodemeket?A &os; különbözõ
kiegészítõ szoftvereken keresztül
több szoftveres modemet is támogat. A
comms/ltmdm port
például a szélesebb körben
elterjedt Lucent LT chipsetes modemekhez ad
támogatást.A &os; azonban nem telepíthetõ szoftveres
modemen keresztül. A hozzátartozó
szoftvert csak az operációs rendszer
telepítése után tudjuk
telepíteni.Van natív meghajtó a Broadcom 43xx
típusú kártyákhoz?Nem, és valószínûleg nem is
lesz.A Broadcom nem hajlandó nyilvánossá
tenni azokat az információkat, amik az
általuk gyártott vezeték
nélküli chipsetek programozásához
lennének szükségesek, mivel szoftveresen
vezérelt rádiót használnak. Az
alkatrészeik FCC szintû
engedélyeztetéséhez ugyanis valamilyen
módon gondoskodniuk kell róla, hogy a
felhasználók nem képesek bizonyos
dolgokat módosítani vele kapcsolatban,
például a mûködési
frekvenciát, a modulációs
paramétereket vagy a kimenõ
teljesítményt. A chipsetek
programozásának ismerete nélkül
azonban szinte lehetetlen elkészíteni
hozzájuk a megfelelõ meghajtót.A &os; milyen többportos soros vonali
kártyákat ismer?Ezek listáját a kézikönyv
Soros vonali
kommunikációról szóló
része tartalmazza.Bizonyos névtelen másolatok is
használhatók, különösen azok,
amelyek magukat AST-kompatibilisnek nevezik.Az ilyen kártyák
beállításáról a &man.sio.4;
man oldalon olvashatunk részletesebben.Hogyan lehet a boot: parancssort
elõhozni soros vonali konzolon?Olvassuk el a kézikönyvben ezt a
fejezetet.HangA &os; milyen hangkártyákat ismer?A &os; rengeteg hangkártyát ismer, (ennek
részleteit lásd a &os; kiadásait
tartalmazó honlapon és a &man.snd.4;
man oldalon). Korlátozott módon az MPU-401
és a vele kompatibilis MIDI-kártyákat
is támogatja. A µsoft; Sound System
specifikációinak megfelelõ
kártyákat tudjuk használni.Ez azonban csak a hangra vonatkozik! Ez a
meghajtó a &soundblaster; kivételével
nem támogatja a kártyákon
található CD-, SCSI- és joystick
csatlakozásokat. A &soundblaster; SCSI
csatlakozása és bizonyos nem-SCSI
CD-meghajtókat ugyan támogat, de rendszert
például nem tudunk róluk
indítani.Miért nincs hang a &man.pcm.4; által
támogatott hangkártyán?Egyes hangkártyák esetében a
hangerõ minden indításkor nullára
állítódik. Ezért ilyenkor
mindig ki kell adni a következõ parancsot:&prompt.root; mixer pcm 100 vol 100 cd 100Egyéb eszközökKépes a &os; kihasználni az
energiagazdálkodási lehetõségeket
egy laptopon?A &os; bizonyos gépeken képes az
APM használatára.
Errõl az &man.apm.4; man oldalon találunk
pontosabb leírást.A &os; ezenkívül még a
legújabb hardverekben megtalálható
ACPI lehetõségeit is
igyekezik kihasználni. Errõl
részletesebben az &man.acpi.4; man oldalon
olvashatunk. Amennyiben a rendszerünk egyaránt
tartalmazza az APM és az
ACPI támogatását,
bármelyiket használhatjuk. Ilyen esetben
javasoljuk mind a kettõ
kipróbálását és az
igényeinkhez leginkább illeszkedõ
megoldás kiválasztását.Hogy lehet letiltani az ACPI
támogatását?Tegyük bele az alábbi sort az
/boot/device.hints
állományba:hint.acpi.0.disabled="1"Miért fagynak le a Micron típusú
rendszerek indulás közben?Egyes Micron gyártmányú alaplapokon
olyan PCI BIOS található, amely nem felel meg az
szabványoknak, és ezért a &os; nem tud
elindulni, mivel a PCI eszközök nem jelentik le az
általuk használt címeket.Ezt a problémát úgy tudjuk
megoldani, ha a BIOS-ban kikapcsoljuk
(Disabled értékûre
állítjuk) a Plug and Play Operating
System beállítást.A rendszerindító lemez nem képes az
ASUS K7V alaplapokkal mûködni. Hogyan lehet
ezt orvosolni?Menjünk be a BIOS-ba és kapcsoljuk ki
(állítsuk Disabled
értékre) a Boot Virus
Protection beállítást.Miért nem mûködnek a &tm.3com; PCI
hálózati kártyák a Micron
típusú
számítógépekben?Nézzük meg az elõzõ választ.HibaelhárításMiért állapítja meg rosszul a &os;
a memória mennyiségét &i386;
hardveren?A válasz nagy
valószínûséggel a fizikai
és virtuális memóriacímek
közti különbségben rejlik.A legtöbb PC-s hardvereszköz megegyezés
szerint a 3,5 GB és 4 GB közti
memóriaterületet speciális célokra
tartja fenn (általában a PCI
számára). Ezen a címterületen
keresztül éri a PCI eszközöket. Ennek
egyik következménye, hogy a fizikai
memória ezen a részen nem érhetõ
el.Hogy pontosan mi történik az itt
elhelyezkedõ memóriával, teljesen a
hardvertõl függ. Sajnálatos módon
bizonyos eszközök semmilyen megoldást nem
nyújtanak a problémára, és
így lényegében az utolsó
500 MB-nyi memória elveszik.Szerencsére a legtöbb eszköz azonban
képes ezt a területet egy felsõbb
címre leképezni, így ki tudjuk
használni. Ilyenkor azonban tapasztalhatunk
némi félreértést, amikor
megnézzük a rendszerindítás
közben megjelenõ üzeneteket.A &os; 32 bites változata esetén ez a
memóriaterület elveszik, mivel a címe a
4 GB-os határ felé kerül, amelyet a
32 bites módban futó rendszermag
már nem képes elérni. Ezen egy PAE
támogatással rendelkezõ rendszermag
használatával segíthetünk. A
GYIK-on belül ebben a bejegyzésben
olvashatunk bõvebben a
memóriakorlátokról, valamint ebben a részben
láthatjuk a különbözõ
platformokra vonatkozó
memóriakorlátozásokat.A &os; 64 bites változata vagy a PAE
használata esetén azonban a &os; rendesen
felismeri és leképezi a fennmaradó
memóriaterületeket, így azok
használhatóvá válnak. A
rendszerindítás során azonban az
elõbb említett leképezés miatt
látszólag úgy fog tûnni, mintha a
&os; több memóriát észlelne, mint
amennyivel valójában rendelkezünk. Ez
teljesen normálisnak tekinthetõ és a
ténylegesen elérhetõ memória
mennyisége a folyamat végén be fog
állítódni.Mit tegyünk, ha meghibásodott szektorokat
találunk a merevlemezünkön?A SCSI-meghajtók esetében a
meghajtó általában képes
önmagától átképezni az
ilyen szektorokat. A legtöbb meghajtóban ez a
lehetõség viszont alapból nem
engedélyezett.A hibás szektorok
átképezéséhez az eszköz
elsõ lapmódját kell átírnunk,
amelyet (root
felhasználóként) így
tehetünk meg:&prompt.root; camcontrol modepage sd0 -m 1 -e -P 3Változtassuk meg az AWRE (az írás
automatikus átképzése) és ARRE (az
olvasás automatikus átképzése)
beállítások értékeit
0-ról 1-re:AWRE (Auto Write Reallocation Enbld): 1
ARRE (Auto Read Reallocation Enbld): 1A modernebb IDE-meghajtók is képesek a
vezérlõjükkel nyilvántartani az
idõközben meghibásodott szektorokat,
és ezt általában alapból
engdélyezik.Ha rossz szektorokra figyelmeztetõ
hibaüzeneteket látunk (akármilyen
típusú meghajtónk is legyen), az
kétségtelenül arra utal, hogy ideje
lecserélnünk a hardvert. A hibás
szektorok használatát esetleg a
gyártó saját diagnosztikai
programjával le tudjuk tiltani, de hosszabb
távon mindenképpen az lesz a legjobb, ha
veszünk egy újat.A &os; miért nem találja meg a
HP Netserver SCSI-vezérlõjét?Ez tulajdonképpen egy ismert probléma. A
HP Netserver gépekben egy integrált EISA
buszos SCSI-vezérlõ található,
amely a 11-es EISA bõvítõhelyen
található, ezért az összes
valódi EISA
bõvítõhely ez elõtt helyezkedik el.
Sajnos a 10 feletti EISA bõvítõhelyek
címei ütköznek a PCI eszközök
számára kiosztott címekkel,
ezért a &os; önmagától nem tudja
valami jól kezelni az ilyen helyzeteket.Ezért a legjobban akkor járunk, ha
egyszerûen letagadjuk a címterek
ütközését :) Ezt úgy tudjuk
megtenni, ha a rendszermag EISA_SLOTS
nevû beállítását a 12
értékre állítjuk. Ezután
már csak be kell konfigurálunk és
újra kell fordítanunk a rendszermagot, ahogy
azt a kézikönyv
megfelelõ része is
tárgyalja.Természetesen, amikor egy ilyen gépre
akarunk telepíteni, a helyzet tovább
bonyolódik. A telepítést úgy
tudjuk megoldani, ha a UserConfig
programon belül alkalmazunk egy apró
trükköt. Most ne a vizuális
felületét használjuk, hanem a
parancssoros részt. Gépeljük be, majd a
megszokottak szerint telepítsük a
rendszert:eisa 12
quitEttõl függetlenül természetesen
továbbra is javasolt egy, az elõbbiek szerint
módosított rendszermagot fordítanunk
és telepítenünk.A következõ verziókban
remélhetõleg már lesz valamilyen
megoldás erre a problémára.A HP Netserver esetén nem tudunk a
lemezeken Veszélyesen
dedikált (Dangerously
Dedicated) módot használni.
Errõl itt
olvashatunk bõvebben.Állandóan ed1:
timeout és ahhoz hasonló
üzenetek jelennek meg. Mi lehet velük
kezdeni?Ezt a hibát általában a
megszakítások ütközése okozza
(például két kártya ugyanazt a
megszakítást akarja használni).
Indítsuk a rendszerünket a
beállítás használatával
és az
ed0/de0/...
bejegyzéseket változtassuk meg a
kártyáknak megfelelõen.Ha a hálózati kártyánkon BNC
típusú csatlakozó
található, akkor még elõfordulhat,
hogy azért látunk ilyen hibaüzeneteket,
mert nem jól zártuk le a csatlakozást.
Ezt úgy tudjuk könnyen ellenõrizni, ha a
lezárót közvetlenül a
kártyára dugjuk rá (kábel
nélkül) és figyeljük, hogy
továbbra is jönnek-e a hibaüzenetek.Egyes NE2000-kompatibilis kártyák akkor
adják ezt a hibát, ha az UTP portjukon nincs
aktív összeköttetés vagy nem dugtuk
be a kábelt.Miért állnak le a &tm.3com; 3C509
kártyák minden különösebb ok
nélkül?Az ilyen típusú kártyák
néha hajlamosak elfelejteni a
beállításaikat. Frissítsük
a kártya beállításait a
3c5x9.exe program
segítségével.A párhuzamos nyomtató nevetségesen
lassú. Mi lehet ezzel kezdeni?Ha csupán annyi a problémánk, hogy
a nyomtató irdatlanul lassan mûködik, akkor
próbáljuk meg a kézikönyv nyomtatásról
szóló részében
leírtakhoz hasonlóan
átállítani a nyomtató
portkezelését.A programok miért állnak le
idõnként Signal 11
hibákkal?Ezek a hibák akkor keletkeznek, amikor a
futó programok olyan memóriaterülethez
próbálnak meg hozzáférni, amihez
eredetileg nem lenne szabad. Ha valami ehhez hasonló
történik a rendszerünkben
látszólag teljesen
véletlenszerûen, akkor nagyon óvatosan
kezdjünk el vizsgálódni.A lehetséges okok az alábbiak
lehetnek:Ha csak olyan alkalmazások esetében
jelentkezik ez a hiba, amelyeket mi magunk
fejlesztünk, akkor az
valószínûleg arra utal, hogy
valamelyik része hibásan
mûködik.Ha a &os; alaprendszerének valamelyik
részében tapasztalunk ilyen hibákat,
akkor azt szintén okozhatja hibás
kód, de az ilyen hibákat
általában hamarabb meg szokták
találni és ki szokták
javítani, mint ahogy a GYIK-ot olvasók
többsége találkozna velük (a
-CURRENT ág pontosan ezt a
célt szolgálja).Elõfordulhat, hogy ez egy olyan furcsaság
eredménye, amely nem a &os;
hibája: például ugyanazon program
fordításakor mindig mást csinál
a fordítóprogram.Például tegyük fel, hogy a
make buildworld
parancsot futtatjuk, és a fordítás
félbeszakad, amikor az ls.c
állományból el akarja
készíteni az ls.o
állományt. Ha ezután megint
megpróbáljuk kiadni a make
buildworld parancsot,
akkor a fordítás ugyanazon a helyen
újból meghiúsul —
valószínûleg hibás a
forráskód, frissítsük a
forrásainkat és próbáljuk meg
ismét. Ha viszont a fordítás ilyenkor
már egy másik helyen akad el, akkor szinte
biztos, hogy hardverhibával akadtunk
össze.Amit ilyenkor tenni tudunk:Az elsõ esetben egy nyomkövetõ,
például a &man.gdb.1;
segítségével keressük meg a program
azon pontját, ahol rossz
memóriaterülethez próbál meg
hozzáférni és javítsuk
ki.A második esetben ellenõrizzük, hogy
nem a hardver a hibás.Ennek okai többek közt a következõk
lehetnek:Túlmelegednek a merevlemezeink:
ellenõrizzük, hogy a gépben
található ventillátorok rendesen
mûködnek-e (persze elõfordulhat, hogy
más eszközök melegednek
túl).A processzor túlmelegedett: lehet, hogy mert
túlságosan nagy órajelen
járatjuk, vagy mert egyszerûen leállt
a hûtése. Akármelyik eset is
következett be, legalább a hiba
felderítéséig
állítsuk vissza a hivatalos
sebességére.Ha feltétlenül ragaszkodunk a
rendszerünk tuningolásához, akkor
érdemes elgondolkoznunk azon, hogy egy lassabb
rendszerrel jobban járunk, mint egy
állandóan cserélendõ,
ropogósra sült rendszerrel. Az emberek
általában nem is nagyon szeretik az ilyen
rendszereket, független attól, hogy
szerintünk érdemes-e ilyet csinálni
vagy sem.Hibás memóriamodulok: ha több
SIMM és DIMM modul is található a
gépünkben, akkor vegyük ki az
összeset és próbáljuk ki
mindegyiket egyesével, ezzel is
leszûkíthetjük a probléma
felderítését a hibás
DIMM/SIMM modulokra vagy azok
kombinációjára.Az alaplap túlbecslõ
értékei: a BIOS
beállításai között vagy
az alaplapon található jumperekkel
szabályozni tudjuk a
különbözõ
idõzítéseket, ahol
általában az alapértelmezett
értékek megfelelnek, de néha
elõfordulhat, hogy a memóriamodulok
késleltetését lassúra, vagy
éppen turbó sebességre
állítják (RAM Speed:
Turbo vagy ehhez hasonló néven
keressük a BIOS-ban), ami szintén okozhat
furcsa viselkedést. Próbáljuk meg
visszaállítani az BIOS
alapértelmezett értékeit, de
elõtte érdemes lejegyezni az aktuális
beállításainkat.Az alaplap zajos vagy kevés áramot
kap: ha vannak használaton kívüli I/O
kártyáink, merevlemezeink,
CD-meghajtóink a rendszerünkben, akkor
próbáljuk meg ideiglenesen
eltávolítani ezeket vagy egyszerûen
csak lehúzni róluk a
tápkábelt. Ezzel tudjuk vizsgálni,
hogy a számítógépünk
tápegysége képes-e
megbirkózni a kisebb terheléssel. Esetleg
kipróbálhatunk egy másik
tápegységet is, lehetõleg egy
kicsivel erõsebbet (például ha a
jelenlegi tápegységünk
teljesítménye 250 watt, akkor
használjunk helyette egy
300 wattosat).Továbbá érdemes lehet még
elolvasnunk a SIG11 GYIK-ot (lásd lentebb), ahol
mindezeket a problémákat részletesen
kifejtik, noha a &linux;
nézõpontjából. Arról is
olvashatunk benne, hogy egy hibás
memóriát miért nem képesek
észlelni a szoftveres vagy hardveres
tesztelõeszközök.Végezetül, ha az egyik javaslat sem
segített a probléma megoldásában,
akkor valószínûleg sikerült
hibát találnunk a &os; kódjában,
amirõl nyugodtan írhatunk a fejlesztõknek
egy hibajelentést.A problémáról minden
részletre kiterjedõ módon A SIG11-es probléma GYIK-ja
írásban olvashatunk (angolul).A rendszer összeomlik vagy egy Fatal
trap 12: page fault in kernel mode vagy pedig
valamilyen panic: hibaüzenettel
és egy halom számot ír ki. Mit
tegyünk?A &os; fejlesztõi nagyon kíváncsiak
az ilyen hibákra, de a
felderítéséhez sajnos jóval
több információra van
szükségük, mint amennyit láthattunk.
Másoljuk le az összeomláshoz
tartozó teljes üzenetet. Ezután
nézzük meg a GYIK-nak azt a
részét, amely a rendszermag
összeomlásáról szól,
készítsünk egy nyomkövetési
információkkal ellátott rendszermagot
és kérjük le a hívási
láncot. Ez elsõre talán bonyolultnak
hangzik, de ehhez igazából nem igényel
semmilyen programozási tudást, egyszerûen
csak a megadott utasításokat kell
követnünk.A rendszer indulása közben miért
sötétül a képernyõ és megy
el rajta a kép?Ez az ATI Mach 64 videokártyák
esetében jelentkezõ probléma. Ilyenkor az
a gond, hogy a kártya a 0x2e8
címet használja, akárcsak a negyedik
soros port. A &man.sio.4; meghajtóban levõ hiba
(vagy netalán beállítás?) miatt
azonban a negyedik soros portot
még akkor is használni
fogja, ha kikapcsoljuk a sio3 (a
negyedik soros port) eszközt.A hibát kijavításáig
így kerülhetjük meg:A betöltõ parancssorában adjuk meg
a paramétert. (Így
elõ tudjuk hozni a rendszermag
konfigurációs
módját.)Kapcsoljuk ki a sio0,
sio1,
sio2 és
sio3 eszközöket
(tehát mindegyiket). Emiatt a &man.sio.4;
meghajtó nem indul el, és így nem
okoz problémát.Lépjünk ki és folytassuk a
rendszer indítását.Ha a soros portokat is használni akarjuk, akkor
következõ módosításokkal
készítsünk egy új rendszermagot: a
/usr/src/sys/dev/sio/sio.c (vagy pc98
esetén a
/usr/src/sys/pc98/cbus/sio.c)
állományban keressük meg a
0x2e8 karakterláncot és az
azt megelõzõ vesszõt távolítsuk
el (de az utána következõt tartsuk meg).
Miután végrehajtottuk ezt a
módosítást, a megszokott módon
fordítsuk újra a rendszermagot.A &os; miért csak 64 MB
memóriát használ, amikor 128 MB van
a gépben?Mivel &os; a BIOS-tól próbálja
megtudni a rendelkezésre álló
memória méretét, ezért csak
16 biten képes lekérdezni a KB-okban
(vagyis 65 535 KByte = 64 MB, vagy még
ennél is kevesebb, mivel egyes BIOS-ok legfeljebb
16 MB memóriát engednek látni).
Tehát ha 64 MB-nál több
memóriával rendelkezünk, akkor a &os;
ugyan megpróbálja azt felderíteni, de
nem feltétlenül fog sikerülni.Ezt úgy tudjuk megoldani, ha a rendszermag
alábbi beállítását
használjuk. Alapvetõen ugyanis létezik
egy módszer, amivel le lehet kérdezni a
memória teljes méretét a
BIOS-tól, de a hozzátartozó rutin nem
fért el a rendszerindító blokkban. Ha
egyszer majd sikerül neki helyet csinálni, akkor
a rendszer képes lesz kizárólag ezzel a
módszerrel dolgozni. Amíg viszont ez nem
így van, addig kénytelenek leszünk a most
következõ megoldást
választani:options MAXMEM=Nahol N a memória
Kilobyte-okban megadott mérete. Tehát egy
128 MB memóriával rendelkezõ
számítógép esetén ez
131072.A számítógépben több
mint 1 GB memória van, de mégis
kmem_map too small üzenetek
jelennek meg. Mi a gond?A &os; általában a rendszermag
néhány fontos paraméterét, mint
például az egyszerre megnyitható
állományok maximális
számát a
számítógépben
található memória
méretébõl származtatja. Az
1 GB memóriánál több
esetén azonban elképzelhetõ, hogy ez az
automatikus méretezés
túlságosan is nagy értékeket
választ. Így a rendszer
indításakor a rendszermag olyan nagy
méretû táblázatokat és
egyéb struktúrákat foglal le, amelyek
betöltik a rendelkezésére
bocsátott terület nagy részét.
Késõbb, a rendszer futása közben
pedig a rendszermag szépen lassan kifogy a dinamikus
memóriaterületekbõl és
összeomlik.Készítsünk egy olyan saját
rendszermagot, ahol a
beállítást megnöveljük
egészen a maximális 400 MB-os
értékig (). 400 MB
használata valószínûleg
elég lesz egészen 6 GB
memóriáig.A számítógépben nincs
1 GB memória, a &os; mégis
kmem_map too small hibával
leáll!Ez a hibaüzenet arra utal, hogy a rendszer
kifogyott a hálózati pufferek
(különösen az mbuf klaszterek)
számára kiosztott virtuális
memóriából. Az mbuf klaszterek
részére fenntartott virtuális
memória méretének
beállításáról a
kézikönyv Hálózati
korlátozások címû
szakaszában olvashatunk.Miért jelenik meg a kernel: proc:
table is full hibaüzenet?A &os; rendszermagja egyszerre csak bizonyos
számú programot enged futni. Ezek
konkrét száma a
kern.maxusers
&man.sysctl.8;-változótól függ. A
kern.maxusers ezenkívül
még hatással van más belsõ
korlátokra is, például a
hálózati pufferekre (lásd ezt a
korábbi kérdést). Ha a
számítógépünk
túlságosan leterhelt, akkor érdemes
megpróbálkoznunk a
kern.maxusers
értékének
növelésével. Ennek
átállítása a rendszerben
egyszerre futtatható maximális programok
számával együtt sok más
rendszerszintû korlátozást is
finomít.A kern.maxusers
értékének
beállításához nézzük
meg a kézikönyv Az állományok és futó programok korlátozásairól
szóló szakaszát. (Miközben ez a
rész a megnyitható állományok
maximális számáról szól,
addig ugyanez érvényes a futó
programokra is.)Ha viszont a
számítógépünk nem éri
akkora terhelés, de mégis szeretnénk
egyszerre nagyobb számú programot is futtatni
rajta, akkor ehhez elegendõ csak
kern.maxproc változót
átállítanunk. Ezt úgy tudjuk
megtenni, ha felvesszük a
/boot/loader.conf
állományba. Ez az érték
természetesen addig nem
beállítódni, amíg a
rendszerünket újra nem indítjuk.
Ezekrõl a változókról a
&man.loader.conf.5; és &man.sysctl.conf.5; man
oldalakon tájékozódhatunk
részletesebben. Ha az összes programot egyetlen
felhasználóval akarjuk futtatni, akkor a
kern.maxprocperuid változót
értékét is át kell
állítanunk, méghozzá a
kern.maxproc új
értékénél eggyel kisebbre.
(Ezért kell így csinálni, mert egy
rendszerprogram, az &man.init.8; mindig fut.)A sysctl változók
beállításait úgy is tudjuk
véglegesíteni, ha felvesszük ezeket az
/etc/sysctl.conf
állományba. A kézikönyv A
rendszermag korlátainak finomhangolása
címû szakaszában részletesebb is
olvashatunk róla, hogy miként
állítsuk be a rendszerünket.Az új rendszermag indításakor
miért keletkezik CMAP busy
hibaüzenet?Az elavult /var/db/kvm_*.db
állományokat összegyûjtõ rutin
idõnként nem mûködik megfelelõen,
és a nem egyezõ állományok
esetén össze is omolhat.Amikor ilyen történik, indítsuk
újra a rendszert egyfelhasználós
módban és gépeljük be:&prompt.root; rm /var/db/kvm_*.dbMit jelent az ahc0: brkadrint, Illegal Host
Access at seqaddr 0x0 üzenet?Ez az Ultrastor SCSI vezérlõkártya
ütközésére utal.A rendszerindítás közben
lépjünk be a rendszermag
konfigurációs menüjébe és
tiltsuk le a gondot okozó
uha0 eszközt.Amikor elindul a rendszer, egy ahc0: illegal
cable configuration hibaüzenet jelenik meg.
A kábelek bekötésével semmilyen
gond nincs. Mégis akkor mi a baj?Az alaplapon nem található olyan
áramkör, amely támogatja az automatikus
lezárást (automatic
termination). A SCSI BIOS-ban az automatikus
lezárás helyett adjuk meg a megfelelõ
lezárást. Az &man.ahc.4; meghajtója
nem képes rendesen érzékelni a
kábeleket, ha az alaplapon van ilyen
érzékelés (és így
automatikus lezárás). A meghajtó
egyszerûen annyit feltételez, hogy ennek
támogatása csak akkor érhetõ el,
ha az EEPROM-ban megadtuk az automatic
termination beállítást. A
megfelelõ kábeldetektáló
eszköz nélkül a meghajtó gyakran
rosszul állapítja meg a
lezárást, ami pedig így
veszélyezteti a SCSI busz
megbízhatóságát.Miért küld a
sendmailmail loops back
to myself hibaüzenetet?Errõl részletesebben a kézikönyvben
olvashatunk.A távoli gépeken miért viselkednek
olyan furcsán a teljes képernyõs
alkalmazások?Elõfordulhat, hogy az adott távoli
gépen a terminál típusa nem
cons25, amire viszont a &os; konzolnak a
megfelelõ mûködéshez
szüksége lenne.Ezt a problémát többféle
módon is meg tudjuk kerülni:Mikor bejelentkezünk a távoli
gépre, állítsuk a TERM
környezeti változót az
ansi vagy sco
értékre, amibõl kiderül, hogy
egyáltalán ismeri ezeket a
termináltípusokat.A &os; konzolban használjunk VT100
emulátort, például a
screen alkalmazást. A
screen
segítségével egyetlen
terminálról egyszerre több
munkamenetet is tudunk indítani, de
egyébként is egy nagyon jó program.
Minden screen által
létrehozott ablak VT100-as
terminálként mûködik,
ezért a távoli gépen a
TERM környezeti
változó nyugodtan
beállítható a
vt100 értékre.Tegyük hozzá a cons25
bejegyzést a távoli gép
terminálokat tároló
adatbázisához. Ez pontos módszere
jelentõs mértékben függ az adott
gépen található
operációs rendszertõl. Ebben
leginkább az adott gépen
található man oldalak tudnak
segíteni.Indítsunk el a &os; rendszert futtató
gépen egy X szervert és a távoli
géprõl egy X rendszerre
íródott terminálemulátorral,
például az xterm vagy
az rxvt programmal jelentkezzük
be. A távoli gépen ekkor a
TERM változó
értéke vagy xterm, vagy
pedig vt100 lesz.A Plug and Play kártyákat miért nem
találja meg (vagy unknown
típusúként látja) a
&os;?Ennek az okait a következõ levélben
fejtette ki &a.peter; a &a.questions; tagjainak, amelyben
arra válaszolt, hogy egy belsõ modemet
miért nem észlel a rendszer miután
frissítették
&os; 4.X-re (az
érthetõség kedvéért
szögletes zárójelek között
hozzáadtunk néhány
kiegészítést is).Az eredeti szövegbõl készült
idézetet frissítettük.
A PNP BIOS beállította [a modemet]
és magára hagyta valahol a portok
számára fenntartott címtérben,
így az ISA eszközök régi
típusú [3.X-ben
levõ] eszközpróbálgatásai
ott találták meg.A 4.0 esetében azonban az ISA
eszközöket kezelõ kód már
sokkal inkább a PnP
támogatására koncentrál.
Korábban [a 3.X verziókban]
elõfordulhatott az is, hogy az ISA eszközök
keresése során a rendszer egy
kóbor eszközt talált,
majd ugyanazt megtalálta PnP eszközként
és ütköztek az így duplán
lefoglalni kívánt erõforrások.
Ennek kivédésére elõször
tehát letiltjuk a programozható
kártyák felderítését,
így ez a típusú kettõs
detektálás nem történhet meg.
Ez továbbá azt is jelenti, hogy a
támogatott PnP hardverek azonosítóit
elõre ismerni kell. Ennek
hangolhatóságát már
tervbevettük.
Tehát egy ilyen eszköz
mûködtetéséhez
szükségünk lesz a PnP
azonosítójára, valamint arra, hogy
felvegyük a felderítendõ PnP
eszközök ISA eszközök közé.
Ezt a &man.pnpinfo.8; segítségével
kérhetjük le, amely például egy
belsõ modem esetén a következõ
kimenetet fogja adni:&prompt.root; pnpinfo
Checking for Plug-n-Play devices...
Card assigned CSN #1
Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff
PnP Version 1.0, Vendor Version 0
Device Description: Pace 56 Voice Internal Plug & Play Modem
Logical Device ID: PMC2430 0x3024a341 #0
Device supports I/O Range Check
TAG Start DF
I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8
[16-bit addr]
IRQ: 4 - only one type (true/edge)[a többi részt kihagytuk]TAG End DF
End Tag
Successfully got 31 resources, 1 logical fdevs
-- card select # 0x0001
CSN PMC2430 (0x3024a341), Serial Number 0xffffffff
Logical device #0
IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
IRQ 5 0
DMA 4 0
IO range check 0x00 activate 0x01Innen a Vendor ID kezdetû sorra
lesz szükségünk. A zárójelek
között szereplõ hexadecimális
szám (ami a példában a
0x3024a341) lesz az eszköz PnP
azonosítója, valamint a közvetlenül
ez elõtt szereplõ karakterlánc az egyedi
ASCII azonosítója
(PMC2430).Ha a &man.pnpinfo.8; lefuttatásának
eredményeképpen megjelenõ lista nem
tartalmazza a kérdéses eszközt, akkor
helyette a &man.pciconf.8; használatával is
próbálkozhatunk. Íme a
pciconf -vl parancs kimenete egy
integrált hangkártya esetében:&prompt.root; pciconf -vl
chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801AA 8xx Chipset AC'97 Audio Controller'
class = multimedia
subclass = audioEbbõl a chip
változót, vagyis a
0x24158086 értéket kell
felhasználnunk.Ezt az információt (a Vendor
ID vagy a chip
értékét) ezután a
/usr/src/sys/dev/sio/sio_isa.c
állományba kell felvennünk.Ehhez elõször is készítsünk
egy biztonsági másolatát a
sio_isa.c
állományról arra az esetre, ha
véletlenül valami rossz történne.
Ez azért is hasznunkra fog válni, mert
így tudunk egy javítást
mellékelni a hibajelentésünk mellé
(mert ugye írni fogunk róla
hibajelentést, ugye?). Szóval, keressük
meg a sio_isa.c
állományban a következõ sort:static struct isa_pnp_id sio_ids[] = {Menjük lentebb egészen addig, amíg
nem találunk egy helyet, ahova be tudunk szúrni
egy bejegyzést az eszközünkhöz. A
bejegyzések megadásának módja
lentebb látható, és a jobb oldalt
megjegyzésbe tett ASCII Vendor ID szerint
rendezettek, amelyek mellett még
megtalálható (amennyiben kifér) a
&man.pnpinfo.8; Device Description
kimenetében kapott érték is:{0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */
{0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */
{0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */
{0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */
{0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */A megfelelõ helyre ezután vegyük fel az
eszközünkhöz tartozó
hexadecimális Vendor ID értéket,
mentsük el az állományt, fordítsuk
újra a rendszermagot és indítsuk
újra vele a rendszerünket. Ha mindent
jól csináltunk, akkor az eszköz
sio eszközként fog
megjelenni.Miért keletkezik nlist
failed hiba például a
top vagy systat
parancsok futtatásakor?A gondot alapvetõen az okozza, hogy a
kérdéses alkalmazás valamiért egy
olyan rendszermagbeli szimbólumot keres, amit nem
talál. Ez a típusú hiba a
következõkbõl eredhet:A rendszermag és a hozzátartozó
programok nincsenek szinkronban (vagyis
fordítottunk egy új rendszermagot, de nem
volt installworld vagy
fordítva) és emiatt a szimbólumokat
tároló táblázat nem teljesen
úgy épül fel, ahogy azt az
alkalmazás gondolja. Ha errõl lenne
szó, akkor egyszerûen nincs más
teendõnk, mint befejezni a frissítést
(ennek pontos részleteit lásd a
/usr/src/UPDATING
állományban).Nem a /boot/loader, hanem
közvetlenül a boot2
(lásd &man.boot.8;)
segítségével töltjük be a
rendszermagot. Noha alapvetõen semmilyen
problémát nem nem okoz a
/boot/loader kihagyása,
általánosságban véve
azért mégis jobban
elérhetõvé tudja tenni a
rendszermagban található
szimbólumokat a felhasználói
programok felé.Miért tart olyan sokáig
ssh vagy telnet
használatával csatlakozni a
számítógéphez?A tünet: nagyon sok idõ telik
aközött, amíg a TCP kapcsolat
felépül és a kliens bekéri a
jelszót (vagy a &man.telnet.1; esetében
amíg a bejelentkezõ képernyõ
megjelenik).A betegség: nagyon valószínû,
hogy a késlekedést az okozza, amikor a szerver
megpróbálja a kliens IP-címét
feloldani hálózati névvé. Sok
szerver, köztük a &os;-ben is
megtalálható Telnet
és SSH szerver is ezt
csinálja, többek közt azért, hogy
a rendszergazda számára el tudja
tárolni egy naplóban ezt a
hálózati nevet.Az orvosság: ha az említett
jelenség minden olyan esetben jelentkezik, amikor a
számítógéprõl (mint
kliensrõl) valamilyen szerverhez csatlakozni akarunk,
akkor a kliens oldalán lesz a gond. Ehhez
hasonlóan, ha csak egy adott szervernél
tapasztaljuk, akkor azzal a
számítógéppel
történhetett valami.Amennyiben a problémákat a kliens okozza,
nem tehetünk mást, a névoldáson kell
úgy javítanunk, hogy a szerver
normálisan fel tudja oldani. Ha helyi
hálózaton tapasztaljuk mindezt, akkor ez
már a szerver problémája és
olvassunk tovább. Ellenkezõ esetben az internet
a felelõs, ezért nagyon
valószínû, hogy fel kell vennünk a
kapcsolatot az internet-szolgáltatónkkal
és segítséget kérni
tõlük a hiba
elhárításában.Ha a problémát viszont a helyi
hálózaton található szerver
okozza, akkor úgy kell azt
beállítanunk, hogy a helyi neveket
képes legyen rendesen feloldani. Ezzel kapcsolatban
a &man.hosts.5; és &man.named.8; man oldalakat
érdemes elolvasnunk. Ha a probléma viszont az
interneten jelenik meg, akkor valószínû,
hogy a szerver névfeloldása nem üzemel
rendesen. Nézzünk meg egy másik
gépet — például a
www.yahoo.com címet. Ha ez sem
mûködik, akkor nálunk van a gond.A &os; friss telepítését
követõen az is elképzelhetõ, hogy
egyszerûen csak hiányoznak a
tartományokkal és névszerverekkel
kapcsolatos megfelelõ adatok az
/etc/resolv.conf
állományból. Ez gyakran okoz
késlekedést az SSH
mûködésében, mivel az /etc/ssh
könyvtárban található
sshd_config állományban
alapértelmezés szerint a
UseDNS beállítás
értéke yes (tehát a
névfeloldás használata
engedélyezett). Ha valóban ez okozza a
problémát, akkor a pótoljuk az
/etc/resolv.conf
állományból hiányzó
adatokat vagy az sshd_config
állományban a UseDNS
értéke ideiglenesen legyen
no.Mire utal a stray IRQ
(kóbor megszakítási kérés)
üzenet?A kóbor megszakítási
kéréseket jelzõ üzenetek
általában a hardveres megszakítási
kérések egyenletlenségeire utalnak,
ezen belül is leginkább olyan esetekre, amikor
az eszköz egy megszakítási
kérés nyugtázása
közepén eltávolítja az adott
kérést.Három dolgot tehetünk ezzel
kapcsolatban:Elviseljük ezeket a figyelmeztetéseket.
Megszakítási
kérésenként az elsõ öt
üzenet után amúgy sem jelez
többet a rendszer.Ha platformunkhoz (mint például
&i386;) tartozó intr_machdep.c
állományban található
MAX_STRAY_LOG
értékét átírjuk
5-rõl 0-ra
és így újrafordítjuk a
rendszermagot, akkor ezzel teljesen letilthatjuk a
figyelmeztetéseket.Megszüntetjük az üzeneteket
úgy, hogy csatlakoztatunk a rendszerhez egy olyan
párhuzamos vonali eszközt, amely a 7-es
IRQ-t használja, és rakunk fel
hozzá egy PPP meghajtót (a legtöbb
helyen egyébként ezzel lesz a gond),
valamint a 15-ös IRQ-ra pedig rakunk egy
IDE-meghajtót vagy más hasonló
eszközt és telepítjük
hozzá a megfelelõ meghajtót.Miért jelenik meg folyamatosan a file:
table is full üzenet a
rendszernaplóban?Ha ilyen hibaüzenetet látunk, akkor az arra
utal, hogy kifogytunk a rendszerünkben egyszerre
használható
állományleírókból. A
probléma leírásával és
megoldásával kapcsolatban olvassuk el a
kézikönyvben a kern.maxfiles
változóról szóló
részt A
rendszermag korlátainak finomhangolása
címû szakaszban.Miért árasztják el
calcru: negative runtime vagy
calcru: runtime went backwards
üzenetek a konzolt?Ismert egy olyan probléma, hogy a BIOS-ban
engedélyezzük az &intel; Enhanced SpeedStep
technológiáját, akkor a rendszermag
ehhez hasonló calcru
üzeneteket kezd el küldözgetni:calcru: runtime went backwards from 6 usec to 3 usec for pid 37 (pagezero)
calcru: runtime went backwards from 6 usec to 3 usec for pid 36 (vmdaemon)
calcru: runtime went backwards from 170 usec to 138 usec for pid 35 (pagedaemon)
calcru: runtime went backwards from 553 usec to 291 usec for pid 15 (swi6: task queue)
calcru: runtime went backwards from 15521 usec to 10366 usec for pid 2 (g_event)
calcru: runtime went backwards from 25 usec to 12 usec for pid 11 (swi1: net)
calcru: runtime went backwards from 4417 usec to 3960 usec for pid 1 (init)
calcru: runtime went backwards from 2084385 usec to 1793542 usec for pid 1 (init)
calcru: runtime went backwards from 408 usec to 204 usec for pid 0 (swapper)Ennek oka, hogy az &intel; SpeedStep (EIST) egyes
alaplapokkal nem kompatibilis.Megoldás: Tiltsuk le a BIOS-ban az EIST
használatát. Ekkor még az
ACPI-alapú
processzorfrekvencia-szabályozás
továbbra is elérhetõ a &man.powerd.8;
használatán keresztül.Miért jár rosszul az óra a
számítógépen?A számítógépnek kettõ
vagy több idõmérõ eszköze van,
és a &os; pont a rosszabbikat
választotta.Adjuk ki a &man.dmesg.8; parancsot és
vizsgáljuk meg a Timecounter
kezdetû sorokat. Ezek közül a &os; a
legnagyobb quality értékkel
rendelkezõt választotta.&prompt.root; dmesg | grep Timecounter
Timecounter "i8254" frequency 1193182 Hz quality 0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
Timecounter "TSC" frequency 2998570050 Hz quality 800
Timecounters tick every 1.000 msecErrõl a
kern.timecounter.hardware &man.sysctl.3;
változó lekérdezésével
tudunk ténylegesen megbizonyosodni:&prompt.root; sysctl kern.timecounter.hardware
kern.timecounter.hardware: ACPI-fastElõfordulhat, hogy az ACPI-idõzítõ
hibás. Ilyenkor az a legegyszerûbb, ha az
/etc/loader.conf
állományban letiltjuk az
ACPI-idõzítõ
használatát:debug.acpi.disabled="timer"Vagy a BIOS is tudja módosítani a TSC
idõzítõt — például
azért, hogy csökkentse a processzor
sebességét, amikor merül az
akkumulátor vagy energiatakarékos módra
vált. A &os; sajnos nem figyel ezekre a
változtatásokra és elcsúszik az
idõméréssel.Ahogy viszont az iménti példában is
látható, itt még az
i8254 idõzítõ is
használható, méghozzá
úgy, hogy a
kern.timecounter.hardware &man.sysctl.8;
változó értékét
átállítjuk erre az
értékre:&prompt.root; sysctl -w kern.timecounter.hardware=i8254
kern.timecounter.hardware: TSC -> i8254Innentõl kezdve a
számítógépünk már
sokkal pontosabban mutatja az idõt.Ezt a változtatást úgy tudjuk
minden rendszerindítás során
automatikusan megtenni, ha felvesszük a
következõ sort az
/etc/sysctl.conf
állományba:kern.timecounter.hardware=i8254A rendszer laptopon miért nem tudja rendesen
megtalálni a PC-kártyákat?Ez a probléma gyakran megjelenik olyan
laptopokon, amelyek egynél több
operációs rendszert is futtatnak, egyes
nem-BSD típusú rendszerek ugyanis hajlamosak a
hardvert inkonzisztens állapotban hagyni. Emiatt a
&man.pccardd.8; parancs az adott kártyát
"(null)""(null)" néven
észleli a valós típusa helyett.A hardvert innen teljesen csak úgy tudjuk
alapállapotába hozni, ha a PC-kártya
foglalatát áramtalanítjuk. Ehhez ki
kell kapcsolnunk a laptopot. (Tehát ne tegyük
se készenléti, se pedig hibernált
állapotba — teljesen ki kell kapcsolni.) A
PC-kártya ezután várhatóan
már mûködni fog.Némely laptopok hazudnak arról, hogy
rendesen ki vannak-e kapcsolva. Amennyiben az elõbbi
módszer nem válna be, próbáljuk
meg úgy, hogy kikapcsoljuk a gépet,
kivesszük az akkumulátort, várunk egy
keveset, visszarakjuk és újra
bekapcsoljuk.Miért ad a &os; rendszertöltõje
Read error hibát és
áll meg a BIOS képernyõn?A &os; rendszertöltõje rosszul ismerte fel a
merevlemez geometriáját. Ezt a &os; slice-ok
létrehozásakor és
módosításakor külön meg kell
adni az &man.fdisk.8; használatakor.A meghajtóhoz tartozó megfelelõ
geometriai beállítások a
számítógép BIOS-ában
találhatóak. Keressük meg az adott
meghajtó cilinder-fej-szektor (Cylinder/Head/Sector)
értékét.A &man.sysinstall.8;
partíciószerkesztõjében a
G billentyû lenyomásával
tudjuk beállítani ezt.Ekkor egy párbeszédablak jelenik meg, ahol
meg tudjuk adni a cilinderek, fejek és a
sávonkénti szektorok számát.
Ide perjelekkel elválasztva gépeljük e a
BIOS-ban talált értékeket.
Például ha a merevlemez geometriája
5000 cilinder, 250 fej és sávonként 60
szektor, akkor a 5000/250/60
értéket kell megadnunk.Az Enter billentyû
lenyomására ezek az értékek
beállítódnak, és a
W lenyomására pedig az
új partíciós tábla
kiíródik a lemezre.Egy másik operációs rendszer
letörölte a boot managert. Hogyan lehet
visszaállítani?Indítsuk el a &man.sysinstall.8; programot, majd
válasszuk a Configure
és Fdisk
menüpontokat. A
partíciószerkesztõben a
Space billentyûvel tudjuk
kiválasztani azt a partíciót, amelyen
korábban a boot manager volt. Ezután az
W billentyû lenyomásával
tudjuk a változtatásainkat lemezre menteni.
Ekkor egy menü jelenik meg, ahol a telepíteni
kívánt rendszertöltõt
választhatjuk ki. Adjuk meg és ekkor
visszakerül a helyére.Mit jelent a swap_pager: indefinite wait
buffer: hibaüzenet?Ez arra utal, hogy egy futó program
megpróbált kiírni egy lapot a
memóriából a lemezre, azonban 20
másodperce már nem tudott
hozzáférni a lemezhez. Ezt okozhatják
hibás szektorok a lemezen, a lemez hibás
kábelezése vagy esetleg valamilyen
lemezmûveletekkel kapcsolatos hardver
meghibásodása. Amennyiben maga a
meghajtó a rossz, akkor az ilyen hibaüzenetek
mellett még más, a lemez hibás
mûködésére utaló
üzenetet is látnunk kell a
/var/log/messages
állományban vagy a dmesg
kimenetében. Minden más esetben
érdemes a meghajtó csatlakozásait
és kábelezését
ellenõrizni.Mik azok a UDMA ICRC hibák
és hogyan lehet ellenük tenni valamit?A &man.ata.4; meghajtó jelenti ezeket a
UDMA ICRC hibákat olyan esetekben,
amikor a merevlemezre vagy a merevlemezrõl
érkezõ DMA átvitel hibás. A
meghajtó ilyenkor még párszor
megpróbálja megismételni a
mûveletet. Amennyiben ezek a mûveletek is
meghiúsulnak, a DMA átvitel helyett a lassabb
PIO átviteli módra állítja
át a merevlemez felé irányuló
kommunikációt.Ezt a problémát több
tényezõ is okozhatja, habár ennek a
leggyakoribb oka a hibás vagy rossz
kábelezés. Ilyenkor mindig
ellenõrizzük, hogy a merevlemezhez
csatlakozó ATA-kábelek sértetlenek
és a használni kívánt
Ultra DMA átviteli módra alkalmasak. Ha
cserélhetõ lemezes meghajtót
használunk, akkor kompatibilisnek is kell
lenniük. Ez a gond akkor jelentkezhet, amikor
ugyanarra az ATA-csatornára egy
Ultra DMA 66-os (vagy annál is gyorsabb)
és egy régebbi meghajtót
csatlakoztatunk. Végezetül ezek a
hibaüzenetek arra is utalhatnak, hogy a meghajtó
meghibásodott. A legtöbb gyártó
külön szoftver ajánl fel ennek
vizsgálatára, ezért ilyenkor
érdemes letesztelnünk az érintett
meghajtót, illetve amennyiben szükséges,
biztonsági másolatot készíteni
az adatainkról és kicserélni az
eszközt.Az &man.atacontrol.8; segédprogram
használatával ellenõrizni tudjuk, hogy
jelenleg az egyes ATA-eszközök milyen DMA vagy PIO
módban mûködnek. Erre a célra
különösen az atacontrol mode
csatorna parancsot
javasoljuk, amivel képesek vagyünk
megnézni az adott ATA-csatornára
csatlakozó eszközök átviteli
módjait. Itt a csatorna
értéke nullától indul.Mi az a lock order
reversal?Erre a kérdésre a választ a &os;-s
szakkifejezések gyûjteményében
találjuk meg a LOR
címszó alatt.Mit jelent a Called ... with the following
non-sleepable locks held üzenet?Ez az üzenet arra utalhat, hogy egy
függvény lepihent miközben nála volt
egy mutex (vagy más, nem pihentethetõ)
típusú zárolás.Azért keletkezik ilyen hiba, mert a mutexeket nem
úgy tervezték, hogy hosszabb ideig is meg
lehessen tartani, kizárólag csak rövid
idõtartamra vonatkozó
szinkronizációt lehet velük
végezni. Ez a programozói megegyezés
lehetõvé teszi az eszközmeghajtók
számára, hogy a megszakítások
közben mutexek segítségével
képesek legyenek szinkronizálni a rendszermag
többi részével. A
megszakítások (&os; alatt) pedig nem
pihenhetnek. Ezért a rendszermagon belül
semmilyen olyan alrendszer nem blokkolódhat
huzamosabb ideig, amelyik mutexet tart
magánál.Ezeket a hibákat úgy tudjuk
elcsípni, ha olyan ellenõrzéseket
teszünk a rendszermagba, amelyek jeleznek a
&man.witness.4; alrendszernek, hogy küldjön
figyelmeztetést vagy akár végzetes
hibát (a rendszer
konfigurációjától
függõen) azokban a helyzetekben, amikor egy
sejthetõen hosszabb ideig blokkolt hívás
tart magánál egy mutexet.Röviden úgy foglalhatnánk össze,
hogy ezek a hibák alapvetõen nem
végzetesek, de egy kis balszerencsével az
egyszerû kis megakadásoktól kezdve a
teljes lefagyásig szinte bármilyen
hibáért felelõsek lehetnek.A
buildworld/installworld
miért áll le touch: not
found hibával?Ez a hibaüzenet nem azt jelenti, hogy a
&man.touch.1; segédprogram nem található,
hanem inkább azt, hogy az érintett
állományok dátuma a jövõre
állítódott be. Ha a CMOS
óránkat a helyi idõ szerint
állítottuk be, akkor
egyfelhasználós módban indítsuk
újra a rendszert és a
adjkerntz -i parancs
kiadásával állítsuk be a
rendszermag óráját.Kereskedelmi alkalmazásokEz a fejezet még nagyon rövid, de
természetesen reméljük, hogy a
különbözõ cégek hamarosan
bõvíteni fogják! :) A &os;
fejlesztõinek ezzel kapcsolatban semmilyen anyagi
érdekük nincs, csupán szeretnék
felsorolni a nyilvánosan is elérhetõ
szolgáltatásokat (de úgy
érezzük, hogy a &os; kereskedelmi
irányú megközelítése a &os;
fejlõdésére is jó hatással
lehet hosszabb távon). Javasoljuk minden kereskedelmi
fejlesztõnek, hogy küldjék be ide is a
saját kérdéseiket. A gyártók
honlapján olvashatjuk a teljes
listájukat.Honnan lehet a &os;-hez irodai programcsomagokat
szerezni?A nyílt forráskódú
OpenOffice.org
irodai programcsomag &os; alatt natívan is
futtatható. StarOffice
linuxos változata, amely az
OpenOffice.org zárt
forráskódú, továbbfejlesztett
változata, szintén mûködik &os;
alatt.A &os; ezeken kívül még számos
szövegszerkesztõt,
táblázatkezelõt és rajzprogramot
is tartalmaz a Portgyûjteményében.Honnan lehet a &motif;-ot
szerezni a &os;-hez?A The Open Group kiadta a
&motif; 2.2.2
változatának
forráskódját. Ez az x11-toolkits/open-motif
csomagból vagy portból érhetõ el.
A telepítésével kapcsolatban olvassuk
el a kézikönyv portokról szóló részét.
Az Open &motif;
kizárólag csak nyílt forráskódú
operációs rendszereken
terjeszthetõ.Ezenkívül még
használhatóak a
&motif; kereskedelmi
változatai is. Ezek viszont már nem
ingyenesek, de a licencük megengedi azt, hogy
zárt forráskódú szoftverekben is
felhasználhassuk. Az Apps2gonál
érdeklõdjünk a &os;-re elérhetõ
legolcsóbb
&motif; 2.1.20 ELF (&i386;)
típusú terjesztésekkel kapcsolatban.
Kétfajta terjesztés létezik, a
fejlesztõi változat és a
futásidejû változat
(valamivel olcsóbb). Az egyes terjesztésekben
a következõk találhatóak:OSF/&motif; manager,
xmbind,
panner,
wsmFejlesztõi készlet: uil, mrm, xm,
xmcxx, include és
Imake
állományokStatikus és dinamikus ELF
könyvtárakPélda alkalmazásokA megrendelés során ne felejtsük el
megadni, hogy a &motif; melyik &os;
verzióhoz készített
változatát kérjük (valamint az
architektúrát se)! Az
Apps2go NetBSD és OpenBSD
rendszerekkel is foglalkozik, ezeket a változatokat
jelenleg csak FTP-n keresztül lehet
elérni.További információkAz Apps2go honlapjailletvesales@apps2go.com vagy
support@apps2go.comvagytelefonon: (817) 431 8775 és
+1 817 431-8775Honnan lehet &os;-re CDE-t
szerezni?A Xi Graphics korábban
kínált fel CDE-t
&os;-hez, de manapság már nem foglalkoznak
ezzel.A KDE
a CDE-hez nagyon sok tekintetben
hasonló nyílt forráskódú
X11 munkakörnyezet, de érdemes
pillanatást vetnünk az xfce-re
is. A KDE és az
xfce egyaránt
megtalalálható a portok között.
Használhatóak adatbázisrendszerek
&os; alatt?Igen! A &os; hivatalos honlapján
megtaláljuk ezeket a
kereskedelmi gyártók
között.Érdemes még megnéznünk a
Portgyûjteményeben a adatbázisokat
tartalmazó szekciót.Az &oracle; fut &os;
alatt?Igen. A következõ oldalakon találunk
arról információt, hogyan
telepíthetjük &os;-re az
&oracle; &linux;
változatát:
http://www.unixcities.com/oracle/index.html
http://www.shadowcom.net/freebsd-oracle9i/Felhasználói alkalmazásokHol vannak a felhasználói
programok?Nézzünk szét a portok között
és láthatjuk, hogy milyen szoftvereket
portoltak eddig &os;-re. A listában pillanatnyilag
&os.numports; port található és naponta
növekszik, ezért érdemes folyamatosan
figyelni vagy az új portokról úgy is
értesülhetünk rendszeresen, ha
feliratkozunk a &a.announce; címére.A legtöbb portnak mûködnie kell a
6.X,
7.X és
8.X ágak használata
esetén is. Mindegyik &os; kiadás
elkészítésekor készül egy
pillanatfelvétel a portokat tartalmazó
könyvtárról és bekerül a
ports/
könyvtárba.Ezenkívül még csomagok
is rendelkezésünkre állnak, amelyek
lényegében egy tömörített
bináris terjesztési formát takarnak,
némi plusz információval
kiegészítve az egyéni
telepítésekhez
elvégzéséhez. A csomagok könnyen
telepíthetõek és
eltávolíthatóak anélkül,
hogy pontosan ismernénk a benne
található állományok összes
apró részletét.A különbözõ csomagokat a
&man.sysinstall.8; programban (a
Configure menün belül)
található Packages
menüpontban tudjuk telepíteni, vagy
meghívjuk meg a &man.pkg.add.1; parancsot. A
csomagokat leginkább .tbz
kiterjesztésükrõl lehet megismerni,
valamint a telepítõ CD-ken a packages/All
könyvtárban találhatóak. Az
interneten keresztül is le tudjuk tölteni ezek
közül a &os; különbözõ
verzióihoz tartozó változatukat a
hozzánk legközelebbi
tükrözésekrõl:6.X-RELEASE/6-STABLE
esetén:
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable/7.X-RELEASE/7-STABLE
esetén:
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-stable8-CURRENT esetén:
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8-currentNem mindegyik port érhetõ el
csomagként, mivel folyamatosan készülnek az
újabbak. Ezért mindig érdemes bizonyos
idõközönként ellenõrizni a
központi ftp.FreeBSD.org
oldalon található csomagokat.Hogyan tudjuk beállítani az INN (Internet
News) szolgáltatást a
gépünkön?Telepítsük az news/inn csomagot vagy portot
és utána kiindulásképpen
nézzük meg Dave Barr INN
oldalát, ahol (angolul) találhatunk
egy INN GYIK-ot.A &os; rendelkezik &java;
támogatással?Igen. Látogassunk el a http://www.FreeBSD.org/java/
oldalra.Miért nem fordul egy port a
6.X-STABLE vagy a
7.X-STABLE változatot
futtató gépeken?Ha olyan &os; verziónk van, amely egy kicsit
lemaradt az aktuális -CURRENT
vagy -STABLE ágak
mögött, akkor valószínûleg
frissítenünk kell a
Portgyûjteményünket. Ennek
részleteirõl a Porterek
kézikönyvében, a Keeping Up
címû részben olvashatunk (angolul). Ha
viszont rendszerünkben minden a lehetõ
legfrissebb, akkor elõfordulhat, hogy valaki olyan
változtatást rakott fel a porthoz, amely a
-CURRENT esetén
mûködik, de a -STABLE
változatban már nem. Ilyenkor
feltétlenül küldjünk egy
hibajelentést a &man.send-pr.1; paranccsal, hiszen a
Portgyûjteménynek a -CURRENT és -STABLE
ágak esetén egyaránt mûködnie
kell.A make index
paranccsal nem sikerült létrehozni az
INDEX állomyánt. Mi a
gond?Elsõként mindig ellenõrizzük, hogy
a Portgyûjteményünk a lehetõ
legfrissebb. A legfrissebb változatnál
jelentkezõ INDEX
készítési hibák mindig szem
elõtt vannak, ezért általában
gyorsan megjavulnak.Ha viszont egy friss verzióval rendelkezünk,
akkor elképzelhetõ, hogy egy másik
hibával kerültünk szembe. A
make index
parancsnak van egy olyan hibája, amely miatt nem
képes a Portgyûjtemény hiányos
példányával dolgozni.
Feltételezi ugyanis, hogy az összes olyan port
megtalálható a rendszerünkben, amely
telepítése szükséges az adott
porthoz. Ennek megértéséhez most
képzeljük el, hogy megvan az
ize/mize port a lemezen, amely
függ az aze/maze porttól,
és emiatt az aze/maze portnak
és függõségeinek is rajta kell
lennie a lemezünkön. Minden más esetben a
make index nem
tud összegyûjteni elegendõ
információt ahhoz, hogy létre tudja
hozni a függõségi gráfot.Ez különösen olyan &os;
felhasználókkal fordul elõ, akik a
&man.cvsup.1; (vagy &man.csup.1;)
használatával frissítik a
Portgyûjteményüket, de a
refuse állományokban
kizártak néhány
kategóriát. Elméletben
természetesen ki lehet zárni akármilyen
kategóriát, azonban a gyakorlat azt mutatja,
hogy ez szinte lehetetlen, mivel túlságosan
sok port függ más kategóriákban
található portoktól. Amíg
valaki meg nem oldja ezt a problémát, addig
fogadjuk el általános szabálynak, hogy
az INDEX
létrehozásához a teljes
Portgyûjteménnyel rendelkeznünk
kell.Néhány ritka esetben még
elõfordulhat, hogy az INDEX
azért nem jön létre, mert a
make.conf állományban
megadtunk valamilyen
WITH_* vagy
WITHOUT_*
változót. Ha úgy érezzük,
hogy ez okozhatja a problémát, akkor
próbáljuk meg elõször ezen
változók nélkül
létrehozatni az INDEX
állományt és csak utána
jelenteni a hibát a &a.ports;
címére.A CVSup miért nincs a
&os; forrásai között?A &os; alaprendszerét úgy
állították össze, hogy saját
magát legyen képes legyen lefordítani,
vagyis az egész operációs rendszer
elõállítható legyen
néhány alapvetõ eszköz
használatával. Ezért a források
között leginkább csak az
található meg, ami feltétlenül
kell a források lefordításához.
Ilyen például a C fordító
(&man.gcc.1;), a &man.make.1;, &man.awk.1; és a
többi.Mivel a CVSup a Modula-3
programozási nyelven íródott, csak
úgy tudnánk beletenni a &os; alaprendszerbe,
ha hozzávennénk és
karbantartanánk egy Modula-3 fordítót
is. Ezzel együtt viszont növekedne a &os;
forrása, amelyet aztán karban is kellene
tartani. Ezért mind a fejlesztõk, mind pedig a
felhasználók számára
egyszerûbb, ha a CVSup egy
külön portként érhetõ el a
rendszerhez. Ez viszont gyorsan telepíthetõ a
&os; telepítõ CD-ken található
csomagokból.Azonban a &os; 6.2-RELEASE
megjelenésétõl kezdve a &os;
felhasználók nem maradnak integrált
CVSup kliens nélkül.
&a.mux; munkájának köszönhetõen
a CVSup alkalmazásnak
elkészült a C nyelven újraírt
változata, a &man.csup.1;, amely most már az
alaprendszer része. Noha jelenleg nem még nem
képes mindarra, amire a
CVSup, elegendõ (és
nagyon gyors!) ahhoz, hogy a forrásainkat frissen
tartsuk. A 6.2 elõtt kiadott rendszerek
esetében ezt portból vagy csomagból is
felrakhatjuk (lásd net/csup).A forrásokon kívül a
telepített portokat is lehet valahogy
frissíteni?A &os; alaprendszere ehhez nem kínál fel
semmilyen eszközt, de léteznek olyan
segédeszközök, amelyekkel valamennyire meg
tudjuk könnyíteni a frissítés
folyamatát. További segédprogramok
telepítésével pedig a portok
kezelését tudjuk tovább
egyszerûsíteni, amirõl a &os;
kézikönyv A portok frissítése
címû szakaszában olvashatunk
bõvebben.Minden nagyobb
verziófrissítésnél újra
kell fordítani az összes telepített portot
a rendszeren?Mindenképpen! Noha látszólag a
frissített rendszeren is remekül futnak a
korábbi verzióra telepített
alkalmazások, könnyen elõfordulhat, hogy az
újabb portok telepítésékor vagy
a meglevõek frissítésekor
véletlenszerû összeomlásokat vagy
egyéb hibákat tapasztalunk.Ne felejtsük el, hogy a rendszer
frissítésekor a különféle
osztott könyvtárak, betölthetõ modulok
és a rendszer egyéb komponensei is
lecserélõdnek. Ezért a régebbi
változataikhoz fordított alkalmazások
egyáltalán nem fognak elindulni vagy nem
mûködnek rendesen.Ezzel kapcsolatban olvassuk el a &os;
kézikönyvének frissítérõl
szóló szakaszát.Minden kisebb
verziófrissítésnél újra
kell fordítani az összes telepített portot
a rendszeren?Általánosságban véve nem. A
&os; fejlesztõi ugyanis mindent megtesznek azért,
hogy ugyanazon a fõ fejlesztési ágon
belüli verziók között megmaradjon a
bináris szintû kompatibilitás. Az
esetleges kivételeket pedig dokumentálni
szokták a kiadásokhoz tartozó
jegyzetekben, ahol többnyire megadják az adott
változtatáshoz tartozóan a
követendõ tanácsokat.A /bin/sh miért ilyen
egyszerû? A &os;-ben miért nincs
bash vagy valamilyen más rendes
parancsértelmezõ?Mert a &posix; szerint lennie kell egy ilyen
parancsértelmezõnek.A valamivel bonyolultabb válasz: sokan
szeretnének olyan szkripteket írni, amelyek
több rendszer közt is átvihetõek.
Ezért a &posix; a parancsértelmezõkre
és a segédprogramokra vonatkozó
parancsokat igen részletesen tárgyalja. A
legtöbb ilyen szkriptet a Bourne-féle
parancsértelmezõben készítik,
és több fontos programozói felület
(&man.make.1;, &man.system.3;, &man.popen.3; és ezek
magasabb szintû, például Perl és
Tcl nyelvi megfelelõi) a
Bourne-parancsértelmezõ
használatán alapszik. Mivel a
Bourne-parancsértelmezõ használata ilyen
széles körben elterjedt, fontos, hogy gyorsan
induljon, elõre megjósolható legyen a
mûködése és ne foglaljon
túlságosan sok memóriát.A jelenlegi implementáció igyekszik ezek
közül az elvárások közül
egyszerre a lehetõ legtöbbet teljesíteni.
A /bin/sh programot csak úgy
tudjuk a megfelelõ méreten tartani, ha nem
tesszük bele az összes többi
parancsértelmezõben megtalálható
kényelmi funkciót. Pontosan ezért
találhatjuk meg viszont a
Portgyûjteményben a többi,
például a bash,
scsh, tcsh és
zsh parancsértelmezõket.
(Ezek konkrét memóriahasználatát
össze is tudjuk vetni, ha a ps
parancs kimenetének
VSZ és RSS oszlopait
megnézzük.)A &netscape; és az
Opera indítása
miért tart olyan sokáig?Erre az az általános válasz, hogy a
névfeloldás valószínûleg
rosszul mûködik a rendszerünkön. A
&netscape; és az
Opera is ellenõrzi a
névfeloldást az indulásakor.
Ezért a böngészõ egészen
addig nem jelenik meg az asztalon, amíg
választ nem kap vagy rá nem jön, hogy
nincs aktív hálózati kapcsolat.Ha a CVSup
használatával frissítjük a
Portgyûjteményt, akkor sok port nem fordul le
mindenféle rejtélyes hibaüzenet
kíséretében! Valami nagy baj van a
Portgyûjteménnyel?Ha úgy korábban úgy
frissítettük a CVSup
használatával a Portgyûjteményt,
hogy nem adtuk meg a ports-allCVSup algyûjteményt,
akkor a ports-base
algyûjteményt is mindig
frissítenünk kell! Ennek okairól a
kézikönyvben olvashatunk.Hogyan lehet MIDI állományokból
audio CD-t készíteni?Ha MIDI állományokból akarunk audio
CD-t készíteni, akkor elõször
telepítsük fel a
Portgyûjteménybõl a audio/timidity++ portot, majd
kézzel tegyük hozzá Eric A. Welsh GUS
patch-eit, melyek a
címrõl tölthetõek le. Miután a
TiMidity++ sikeresen
felkerült a rendszerünkre, a MIDI
állományokat a következõ paranccsal
tudjuk átkonvertálni WAV
állományokra:&prompt.user; timidity -Ow -s 44100 -o /tmp/juke/01.wav01.midA WAV állományok ezek után
tetszõleges formátumba
konvertálhatóak tovább vagy
készíthetõ belõlük egy audio
CD, ahogy azt a &os; kézikönyvben
is olvashatjuk.A rendszermag beállításaNehéz testreszabni a rendszermagot?Egyáltalán nem! Ezzel kapcsolatban
olvassuk el a &os;
kézikönyv rendszermag
beállításairól
szóló részét.Az új kernel
állomány a hozzátartozó
modulokkal együtt a /boot/kernel
könyvtárba települ, míg a
rendszermag korábbi változata és a
moduljai a /boot/kernel.old
könyvtárba kerül át, így
ha netalán valamit elrontottunk volna, akkor a
rendszermag korábbi változatának
betöltésével
lehetõségünk lesz kijavítani a
hibát.A rendszermag nem fordul le, mert a
_hw_float nem található.
Hogyan lehet megoldani ezt a problémát?Ez valószínûleg azért
következett be, mert eltávolítottuk az
npx0 (lásd &man.npx.4;)
támogatást a rendszermag
beállításai közül, mert a
rendszerünkben nincs matematikai társprocesszor.
Az npx0 eszköz
jelenléte azonban
kötelezõ. Valahol a
gépünkben lennie kell olyan eszköznek,
amely a lebegõpontos számok hardveres
kezelését végzi, annak ellenére,
hogy nem egy különálló eszköz,
ahogy régen a 386-osoknál volt. A
rendszermagban szerepelnie kell az
npx0 eszköznek. Ha
netalán még sikerülne is
npx0 támogatás
nélkül fordítanunk egy rendszermagot,
akkor sem tud elindulni.Miért ilyen nagy a rendszermag mérete
(közel 10 MB)?Nagyon valószínû, hogy a
rendszermagunk debug módban
készült el. A debug módú
rendszermagokban rengeteg olyan szimbólum
található, amely hasznos lehet a hibák
keresése és a rendszer vizsgálata
során, ezért emiatt jelentõs
mértékben növekszik a mérete.
Emiatt nem kell aggódnunk, mert egy
hibakeresésre felkészített rendszermag
egyáltalán nem vagy csak egy kicsivel lassabb,
mint a hagyományos változat, illetve a
rendszer összeomlásakor mindig mindig
szükségünk lehet ezekre a debug
információkra.Ha viszont kevés a lemezterület vagy
egyszerûen csak nem akarunk debug módú
rendszermagot akarunk futtatni, akkor a
következõkre kell figyelnünk:Vegyük ki a rendszermag
konfigurációs
állományából a
következõ sort:makeoptions DEBUG=-gA &man.config.8; használata során ne
használjuk a
beállítást.A fentiek közül akármelyiket is
választjuk, a rendszermagunk debug módban
jön létre. Ha azonban sikerült betartani a
fentebb javasolt lépéseket, akkor egy
normál rendszermagot kapunk, amely mérete
ilyenkor jelentõs mértékben visszaesik: a
legtöbbjük olyan 1,5 és 2 MB
körül van.Miért ütköznek a
megszakítások, amikor többportos soros
vonali kártyákat akarunk
használni?Ha a rendszermagot a többportos soros vonali
kártyák támogatásával
fordítjuk le, akkor a rendszertõl azt az
üzenetet kapjuk, hogy csak az elsõ
megszakítást fogja használni, a
többit pedig ütközés miatt (interrupt
conflict) kihagyja. Hogyan lehet ezen
javítani?A gondot alapvetõen az okozza, hogy a &os; a
rendszermagban fixen letárolja ezeket, nehogy
valamilyen hardveres vagy szoftveres
ütközés miatt elkallódjanak. Ezen
úgy tudunk segíteni, ha egyetlen IRQ vonal
kivételével az összes többi
beállítását szabadon hagyjuk.
Íme erre egy példa:#
# Többportos nagysebességû soros vonali eszközök - 16550 UART
#
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointrMiért nem lehet lefordítani a
rendszermagot, még a GENERIC
beállításaival sem?Ennek több oka is lehet. Ezek közül
néhány, de nem feltétlenül ebben a
sorrendben:Nem a
make buildkernel
és
make installkernel
parancsokat használtuk és
valószínûleg a forrásaink sem
egyeznek meg a jelenleg futó rendszerével
(például egy &rel.current;-RELEASE
rendszert akarunk fordítani egy
&rel2.current;-RELEASE rendszeren). Ha
frissíteni akarunk, akkor olvassuk el a
/usr/src/UPDATING
állományt, különös
tekintettel a végén
található COMMON ITEMS
címû szakaszra.A
make buildkernel
és
make installkernel
parancsokat használtuk, de elõtte nem futott
le rendesen a
make buildworld
parancs. A
make buildkernel
parancs ugyanis erõsen támaszkodik a
make buildworld
által végzett munkára.Gyakran a &os;-STABLE
változat használata esetén is
elõfordulhat, hogy olyan pillanatban
töltöttük le a forrásokat, amikor
módosítás alatt voltak vagy
valamiért nem mûködtek rendesen.
Kizárólag a kiadások esetén
tudjuk szavatolni a hibátlan
fordítást, noha a &os;-STABLE
verzióból készült
változatok is többnyire megfelelõek.
Próbáljuk meg újra letölteni a
forrásokat, ha eddig még nem
próbálkoztunk volna vele, és
nézzük meg, hogy ez segít-e megoldani
a problémát. Keressük másik
szervert, ha gondjaink vannak a
frissítéssel.Honnan tudhatjuk meg milyen ütemezõvel
dolgozik a rendszerünk?Nézzük meg, hogy a rendszerünkben
elérhetõ-e a kern.sched.quantum
változó. Ha van ilyenünk, akkor valami
ilyesmit kell tapasztalnunk:&prompt.user; sysctl kern.sched.quantum
kern.sched.quantum: 99960Ha létezik a
kern.sched.quantum nevû sysctl
változó, akkor a 4BSD ütemezõ fut
(lásd &man.sched.4bsd.4;). Ha nem, akkor egy ilyen
hibát kapunk a &man.sysctl.8; parancstól (ezt
nyugodtan figyelmen kívül hagyhatjuk):&prompt.user; sysctl kern.sched.quantum
sysctl: unknown oid 'kern.sched.quantum'Az aktuálisan használt ütemezõ
neve közvetlenül elérhetõ a
kern.sched.name sysctl
változó lekérdezésén
keresztül:&prompt.user; sysctl kern.sched.name
kern.sched.name: 4BSDMi az a kern.sched.quantum?A kern.sched.quantum
értéke határozza meg, hogy egy
futó program legfeljebb mennyi órajelet futhat
egyszerre, megszakítás nélkül.
Ezt az értéket a 4BSD ütemezõ
használja, ezért a
jelenlétébõl vagy
hiányából következtetni tudunk a
pillanatnyilag használatban levõ
ütemezõre.Lemezek, állományrendszerek és
rendszertöltõkHogyan adjunk lemezeket a &os;
rendszerünkhöz?Ezzel kapcsolatban olvassuk el a lemezek
hozzáadásáról
szóló részt a &os; kézikönyvben.
Hogyan lehet átteni a rendszert egy nagyobb
lemezre?Ezt legegyszerûbben úgy tudjuk
megcsinálni, ha újratelepítjük az
operációs rendszert az új lemezre
és külön áttesszük a
felhasználói adatokat. Ez
különösen ajánlott abban az esetben,
ha már több kiadás óta
követjük a -STABLE
változatot, vagy ha korábban már
frissítettük a kiadásunkat. A
&man.boot0cfg.8; segítségével fel
tudjuk rakni a booteasyt mind a két lemezre és
így egészen addig váltogatni tudjuk a
kettõt, amíg teljesen át nem
álltunk. Ugorjuk át a következõ
bekezdést, és olvassuk el, hogy rakjuk
át az adatokat.Úgy is dönthetünk, hogy nem
telepítjük újra a rendszert. Ekkor vagy a
&man.sysinstall.8;, vagy pedig a &man.fdisk.8; és a
&man.disklabel.8; használatával osszuk fel
és címkézzük meg az új
lemezt. Érdemes még a &man.boot0cfg.8;
segítségével felraknunk a booteasyt
mind a két lemezre, így miután
átmásoltuk a régi rendszerünket az
új lemezre, ennek megtartásával ki
tudjuk próbálni az új rendszert. A
lemezek formázásáról szóló
cikkben olvashatunk ennek pontosabb
részleteirõl.Most, miután sikeresen beállítottuk
az új lemezt, készen állunk az adatok
átmásolására. Sajnos nem lehet
csak úgy vakon átmásolni ezeket egyik
lemezrõl a másikra. Ilyenkor ugyanis bizonyos
dolgok (például a /dev könyvtárban
található eszközleírók, az
állományjelzõk és a linkek stb.)
hajlamosak elromlani. Ezért ehhez olyan
eszközökre lesz szükségünk,
amelyek ismerik ezeket a dolgokat, mint
például a &man.dump.8;. Továbbá
javasoljuk, hogy egyfelhasználós módban
végezzük el az átvitelt, noha ez nem
feltétlenül szükséges.A rendszerindító
állományrendszer
átmozgatásához egyedül a
&man.dump.8; és &man.restore.8;
segédprogramokra lesz szükségünk.
Esetleg a &man.tar.1; parancs is használható,
de nem minden esetben. A &man.dump.8; és
&man.restore.8; páros akkor is remekül
használható, ha egy partíció
tartalmát egy üres partícióra
akarjuk átvinni. A következõ
lépések szükségesek ahhoz, hogy a
dump parancs
segítségével átvigyük egyik
partícióról a másikra az
adatokat:Hozzunk létre egy új
partíciót.Ideiglenesen csatlakoztassuk egy
könyvtárba.Lépjünk be abba a
könyvtárba.Mentsük le a régi
partíciót és az eredményt
küldjük át az újra.Például, ha a /mnt
könyvtárba csatlakoztatott
/dev/ad1s1a
eszközrõl akarjuk átvinni a jelenlegi
gyökérpartíciónkat, akkor ezeket a
parancsokat kell kiadnunk:&prompt.root; newfs /dev/ad1s1a
&prompt.root; mount /dev/ad1s1a/mnt
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore rf -További munkát igényel, ha a
dump parancs
segítségével a
partícióinkat is át akarjuk szervezni.
Például a /var partíciót
úgy tudjuk beleolvasztani a tövébe, ha
létrehozunk egy olyan partíciót, amely
mind a kettõ számára elegendõ nagy,
majd a fentebb leírt módszerrel
elõször átmozgatjuk a tövét,
utána pedig átmozgatjuk az
alpartíció tartalmát az elsõ
mozgatás során létrejött egyik
üres könyvtárba:&prompt.root; newfs /dev/ad1s1a
&prompt.root; mount /dev/ad1s1a/mnt
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore rf -
&prompt.root; cd var
&prompt.root; dump 0af - /var | restore rf -Egy könyvtárat, például
/var tartalmát
pedig úgy tudunk leválasztani a
tövérõl, vagyis átrakni egy
korábban nem létezõ
partícióra, ha elõször
létrehozzuk mind a két
partíciót, csatlakoztatjuk a leendõ
alpartíciót az ideiglenes csatlakozási
ponton belül a megfelelõ könyvtárba
és mindkettõre átmozgatjuk a régi
partíció teljes tartalmát:&prompt.root; newfs /dev/ad1s1a
&prompt.root; newfs /dev/ad1s1d
&prompt.root; mount /dev/ad1s1a/mnt
&prompt.root; mkdir /mnt/var
&prompt.root; mount /dev/ad1s1d/mnt/var
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore rf -A felhasználói adatok esetén a
&man.cpio.1;, &man.pax.1;, &man.tar.1; és &man.dump.8;
eszközöket ajánljuk. Az írás
pillanatában még úgy tudjuk, hogy nem
tartják meg az állományjelzõkkel
kapcsolatos információkat, ezért csak
óvatosan használjuk ezeket!A Veszélyesen dedikált
(Dangerously Dedicated) lemezek
veszélyesek a felhasználóra?A telepítés
során két különbözõ
módon tudjuk partícionálni a
lemezeinket. Alapértelmezés szerint a
rendszer igyekszik kompatbilis maradni a
gépünkön található többi
operációs rendszerrel. Ilyenkor
normális partíciós táblabeli
bejegyzéseket készít (amelyeket &os;
alatt slice-oknak hívnak), és
egy ilyen slice-ba teszi az összes saját
partícióját. Emellé még
telepíteni tudjuk az operációs
rendszerek választásának
lehetõségét is a rendszer
indításakor. A másik
lehetõség választása esetén
azonban a &os; teljesen kisajátítja a lemezt
és nem is próbál meg kompatibilis
maradni a többi operációs
rendszerrel.Miért is nevezzük ezt
veszélyesnek? A lemez ebben az esetben
nem tartalmaz semmi olyat, amelyet a hétköznapi
programok partíciós táblaként
tudnának beazonosítani. Attól
függõen, hogy mennyire illedelmes, egy ilyen
program panaszkodni fog, amikor megpróbálja
értelmezni a lemez tartalmát, de rosszabb
esetben anélkül felülírja a
rendszerbetöltõt, hogy bármit is jelzett
volna. Ráadásul a veszélyesen
dedikált módon kiosztott lemezek
még bizonyos BIOS-okat is képesek megzavarni,
többek közt az Award (például
amelyek a HP NetServer, Micronics és hasonló
rendszerekben találhatóak) vagy Symbios/NCR
(népszerû 53C8xx SCSI-vezérlõk)
típusúak esetén találkozhatunk
ezzel a problémával. Ez a lista persze nem
teljes, más gyártók termékeivel
is gondok akadhatnak. Ennek a hibának jellemzõ
tünete a read error
hibaüzenet, amely arra utal, hogy a &os;
betöltõje nem találja saját
magát a lemezen, vagy éppen az egész
rendszer megáll a rendszer indítása
közben.Akkor mégis mi értelme van ennek? Csak
néhány kilobyte-tot spórolunk vele,
miközben komoly gondokat okozhat egy frissen
telepített rendszer esetében. A
veszélyesen dedikált mód
eredetileg az új &os; telepítõket
veszélyeztetõ egyik komoly hibát
szeretné kiküszöbölni: a merevlemezek
BIOS és lemez önmaga által ismert
geometriai beállításainak
egyeztetése.A lemezgeometria fogalma
tulajdonképpen már egy elavult fogalom, de a
PC-k BIOS-a legbelül még mind a mai napig
így kommunikál a lemezekkel. Amikor a &os;
telepítõjével slice-okat hozunk
létre, olyan módon kell
rögzítenünk a lemezre ezek
pozícióját, hogy a BIOS képes
legyen megtalálni. Ha ez nem sikerül, akkor nem
tudjuk elindítani a rendszert.A veszélyesen dedikált
mód ezt a problémát az
egyszerûsítésén keresztül
próbálja megoldani, és néha
sikerül is neki. Ezt azonban csak akkor javasoljuk, ha
semmi más nem mûködik, hiszen az esetek
túlnyomó részében más
megoldás is létezik.Hogy tudjuk tehát akkor elkerülni a
veszélyesen dedikált mód
használatát a telepítés
során? Jegyezzük fel, hogy mik a BIOS szerint a
merevlemezünk geometriai
beállításai. Ezt a
rendszerindítás közben a
rendszermagtól is megkérdezhetjük
úgy, hogy a boot:
paranccsorába megadjuk a
beállítást, vagy a betöltõben
a boot -v parancsot használjuk.
Így pontosan a telepítõ
indítása elõtt a rendszermag ki fogja
írni a BIOS által ismert geometriai
beállításokat. Ne essünk
pánikba, várjuk meg, amíg a
telepítõ elindul, tekerjünk vissza a
számokhoz és olvassuk le ezeket. A lemezek
általában a BIOS sorrendjében jelennek
meg, tehát elõször az IDE aztán a
SCSI típusúak.A lemez partícionálásakor
ellenõrizzük, hogy az FDISK
képernyõjén megjelenõ geometriai
beállítások megfelelõek
(tehát egyeznek a BIOS által ismert
értékekkel). Ha eltérést
tapasztalunk, akkor a G billentyû
lenyomásával tudjuk átjavítani.
Erre leginkább akkor lesz
szükségünk, ha a lemez teljesen üres,
vagy ha a lemezt egy másik rendszerbõl hoztuk
át. Ez egyébként csak azoknál a
lemezeknél okoz gondot, amelyekrõl a rendszert
akarjuk indítani, a &os; a többi lemezzel
már remekül elboldogul.Miután sikerült egyeztetnünk a BIOS
és a &os; geometriai
beállításait, szinte biztos, hogy nem
kell már emiatt aggódnunk, így a
veszélyesen dedikált
módra sincs szükségünk. Ha viszont
mégis egy read error
hibaüzenetet kapnánk a rendszer
indítása közben, akkor tegyünk egy
próbát. Semmit sem
veszíthetünk.Ha a veszélyesen dedikált
mód használatáról
szeretnénk visszatérni a megszokottra, akkor
két lehetõségünk van.
Elõször is teljesen le kell nulláznunk az
MBR-t, így biztosra vehetjük, hogy az
ezután következõ telepítések
során egy teljesen üres lemezt látunk.
Ezt például így lehet megtenni:&prompt.root; dd if=/dev/zero of=/dev/rda0 count=15A másik módszer egy hivatalosan nem
dokumentált DOS-os lehetõség
használata:C:\>fdisk /mbrEzzel egy új Master Boot Recordot tudunk
telepíteni, ami ezzel együtt felülírja
a BSD rendszertöltõjét is.Milyen partíciókon lehet Soft Updatest
használni? A Soft Updates
állítólag nem mûködik
rendesen a gyökérpartíció
esetén.A rövid válasz: A Soft Updates
bármelyik partíción minden
további nélkül
használható.A hosszabb válasz: Korábban voltak
bizonyos kétségek afelõl, hogy a Soft
Updates jól mûködik a
rendszerindító partíciókon is.
Ez alapvetõen a Soft Updates két
jellemzõjére vezethetõ vissza.
Elõször is, a Soft Updatest alkalmazó
partíciók esetén elõfordulhat,
hogy a rendszerösszeomlás során elveszik
valamennyi adat (maga a partíció nem lesz
hibás, csupán némi adat tûnik el),
illetve a Soft Updates ideiglenesen kifogyhat a
tárhelybõl.A Soft Updates használata során a
rendszermag legfeljebb harminc másodperc múlva
írja ki fizikailag a változtatásokat a
lemezre. Tehát amikor egy nagyobb
állományt törlünk, akkor ez az
állomány egészen addig a lemezen marad,
amíg a rendszermag ténylegesen el nem
végzi ezt a törlést. Ezzel viszont
nagyon egyszerûen létrehozható egy
ütközés (race condition) az
állományrendszeren. Tegyük fel, hogy
letörlünk egy nagyobb állományt
és utána közvetlenül
létrehozunk egy másik nagyobb
állományt. Mivel az elsõ
állomány ilyenkor még nem
törlõdik le valójában a
lemezrõl, ezért a második
számára már nem lesz elegendõ
helyünk. A rendszer ekkor egy hibaüzenetben fog
figyelmeztetni minket, miközben pontosan az
imént töröltünk le egy
óriási állományt! Ha
néhány másodperccel késõbb
újra megpróbáljuk létrehozni ezt
az állományt, akkor már minden a
megfelelõ módon fog zajlani. Ezt
régebben sok &os; felhasználó nem tudta
mire vélni.Ha a rendszerünk olyankor omlik össze, amikor
a rendszermag már elkezdte egy nagyobb
mennyiségû adat kiírását a
lemezre, de még nem fejezõdött be, akkor
könnyen elõfordulhat, hogy ez az adat elveszik
vagy meghibásodik. Ennek kockázata nagyon
kicsi, és általában kezelhetõ,
viszont az IDE-meghajtókban található
írási gyorsítótár
használata jelentõsen növeli ezt.
Ezért a Soft Updates alkalmazása során
nem javasoljuk ennek használatát.Ezek a problémák az összes Soft
Updates partíciót veszélyeztetik.
Mennyiben vonatkoznak viszont ezek a
gyökérpartícióra?A gyökérpartíción nagyon
ritkán változnak fontos
információk. A
/boot/kernel/kernel és az
/etc egyedül a
rendszer karbantartása során frissül,
vagy például amikor a
felhasználók jelszót
változtatnak. Ha a rendszer egy ilyen
változtatás harminc másodperces
idején belül omlik össze, akkor megvan
rá az esélyünk, hogy elvesznek az
adataink. Ez a kockázat a legtöbb
alkalmazás számára elfogadható,
de semmiképpen sem szabad figyelmen kívül
hagynunk. Ha a rendszerünk nem képes
vállalni még ennyi kockázatot sem,
akkor a rendszerindító partíción
tiltsuk le a Soft Updates használatát!A gyökérpartíció
hagyományosan az egyik legkisebb
partíció. Ha viszont az ideiglenes
állományok tárolására
szánt /tmp
könyvtárat is ezen belülre tesszük
és gyakran használjuk, akkor ebbõl
idõszakosan tárhelyproblémáink
adódhatnak. Könnyen megoldhatjuk azonban ezt a
problémát, ha a /tmp könyvtárhoz
létrehoznunk egy szimbolikus linket a /var/tmp
könyvtárra.Mi történt a &man.ccd.4;
eszközzel?A hibajelenség:&prompt.root; ccdconfig -C
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or formatEz általában olyankor
történik, amikor olyan c
partíciókat próbálunk meg
összefûzni, amelyek alapértelmezés
szerint unused (nem
használt) típusúak. A
&man.ccd.4; meghajtó azonban megköveteli, hogy
az érintett partíciók
FS_BSDFFS típusúak
legyenek. Szerkesszük át a lemezeken
található címkéket és
változtassuk meg a partíciók
típusát a 4.2BSD
értékre.Miért nem lehet a &man.ccd.4; eszköz
lemezcímkéjét szerkeszteni?A hibajelenség:&prompt.root; disklabel ccd0
(itt valami gondot ír ki, ezért megpróbáljuk szerkeszteni a címkét)
&prompt.root; disklabel -e ccd0
(edit, save, quit)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial labelEzt általában azért kapjuk, mert a
&man.ccd.4; által visszaadott lemezcímke
valójában nem létezik a
lemezen. Ezen úgy tudunk segíteni, ha
explicit módon visszaírjuk, valahogy
így:&prompt.root; disklabel ccd0 > /tmp/lemezcimke.tmp
&prompt.root; disklabel -Rr ccd0/tmp/lemezcimke.tmp
&prompt.root; disklabel -e ccd0
(most már mûködni fog)Lehet más operációs rendszerek
állományrendszerét is csatlakoztatni &os;
alatt?A &os; több más
állományrendszert is ismer.UFSAz UFS formátumú CD-k &os; alatt
közvetlenül csatlakoztathatóak. A
Digital UNIX és más rendszerek UFS
partícióit nem már annyira
könnyû csatlakoztatni, ez leginkább a
kérdéses operációs
rendszer partícionálási
megoldásaitól függ.ext2/ext3A &os; támogatja az
ext2fs és ext3fs
partíciókat. Errõl bõvebben
lásd a &man.mount.ext2fs.8; man oldalt.NTFSA &os; csak olvasni képes az NTFS
partíciókat. Ezzel kapcsolatban a
&man.mount.ntfs.8; man oldalán találunk
részletesebb információkat. Az
írhatóság
használatához az ntfs-3g
portolt változatát javasoljuk
(lásd sysutils/fusefs-ntfs).
FATA &os; egyaránt képes írni
és olvasni a FAT típusú
partíciókat. Errõl a
&man.mount.msdosfs.8; man oldalán tudhatunk meg
többet.ReiserFSA &os; tudja olvasni a ReiserFS
partíciókat. Ezt a &man.mount.reiserfs.8;
man oldalon olvashatjuk.ZFSA &os; jelen pillanatban a &sun; ZFS
meghajtójának átiratát is
tartalmazza. Jelenleg azonban csak elegendõ
memóriával rendelkezõ &arch.amd64;
platformokon javasoljuk a használatát.
Részletesebb
információkért lásd a
&man.zfs.8; man oldalt.A &os; hálózati
állományrendszereket is támogat,
többek közt az NFS-t (lásd
&man.mount.nfs.8;), a NetWare-t (lásd
&man.mount.nwfs.8;), és Microsoft-féle SMB
állományrendszereket (lásd
&man.mount.smbfs.8;). Más egyéb
FUSE-alapú állományrendszer (sysutils/fusefs-kmod)
támogatását is megtalálhatjuk a
portok között.Hogyan lehet másodlagos (logikai) DOS
partíciókat csatlakoztatni?A logikai DOS partíciók az elsõdleges
partíciók után
találhatóak. Például, ha van
egy E betûjelû logikai
partíciónk a második
SCSI-meghajtónkon, akkor lennie kell egy
ötödik slice-nak a /dev könyvtárban,
amelyet majd csatlakoztatni tudunk:&prompt.root; mount -t msdosfs /dev/da1s5 /dos/eHasználható titkosított
állományrendszer &os; alatt?Igen. Erre a célra a &man.gbde.8; és a
&man.geli.8; is tökéletesen alkalmas. A
részleteket lásd a &os; kézikönyv
A lemezpartíciók titkosítása
címû fejezetében.A &windowsnt; rendszertöltõjével is el
lehet indítani a &os;-t?Ehhez tulajdonképpen csak annyit kell
csinálnunk, hogy átmásoljuk a &os;
rendszerindító
partíciójának az elsõ
szektorát egy állományba a
DOS/&windowsnt; partíción belül. Legyen
ez például a
C:\BOOTSECT.BSD állomány
(a C:\BOOTSECT.DOS
mintájára), amelyhez aztán így
igazítjuk a c:\boot.ini
állományt:[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="&os;"
C:\="DOS"Ha a &os; ugyanazon a lemezen található,
ahonnan a &windowsnt; is indul, akkor egyszerûen csak
másoljuk át a /boot/boot1
állományt C:\BOOTSECT.BSD
néven. Ha viszont a &os; egy másik lemezen
található, akkor a
/boot/boot1 önmagában
már nem elegendõ, hanem helyette a
/boot/boot0 állományra
lesz szükségünk.A /boot/boot0
állományt a &man.sysinstall.8;
használatával kell telepíteni
abból a menübõl, ahol a &os; boot
managerét kell kiválasztani. Erre
azért van szükség, mert a
/boot/boot0 állományon
belül a partíciós tábla teljesen
üres, azonban a &man.sysinstall.8; át fogja
másolni a partíciós
táblát mielõtt a
/boot/boot0 állományt az
MBR-be tenné.Ne másoljunk át csak
úgy egyszerûen a
/boot/boot0 állományt
a /boot/boot1 helyett! Ezzel
felülíródik a partíciós
táblánk és így a
számítógépet nem tudjuk
elindítani!Amikor a &os; boot managere lefut, az utoljára
indított operációs rendszert a
partíciós táblában
aktívként jelöli meg (ezzel
lényegében megjegyzi), majd ezután
beírja magát az MBR-be. Emiatt, hogy ha csak
egyszerûen átmásoljuk a
/boot/boot0 állományt a
C:\BOOTSECT.BSD
állományba, akkor csak egy egyetlen
aktív bejegyzést tartalmazó üres
partíciós táblát fog
visszaírni az MBR-be.A LILO-ból hogyan lehet &os;-t és Linuxot
is indítani?Ha a &os; és a &linux; is ugyanazon a lemezen
helyezkedik el, akkor nincs más teendõnk, mint
követni a LILO telepítési
útmutatójában a nem-&linux;
típusú operációs rendszerek
indítására vonatkozó
utasításokat. Ezek röviden
összefoglalva a következõk:Indítsuk el a Linuxot és vegyük fel a
következõ sort az
/etc/lilo.conf
állományba:other=/dev/hda2
table=/dev/hda
label=&os;(A fentiekben feltételeztük, hogy a &os;-t
tartalmazó slice a &linux; számára
/dev/hda2 néven
érhetõ el. Ez természetesen a
saját konfigurációnkhoz kell szabni.)
Ezután egyszerûen csak futtassuk le a
lilo parancsot root
felhasználóként és már
készen is vagyunk.Ha a &os; egy másik lemezen
található, akkor a
loader=/boot/chain.b
LILO-bejegyzést kell használnunk.
Például:other=/dev/dab4
table=/dev/dab
loader=/boot/chain.b
label=&os;Bizonyos helyzetekben elõfordulhat, hogy a &os;
rendszertöltõjének át kell adnunk a
meghajtó BIOS szerinti sorszámát, mert
csak így tudjuk rendesen elindítani a
második lemezrõl. Például, ha a
&os; szerint a SCSI-lemezünk a BIOS-ban az 1-es lemez,
akkor ezt kell megadnunk a &os;
rendszertöltõjének:Boot: 1:da(0,a)/boot/kernel/kernelA &man.boot.8; beállítható
úgy, hogy a rendszer indításakor
automatikusan mindig ezt a beállítást
használja.A &os; és &linux; együttes
használatáról további
részleteket a &linux;+&os; mini-HOWTO
címû írásból tudhatunk
meg.Hogyan lehet a GRUB használatával &os;-t
és Linuxot is indítani?A &os;-t nagyon könnyû elindítani a
GRUB segítségével. Ehhez csupán
annyit kell tennünk, hogy felvesszük a
következõ sorokat a GRUB
konfigurációs állományába
(/boot/grub/menu.lst, vagy bizonyos,
például Red Hat-típusú
rendszerekben a
/boot/grub/grub.conf):title &os; 6.1
root (hd0,a)
kernel /boot/loader
Itt a hd0,a az elsõ
lemezen található rendszerindító
partícióra mutat. Ha a lemezen belül a
slice számát is szeretnénk megadni,
akkor írhatjuk így is:
(hd0,2,a). Ha ezt nem adjuk meg,
akkor a GRUB alapértelmezés szerint a lemezen
levõ elsõ a
partícióval rendelkezõ slice-ot keresi
meg.Hogyan lehet a BootEasy
használatával elindítani a &os;-t
és a Linuxot?A LILO-t ne a Master Boot Recordba, hanem a linuxos
partíciónk elejére
telepítsük. Ezután a
BootEasybõl már el
tudjuk indítani a LILO-t.Abban az esetben is ezt javasoljuk, ha &windows;
és &linux; is van a gépünkön, mivel
így szintén egyszerûbb lesz
elindítani a Linuxot, ha netalán valamikor
újra kellene telepíteni a &windows;-t (ami
viszont egy irigy operációs
rendszer, mert nem tûr meg semmilyen más
operációs rendszert maga mellett a Master Boot
Recordban).A rendszerindításkor látható
??? hogyan írható át
valami értelmesre?Ez az szabványos boot managerrel csak úgy
lehet megoldani, ha újratelepítjük. A
portok között viszont a sysutils
kategóriában rengeteg olyan más boot
managert találhatunk, amely tud ilyet is.Cserélhetõ lemezes meghajtókat hogyan
lehet használni?Legyen az akár egy &iomegazip;, EZ drive
meghajtó (esetleg egy floppy, ha így akarjuk
használni), vagy éppen egy új
merevlemez, miután már
telepítettük és felismerte a rendszert,
illetve behelyeztük a lemezt, kártyát
vagy akármit, minden esetben szinte ugyanaz a
teendõ.(Ez a válasz leginkább Mark Mayo ZIP GYIK
címû írásán
alapszik.)Ha tehát egy ZIP meghajtóról vagy
floppylemezrõl beszélünk, amelyen egy DOS-os
állományrendszer található,
akkor azt parancssorból így
érhetjük el, ha floppy:&prompt.root; mount -t msdosfs /dev/fd0c /floppyvagy így, ha egy gyári
beállításokkal rendelkezõ
ZIP-lemez:&prompt.root; mount -t msdosfs /dev/da2s4 /zipA többi lemez esetén a &man.fdisk.8; vagy a
&man.sysinstall.8; segítségével
nézzük meg, hogy milyen partíciók
és hogyan találhatóak meg
rajtuk.A következõ példákban egy
da2 eszközként, vagyis
egy harmadik SCSI-lemezként megjelenõ
ZIP-meghajtót fogunk használni.Hacsak nem floppyval van dolgunk, illetve nem
tervezzük másoknak is odaadni a
cserélhetõ médiumot, akkor érdemes
inkább BSD típusú
állományrendszert telepíteni rá.
Így támogatottak lesznek a hosszú
állománynevek, és legalább egy
kétszer gyorsabb és egy sokkal
megbízhatóbb megoldást kapunk. Ehhez
elõször is le kell szednünk a DOS-szintû
partíciókat és
állományrendszereket. Erre a célra
egyaránt megfelel a &man.fdisk.8; vagy a
&man.sysinstall.8;, illetve kisebb lemezek esetén
valószínûleg nem is lesz
szükségünk több
operációs rendszer
támogatására, így aztán
közvetlenül is törülhetjük
ezeket:&prompt.root; dd if=/dev/zero of=/dev/rda2 count=2
&prompt.root; disklabel -Brw da2 autoA &man.disklabel.8; vagy a &man.sysinstall.8;
használatával ezután létre
tudunk hozni BSD típusú
partíciókat. Valószínûleg
erre lesz szükségünk, ha
lapozóállományt is tenni akarunk a
lemezre, noha ennek nem sok értelme van
például egy ZIP-meghajtó
esetén.Végezetül hozzunk létre egy új
állományrendszert. Itt most ez egész
ZIP-lemezen egyetlen partíció lesz:&prompt.root; newfs /dev/rda2cCsatlakoztassuk:&prompt.root; mount /dev/da2c /zipEmellett még hasznos lehet felvenni hozzá
egy sort az /etc/fstab
állományba is (lásd &man.fstab.5;),
így a jövõben elegendõ csak a
mount /zip parancsot kiadnunk a
csatlakoztatásához:/dev/da2c /zip ffs rw,noauto 0 0Miért ad a rendszer Incorrect super
block hibát CD-k
csatlakoztatásánál?Fel kell világosítanunk a &man.mount.8;
parancsot a csatlakoztatandó eszköz
típusáról. Errõl a kézikönyv lézeres tárolóeszközökrõl szóló részében
olvashatunk, innen is különösen a
Adat CD-k használata
címû szakaszt ajánljuk.Miért ad a rendszer Device not
configured hibaüzenetet CD-k
csatlakoztatásakor?Ez általában arra utal, hogy nincs CD a
meghajtóban, vagy a meghajtó nem
érhetõ el a buszon. Ezzel kapcsolatban a
kézikönyv Adat CD-k használata
címû szakaszát javasoljuk
elolvasásra.Miért jelenik meg az összes nemzeti karakter
helyén ?, amikor &os; alatt
csatlakoztatunk egy CD-t?A CD-n valószínûleg a
Joliet kiterjesztés
használatával tárolják az
állományok és könyvtárak
adatait. Erre vonatkozóan a kézikönyvben
a Lézeres tárolóeszközök (CD-k) létrehozása és használata
címû rész elolvasását
javasoljuk, különös tekintettel az Adat CD-k használata
címû szakaszra.A &os; alatt készített CD-ket nem lehet
más operációs rendszerekkel olvasni.
Miért nem?Ez minden bizonnyal abból fakad, hogy nem egy
ISO 9660 állományrendszert vettük
fel rá, hanem közvetlenül maguk az
állományokat. Olvassuk el a
kézikönyvben a Lézeres tárolóeszközök (CD-k) létrehozása és használata
címû fejezetet, de különösen a
Nyers adat CD-k írása
címû részt.Hogyan lehet lementeni egy adat CD tartalmát a
merevlemezre?Errõl a kézikönyvben találunk
hasznos információkat, azon belül is az
Adat CD-k másolása
címû szakaszban. A CD-kkel
végezhetõ további mûveletekrõl
a kézikönyv Lézeres tárolóeszközök (CD-k) létrehozása és használata
címû részében találhatunk
részletes útmutatásokat.Miért nem lehet audio CD-ket csatlakoztatni a
mount paranccsal?Ha zenei CD-ket próbálunk meg
csatlakoztatni, akkor például egy
cd9660: /dev/acd0c: Invalid argument
hibát fogunk kapni a rendszertõl. Ez
azért történik, mert a
mount parancs csak
állományrendszerekkel
használható. A zenei CD-ken viszont semmilyen
állományrendszer nincs, egyszerûen csak
maga az adat. Az olvasásukhoz olyan programra lesz
szükségünk, amely képes zenei
CD-kkel dolgozni, mint például az audio/xmcd port.Hogyan lehet többmenetes (multisession) CD-ket
csatlakoztatni a mount paranccsal?A &man.mount.8; alapértelmezés szerint az
CD-n található utolsó adatsávot
(menetet, vagy sessiont) próbálja meg olvasni.
Ha viszont egy korábbi menetet szeretnénk vele
betöltetni, akkor erre használjuk a
paranccsori paramétert. Erre a
&man.mount.cd9660.8; man oldalon találhatunk
különbözõ példákat.Hogyan képesek az egyszerû
felhasználók floppykat, CD-ket és
más egyéb cserélhetõ lemezes
eszközöket használni?A normál felhasználók
számára engedélyezni tudjuk az
eszközök csatlakoztatását.
Íme:root
felhasználóként
állítsuk be a
vfs.usermount sysctl
változót az 1
értékre:&prompt.root; sysctl -w vfs.usermount=1A cserélhetõ eszközöket
képviselõ eszközleírókra
állítsuk be root
felhasználóként a megfelelõ
engedélyeket.Például a
felhasználóknak így tudjuk
engedélyezni az elsõ floppymeghajtó
használatát:&prompt.root; chmod 666 /dev/fd0Az operator csoportban
levõ felhasználók pedig így
fognak tudni CD-ket csatlakoztatni:&prompt.root; chgrp operator /dev/acd0c
&prompt.root; chmod 640 /dev/acd0cFel kell vennünk ezeket a
módosításokat az
/etc/devfs.conf
állományba is, mivel csak így
maradnak meg a következõ
rendszerindítás után.Ehhez root
felhasználóként a vegyük fel a
megfelelõ sorokat az
/etc/devfs.conf
állományba. Például, ha a
felhasználóknak engedélyezni
akarjuk az elsõ floppymeghajtó
használatát, akkor:# Bármelyik felhasználó képes floppykat csatlakoztatni.
own /dev/fd0 root:operator
perm /dev/fd0 0666Így engedélyezhetjük az
operator csoport tagjainak a CD-k
csatlakoztatását:# Az operator csoport tagjai csatlakoztathatnak CD-ket.
own /dev/acd0 root:operator
perm /dev/acd0 0660Végezetül tegyük a
vfs.usermount=1
sort az /etc/sysctl.conf
állományba, így a rendszer
következõ indításakor is
megmarad ez a beállítás.Most már mindegyik felhasználó
képes csatlakoztatni a
/dev/fd0
eszközleírón keresztül
elérhetõ lemezt a saját
könyvtárába:&prompt.user; mkdir ~/az-én-csatlakozási-pontom
&prompt.user; mount -t msdosfs /dev/fd0 ~/az-én-csatlakozási-pontomA operator csoport tagjai is
képesek most már az
/dev/acd0c
eszközleírón keresztül
elérhetõ CD-ket csatlakoztatni a saját
könyvtárukba:&prompt.user; mkdir ~/az-én-csatlakozási-pontom
&prompt.user; mount -t cd9660 /dev/acd0c ~/az-én-csatlakozási-pontomAz eszközök leválasztása is
hasonlóan egyszerû:&prompt.user; umount ~/az-én-csatlakozási-pontomA vfs.usermount
engedélyezésével azonban
együttjár némi biztonsági
kockázat is. Az &ms-dos; formátumú
lemezek csatlakoztatására ezért
inkább a Portgyûjteményben
található emulators/mtools csomagot
javasoljuk.A példákban használt
eszközneveket természetesen a
konfigurációnknak megfelelõen meg kell
változtatnunk.A du és a
df parancsok eltérõ
mennyiségû szabad helyet mutatnak. Mi okozza
ezt?A válaszhoz meg kell értenünk a
du és a df
mûködését. A du
végigmegy a könyvtárszerkezeten és
megnézi, hogy mekkorák az egyes
állományok, majd megjeleníti a
végösszegüket. A df
ezzel szemben egyszerûen csak lekérdezi az
állományrendszertõl, hogy mennyi szabad
hely maradt rajta. Ezek látszólag ugyanazt a
módszer fedik, azonban miközben a
könyvtár nélkül
állományok befolyásolják a
df parancsot, addig a
du parancsot nem.Amikor egy program használ egy olyan
állományt, amelyet eközben
letörlünk, egészen addig létezni
fog, amíg a program be nem fejezi a
használatát. Ettõl függetlenül
viszont az állomány azonnal eltûnik a
könyvtárból. Ezt nagyon könnyen ki
is tudjuk próbálni egy olyan programmal, mint
például a more.
Tegyük fel, hogy van akkora állományunk,
amely elég nagy ahhoz, hogy feltûnjön a
du és a df
kimenetében. (Mivel manapság már
nagyok a tárolóeszközök, ennek egy
igen nagy állománynak
kell lennie!) Ha letöröljük ezt az
állományt, miközben a
more paranccsal még
használjuk, a more nem fog
rögtön leállni és panaszkodni az
állomány hiányára. Egyedül
csak az állományhoz tartozó
bejegyzés tûnik el a
könyvtárból, így más
program már nem tud hozzáférni. A
du erre már azt mondja, hogy nem
létezik — bejárta a
könyvtárat és nem találta. A
df szerint azonban még mindig ott
van, hiszen az állományrendszer tudja, hogy a
more parancsnak még
szüksége van rá. Ahogy a
more befejezte a dolgát, a
du és a df
által mutatott értékek ismét
egyezni fognak.Azt sem szabad elfelejtenünk, hogy a Soft Updates
használata esetén akár 30
másodpercet is várnunk kell, hogy a
változtatásaink láthatóvá
váljanak!Ez a helyzet nagyon gyakori webszerverek esetén.
Sokan úgy állítanak be a &os;
rendszerükön webszervert, hogy elfelejtik
beállítani hozzá a naplók
archiválását és
váltását. Ilyenkor a
hozzáférések naplózása
gyorsan meg tudja tölteni a /var könyvtárat.
Ekkor a rendszergazda törli az adott
állományt, de a rendszer még mindig
panaszkodik a szabad hely hiánya miatt. A webszerver
leállítása és
újraindítása ekkor segít
felszabadítani az állományt, így
az állományrendszerrõl is
törlõdhet. Ennek megelõzésére
használjuk a &man.newsyslog.8; programot.Hogyan lehet növelni a
lapozóterületet?A kézikönyv Beállítás és finomhangolás
címû fejezetében található
egyik szakaszban
olvashatunk errõl.A &os; miért látja kisebbnek a lemezeket
mint amekkorának a gyártó mondja
ezeket?A merevlemezek gyártói
általában a gigabyte-okat egy milliárd
byte-ként számolják, miközben a
&os; pedig 1 073 741 824 byte-nak. Ez
remekül megmagyarázza, hogy a &os;
rendszerüzenetei között egy
elméletileg 80 GB méretû lemez
miért 76 319 MB-osnak jelenik meg.Emellett érdemes még tisztában
lennünk azzal is, hogy a &os;
(alapértelmezés szerint) fenntartja a
lemezterület
8 százalékát.Hogyan lehet egy partíció
100 százaléknál is jobban
megtelt?Az UFS partíciók egy részét
(amely alapértelmezés szerint a teljes
kapacitás 8 százaléka) az
operációs rendszer fenntartja a saját
és a root
felhasználó számára. A
&man.df.1; ezt a területet nem számolja a
Capacity oszlopban megjelenõ
értékhez, ezért tudja
átlépni a 100 százalékos
arányt. Sõt még azt is láthatjuk,
hogy a blokkok számát jelzõ
Blocks oszlopban megjelenõ
érték mindig, általában pontosan
8 százalékkal nagyobb, mint a
használt blokkokat jelzõ Used
és a rendelkezésre álló
blokkokat jelzõ Avail oszlopokban
szereplõ értékek összege.A részleteket a &man.tunefs.8; man oldalon
belül a opció
bemutatásánál olvashatjuk.RendszeradminisztrációHol vannak a rendszerindítás
beállításáért felelõs
állományok?Az ezzel kapcsolatos beállítások
elsõsorban az
/etc/defaults/rc.conf
állományban találhatóak
(lásd &man.rc.conf.5;). A rendszer
indításáért felelõs
szkriptek, mint például az /etc/rc vagy az /etc/rc.d könyvtár
tartalma (lásd &man.rc.8;) ezt használja.
Ezt az állományt tilos
közvetlenül szerkeszteni! Ha valamit
meg akarunk változtatni az
/etc/defaults/rc.conf
állományban szereplõ
beállítások közül, akkor
ehelyett egyszerûen csak másoljuk le az
/etc/rc.conf állományba
és állítsuk be ott az
értékét.Például, ha el akarjuk indítani a
beépített névfeloldó
szolgáltatást, a &man.named.8; démont,
akkor ennyit kell tennünk:&prompt.root; echo named_enable="YES" >> /etc/rc.confHa helyi szolgáltatásokat akarunk
futtatni, akkor tegyük a hozzátartozó
szkripteket az /usr/local/etc/rc.d
könyvtárba. Ezek a szkriptek legyenek
végrehajthatóak és az
alapértelmezett állománymóduk
legyen 555.Hogyan lehet felhasználókat
egyszerûen létrehozni?Használjuk a &man.adduser.8;, vagy bonyolultabb
esetekben a &man.pw.8; parancsot.Felhasználókat törölni a
&man.rmuser.8;, vagy amennyiben szükséges, a
&man.pw.8; paranccsal tudunk.A crontab szerkesztése
után miért jelennek meg a root: not
found és a hozzá hasonló
hibaüzenetek?Ilyen általában olyankor
történik, amikor a rendszerszintû
crontab állományt
módosítjuk
(/etc/crontab), majd a &man.crontab.1;
használatával megpróbáljuk
telepíteni:&prompt.root; crontab /etc/crontabEzt nem így kell megoldani. A
rendszerszintû crontab
felépítése eltér a
felhasználókhoz tartozó
crontab
állományokétól (a
&man.crontab.5; man oldal szemlélteti
részletesebben ezeket az eltéréseket),
amelyet a &man.crontab.1; próbál meg ilyenkor
telepíteni.Ha így csináltuk, akkor a
crontab nem lesz több, mint az
/etc/crontab hibás
formátumú változata.
Töröljük le:&prompt.root; crontab -rLegközelebb, amikor az
/etc/crontab állományt
módosítjuk, nem kell
értesítenünk a &man.cron.8;
démont, mivel magától észre
fogja venni az elvégzett
változtatásokat.Ha valamit napi, heti vagy havi rendszerességgel
akarunk futtatni, akkor ehelyett inkább másoljuk
be az /usr/local/etc/periodic
könyvtárba, és hagyjuk, hogy a
cron hívja meg a &man.periodic.8;
parancson keresztül az összes többi
rendszeresen elvégzendõ feladattal
együtt.Ez a hiba egyébként onnan jön, hogy
rendszerszintû crontab
állomány esetén van még egy
további mezõ, amely megadja, hogy az adott
parancsot melyik felhasználóval kell futtatni.
Az alapértelmezett rendszerszintû
crontab állomány
esetén ez mindenhol a root.
Amikor ezt a crontab
állományt a rootcrontab
állományaként használjuk (amely
nem ugyanaz, mint a rendszerszintû
crontab), akkor a &man.cron.8; a
root szót a
végrehajtandó parancs részének
fogja tekinteni, amely viszont nem létezik.Miért jelenik meg a you are not in the
correct group to su root hibaüzenet, amikor a
su paranccsal át akarunk
váltani a root
felhasználóra?Ez egy biztonsági megszorítás.
Csak úgy tudunk átváltani a
root felhasználóra (vagy
bármilyen más olyan
hozzáférésre, amely
rendszeradminisztrátori jogosultságokkal
rendelkezik), ha a wheel csoport
tagjai vagyunk. Ha nem létezne ez a
korlátozás, akkor a rendszerben szinte
bárki képes lenne
rendszeradminisztrátori jogosultságokat
szerezni csupán úgy, hogy ha megszerzi
valahogy a root jelszavát.
Ennek a korlátozásnak
köszönhetõen ez viszont már nem lesz
feltétlenül helytálló. A
&man.su.1; még a jelszót sem engedi megadni
azoknak, akik nem tagjai a wheel
csoportnak.Ha engedélyezni akarjuk valakinek a
root felhasználóra
váltást, akkor nincs más teendõnk,
mint egyszerûen a hozzáadni a
wheel csoporthoz.Az rc.conf
állományban vagy valamelyik másik
konfigurációs állományban
rosszul adtuk meg a beállításokat,
és nem lehet módosítani ezeket, mert
így írásvédett lett az
állományrendszer. Mi a
megoldás?Indítsuk újra a rendszert és a
rendszertöltõ parancssorában adjuk ki a
boot -s parancsot, amivel így
egyfelhasználós módba váltunk.
Amikor meg kell adnunk a használni
kívánt parancsértelmezõ
nevét, egyszerûen csak nyomjuk le az
Enter billentyût, majd a
mount -urw / parancs
kiadásával csatlakoztassuk újra
írható módban
rendszerindító
állományrendszert. Emellett még
valószínûleg a mount -a -t
ufs paranccsal azokat az
állományrendszereket is érdemes lesz
csatlakoztatnunk, ahol a kedvenc
szövegszerkesztõnk található.
Amennyiben az érintett szövegszerkesztõ egy
hálózati állományrendszeren
található, akkor helyette használjunk
egy helyben elérhetõ
szövegszerkesztõt, például az
&man.ed.1; programot, vagy manuálisan
állítsuk be a hálózat
elérését a hálózati
állományrendszerek
csatlakoztatásához.Ha a &man.vi.1; vagy &man.emacs.1; programokhoz
hasonló teljes képernyõs
szövegszerkesztõt akarunk használni, akkor
elõtte nem árt a export
TERM=cons25 parancsot sem kiadnunk, így a
&man.termcap.5; adatbázisból
elérhetõvé válnak az ehhez
szükséges adatok.Miután megtettük ezeket a
lépéseket, már a szokásos
módon át tudjuk szerkeszteni az
/etc/rc.conf állományt.
A rendszermag indulása után
közvetlenül megjelenõ üzenetekben
találhatjuk meg azon sorok számait, amelyeket
a rendszer nem tudott értelmezni.Miért nem sikerül beállítani a
nyomtatót?Olvassuk el a kézikönyv nyomtatókkal foglalkozó
részét, minden bizonnyal választ ad a
legtöbb kérdésünkre.Bizonyos nyomtatókat azonban akkor tudunk
használni, ha van hozzá meghajtónk.
Ezeket gyakran csak WinPrinter néven
emlegetik, amelyeket viszont a &os; nem támogat. Ha
a nyomtatónk nem használható DOS vagy
&windows; alatt, akkor valószínûleg egy
ilyen WinPrinterrel van dolgunk. Ebben az esetben
egyedül abban reménykedhetünk, hogy a
print/pnm2ppa port
támogatja.Hogyan lehet módosítani a
rendszerünkhöz tartozó
billentyûkiosztást?Olvassuk el a kézikönyv honosításssal
foglalkozó részét,
különös tekintettel a konzol beállításaira.Miért jelenik meg az unknown:
<PNP0303> can't assign resources
hibaüzenet a rendszer indulásakor?Erre a &a.current; címére postázott
egyik levél adja meg a választ:
&a.wollman;, 2001. április
24.A can't assign resources üzenetek
rendszerünkben olyan ISA eszközök
jelenlétére utalnak, amelyekhez a
rendszermagban PnP támogatást nem
tartalmazó meghajtók tartoznak. Ilyenek
többek közt a
billentyûzetvezérlõk, a
programozható
megszakítás-vezérlõ chip
és sok más alapvetõ elem a
gépünkben. Ezek az erõforrások
nem oszthatóak ki, mivel már valamelyik
meghajtó használatba vette ezeket.
Miért nem mûködnek rendesen a
kvóták?Elõfordulhat, hogy a rendszermag nem
támogatja a kvóták
használatát. Ha errõl lenne
szó, akkor vegyük fel az alábbi
sort a rendszermag konfigurációs
állományába és
fordítsuk újra:options QUOTAEnnek részleteit a kézikönyv
kvótákkal foglalkozó
részében találjuk.Az /
állományrendszeren ne
engedélyezzük a kvóták
használatát.Tegyünk
kvótaállományokat azokra az
állományrendszerekre, ahol be akarjuk
vezetni a használatukat,
például:ÁllományrendszerKvótaállomány/usr/usr/admin/quotas/home/home/admin/quotas……A &os; tartalmazza a System V IPC
alapeszközeit?Igen, a &os; a GENERIC
típusú rendszermagban támogatja a System
V típusú IPC megoldást,
beleértve az osztott memória, az üzenetek
és a szemaforok használatát. Ha
saját rendszermagunk van, akkor az alábbi
beállítások használatával
engedélyezhetjük a használatukat:options SYSVSHM # az osztott memória engedélyezése
options SYSVSEM # a szemaforok engedélyeze
options SYSVMSG # az üzenetek kezeléseFordítsuk és telepítsük
újra a rendszermagot.A sendmail helyett milyen
más levelezõ szerver használható
még?A sendmail
a &os;-ben található alapértelmezett
levelezõ szerver, de könnyen le tudjuk
cserélni másikra (például
amelyet a portok közül
telepítettünk).A Portgyûjteményben több
különbözõ levelezõ szerver is
megtalálható, amelyek közül a
mail/exim, mail/postfix, mail/qmail és a mail/zmailer portok a
leginkább népszerûek.Szép dolog, hogy lehet válogatni a
különbözõ megoldások
között és hogy ilyen sok levelezõ
szerver használható. Ezért
lehetõleg a levelezési listákon ne
kérdezzünk senkitõl olyat, hogy De a
sendmail akkor most miért
jobb, mint a qmail? Ha
ilyen kérdéseink vannak, akkor
elõször inkább olvassuk át az
archívumokat. Szinte biztos, hogy már szinte
az összes levelezõ szerver elõnyét
és hátrányát
kivesézték jó
néhányszor.Elveszett a root
felhasználó jelszava! Mit tegyünk?Ne essünk kétségbe! Indítsuk
újra a rendszerünket
egyfelhasználós módban. Ehhez
gépeljük be a boot -s
parancsot a rendszertöltõ Boot:
parancssorában. Amikor a
parancsértelmezõt kell megadnunk,
egyszerûen csak nyomjuk le az Enter
billentyût. Ekkor kapunk egy &prompt.root;
parancssort. A mount -urw / parancs
begépelésével csatlakoztassuk
újra a rendszerindító
partíciónkat írható
módban, majd a mount -a paranccsal
csatlakoztassuk az összes többi
állományrendszert. Ezt követõen a
passwd root parancs
kiadásával változtassuk meg a
root felhasználó
jelszavát és a &man.exit.1;
futtatásával folytassuk a rendszer
indítását.Ha az egyfelhasználós módra
váltás során a rendszer a
root felhasználó
jelszavát kérné, akkor az arra utal,
hogy a konzol (/dev/console) az
/etc/ttys állomány
szerint insecure (nem
biztonságos) típusú. Ebben az
esetben szereznünk kell egy &os;
telepítõlemezt, elindítanunk
róla a rendszert, majd a &man.sysinstall.8;
programban a Fixit
menüponton keresztül indított
parancsértelmezõben kiadni az elõbb
említett parancsokat.Ha egyfelhasználós módban nem
tudjuk csatlakoztatni a rendszerindító
partíciót, akkor ennek könnyen az lehet
az oka, hogy a partíciókat
titkosították, ezért a megfelelõ
kulcsok nélkül nem tudjuk elérni
ezeket. Ez leginkább adott
implementációtól függ. A
&os;-ben elõforduló
lemeztitkosításokkal kapcsolatban a kézikönyv
ad bõvebb útmutatást.Hogyan akadályozható meg, hogy a ControlAltDelete
billentyûkombináció
újraindítsa a rendszert?Ha a &man.syscons.4; (vagyis az alapértelmezett)
konzolt használjuk, akkor ehhez a következõ
beállításokkal kell fordítanunk
és telepítenünk egy rendszermagot:options SC_DISABLE_REBOOTMindezt a rendszermag újrafordítása
és a újraindítása
nélkül is le tudjuk tiltani, ha
beállítjuk az alábbi
&man.sysctl.8;-változót:&prompt.root; sysctl hw.syscons.kbd_reboot=0Az elõbb említett két
módszer kizárja egymást. A
&man.sysctl.8; változó nem létezik,
ha a rendszermagot a SC_DISABLE_REBOOT
beállítással fordítjuk
újra.Ha viszont a &man.pcvt.4; konzolt használjuk,
akkor a következõ konfigurációs
beállítást kell megadnunk a rendszermag
újrafordításakor:options PCVT_CTRL_ALT_DELHogyan lehet szöveges DOS
állományokat &unix; formátumúra
alakítani?Használjuk a következõ &man.perl.1;
parancsot:&prompt.user; perl -i.bak -npe 's/\r\n/\n/g' állományokahol az
állományok az
átalakítandó állományok.
A konverzió helyben történik, illetve az
eredeti állományokról
.bak kiterjesztéssel
létrejön egy biztonsági
mentés.Erre a célra viszont ugyanígy megfelel a
&man.tr.1; parancs is:&prompt.user; tr -d '\r' < dos-szöveges-állomány > unix-szöveges-állományEkkor a
dos-szöveges-állomány
lesz a DOS formátumú szöveges
állomány, miközben a
unix-szöveges-állomány
fogja az eredményt tartalmazni. Ez valamivel
gyorsabb a perl
megoldásánál.Ez említett megoldásokon kívül
a DOS szöveges állományait a
Portgyûjteményben található
converters/dosunix porttal is
könnyedén át tudjuk alakítani.
Ennek részleteit a hozzátartozó
dokumentációból tudjuk meg.Hogyan lehet futó programokat név szerint
leállítani?Lásd &man.killall.1;.A &man.su.1; miért írja folyton, hogy a
felhasználó nincs a root
ACL-jében?Ezt a hibát az elosztott
hitelesítést végzõ
Kerberos rendszer adja. Maga a
probléma nem végzetes, viszont annál
inkább idegesítõ. Ilyenkor vagy a
kapcsolóval kell futtatni a
&man.su.1; programot, vagy a következõ
kérdésben megadottak szerint el kell
távolítani a
Kerberos
alkalmazást.Hogyan távolítható el a
Kerberos?A Kerberos úgy
távolítható el a rendszerbõl, ha
újratelepítjük a base
terjesztés tartalmát. Ha CD-rõl
telepítettük a rendszert, akkor csatlakoztassuk
(most tegyük fel, hogy a /cdrom könyvtárba)
és futassuk a következõ parancsot:&prompt.root; cd /cdrom/base
&prompt.root; ./install.shMásik lehetõség, ha hozzáadjuk
a NO_KERBEROS
beállítást a
/etc/make.conf
állományhoz és
újrafordítjuk az alaprendszert.Mi történt a
/dev/MAKEDEV
állománnyal?A &os; 5.X és
a késõbbi változatok már a
&man.devfs.8; által felkínált
automatikus megoldást alkalmazzák. Ilyenkor
az eszközmeghajtók igény szerint hoznak
létre eszközleírókat, és
ezzel lényegében
szükségtelenné teszik a
/dev/MAKEDEV
használatát.Hogyan lehet még több
pszeudoterminált létrehozni?Ha sok telnet,
ssh, X esetleg screen
felhasználónk van, akkor könnyen
elõfordulhat, hogy kifogyunk a
pszeudoterminálokból. A &os; 6.2
és az azt megelõzõ változatokban
alapértelmezés szerint 256
pszeudoterminál, a &os; 6.3 és
késõbbi változatokban pedig 512
pszeudoterminál áll
rendelkezésünkre.Szükség esetén további
pszeudoterminálok is hozzáadhatóak a
rendszerhez. Ehhez azonban módosítanunk
kell a szabványos C
függvénykönyvtárakat, a
rendszermagot és az /etc/ttys
állományt. Például a
1152 pszeudoterminál használatát
teszi lehetõvé. Ez a konkrét
javítás viszont csak a &os; 6.3
és késõbbi változatok
esetén alkalmazható
zökkenõmentesen.Hogyan lehet újraindítás
nélkül az /etc/rc.conf
tartalmát újraolvastatni és
újraindítani az /etc/rc
szkriptet?Váltsunk egyfelhasználós
módba, majd vissza többfelhasználós
módba.Konzolon ez így oldható meg:&prompt.root; shutdown now
(Megjegyzés: nincs -r vagy -h!)
&prompt.root; return
&prompt.root; exitA -STABLE rendszer
frissítésekor
-BETAx,
-RC vagy
-PRERELEASE verzió jelenik meg!
Mi történt?Röviden: Ez csak egy elnevezés. Az
RC jelentése Release
Candidate, vagyis kiadásra
jelölt. Ez egy küszöbön
álló kiadásra utal. A &os;-ben a
-PRERELEASE elnevezés
általában egyenlõ a kiadások
elõtt bekövetkezõ
kódfagyasztással. (Bizonyos kiadások
esetén pedig a -BETA
címkét a -PRERELEASE
megjelöléshez hasonlóan
használják.)Valamivel bõvebben: A &os;
fejlesztésében a kiadások
általában két helyrõl
származnak. A nagyobb, ún.
nullás kiadások, mint
például 6.0-RELEASE és 7.0-RELEASE, a
fejlesztési ág legfrissebb
állapotából készülnek,
amelyet gyakran csak -CURRENT
néven emlegetnek. A kisebb kiadások, mint
például a 6.3-RELEASE vagy az 5.2-RELEASE, az
aktív -STABLE
ágból származnak. A 4.3-RELEASE
kiadástól kezdõdõen mindegyik
kiadás saját ággal rendelkezik, amelyet
elsõsorban olyanoknak ajánlunk, akiknek csak
nagyon visszafogott változtatásokra van
szükségük a rendszerben (ezek
általában csak különbözõ
biztonsági javításokat
takarnak).Amikor a fejlesztõk készíteni akarnak
egy újabb kiadást, az alapjául
szolgáló fejlesztési ágon
elvégeznek bizonyos mûveleteket. Ennek egy
része a források
befagyasztása. Amikor ez
megkezdõdik, az ág neve megváltozik,
és ezzel jelzik, hogy hamarosan kiadás
készül belõle. Például, ha
egy ág a 6.2-STABLE nevet viseli, akkor a
6.3-PRERELEASE névre vált arra az
idõszakra, amíg tart a
kódfagyasztás és lezajlik a
kiadások megjelentetéséhez
szükség további tesztelés.
Hibajavítások ekkor továbbra is
rakhatóak bele. Ahogy a források
elérik a kiadáshoz szükséges
szintet, az ág neve 6.3-RC-re vált, és
ezzel jelzik, hogy a kiadás
elõkészítése hamarosan
befejezõdik. Az RC
állapotban csak a legfontosabb hibákat keresik
meg és javítják. Miután a
kiadás (jelen esetünkben a 6.3-RELEASE
kiadás) és a hozzátartozó
ág elkészült, az ág neve
ismét 6.3-STABLE lesz.A verziószámokról és a
CVS-ben található különbözõ
ágakról a Release
Engineering címû cikkben olvashatunk
(angolul).Az új rendszermag telepítése
során a &man.chflags.1; program hibát jelez.
Hogyan javítható ez a hiba?Rövid válasz: A rendszerünk
valószínûleg nullánál nagyobb
biztonsági szinten fut. Indítsuk újra
a rendszerünket egyfelhasználós
módban és úgy telepítsük a
rendszermagot.A hosszabb válasz: A &os; nem engedi
megváltoztatni a rendszerszintû
állományjelzõket nullától a
nagyobb biztonsági szinteken. A jelenleg
érvényben levõ biztonsági szintet
a következõ paranccsal lehet
lekérdezni:&prompt.root; sysctl kern.securelevelA biztonsági szintet nem lehet csökkenteni.
A rendszert egyfelhasználós módban kell
újraindítani, mert csak úgy tudjuk
újratelepíteni a rendszermagot. Másik
lehetõségünk, ha
átállítjuk a biztonsági szintet
az /etc/rc.conf
állományban és úgy
indítjuk újra a rendszerünket. Az
&man.init.8; man oldalán olvashatunk bõvebben a
biztonsági szintek (securelevel)
beállításáról, az
rc.conf
használatáról pedig az
/etc/defaults/rc.conf
állományból és a &man.rc.conf.5;
man oldalon tudhatunk meg többet.A rendszeren nem lehet egyszerre egy
másodpercnél többel megváltoztatni
az idõt! Hogyan lehet megkerülni ezt a
korlátozást?A rövid válasz: A rendszerünkben a
biztonsági szintet (securelevel)
minden bizonnyal egynél nagyobbra
állították. Indítsuk
újra a rendszert egyfelhasználós
módban és változtassuk meg a
dátumot.Egy hosszabb válasz: A &os; nem engedi egy
másodpercnél többel megváltoztatni
az idõt, ha az aktuális biztonsági szint
értéke egy felett van. Ezt a
következõ parancs kiadásával tudjuk
ellenõrizni:&prompt.root; sysctl kern.securelevelA biztonsági szint futás közben nem
csökkenthetõ. A dátum
megváltoztatásához ezért a
rendszert egyfelhasználós módban kell
indítanunk, vagy az /etc/rc.conf
állományban csökkentenünk kell a
biztonsági szintet. Az &man.init.8; man oldalon
olvashatunk részletesebben a biztonsági
szintek mûködésérõl, illetve az
/etc/defaults/rc.conf
állományból és az
&man.rc.conf.5; man oldalról tudhatunk meg
többet az rc.conf
mûködésérõl.Az rpc.statd parancsnak miért
kell 256 MB memória?Nem, itt szó sincs semmiféle
memóriaszivárgásról, és
egyébként sem használ 256 MB
memóriát. Az rpc.statd
parancs egyszerûen csak kényelmi
megfontolásokból iszonyatos
mennyiségû memóriát képez
le a címterébe. Ebben technikailag semmi
kivetnivaló nincsen, ezzel egyedül a
&man.top.1;, &man.ps.1; és a hozzá
hasonló programokat zavarja meg egy kicsit.A &man.rpc.statd.8; tehát leképezi az
állapotát rögzítõ
állományt (amely a /var könyvtárban
található a címterébe. Ilyenkor
igyekszik egy kicsit elõre gondolkodni és
felkészülni a
megnövekedésére, ezért viszonylag
nagy méretben hozza létre ezt a
leképezést. Ezt nagyon jól
megfigyelhetjük a
forráskódjából is, ahol
látszik, hogy a &man.mmap.2; függvényt a
0x10000000 értékkel
hívja meg, tehát az 32 bites Intel
architektúrán megcímezhetõ
memória egytizenhatod részével, ami
pontosan 256 MB.Miért nem törölhetõ az
schg
állományjelzõ?Rendszerünkben a biztonsági szint
(securelevel) nagyobb
nullánál. Próbáljuk meg
csökkenteni az értékét és
próbálkozzunk ismét. Ezzel
kapcsolatban részletesebb információkat
a a biztonsági
szintekrõl szóló
kérdésbõl vagy az &man.init.8; man
oldalról tudhatunk meg.Az .shosts állományon
keresztül alapértelmezés szerint
miért enged hitelesíteni a legújabb
&os; verziókban megtalálható
SSH?A legújabb &os; verziókban azért
nem tudjuk az .shosts
állományon keresztül hitelesíteni
magunkat, mert az &man.ssh.1; alapértelmezés
szerint rendszeradminisztrátori jogok
nélkül kerül telepítésre.
Ezt a hibát többféle
módon ki tudjuk
javítani:Ha tartós megoldásra van
szükségünk, akkor az
/etc/make.conf
állományban állítsuk az
ENABLE_SUID_SSH
változót a true
értékre, majd fordítsuk újra
az &man.ssh.1; programot (vagy futtassuk le a
make world
parancsot).Ha ideiglenesen akarjuk csak javítani, akkor
az /usr/bin/ssh
állomány engedélyeit
root
felhasználóként
állítsuk a 4555
értékre a chmod 4555
/usr/bin/ssh parancs kiadásával.
Ezután vegyük fel az
ENABLE_SUID_SSH=
true sort az
/etc/make.conf
állományt, így ez a
változtatás a make
world
következõ futtatásakor is
megmarad.Mi az a vnlru?A vnlru törli és
szabadítja fel a rendszerben keringõ vnode-okat,
amikor a rendszermagban elérik a
kern.maxvnodes változó
által beállított határt. Ez a
rendszermagban futó szál többnyire csak
tétlenül ül a háttérben,
és csak olyankor lép
mûködésben, amikor rengeteg
memóriát használunk és
éppen több tízezernyi apró
állományhoz akarunk egyszerre
hozzáférni.Mit jelentenek top parancs
által megjelenített
különbözõ
memóriaállapotok?Active (Aktív): az
utóbbi idõben használt lapok.Inactive (Inaktív): az
utóbbi idõben nem használt
lapok.Cache (Tárazott):
(leginkább) azok a lapok, amelyeket még
használnak, de gyakran azonnal
újrafelhasználódnak (akár a
régi, akár egy új
hozzárendelésben). Egyes lapok az
active állapotból
közvetlenül a cache
állapotba váltanak, ha tiszták (nem
módosították), de ez az
átmenet függ a házirendtõl,
vagyis a VM alrendszer karbantartója által
kiválasztott algoritmustól.Free (Szabad): effektív
tartalom nélküli lapok, amelyek akár
közvetlenül fel is használhatóak
olyan esetekben, amikor a tárazott lapok erre nem
alkalmasak. A szabad lapokat
megszakításokban és a futó
programokban is felhasználhatjuk.Wired (Rögzített):
olyan lapok, amelyek a memória egy
rögzített pontján foglalnak helyet.
Ezeket többnyire a rendszermag használja, de
speciális esetekben a programoknak is
szükségük lehet rá.A lapok általában akkor kerülnek ki a
lemezre (valamilyen VM alrendszerbeli
szinkronizáció során), amikor
inaktív állapotban vannak, de akár az
aktív lapok is szinkronizálhatóak. Ez
attól függ, hogy a processzor képes-e
nyomkövetni a lapok
módosítását, és
némely helyzetekben elõnyös lehet a
rendszer számára, ha annak megfelelõen
szinkronizálja a VM lapjait, hogy azok aktívak
vagy inaktívak. A legtöbb esetben itt
egyszerûen csak egy olyan sort kell elképzelni,
ahol a program számára viszonylag
inaktív lapok találhatóak, amelyeket a
rendszer tetszõlegesen a lemezre írhat. A
tárazott lapok általában már
eleve szinkronizáltak, nem leképzettek,
közvetlenül a programok régi és
új hozzárendelései
használják ezeket. A szabad lapokat
akár a megszakítások szintjén is
lehet használni, miközben a tárazott vagy
szabad lapokat a futó programokban
érthetjük el. A tárazott lapok
zárolása nem megfelelõ ahhoz, hogy
megszakításokban is el lehessen érni
ezeket.Vannak még bizonyos jelzések
(például a foglaltságot vagy
foglaltság mértékét jelzõ
értékek), amelyek még hatással
vannak a fentebb leírt szabályokra.Mekkora a rendelkezésre álló
memória mérete?A rendelkezésre álló
memóriának rengeteg típusa
létezik. Ezek közül egyik az a
memória, amely közvetlenül
anélkül elérhetõ, hogy bármi
mást ki kellene hozzá lapoznunk. Ennek a
mérete nagyjából a tárazott
és a szabad lapokat tároló sorok
hosszával arányos (amelyet még a
rendszer beállításaitól
függõ további tényezõk is
módosíthatnak). A rendelkezésre
álló memória másik
típusa a teljes VM terület
mérete. Ezt nem olyan könnyû
meghatározni, de leginkább a
lapozóterület és a fizikai memória
méretétõl függ. A
rendelkezésre álló
memória több más
lehetséges megfogalmazása is létezik,
de szinte teljesen felesleges beszélni róluk.
Egyedül az a fontos, hogy a igyekezzünk
mérsékelni a lapozást és mindig
legyen elegendõ
lapozóterületünk.Mi az a /var/empty? Nem lehet
letörölni!A /var/empty
könyvtárat az &man.sshd.8; program
használja a privilégiumok
elkülönítéséhez. A /var/empty
könyvtárnak üresnek kell lennie, legyen a
root tulajdonában és
legyen rajta a schg
állományjelzõ.Noha semmiképpen sem javasoljuk a
könyvtár törlését, úgy
tudjuk elvégezni, ha elõször az
schg állományjelzõt
töröljük róla. A &man.chflags.1; man
oldalán olvashatunk ezzel kapcsolatban
részletesebb információkat (azonban ne
felejtsük el számításba venni az esetleges nehézségeket).
Az X Window System és a virtuális konzolok
használataMi az X Window System?Az X Window System (vagy gyakran csak
X11) a &unix; és &unix;-szerû
operációs rendszereken, így többek
közt a &os;-n is az egyik leginkább elterjedt
ablakozórendszer. A The X.Org Foundation
felügyeli az X
protokoll szabványait, azok aktuális
referencia implementációival együtt.
Ezek hivatalos megnevezése Version 11 Release
&xorg.version;, de ezt gyakran csak
X11 néven
rövidítik.Számos implementációja is
elérhetõ több különbözõ
architektúrára és
operációs rendszerre. A protokoll szerver
oldali funkcióit megvalósító
programokat hivatalosan X szervereknek
nevezik.&os; alatt milyen X implementációk
használhatóak?Kezdetben a &os; alapértelmezett X
implementációja az &xfree86; volt, amelyet a
The XFree86 Project,
Inc. tartott karban. Ez a változat volt
használatban alapértelmezés szerint
egészen a &os; 4.10 és 5.2
verziójáig. Habár eközben az
&xorg; maga is karbantartotta a saját
változatát, kizárólag csak
referencia célokat használt és az
évek során teljesen leromlott az
állapota.2004 elején azonban az XFree86
néhány korábbi fejlesztõje elhagyta
a projektjüket, mivel nem értettek egyet
bizonyos kérdésekben, például a
forráskód ütemét, a
jövõbeni irányokat és egyéb
személyes konfliktusokat illetõen, és
helyette közvetlenül az &xorg;
kódját kezdték el fejleszteni. Ekkor
az &xorg; hozzáigazította forrásait az
utolsó &xfree86; kiadás forrásaihoz
(XFree86 4.3.99.903), majd
megváltoztatta a licencelését.
és beolvasztott több, korábban
külön karbantartott változtatást,
aminek eredményeképpen végül
megszületett az X11R6.7.0.
Egy különálló, de velük
együttmûködõ projekt, a freedesktop.org
(vagy röviden csak fd.o) jelenleg is
az eredeti &xfree86; források
újraszervezésén dolgozik, aminek
célja a napjainkban megjelenõ grafikus
kártyák minél nagyobb
mértékû kihasználása
(és ezáltal a rendszer
gyorsítása), a rendszer modularisabbá
tétele (ezáltal a rendszer
karbantarthatóságának
javítása, ami a kiadások gyorsabb
elõkészítését és
könnyebb
beállíthatóságát teszi
lehetõvé). Az &xorg; a jövõben
tervezi a freedesktop.org
fejlesztéseit is átvenni.2004 júliusától kezdõdõen
a &os.current; változatban az &xfree86; helyett az
&xorg; lett az alapértelmezett X
implementáció. A &os;-ben azóta is
alapból az &xorg; X11 implementációja
található meg.A témával kapcsolatban a
kézikönyv X11-rõl
szóló fejezetében kaphatunk
részletesebb
felvilágosítást.Mégis miért vált szét a
két X projekt?Ezt a kérdést ez a GYIK nem tudja
megválaszolni. Ezzel kapcsolatban viszont
érdemes elolvasnunk a különbözõ
levelezési listák archívumait szerte az
interneten. Keressünk rá a válaszra a
kedvenc keresõnkben, de ezzel a kérdéssel
ne a &os; levelezési listáit zavarjuk. Az is
elképzelhetõ, hogy ennek a valós okait
csak néhányan ismerik egész
teljesen.A &os; miért az &xorg; változatát
választotta alapértelmezettnek?Az &xorg; fejlesztõi azt
ígérték, hogy gyorsabban fognak
újabb verziókat kiadni, amelyek sokkal
több újítást is fognak
tartalmazni. Nos, amennyiben tényleg
állják a szavukat, azzal mindenki jól
jár. Emellett az õ változatuk
továbbra is a hagyományos X licenc alatt
érhetõ el, miközben az &xfree86; licence
ettõl némileg eltér.Hogyan lehet használni az X-et?Amennyiben már egy meglévõ rendszerre
szeretnénk telepíteni az X-et, úgy
érdemes a x11/xorg metaportot
választanunk, amely magától
feltelepíti az összes szükséges
komponenst, vagy egyszerûen telepítsük az
&xorg; alkalmazást csomagból:&prompt.root; pkg_add -r xorgEmellett az &xorg; a &man.sysinstall.8;
használatával is telepíthetõ:
válasszuk a Configure
(Beállítások),
Distributions
(Terjesztések), végül a The
X.Org Distribution (Az X.Org
terjesztés) menüpontokat.Az &xorg; sikeres telepítése után
- kövessük az &man.xorgconfig.1; segédprogram
- utasításait. Innen megtudhatjuk, hogy
- miként kell beállítani az &xorg;
- szerverét a különbözõ grafikus
- kártyák, egerek stb.
- használatához. Továbbá
- érdemes még az &man.xorgcfg.1; nevû
- programot is megnézni, amely egy grafikus
- felületen keresztül teszi lehetõvé az
- X kényelmes
- beállítását.
-
- További információkat a
- kézikönyv X11-gyel foglalkozó
- fejezetébõl tudhatunk meg.
+ kövessük a kézikönyv X11
+ beállításával
+ foglalkozó szakaszában
+ leírtakat.
Az X indításakor egy KDENABIO
failed (Operation not permitted) hiba
keletkezik, közvetlenül a
startx parancs kiadása
után. Mi lehet ezzel kezdeni?A rendszerünkön
valószínûleg túlságosan
magas a biztonsági szint
(securelevel) értéke.
Ilyenkor az X-et nem tudjuk elindítani, mivel a
mûködéséhez szüksége van
a &man.io.4; eszköz írására.
Ezzel kapcsolatban az &man.init.8; man oldal ad
részletesebb útmutatást.A kérdés tehát az, hogy mit kellene
ezzel csinálni. Alapvetõen két
lehetõségünk van: vagy
visszaállítjuk a biztonsági szintet
nullára (ezt általában az
/etc/rc.conf állományon
keresztül lehet megtenni), vagy az &man.xdm.1;
programot még a rendszerindítás
során elindítjuk (mielõtt a
biztonsági szintet magasabbra
állítanánk).A szolgál arról
bõvebb információval, hogy miként
tudjuk használni az &man.xdm.1; programot a rendszer
indítása során.Miért nem mûködik X alatt az
egér?Ha a &man.syscons.4; (vagyis az alapértelmezett
konzol) meghajtót használjuk, akkor be tudjuk
úgy állítani a &os;-t, hogy minden
virtuális képernyõn látható
legyen az egérkurzor. A &man.syscons.4; egy
/dev/sysmouse nevû
virtuális eszköz
támogatásával igyekszik elkerülni
azt, hogy összeakadjon az X-szel. A valós
egértõl érkezõ összes
eseményt a &man.moused.8; démon írja
folyamatosan a &man.sysmouse.4; eszközre. Amennyiben
az egerünket egy vagy több virtuális
konzolon is használni akarjuk az X-szel
együtt, akkor nézzük
meg a
válaszát és állítsuk be
annak megfelelõen a &man.moused.8;
démont.Ezt követõen nyissuk meg az
/etc/X11/xorg.conf
állományt és gondoskodjunk róla,
hogy a következõ sorok feltétlenül
szerepeljenek benne:Section "InputDevice"
Option "Protocol" "SysMouse"
Option "Device" "/dev/sysmouse"
.....Néhányan inkább a
/dev/mouse eszközt szeretik
használni X alatt. Ha mi is így akarjuk
használni, akkor a
/dev/mouse eszközhöz
hozzunk létre egy szimbolikus linket a
/dev/sysmouse eszközre
(lásd &man.sysmouse.4;). Ezt úgy tudjuk
megtenni, ha az /etc/devfs.conf
állományba (lásd &man.devfs.conf.5;)
felvesszük a következõ sort:link sysmouse mouseA link maga közvetlenül a &man.devfs.5;
újraindításával keletkezik. Ehhez
(root
felhasználóként) a következõ
parancsot kell kiadnunk:&prompt.root; /etc/rc.d/devfs restartX alatt lehet használni görgõs
egeret?Igen.Jelezni kell az X-nek, hogy ötgombos egerünk
van. Ezt úgy tudjuk megcsinálni, ha az
/etc/X11/xorg.conf
állományba felvesszük a Buttons
5 és ZAxisMapping 4 5
sorokat az InputDevice szakaszba.
Vegyük például, hogy az
/etc/X11/xorg.conf
állományunkban a következõ
InputDevice szakasz
található.Egy példa &xorg; konfigurációs
állomány InputDevice szakasza
görgõs egerekhezSection "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSectionEgy egyszerû példa .emacs
állomány görgõs egerek
(opcionális) használatához;; görgõs egér
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)Hogyan lehet távoli X szervereket
elérni?Biztonsági okokból a szerver
alapértelmezés szerint nem engedélyezi,
hogy egy távoli géprõl ablakot lehessen
nyitni rajta.Ha szükségünk lenne erre a
lehetõségre, akkor nem kell mást
tennünk, mint az X-et a
paraméterrel
indítani:&prompt.user; startx -listen_tcpMi az a virtuális konzol és hogyan lehet
belõle többet létrehozni?A virtuális konzolok röviden szólva
arra alkalmasak, hogy egyetlen gépen is több
párhuzamos munkamenetben tudjunk dolgozni,
hálózat vagy X beállítása
nélkül.Amikor a rendszer elindul, a rendszerüzenetek
után általában egy bejelentkezõ
képernyõ jelenik meg. Ekkor az elsõ
virtuális konzolon keresztül tudjuk megadni a
felhasználói nevünket és
jelszavunkat, majd nekilátni a munkának (vagy
éppen a játszadozásnak).Késõbb aztán elõfordulhat, hogy
egy másik munkamenetet is szeretnénk
elindítani, például elõkeresni az
éppen használt program
dokumentációját vagy elolvasni a
leveleinket, amíg FTP-n keresztül
letöltünk egy állományt. Ehhez nem
kell mást csinálnunk, csak le kell nyomni az
AltF2
(tartsuk lenyomva az Alt billentyût
miközben megnyomjuk az F2
billentyût) billentyûkombinációt
és máris egy másik virtuális
konzolon találjuk magunkat! Ha innen vissza
szeretnénk térni az elõzõ
munkamenetbe, akkor nyomjuk le az AltF1
billentyûkombinációt.A frissen telepített &os; rendszerekben
alapértelmezés szerint nyolc virtuális
konzol engedélyezett. Az AltF1,
AltF2,
AltF3,
stb. lenyomásával tudunk váltogatni
köztük.Ha ennél többet szeretnénk egyszerre
használni, akkor nyissuk meg az
/etc/ttys állományt
(lásd &man.ttys.5;) és a Virtual
terminals részben vegyünk még fel
a ttyv8 eszköz után
továbbiakat, egészen a
ttyvc eszközig:# Írjuk át az eredeti ttyv8 bejegyzést az /etc/ttys
# állományban és engedélyezzük.
ttyv8 "/usr/libexec/getty Pc" cons25 on secure
ttyv9 "/usr/libexec/getty Pc" cons25 on secure
ttyva "/usr/libexec/getty Pc" cons25 on secure
ttyvb "/usr/libexec/getty Pc" cons25 on secureAkármennyit használhatunk
belõlük. Ne felejtsük el azonban, hogy
minél több virtuális terminálunk
van, annál több erõforrásra lesz
hozzájuk szükségünk. Ezt
leginkább akkor érdemes megfontolni, ha
8 MB memóriánál kevesebbel
rendelkezünk. Emellett még érdemes a
secure értéket is az
insecure értékre
átállítani.Ha X szervert is akarunk futtatni, akkor
legalább egy virtuális konzolt szabadon
(vagy kikapcsolva) kell hagynunk a
számára. Így tehát, ha mind
a tizenkét funkcióbillentyûre
szeretnénk elindítani egy-egy
virtuális konzolt, nos, akkor nincs
szerencsénk — ha X szervert is akarunk
használni a gépen, akkor legfeljebb csak
tizenegyet használhatunk
belõlük.Az egyes konzolokat legegyszerûbben úgy
tudjuk letiltani, ha kikapcsoljuk ezeket.
Például, ha az elõbb említettek
szerint tizenkét terminálunk van, és
X-et akarunk futtatni, akkor a tizenkettedik terminál
beállításait meg kell
változtatnunk errõl:ttyvb "/usr/libexec/getty Pc" cons25 on secureerre:ttyvb "/usr/libexec/getty Pc" cons25 off secureAmennyiben a billentyûzetünkön csak
tíz funkcióbillentyû
található, elengedõ ennyi is:ttyv9 "/usr/libexec/getty Pc" cons25 off secure
ttyva "/usr/libexec/getty Pc" cons25 off secure
ttyvb "/usr/libexec/getty Pc" cons25 off secure(Ezeket a sorokat akár ki is
törölhetjük.)Ezt követõen a legegyszerûbben (és
egyben a legtisztábban) úgy tudjuk
aktiválni a virtuális konzolokat, ha
újraindítjuk a rendszerünket. Ha viszont
nem akarjuk ezt feltétlenül megtenni, akkor
állítsuk le az X szervert, majd
(root
felhasználóként) adjuk ki az
alábbi parancsot:&prompt.root; kill -HUP 1Fontos, hogy a parancs végrehajtás
elõtt teljesen leállítsuk az X szervert,
amennyiben az fut. Ha nem tesszük meg, akkor
könnyen elõfordulhat, hogy a
kill parancs hatására
lemerevedik vagy megáll a rendszerünk.Hogyan lehet elérni a virtuális konzolokat
X-bõl?A virtuális konzolokra a
CtrlAltFN billentyûkombinációval lehet
visszaváltani. Ennek megfelelõen tehát a
CtrlAltF1 kombinációval az elsõ
virtuális konzolra tudunk
visszaváltani.Ahogy visszajutottunk a szöveges konzolra, az
AltFn billentyûkombinációval a
megszokott módon tudunk váltani
köztük.Ha innen az X szerverre akarunk visszaváltani,
akkor egyszerûen csak váltsunk arra a
virtuális konzolra, ahol az X fut. Ha az X-et a
paranccsorból indítottuk el
(például a startx
paranccsal), akkor az X nem arra a virtuális konzolra
kapcsolódik automatikusan, amelyen a parancsot
kiadtuk, hanem az utána következõ,
használatban még nem levõ konzolra. Ha
nyolc aktív virtuális terminálunk van,
akkor az X a kilencediken fog futni, ezért ide az
AltF9 lenyomásával tudunk
visszatérni.Hogyan indítható el az
XDM a rendszer
indításakor?Alapvetõen kétféle
megközelítés létezik az
&man.xdm.1; elindításával kapcsolatban.
Az egyik megközelítés szerint az
xdm parancsot az
/etc/ttys
állományból (lásd &man.ttys.5;)
tudjuk megadni a megadott példa alapján, a
másikban pedig egyszerûen az
rc.local
állományból (lásd &man.rc.8;)
vagy a /usr/local/etc/rc.d
könyvtárban megadható
X szkripttel. Mind a kettõ
ugyanazt képviseli, de vannak bizonyos helyzetek,
ahol a kettõ közül csak az egyik
mûködik. Az eredmény mind a két
esetben azonos, hatásukra az X egy grafikus
bejelentkezõ képernyõvel
jelentkezik.A &man.ttys.5; módszernek van egy olyan
elõnye, hogy pontosan megadja, melyik virtuális
terminálon fog futni az X és a szerver
elindítását az &man.init.8; programra
bízza. Az &man.rc.8; használata esetén
viszont könnyû leállítani az
xdm programot, ha netalán
valamilyen gondunk adódna az X szerver
indításakor.Ha az &man.rc.8; állományból
töltöttük be, akkor az xdm
futtatásához semmilyen paramétert nem
kell megadni (például, hogy
démonként fusson). Az &man.xdm.1; azonban
csak az összes &man.getty.8;
elindulása után indítható,
máskülönben a két program
ütközni fog és a konzol nem tud
létrejönni. Ezt a legkönnyebben úgy
lehet megakadályozni, ha az xdm
indítása elõtt várunk kb. 10
másodpercet a szkriptben.Amennyiben az /etc/ttys
állományból adjuk ki az
xdm parancsot, úgy továbbra
is fennáll az &man.xdm.1; és a &man.getty.8;
ütközésének veszélye. Ezt
például úgy tudjuk elkerülni, ha
felvesszük a megfelelõ virtuális
terminál sorszámát a
/usr/local/lib/X11/xdm/Xservers
állományba::0 local /usr/local/bin/X vt4A fenti példában az X szervert a
/dev/ttyv3 eszközre
irányitjuk. A számozást azonban eggyel
el kell tolnunk, mert míg az X szerver egytõl
számozza a virtuális konzolokat, addig a &os;
rendszermagja nullától.Az xconsole indításakor
miért jelenik meg a Couldn't open
console hibaüzenet?Ha az X-et a startx paranccsal
indítottuk el, akkor a
/dev/console eszközre
nem állítódnak be
a szükséges engedélyek, ezért az
xterm -C és az
xconsole parancsok nem fognak
mûködni.Ez a konzolok engedélyeinek
alapértelmezett beállítási
módjától függ. Egy
többfelhasználós rendszer esetén
nem feltétlenül van szükségünk
arra, hogy bármelyik felhasználó
kedvére írhasson a rendszerkonzolra. Az
&man.fbtab.5; állomány
segítségével engedélyezni tudjuk
azon felhasználók számára, akik
a helyi gépen, virtuális konzolon
keresztül jelentkeznek be.Dióhéjban az
/etc/fbtab állományban
(lásd &man.fbtab.5;) kell kivennünk a
következõ sort a megjegyzésbõl:/dev/ttyv0 0600 /dev/consoleEnnek köszönhetõen bárki, aki az
/dev/ttyv0 eszközön
keresztül jelentkezik be a rendszerbe, el tudja
érni a konzolt.Régebben egyszerû
felhasználóként is el lehetett
indítani az &xfree86; szervert. Most miért
kell root
felhasználóként indítani?Az X szerverek csak úgy képesek
közvetlenül elérni a
videokártyát, ha root
felhasználóként futtatjuk ezeket. Az
&xfree86; régebbi (3.3.6 elõtti)
változatai az összes szervert úgy
telepítették fel automatikusan, hogy a
root felhasználó jogaival
fussanak (setuid bittel). Ennek viszont megvan a maga
nyilvánvaló biztonsági
kockázata, hiszen az X szerverek
általában nagy és bonyolult programok.
Az &xfree86; újabb változatai azonban
már pontosan ebbõl kifolyólag nem
állítanak be setuid root
bitet a szerverekre.Értelemszerûen az a megoldás nem
fogadható el és nem is annyira
biztonságos, hogy az X szervert
root
felhasználóként futtassuk.
Kétféleképpen tudjuk egyszerû
felhasználóként futtatni az X-et.
Használhatjuk az xdm vagy
más egyéb bejelentkeztetõ
képernyõ (mint például a
kdm) megoldását, vagy az
Xwrapper programot.Az xdm egy grafikus
bejelentkeztetésért felelõs démon.
Általában a rendszer indításakor
aktiválódik, feladata a
felhasználók hitelesítése
és a hozzájuk tartozó munkamenetek
elindítása. Lényegében a
&man.getty.8; és a &man.login.1; grafikus
megfelelõje. Az xdm démonnal
kapcsolatban még az &xfree86;
dokumentációját, illetve a
GYIK-ban ezt a
kérdést érdemes
elolvasnunk.Az Xwrapper az X szerverhez
tartozó burkolóprogram (wrapper). Ez egy
apró segédprogram, amely lehetõvé
teszi az X szerver manuális
indítását miközben igyekszik
ügyelni a biztonságra is. Elvégez
néhány alapvetõ ellenõrzést a
paramétereken, és ha megfelelõnek
találja ezeket, akkor elindítja a
megfelelõ X szervert. Ha valamiért nem akarunk
bejelentkeztetõ képernyõt indítani,
akkor ezt pontosan nekünk találták ki!
Ha telepítettük a teljes
Portgyûjteményt, akkor a /usr/ports/x11/wrapper portban
találjuk meg.Miért viselkednek furcsán a PS/2-es egerek
X alatt?Valószínûleg az egér és
az egérmeghajtó kiesett a
szinkronból.Nagyon ritkán elõfordul, hogy a
meghajtó hibásan szinkronizációs
hibát jelez, és ekkor a rendszermag a
következõ üzenetet küldi:psmintr: out of sync (xxxx != yyyy)Közben természetesen azt tapasztaljuk, hogy
az egerünk nem mûködik rendesen.Ha ilyen történne velünk, akkor tiltsuk
le a meghajtó szinkronizáció
ellenõrzéséért felelõs
rutinjait. Ezt úgy tudjuk megtenni, ha a
meghajtónak beállítjuk a
0x100 értéket. Ehhez a
rendszertöltõ parancssorában a
kapcsolóval tudjuk behozni a
UserConfig részt:boot: -cEzután a UserConfig
parancssorában gépeljük be a
következõt:UserConfig> flags psm0 0x100
UserConfig> quitMiért nem mûködnek a MouseSystems
által gyártott PS/2-es egerek?Kaptunk néhány visszajelzést arra
vonatkozóan, hogy a MouseSystems által
gyártott PS/2-es egerek bizonyos típusai csak
abban az esetben mûködnek rendesen, ha nagy
felbontású módban
használjuk ezeket. Minden más esetben az
egér néha fel-felugrik a képernyõ
bal felsõ sarkába.Úgy tudjuk nagy felbontású
módban használni az egerünket, ha a PS/2-es
egérmeghajtónak a 0x04
beállítást adjuk meg. Ehhez a
rendszertöltõ parancssorában
gépeljük be a
kapcsolót:boot: -cAhogy bejön a UserConfig
parancssora, gépeljük be a
következõt:UserConfig> flags psm0 0x04
UserConfig> quitAz elõzõ részben olvashatunk egy
másik hasonló egeres
problémáról.Hogyan lehet megcserélni a gombokat az
egéren?Futtassuk le a xmodmap -e "pointer = 3 2
1" parancsot az .xinitrc vagy
.xsession
állományunkból.Hogyan lehet betöltõképet
telepíteni és hol találhatóak
ilyen képek?Erre a kérdésre részletes
választ a &os; kézikönyv Rendszerbetöltõ
képernyõk
címû szakaszában kapunk.X alatt lehet használni a billentyûzeten
található Windows
billentyûket?Igen. Ehhez mindössze az &man.xmodmap.1;
használatával meg kell adni a hozzájuk
tartozó funkciót.Feltéve, hogy mindegyik Windows
billentyûzet szabványos, a következõ
billentyûkódok tartoznak ehhez a három
plusz gombhoz:115 —
Windows billentyû, a bal oldali
Ctrl és Alt
billentyûk között116 —
Windows billentyû, az
AltGr mellett jobbra117 —
Menü gomb, a jobb oldali
Ctrl mellett balraPéldául így lehet
beállítani a bal oldali
Windows billentyût
vesszõre:&prompt.root; xmodmap -e "keycode 115 = comma"A változatatások
valószínûleg csak akkor fognak
életbelépni, ha újraindítjuk az
ablakkezelõnket.Ha azt szeretnénk, hogy a
Windows billentyûkhöz rendelt
funkciók az X indításakor automatikusan
beállítódjanak, akkor tegyük az
xmodmap parancs
hívását az
~/.xinitrc állományunkba.
Sokkal jobban járunk viszont, ha ehelyett
inkább az ~/.xmodmaprc
állományunkba vesszük fel az
xmodmap
beállításait, soronként
egyesével, és a következõ sor
tesszük az ~/.xinitrc
állományunkba:xmodmap $HOME/.xmodmaprcPéldául ezeket a gombokat be lehet
állítani az F13,
F14 és F15
billentyûkre is. Ezekre aztán az
alkalmazásokban vagy az ablakkezelõben
további hasznos funkciókat tudunk
beállítani.Ehhez a következõt kell megadnunk az
~/.xmodmaprc
állományban:keycode 115 = F13
keycode 116 = F14
keycode 117 = F15Ha például az x11-wm/fvwm2 ablakkezelõt
használjuk, akkor az F13 gombra be
tudjuk állítani a kurzor alatt
álló ablak
lekicsinyítésére (vagy
visszanagyítására); az
F14 billentyûvel az
elõtérbe tudjuk hozni a kurzor alatt levõ
ablakot, vagy ha már elöl van, akkor
hátra tudjuk rakni; az F15 gomb
elõhozza a munkakörnyezet (alkalmazás)
menüjét még olyankor is, amikor a kurzor
nincs is az asztalon. Ez utóbbi abban az esetben
lehet hasznos, amikor az asztal egyáltalán nem
látható (és a billentyûn
látható rajz pontosan is ezt mutatja).A következõ beállítások
valósítják meg az imént
említett funkciókat az
~/.fvwmrc állományon
belül:Key F13 FTIWS A Iconify
Key F14 FTIWS A RaiseLower
Key F15 A A Menu Workplace NopHogyan lehet hardveres 3D gyorsítást
használni az &opengl;-hez?Az &xorg; pillanatnyilag használt
verziójától és a
videokártyánktól függ, hogy
tudunk-e 3D gyorsítást alkalmazni. Ha nVidia
kártyánk van, akkor a portok közül
telepíteni tudjuk a &os;-hez készített
bináris meghajtót:A legújabb nVidia-kártyákat az
x11/nvidia-driver
port támogatja.A GeForce2 MX/3/4 sorozatú
nVidia-kártyákat a meghajtó 96XX
változata támogatja, amely az x11/nvidia-driver-96xx
portból telepíthetõ.Az ettõl is régebbi
kártyák, például a GeForce
vagy Riva TNT esetén a meghajtó 71XX
változata javasolt, amely az x11/nvidia-driver-71xx
porton keresztül érhetõ el.Az nVidia honlapján részletes
leírást találhatunk arról, hogy
melyik kártyát melyik meghajtó ismeri.
Ez az információ a következõ
címen érhetõ el: .
A Matrox G200/G400 esetén az x11-servers/mga_hal portot
érdemes megnéznünk.ATI Rage 128 és Radeon
kártyák számára a &man.ati.4x;,
&man.r128.4x; és &man.radeon.4x; man oldalakat
ajánljuk.3dfx Voodoo 3, 4, 5 és Banshee
kártyák számára az x11-servers/driglide port
áll rendelkezésre.HálózatokHonnan lehet többet megtudni a lemez
nélküli
mûködésrõl?A lemez nélküli
mûködés kifejezés arra utal,
hogy a &os; rendszerünk hálózaton
keresztül indul el, valamint a
mûködéséhez szükséges
állományokat nem merevlemezrõl, hanem
egy szerverrõl olvassa be. Ennek
részleteirõl kézikönyv lemez
nélküli mûködésrõl szóló részében
olvashatunk.A &os; használható kizárólag
csak hálózati
útválasztóként?Igen. Ezzel kapcsolatban a kézikönyv
Egyéb haladó hálózati
témák címû
fejezetét javasoljuk elolvasásra,
különös tekintettel az útválasztás és az átjárók
bemutatására.&os;-n keresztül lehet &windows;
operációs rendszerrel internetre
csatlakozni?Ezt a kérdést általában
olyanok teszik fel, akiknek két
számítógépük van otthon,
és ezek közül az egyiken a &os;, a
másikon pedig a &windows; valamelyik változata
fut. A &os; rendszer fog az internethez csatlakozni,
és ezen keresztül szeretnénk a
windowsos géprõl is elérni azt. Ez
tulajdonképpen az elõzõ
kérdés egy speciális esete, és
remekül megoldható.Ha betárcsázós kapcsolattal
csatlakozunk az internethez, akkor érdemes tudnunk,
hogy a felhasználói módban futó
&man.ppp.8; tartalmaz egy
kapcsolót. A &man.ppp.8; programot úgy tudjuk
a kapcsolóval futtatni, ha az
/etc/rc.conf állományban
a gateway_enable
beállítást a YES
értékre állítjuk. Ezután
állítsuk be a windowsos gépünket
ennek megfelelõen és minden mûködni
fog. A további részletekrõl a
&man.ppp.8; man oldalán vagy a kézikönyv
felhasználói PPP-rõl
szóló bejegyzésében
olvashatunk.Amennyiben rendszerszintû PPP-t használunk
vagy Ethernettel csatlakozunk az internethez, akkor a
&man.natd.8; démonra lesz
szükségünk. Erre vonatkozóan a
kézikönyv natd
démonról szóló
szakaszában találhatunk részletesebb
információkat.A &os; támogatja a SLIP és a PPP
használatát?Igen. Érdemes elolvasnunk az &man.slattach.8;,
&man.sliplogin.8;, &man.ppp.8; és &man.pppd.8; man
oldalakat. A &man.ppp.8; és a &man.pppd.8;
egyaránt támogatja a beérkezõ
és kimenõ kapcsolatokat, miközben a
&man.sliplogin.8; kizárólag csak
beérkezõ kapcsolatokkal dolgozik, valamint a
&man.slattach.8; pedig csak kimenõ
kapcsolatokkal.Ezek pontos használatáról olvassuk
el a kézikönyv
PPP-rõl és a SLIP-rõl szóló
fejezetét.Ha viszont csak egy shellen
keresztül érjük el az internetet, akkor
hasznos lehet megnéznünk a net/slirp csomagot.
Segítségével a helyi géprõl
(korlátozott módon) hozzá tudunk
férni különbözõ FTP és
HTTP szolgáltatásokhoz.A &os; támogat hálózati
címfordítást (NAT) vagy
maszkolást?Igen. Ha egy felhasználói PPP kapcsolat
esetén szeretnénk hálózati
címfordítást alkalmazni, akkor olvassuk
el a kézikönyv
felhasználói PPP-vel foglalkozó
részét. Ha viszont
más típusú hálózati
kapcsolatok esetén kívánunk
címfordítást használni, akkor
ahhoz a kézikönyv natd
démonnal kapcsolatos részét kell
fellapoznunk.A PLIP segítségével hogyan tudok
két &os; rendszert összekapcsolni
párhuzamos porton keresztül?Ezt illetõen a kézikönyv PLIP-rõl
szóló szakaszát
érdemes megnéznünk.Hogyan lehet álneveket megadni az Ethernet
eszközöknek?Amennyiben az álnév ugyanazon az
alhálózaton található, mint a
hozzátartozó interfész, akkor
egyszerûen csak adjuk meg a netmask
0xffffffff paramétert az &man.ifconfig.8;
parancs meghívásakor, például
így:&prompt.root; ifconfig ed0 alias 192.0.2.2 netmask 0xffffffffMinden más esetben a hagyományos
módon adjunk meg egy hálózati
címet és egy hálózati
maszkot:&prompt.root; ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00Errõl bõvebben a &os; kézikönyvben
olvashatunk.A 3C503 kártya hogyan
állítható másik
hálózati portra?Ha a kártyán egy másik portot
szeretnénk használni, akkor ahhoz meg kell
adnunk egy további paramétert a
&man.ifconfig.8; meghívásakor. Itt az
alapértelmezett port a link0. Ha
a BNC helyett az AUI portot akarjuk használni, akkor
ennek a link2 értéket kell
megadnunk. Az ilyen típusú
beállítások az
/etc/rc.conf állomány
(lásd &man.rc.conf.5;) ifconfig_*
változóival adhatóak meg.Miért okoz gondot az NFS használata &os;
alatt?A személyi
számítógépekben
található bizonyos hálózati
kártyák (szépen szólva)
ügyesebbek a többieknél, ami az olyan
komolyabb hálózati alkalmazások, mint
például az NFS esetén gondokat
okozhat.Ezzel kapcsolatban
kézikönyv NFS-rõl szóló
részét érdemes
megnéznünk.Miért nem lehet hálózati
állományrendszereket csatlakoztatni &linux;
alól?A &linux; egyes változataiban
található NFS kód csak bizonyos
privilegizált portokról fogad el
kéréseket. Próbáljuk meg a
következõt:&prompt.root; mount -o -P linux:/valami/mntMiért nem lehet hálózati
állományrendszereket csatlakoztatni &sun;
típusú rendszerek alól?A &sunos; 4.X
változatait futtató munkaállomások
csak privilegizált portokról fognak el
kéréseket. Próbálkozzunk az
alábbi paranccsal:&prompt.root; mount -o -P sun:/valami/mntA mountd miért küld
folyton can't change attributes
hibaüzenetet és miért jelenik meg a
bad exports list hibaüzenet a
&os; alapú NFS szerveren?Ez leginkább azért történik,
mert nem jól adtuk meg az
/etc/exports állomány
tartalmát. Olvassuk át a &man.exports.5; man
oldalt és a kéziköny
NFS-rõl
szóló részét,
különös tekintettel az NFS
beállítására.A NeXTStep gépekkel
miért nem sikerül PPP-n keresztül
kommunikálni?Próbáljuk meg az
/etc/rc.conf állományban
(lásd &man.rc.conf.5;) kikapcsolni a TCP
kiterjesztések használatát úgy,
hogy az alábbi változót a
NO értékre
állítjuk:tcp_extensions=NOA Xylogic által
gyártott Annex
típusú gépek esetén is javasolt
megtenni a fenti változtatást.Hogyan lehet engedélyezni a multicast
használatát az IP-n belül?A &os; alapértelmezés szerint
támogatja a multicast mûveleteket. Amennyiben egy
multicast küldéseket közvetítõ
útválasztót szeretnénk
beállítani, akkor újra kell
fordítanunk a rendszermagunkat a
MROUTING beállítás
használatával és elindítani a
&man.mrouted.8; démont. Ez a démon úgy
aktiválható a rendszer minden egyes
indításakor, ha az
/etc/rc.conf állományban
az mrouted_enable változót
YES értékûre
állítjuk.A &os; újabb változataiban az
&man.mrouted.8; multicast útválasztó
démon, a &man.map-mbone.8; valamint az
&man.mrinfo.8; segédprogramok már nem
szerepelnek az alaprendszerben. Ezek a programok
már a &os; Portgyûjteményében az
net/mrouted portban
találhatóak meg.Az MBONE használatához további
eszközök találhatóak a külön
mbone
kategóriában a Portgyûjeményen
belül. Ha a vic és
vat nevû konferenciaszervezõ
eszközöket keressük, akkor itt érdemes
szétnéznünk!Milyen hálózati kártyák
épülnek a DEC PCI
chipkészletére?Glen Foster (gfoster@driver.nsta.org) a
következõ listát állította
össze róluk, amelyet
kiegészítettünk még
néhány további elemmel:
Miért kell teljes hálózati neveket
megadni?Erre a &os; kézikönyvben
találjuk meg a választ.Miért jelenik meg a Permission
denied hibaüzenet minden egyes
hálózati mûvelet esetén?Amennyiben a rendszermagot az
IPFIREWALL
beállítással fordítottuk le,
akkor nem szabad elfelejtenünk, hogy ez
alapértelmezés szerint minden olyan csomagot
eldob, amelyet külön nem
engedélyeztünk.Ha véletlenül rosszul
állítottuk volna be a rendszerünkön
futó tûzfalat, akkor a hálózat
mûködését úgy tudjuk
visszaállítani, ha root
felhasználóként kiadjuk a
következõ parancsot:&prompt.root; ipfw add 65534 allow all from any to anyAz /etc/rc.conf
állományban is megadhatjuk ehhez a
firewall_type="open" sort.Ha a tûzfalak
beállításáról
szeretnénk többet megtudni &os; alatt, akkor
olvassuk el a kézikönyv
erre vonatkozó fejezetét.Az ipfwfwd
szabálya miért nem irányít
át más gépekre
szolgáltatásokat?Valószínûleg azért, mert nem
egyszerûen a csomagok
továbbítására (forward) van
szükségünk, hanem hálózati
címfordításra. Az fwd
szabály pontosan azt csinálja, amirõl a
nevét kapta: csomagokat továbbít, de
azokon belül semmit sem változtat meg.
Tegyük fel, hogy van egy ilyen
szabályunk:01000 fwd 10.0.0.1 from any to ize 21Amikor egy csomag az ize
célcímmel megérkezik a
10.0.0.1 gépre, akkor
benne a cél címe továbbra is az
ize lesz! A csomag
célcíme nem fog
magától megváltozni a
10.0.0.1 címre. A
legtöbb gép általában eldobja
azokat a csomagokat, amelyeket nem egyenesen neki
címeztek. Emiatt a fwd szabály
használata nem minden esetben úgy
mûködik, ahogy arra a felhasználó
számít. Ez viszont ilyen, semmilyen hiba
nincs benne.Részletesebb információkat a szolgáltatások
átirányításával
foglalkozó GYIK-ban, a &man.natd.8; man
oldalán vagy a Portgyûjtemény
valamelyik port átirányítással
foglalkozó portjának
dokumentációjában
találhatunk.Hogyan lehet egyik géprõl a másikra
szolgáltatásokat
átirányítani?Az FTP (vagy más egyéb
szolgáltatás-) kéréseket a
Portgyûjteményen belül
található sysutils/socket porttal tudunk
átirányítani. Az adott
szolgáltatás helyett egyszerûen csak
adjuk meg a socket parancsot és
annak paramétereit, valahogy így:ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.minta.comftpahol az ftp.minta.com az a
gép, ahová át akarjuk
irányítani a szolgáltatást, az
ftp pedig a konkrét
szolgáltatás.Hogyan lehet a sávszélességet
szabályozni?&os; alatt alapvetõen három eszköz
szolgál erre a célra. A &man.dummynet.4; a &os;
részeként megtalálható
&man.ipfw.4; egyik komponense. Az ALTQ
a &os;-ben található &man.pf.4; rendszer
része, az Emerging Technologies
által fejlesztett Bandwith
Manager pedig egy kereskedelmi
termék.Miért jelenik meg a /dev/bpf0: device
not configured hibaüzenet?Olyan programot akarunk futtatni, amelynek
szüksége van a Berkeley Packet Filter
(&man.bpf.4;) használatára, azonban a
rendszermag ezt nem tartalmazza. Úgy tudjuk
aktiválni, ha a rendszermag
konfigurációs állományába
felvesszük a következõ sort, majd
fordítunk egy új rendszermagot:device bpf # Berkeley Packet FilterHogyan lehet a hálózaton
elérhetõ &windows; típusú
partíciókat csatlakoztatni, mint ahogy az
smbmount csinálja &linux; alatt?Erre az SMBFS eszközeit
használhatjuk, amely tartalmazza az ehhez
szükséges rendszermagbeli
módosításokat és a
hozzátartozó felhasználói
programokat. Ezek a programok és a hozzájuk
tartozó &man.mount.smbfs.8; man oldal az alaprendszer
részei.Mik azok az Limiting icmp/open port/closed
port response üzenetek a
naplókban?Ilyen üzeneteket akkor kapunk a
rendszermagtól, ha valaminek a hatására
több ICMP vagy TCP reset (RST) választ
küld, mint amennyit kellene. Az ICMP válaszok
sokszor olyankor generálódnak, amikor
használaton kívüli UDP portokat akarnak
elérni a rendszerünkön. A TCP reset pedig
általában olyankor keletkezik, amikor meg nem
nyitott TCP porthoz akarnak csatlakozni. Többek
közt ilyenek okozhatják:A rendszer túlterhelését
célzó, nyers erõvel indított
Denial of Service (Dos)
támadások (ellentétben az
egycsomagos, adott sebezhetõség
kihasználó
támadásokkal).A portok szisztematikus letapogatása,
amelynek során egyszerre nagy
mennyiségû portot próbálnak
meg átvizsgálni (ellentétben azzal,
amikor csak néhány jól ismert
portot nyitnak meg).Az üzenetben olvasható elsõ szám
azt mondja meg, hogy a rendszermag mennyi csomagot
küldött volna, ha nem korlátoztuk volna, a
második pedig magát a határt jelzi.
Ezt a net.inet.icmp.icmplim sysctl
változó segítségével
tudjuk beállítani, ahogy például
most megnöveljük az értékét
300-ra:&prompt.root; sysctl -w net.inet.icmp.icmplim=300Amennyiben le szeretnénk tiltani az ilyen
jellegû üzeneteket a naplókban, viszont
még továbbra is szükségünk
lenne a válaszküldés
korlátozására, a
net.inet.icmp.icmplim_output sysctl
változó segítségével
így tudjuk ezt megtenni:&prompt.root; sysctl -w net.inet.icmp.icmplim_output=0Végezetül, ha teljesen ki akarjuk kapcsolni
a válaszküldés
korlátozását, akkor
állítsuk a
net.inet.icmp.icmplim sysctl
változót (lásd az elõbbi
példában) a 0 nulla
értékre. A korlát törlése
azonban a fenti okok miatt egyáltalán nem
ajánlott.Mik azok az arp: unknown hardware address
format hibaüzenetek?Ez arra utal, hogy valamelyik gép a helyi
Ethernet-alapú hálózatunkon olyan
MAC-címet használ, amelynek a &os; nem ismeri
a formátumát. Valószínûleg
olyankor kapjuk ezt a hibaüzenetet, amikor valaki
más kísérletezik az Ethernet
kártyája beállításaival
valahol a hálózaton. Leggyakrabban
kábelmodemes hálózatokon
tapasztalhatunk ilyet. Megnyugodhatunk, teljesen
veszélytelen, semmilyen hatással nincs a &os;
gépünk
teljesítményére.Miért jelennek meg 192.168.0.10 is on
fxp1 but got reply from 00:15:17:67:cf:82 on rl0
üzenetek a konzolon és hogyan lehet ezeket
kikapcsolni?Ilyen üzeneteket akkor kapunk, amikor a
hálózaton kívülrõl
érkezik hozzánk váratlanul egy csomag.
A letiltásukhoz állítsuk a
net.link.ether.inet.log_arp_wrong_iface
értékét 0-ra.A CVSup programot
telepítése után nem lehet
elindítani, mert hibákat jelez. Mi a
gond?Elõször is nézzük meg, hogy az
iménti hibaüzenet mellett nem látunk-e
valami hasonlót:/usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not foundAz ilyen jellegû hibák
általában olyankor keletkeznek, amikor olyan
gépre telepítjük a net/cvsup portot, amelyen
viszont nem található meg a
&xorg; programcsomag.
Amennyiben szükségünk lenne
CVSup programhoz mellékelt
grafikus felületre, akkor kénytelenek
leszünk mellé az
&xorg; programjait is
telepíteni. Ha viszont egyszerûen csak
parancssorból szeretnénk használni a
CVSup lehetõségeit,
töröljük le a korábban
telepített csomagot, majd helyette rakjuk fel a
net/cvsup-without-gui
vagy a net/csup portot.
A &os; újabb változataiban
megpróbálkozhatunk a &man.csup.1;
használatával is. Ezzel a
témával részletesebban a
kézikönyv CVSup használatáról
szóló része foglalkozik.BiztonságMi az a járóka
(sandbox)?A járóka alapvetõen egy
biztonsági szakkifejezés. Két dolgot
jelenthet:Egy virtuális falak között
futó programot, melyeket azért emeltek a
program köré, hogy a
feltörését követõen
megakadályozzák a rendszer többi
részének
elérését.A program csak a falon belül
játszhat. Ilyenkor semmilyen
olyan kódot nem képes futtatni, amellyel
át tudna lépni a falakon, így a
használatához nem kell elõzetesen
átvizsgálni a forrásait ahhoz,
hogy meg tudjuk gyõzõdni a
biztonságosságáról.Ez a fal lehet például egy
felhasználói azonosító. A
&man.security.7; és &man.named.8; man oldalakon
is ezt a definíciót találjuk
meg.Vegyük például az
ntalk szolgáltatást
(lásd &man.inetd.8;). Ezt a
szolgáltatást korábban a
root felhasználó
azonosítójával futtatták,
de manapság viszont már a
tty felhasználóval
fut. A tty
felhasználó lényegében egy
olyan járóka, amely az
ntalk szolgáltatás
feltörésekor nem engedi, hogy a rendszer
többi részéhez is hozzá
lehessen férni.A valódi gépet utánzó
rendszerben futó programot. Ez már egy
sokkal kifinomultabb megoldás. Ha ilyenkor
valakinek sikerül betörnie a programba,
akkor könnyen azt hiheti, hogy sikerült a
rendszer többi részét is
elérnie, de valójában csak egy
szimulált gépen van, és semmilyen
valós adatot nem képes
módosítani.Leggyakrabban ezt úgy szokták
elérni, hogy egy könyvtárban
létrehoznak egy szimulált
környezetet, majd itt futtatják az adott
programot a &man.chroot.8;
segítségével. (Ekkor az
iménti könyvtár lesz a
gyökérkönyvtár az adott
folyamat számára, nem pedig a rendszer
igazi gyökere.)Másik szintén gyakori
megoldás a használt
állományrendszerek
írásvédett
csatlakoztatása, amely felett aztán
kialakítanak a program számára
egy látszólag írható
réteget. Ilyenkor a program teljesen
úgy érzékeli, hogy képes a
rendszerben elérhetõ
állományokat módosítani,
azonban egyedül csak saját maga
látja ezeket, a rendszerben futó
többi program viszont nem
feltétlenül.Ezeket a járókákat
általában úgy szokták
felépíteni, hogy a
felhasználók (vagy a
támadók) számára teljesen
észrevétlenek legyenek.A &unix; két alapvetõ
járókát valósít meg. Az
egyik a futó programok, a másik pedig a
felhasználói azonosítók
szintjén mûködik.Futása közben minden &unix; program teljesen
elszigetelt minden más &unix; programtól,
így az egyik nem képes
módosítani a másik
memóriában tárolt adatait. A
&windows;-tól eltérõen, ahol
ugyebár az egyik program könnyedén el
tudja érni egy másik
memóriaterületét, ezért a program
nem képesek egymásban kárt
tenni.A &unix; alatt futó programok mindig egy adott
felhasználóhoz tartoznak. Ha ez nem a
root felhasználó, akkor
azzal lényegében egy tûzfalat hozunk
létre a különbözõ
felhasználók által birtokolt folyamatok
között. A felhasználók
azonosítói emellett segítenek a lemezen
tárolt adatokat is elszigetelni
egymástól.Mi az a biztonsági szint (securelevel)?A biztonsági szintek egy rendszermagon belül
megvalósított védelmi módszert
képviselnek. A pozitív
értékû biztonsági szintek
esetén a rendszermag korlátoz bizonyos
feladatokat, amelyeket ilyenkor még a
rendszeradminisztrátor (vagyis a
root felhasználó) sem
képes elvégezni. Az írás
pillanatában a biztonsági szintek, több
más dolog mellett, a következõk
szabályozására alkalmasak:a különbözõ
állományjelzõk, például
az schg (a system
immutable jelzés)
törlése;a rendszermag memóriájának
elérése a /dev/mem
és /dev/kmem
eszközökön keresztül;a rendszermag moduljainak
betöltése;a tûzfal szabályainak
módosítása.A jelenleg futó rendszer biztonsági
szintjét a következõ parancs
segítségével lehet
lekérdezni:&prompt.root; sysctl kern.securelevelA parancs eredménye az adott &man.sysctl.8;
változó (vagyis esetünkben a
kern.securelevel) és annak
értéke lesz, amely egy szám. Ez
utóbbi adja meg a biztonsági szint
aktuális értékét. Amennyiben ez
pozitív (vagyis nullánál nagyobb),
akkor érvényben vannak a biztonsági
szintekhez kapcsolódó bizonyos
korlátozások.Egy mûködõ rendszer biztonsági
szintjét nem lehet csökkenteni, hiszen ezzel
tulajdonképpen hatástalanná
tennénk. Ha olyan feladatot akarunk
végrehajtani, amely nem pozitív
biztonsági szintet igényel
(például az alaprendszer
frissítése vagy a dátum
átállítása), akkor ahhoz
elõször módosítanunk kell az
/etc/rc.conf állományt
(lásd kern_securelevel és
kern_securelevel_enable
változók), majd újraindítani a
rendszert.A biztonsági szintekkel és rájuk
vonatkozó információkkal kapcsolatban
olvassuk el az &man.init.8; man oldalt.A biztonsági szintek nem
feltétlenül jelentenek minden
problémára tökéletes
megoldást. Rentegeg ismert
hátulütõvel rendelkeznek, és
gyakran a biztonság hamis érzetét
keltik.Ezzel kapcsolatban az egyik legnagyobb gond, hogy
csak abban az esetben mûködik rendesen a
rendszer, ha a rendszerindítás
során a biztonsági szintek
beállításáig minden
állományt levédünk. Ha a
támadó képes lefuttatni a
saját programját még a
biztonsági szint beállítása
elõtt (amely viszont elég késõn
történik meg, hiszen a
rendszerindítás során számos
olyan dolog feladat van, amely nem végezhetõ
el magasabb biztonsági szinteken), akkor azzal az
egész védelmi módszer
hatástalanítható. Habár a
rendszerindítás folyamán
felhasznált állományok
biztonságba helyezése technikailag
egyáltalán nem lehetetlen,
nehezebbé válik tõle a rendszer
karbantartása, mivel ilyenkor az egész
rendszert át kell állítanunk
legalább egyfelhasználós
módba és úgy
módosítani a konfigurációs
állományokat.Ezt és az ehhez hasonló
problémák gyakran felmerülnek a
levelezési listákon,
különösen a &a.security;
archívumaiban. Ezen a
funkción keresztül nézhetünk
után a téma részletesebb
tárgyalásának.
Néhányan reménykednek, hogy a
biztonsági szinteket hamarosan leváltja
valami sokkal finomabb beállítási
lehetõségekkel rendelkezõ
megoldás, azonban a dolgok még
eléggé homályosak ebbõl a
szempontból.Figyelmeztettünk mindenkit!A BIND (named)
különféle nagyobb sorszámú
portokat használ. Miért?A BIND a kimenõ kérésekhez
véletlenszerûen kiválaszt egy nagyobb
sorszámú portot. A legújabb
változataiban már minden egyes
kéréshez külön
véletlenszerûen keres új UDP portot. Ez
bizonyos hálózati konfigurációk
esetén problémákhoz vezethet,
különösen olyankor, amikor a
beérkezõ UDP csomagokat egy tûzfal
megállítja. A tûzfalak által
blokkolt porttartományok használatát az
avoid-v4-udp-ports vagy az
avoid-v6-udp-ports
beállítással tilthatjuk le a program
számára.Ha ezt a portot (mint például az 53) az
/etc/namedb/named.conf
állományban a
query-source vagy a
query-source-v6
beállításokkal adjuk meg explicit
módon, akkor a program nem fogja
véletlenszerûen váltogatni a portokat.
Határozottan javasoljuk, hogy ezekkel az
opciókkal ne adjunk meg elõre
rögzített portokat.Mindenesetre örülünk, hogy ezt is valaki
megkérdezte! Hiába, nem árt néha
nézegetni a &man.sockstat.1; kimenetét
és észrevenni benne néhány
furcsaságot.A sendmail a
szabványos 25-ös port mellett az 587-es portot
használja! Miért?A sendmail újabb
verzióiban felfedezhetõ
levélküldési lehetõségek az
587-es portot használják. Jelenleg ezt
még nem sokan használják ki, de
növekszik a népszerûsége.Kié az a nullás felhasználói
azonosítójú toor
fiók? Betörtek a gépre?Ne aggódjunk! A toor egy
alternatív rendszergazdai
hozzáférés (a toor a
root visszafelé). Korábban
csak a &man.bash.1; parancsértelmezõ
telepítésekor jött létre, azonban
manapság már alapértelmezés
szerint létrejön. A nem szabványos
parancsértelmezõk számára
találták ki, így nem a
root alapértelmezett
parancsértelmezõjét kell
megváltoztatnunk. Ez különösen olyan
parancsértelmezõk esetén fontos, amelyek
nem részei az alaprendszernek (például
a portként vagy csomagként telepített
parancsértelmezõk esetén) és
ezért a /usr/local/bin
könyvtárba fognak kerülni. Ez a
könyvtár alapértelmezés szerint
azonban egy külön állományrendszeren
található. Ha a root
parancsértelmezõje viszont a /usr/local/bin
könyvtárban lenne, miközben a /usr (vagy bármelyik
más állományrendszer, amely az
imént említett könyvtárat
tartalmazza) nem csatlakoztatható valamilyen
oknál fogva, akkor a root nem
lenne képes bejelentkezni és kijavítani
a problémát. (Noha amikor
újraindítjuk a rendszerünket
egyfelhasználós módban, akkor a
rendszer rá fog kérdezni, hogy melyik
parancsértelmezõt akarjuk
használni.)Egyesek nem szabványos
parancsértelmezõn keresztül a
toor felhasználóval
végzik el a root mindennapi
teendõit, így a szabványos
parancsértelmezõt csak a vészhelyzetekre
tartogatják. Alapértelmezés szerint a
toor felhasználóval nem
tudunk bejelentkezni, mivel nincs jelszava, ezért ha
használni akarjuk, akkor elõször
jelentkezzünk be a root
felhasználóval, majd állítsunk
be neki egy jelszót.A suidperl parancs miért nem
mûködik rendesen?Biztonsági okokból a
suidperl parancs
alapértelmezés szerint nem kerül
telepítésre. Ha forrásból
frissítjük rendszerünket és azt
szeretnénk, hogy ennek során a
suidperl is leforduljon, akkor a
perl fordításának
megkezdése elõtt vegyük fel a
ENABLE_SUIDPERL=true
sort az /etc/make.conf
állományba.PPPNem mûködik a &man.ppp.8;. Mit lehet a
gond?Elsõként mindenképpen olvassuk el a
&man.ppp.8; man oldalt és a kézikönyv
PPP-vel
foglalkozó részét. A
következõ paranccsal engedélyezzük a
naplózást:set log Phase Chat Connect Carrier lcp ipcp ccp commandEzt a parancsot a &man.ppp.8; parancssorában vagy
az /etc/ppp/ppp.conf
konfigurációs állományban kell
megadnunk (leginkább a default
szakasz elejére érdemes betennünk).
Gondoskodjunk róla, hogy az
/etc/syslog.conf állomány
(lásd &man.syslog.conf.5;) tartalmazza az
alábbi sort, illetve az
/var/log/ppp.log állomány
létezzen:!ppp
*.* /var/log/ppp.logA napló segítségével
már több mindent ki tudunk deríteni a
&man.ppp.8; mûködésérõl. Ne
aggódjunk, ha nem értünk belõle
semmit. Kérjünk segítséget
másoktól, nekik minden bizonnyal
segíteni fog a probléma
felderítésében.A &man.ppp.8; miért bontja a vonalat, amikor
elindul?Ilyen általában azért
történik, mert nem tudta feloldani a
hálózati nevet. Ezt a legkönnyebben
úgy tudjuk orvosolni, ha az
/etc/host.conf állományba
elõre rakjuk a hosts sort,
így a névfeloldó elõször az
/etc/hosts állománnyal
fog próbálkozni. Ezután a
/etc/hosts állományba
vegyük fel a helyi gépet. Ha nincs helyi
hálózatunk, akkor így írjuk
át a localhost sort:127.0.0.1 ize.minta.com ize localhostMinden más esetben egyszerûen csak
vegyünk fel egy újabb bejegyzést a
gépünkhöz. Ennek pontosabb
részleteivel kapcsolatban nézzük meg a
megfelelõ man oldalakat.Ha mindent jól csináltunk, akkor a
ping -c1 `hostname` parancs hiba
nélkül tér vissza.A &man.ppp.8; miért nem tárcsáz
-auto módban?Elõször is ellenõrizzük, hogy
létezik az alapértelmezett útvonal. A
netstat -rn parancs (lásd
&man.netstat.1;) kiadása után
nagyjából a következõ két
bejegyzést kell látnunk:Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.2 UGSc 0 0 tun0
10.0.0.2 10.0.0.1 UH 0 0 tun0Feltételezzük, hogy a
kézikönyvbõl, a man oldalról vagy
ppp.conf.sample
állományból másoltuk ki ezeket a
címeket. Ha nincs alapértelmezett
útvonalunk, akkor annak az lehet az oka, hogy a
ppp.conf állományba
elfelejtettük felvenni a HISADDR
kulcsszót.Az alapértelmezett útvonal
hiányának másik oka lehet még, ha
az /etc/rc.conf
állományban (lásd &man.rc.conf.5;)
beállítottunk egy alapértelmezett
átjárót, de elfelejtettük az
ppp.conf állományba
betenni a következõ sort:delete ALLEbben az esetben menjünk vissza a
kézikönyv A rendszer végsõ beállítása
címû részéhez.Mit jelent a No route to host
hibaüzenet?Általában azért jelentkezik, mert
az /etc/ppp/ppp.linkup
állományban nem adtuk meg az
alábbiakat:MYADDR:
delete ALL
add 0 0 HISADDRErre csak akkor van szükségünk, ha
dinamikus IP-címünk van, vagy nem ismerjük az
átjáró címét. Ha az
interaktív módot használjuk, akkor
ehhez a következõket kell begépelni
csomag módba lépés után (a
csomag módot a csupa nagybetûs
PPP jelzi a parancssorban):delete ALL
add 0 0 HISADDRA kézikönyv A PPP és a dinamikus IP-címek
címû részében olvashatunk
errõl bõvebben.Miért szakad meg a kapcsolat 3 perc
után?A PPP alrendszer alapértelmezett lejárati
ideje 3 perc. Ezt a beállítást a
következõ sor megadásával tudjuk
módosítani:set timeout NNNahol az NNN
másodpercekben megadja a kapcsolat
lezárása elõtti inaktivitás
maximális idejét. Ha az
NNN értéke nulla,
akkor a kapcsolat idõtúllépés
miatt soha nem fog magától megszakadni. Ezt a
parancsot a ppp.conf
állományba tudjuk felvenni, vagy
interaktív módban a parancssorban
gépelhetjük be. Emellett menet közben is
állítani tudjuk ezt az értéket,
ha a ppp szerverre a
&man.telnet.1; vagy a &man.pppctl.8;
segítségével rácsatlakozunk.
Errõl a &man.ppp.8; man oldal ad részletesebb
tájékoztatást.A kapcsolat miért szakad meg nagyobb
terhelést alatt?Ha beállítottuk a Link Quality Reporting
(LQR) használatát, akkor elõfordulhat,
hogy túlságosan sok csomag veszik el a
gépünk és a másik oldal
között. A &man.ppp.8; ezért a vonalat
rossznak érzékeli és bontja. A
&os; 2.2.5 változata elõtt az LQR
alapértelmezés szerint engedélyezett
volt. Az LQR így tiltható le:disable lqrA kapcsolat miért szakad meg
véletlenszerûen?Néha elõfordulhat, hogy a zajos telefonvonal
esetén vagy a
hívásvárakoztatás
használatakor a modem bontja a vonalat, mivel
(helytelenül) azt hiszi, hogy nincs kapcsolat.Manapság a legtöbb modemen
általában be lehet valahogy
állítani, hogy mennyire legyenek
elnézõek a kapcsolat ideiglenes
megszakadásával szemben.
Például egy &usrobotics; &sportster;
esetén ezt tizedmásodpercekben mérik az
S10 regiszter
segítségével. A modemünk ilyenkor
tehát úgy tehetõ sokkal
toleránsabbá, ha a következõ
hívási beállítást
adjuk:set dial "...... ATS10=10 OK ......"További részleteket a modem
kézikönyvébõl tudhatunk meg.A kapcsolat miért fullad le
véletlenszerûen?Sokan tapasztalják, hogy a kapcsolat minden
különösebb magyarázat nélkül
lefullad. Ilyenkor elsõként azt érdemes
tisztázni, hogy az összeköttetés
melyik oldalán történt a vonal
bontása.Ha belsõ modemet használunk, akkor
próbáljuk meg a &man.ping.8; paranccsal
ellenõrizni, hogy a modem TD
lámpája villog-e az adatok
küldésekor. Amennyiben igen (miközben az
RD lámpa viszont nem), akkor a
gond a vonal másik végén lesz. Ha
viszont a TD nem villog, akkor a
probléma a mi oldalunkon áll fenn. A
belsõ modemek esetében a
ppp.conf állományban a
set server parancsot is érdemes
megadnunk, így amikor a kapcsolat
leállását tapasztaljuk, a
&man.pppctl.8; segítségével rá
tudunk csatlakozni a &man.ppp.8; démonra. Ha a
hálózati kapcsolat ekkor hirtelen erõre
kapna (mivel rácsatlakoztunk
kívülrõl) vagy egyáltalán nem
tudunk csatlakozni (feltételezve, hogy a set
socket parancs sikeresen lefutott az
induláskor), akkor a probléma még
mindig nálunk lesz. Ha viszont sikerül
csatlakoznunk és a vonallal még mindig gondok
vannak, akkor próbáljuk a set log
local async parancs használatával
engedélyezni a helyi aszinkron
naplózást, majd egy másik
konzolból a &man.ping.8; parancs
segítségével kezdjük el
használni az összeköttetést. Az
aszinkron naplózás jelezni fogja, ha
sikerül adatokat átvinni és fogadni a
kapcsolaton keresztül. Ha ilyenkor nem látunk
visszafele érkezõ adatokat, akkor az arra utal,
hogy a gond a vonal távoli végén
van.Miután sikeresen kiderítettük, hogy
az adott probléma helyi vagy távoli, két
lehetõségünk van:Amennyiben távoli, olvassuk el a
válaszát.Amennyiben helyi, olvassuk el a válaszát.A vonal túlsó végérõl
nem érkezik válasz. Mi lehet tenni?Ezzel szemben nagyon keveset tudunk mi,
felhasználók tenni. A legtöbb
internetszolgáltató egyszerûen nem
hajlandó segítséget nyújtani
abban az esetben, ha nem valamelyik µsoft;
operációs rendszert használjuk. A
ppp.conf állományunkban a
enable lqr sor megadásával
engedélyezni tudjuk a &man.ppp.8;
számára, hogy észlelhesse a
távoli hibákat és bontsa a vonalat, de
ez a vizsgálat viszonylag idõigényes
és ennélfogva nem túlságosan
hasznos. A szolgáltatónknak pedig ne nagyon
emlegessük, hogy felhasználói PPP-t
futtatunk.Elõször próbáljunk meg letiltani
mindenféle tömörítést a
következõ sor megadásával:disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
deny pred1 deflate deflate24 protocomp acfcomp shortseq vjKapcsolódjunk újra és
ellenõrizzük, hogy továbbra is
mûködõképes a kapcsolat. Ha ennek
hatására javul a helyzet vagy a
probléma teljesen megoldódik, akkor a
beállítások egyenkénti
próbálgatásával keressük
meg, hogy melyik okozta a gondot. Ez már
elegendõ lesz ahhoz, hogy komolyabban felvegyük a
kapcsolatot a szolgáltatónkkal (habár
ebbõl gyorsan ki fog derülni, hogy nem µsoft;
terméket használunk).Mielõtt szólnánk a
szolgáltatónknak, a gépünkön
engedélyezzük az aszinkron
naplózást és várjuk meg,
amíg a kapcsolat újra megszakad. Erre nem
árt felkészülnünk, mert viszonylag
sok tárhelyet igényel. Innen majd a
portról utoljára olvasott adat lesz a
lényeges. Ez általában szöveges
adat és akár a probléma konkrét
okára is utalhat (Memory
fault, Core
dumped?).Ha segítõkész
szolgáltatót választottuk, akkor a
naplózást akár az õ oldalunkon is
engedélyezhetjük, így amikor a vonal
megszakad, az õ szemszögükbõl is
képesek leszünk elemezni a
problémát. Ilyen esetben nyugodtan
küldjünk egy levelet &a.brian;
címére vagy kérjük meg a
szolgáltatónkat, hogy közvetlenül
vele tárgyaljon.A &man.ppp.8; teljesen megállt. Mi lehet
tenni?A legjobban úgy járunk, ha a &man.ppp.8;
programot nyomkövetési
információkkal fordítjuk újra,
majd a &man.gdb.1; segítségével
lekérünk egy hívási láncot
az éppen megakadt ppp
példánytól. A
ppp alkalmazást a
következõ parancsokkal tudjuk úgy
újrafordítani, hogy tartalmazza a
kívánt információkat:&prompt.root; gdb ppp `pgrep ppp`Ezt követõen a gdb
parancssorában a bt és
where parancsok
segítségével hozzá tudunk jutni
a hívási lánchoz. Mentsük el
valahova a gdb által
kinyert adatokat, majd a detach
paranccsal váljunk le a futó programról
és a quit
begépelésével lépjünk ki a
gdb programból.Végezetül az elmentett eredményeket
küldjük el &a.brian; címére.Miért nem történik semmi a
Login OK! üzenet után?A &os; 2.2.5 elõtti kiadásaiban a
&man.ppp.8; az összeköttetés
létrejötte után megvárta, hogy a
távoli pont kezdeményezze a
kapcsolatvezérlõ protokoll (Line Control
Protocol, LCP) használatát. Sok
szolgáltató azonban nem csinál ilyet,
ehelyett inkább a klienstõl várják
mindezt. Az LCP kezdeményezését
így kényszeríthetjük ki a
&man.ppp.8; használata során:set openmode activeÁltalában semmilyen gond nem
származik abból, ha a mind a két
oldal kezdeményez, így az
openmode alapértelmezés
szerint active
értékû. A következõ
szakaszban azonban bemutatjuk mikor gondot
okoz a használata.Folyamatosan Magic is same
hibák jelennek meg. Ez mire utal?Csatlakozás után idõnként
elõfordulhat, hogy magic is the
same hibaüzeneteket látunk a
naplóban. Ezek az üzenetek bizonyos esetekben
teljesen ártalmatlanok, máskor viszont
akár komolyabb problémákat is jelezhet.
A legtöbb PPP implementáció nem él
túl egy ilyen hibát, és még ha
látszólag létre is jön ilyenkor a
kapcsolat, folyamatosan konfigurációs
kérések és válaszok
jönnek-mennek a naplóban egészen addig,
amíg a &man.ppp.8; végül fel nem adja
és lezárja a kapcsolatot.Ez általában olyan szervereken jelenik
meg, ahol nem elég gyorsak a lemezek és minden
kapcsolathoz elindítanak egy &man.getty.8; és
a bejelentkezéskor vagy azt következõ
elindítják a &man.ppp.8; programot. Egyes
visszajelzések szerint ilyen egyébként
gyakran elõfordul a slirp használatakor. A
problémát egyébként a
&man.getty.8; és a &man.ppp.8; indítása
között eltelt idõ okozza, amikor a kliens
oldalán futó &man.ppp.8; elkezdi küldeni
a kapcsolatvezérlõ (Line Control Protocol, LCP)
csomagokat. Mivel ilyenkor az ECHO még mindig
aktív a szerver adott portján, a kliens
&man.ppp.8; a saját csomagjainak
tükrözõdését
fogja látni.Az LCP beállításának
része az összeköttetés két
oldalán egy-egy bûvös szám
(magic number)
megállapítása, amellyel ezután
észlelhetõek az ilyen
tükrözõdések. A
protokoll szerint amikor a két pont
megpróbálja ugyanazt a bûvös
számot használni, akkor visszautasítja
(NAK jelzést küld) és egy másikat
választ. Ha ilyenkor még a szerver
portján aktív az ECHO, akkor a kliens oldali
&man.ppp.8; azt tapasztalja, hogy elkezd LCP csomagokat
küldeni, majd mivel ugyanazt kapja vissza, erre egy NAK
jelzést válaszol. Ugyanígy
látja magát a NAK jelzést (aminek
hatására a &man.ppp.8; megváltoztatja a
bûvös számát) is. Ennek
eredményeképpen hirtelen nagy
mennyiségû
bûvösszám-váltás keletkezik,
ami pedig szépen felhalmozódik a szerver
terminálpufferében. Ahogy a &man.ppp.8;
végre elindul a szerveren, elönti ez a rengeteg
információ, aminek alapján
sikertelennek ítéli meg az LCP
beállítását és feladja a
további próbálkozást.
Eközben a kliens számára megszûnnek
a visszaverõdõ csomagok és csak annyit
lát, hogy a szerver bontja a kapcsolatot.Ezt úgy tudjuk elkerülni, ha a
ppp.conf állományban a
távoli pontra bízzuk az
beállítás
kezdeményezését:set openmode passiveEnnek hatására a &man.ppp.8;
megvárja, hogy a szerver kezdeményezze az LCP
beállítását. Egyes szerverek
azonban sosem teszik meg ezt. Ilyenkor valami ilyesmit
tudunk tenni:set openmode active 3Így a &man.ppp.8; 3 másodpercig
passzív marad, majd csak ezután kezd el LCP
kérésket küldeni. Ha a távoli
pont eközben küld valamilyen kérést,
az &man.ppp.8; azonnal válaszol rá és
nem várja végig a 3 másodperces
idõtartamot.Az LCP beállítása egészen a
kapcsolat befejezõdéséig
folytatódik. Mi lehet a probléma?A &man.ppp.8; programban jelenleg van egy olyan
hibásan implementált jellemzõ, ahol az LCP,
CCP és IPCP válaszokat nem
társítja az eredeti kérésekhez.
Ennek következményeképpen, ha az egyik
PPP implementáció 6 másodperccel
lassabb a másik oldalnál, akkor az még
két további LCP konfigurációs
kérést is küld, ami viszont
végzetesnek bizonyul.Vegyünk például két
implementációt, az A és
a B pontokat. Az A
már közvetlenül a csatlakozás
után LCP kéréseket kezd el
küldeni, miközben a B csak
7 másodperc múlva tud elindulni. Mire
végre a B pont is elindul, addigra
az A már kiküldött 3 LCP
kérést. Most feltételezzük, hogy
nincs ECHO, máskülönben az elõzõ
szakaszban leírt, bûvös számokkal
kapcsolatos problémába
ütköznénk. A B ekkor
tehát küld egy kérést, majd
nyugtázza az A ponttól kapott
korábbi kérést. Ennek
hatására az A pont
OPENED állapotba megy át,
újra küld és nyugtázza az
elõzõ kérést B
felé. Eközben a B
további két nyugtázást küld
az A pontról kapott további
két kérésre, a B
indulása elõttrõl. A B
ekkor megkapja az A elsõ
nyugtáját és átvált
OPENED állapotba. Az
A ekkor megkapja a második
nyugtát a B ponttól és
visszavált REQ-SENT
állapotba, majd az RFC szerint elküld
(elõre) egy újabb kérést. Ekkor
megkapja a harmadik nyugtát és
OPENED állapotba vált.
Eközben a B megkapja elõre
küldött kérést a A
ponttól, amelynek hatására
ACK-SENT állapotba vált
vissza, és az RFC szerint ismét küld egy
(második) kérést és egy
nyugtázást. Az A erre
megkapja a kérést, visszavált
REQ-SENT állapotban és
küld egy újabb kérést. Ekkor
közvetlenül megkapja a
rákövetkezõ nyugtázást
és átvált OPENED
állapotba.Ez egészen addig folytatódik, amíg
az egyik oldal rá nem eszmél, hogy ennek nincs
túlságosan sok értelme és
feladja a próbálkozást.Ez legkönnyebben úgy kerülhetõ el,
ha ilyenkor az egyik oldalt passive
típusúra állítjuk, vagyis az
egyik oldalon várunk egy keveset a
beállítás
kezdeményezésére. Ezt a
következõ paranccsal lehet megoldani:set openmode passiveÓvatosan bánjunk ezzel a
paraméterrel! A beállítás
kezdeményezésének
várakoztatási idejét a
következõ paraméterrel tudjuk
megadni:set stopped NHasználhatjuk viszont ezt a parancsot is (ahol
N adja meg, hogy mennyi
másodperc teljen el a beállítás
megkezdése elõtt):set openmode active NAz ezzel kapcsolatos további részleteket a
man oldalon olvashatjuk.Miért akad meg a &man.ppp.8;, ha egy
külsõ parancsot adunk ki alatta?A shell vagy !
parancsok végrehajtásakor a &man.ppp.8;
elindít egy parancsértelmezõt (illetve ha
paramétereket is adtunk meg, akkor a &man.ppp.8;
átadja azokat is), majd megvárja annak
befejezõdését. Ha a parancs
futtatása közben éppen egy PPP
kapcsolatot akartunk használni, akkor erre az
idõre az elõbbiek miatt látszólag
meg fog állni. Ez tehát azért
történik, mert a &man.ppp.8; megvárja a
parancs lefutását.Ha nem akarjuk megvárni a parancs
befejezõdését, akkor inkább
használjuk a !bg parancsot. Ennek
hatására az adott parancs a
háttérben fog lefutni és a &man.ppp.8;
képes lesz folyamatosan szemmel tartani az
összeköttetést.A &man.ppp.8; null-modem kábel
használatakor miért nem lép ki
soha?A &man.ppp.8; ilyen esetekben nem képes
magától megállapítani, hogy mikor
bontották a vonalat. Ennek oka a tûk null-modem
kábelben kiosztott szerepében keresendõ.
Amikor ilyen típusú kapcsolattal dolgozunk, a
következõ sor megadásával ne
felejtsük el engedélyezni az LQR
használatát:enable lqrHa a távoli pont LQR csomagokat küld, akkor
a &man.ppp.8; alapértelmezés szerint fogadja
azokat.A &man.ppp.8; miért tárcsáz
látszólag minden különösebb ok
nélkül
módban?Amennyiben a &man.ppp.8; szándékainkkal
szemben váratlanul kezdene el tárcsázni,
akkor keressük meg kiváltó okát
és használjunk hívási
szûrést (Dial filter, dfilter) ennek
megelõzésére.A tárcsázás okát a
következõ sor használatával tudjuk
kideríteni:set log +tcp/ipEnnek hatására a kapcsolaton
keresztüláramló összes forgalmat
naplózni fogjuk. Így a legközelebb,
amikor a vonal hirtelen aktív lesz, a
hozzátartozó idõbélyegek
alapján könnyen elõ tudjuk keresni, hogy
pontosan miért is történt.Az automatikus tárcsázást bizonyos
esetekben le tudjuk tiltani. Ez általában egy
olyan probléma, amely a névfeloldások
miatt keletkezik. Úgy tudjuk megakadályozni,
hogy a névfeloldások
felépítsék a kapcsolatot (ami viszont
nem gátolja abban a &man.ppp.8;
programot, hogy egy már meglevõ kapcsolaton
keresztül küldjön ilyen csomagokat), ha az
alábbi beállításokat adjuk
meg:set dfilter 1 deny udp src eq 53
set dfilter 2 deny udp dst eq 53
set dfilter 3 permit 0/0 0/0Ezek az értékek nem minden esetben
megfelelõek számunkra, hiszen ezzel együtt az
igény szerinti tárcsázás
kényelmét is szûkítjük, mivel
a legtöbb program közvetlenül
névfeloldással kezd, mielõtt komolyabb
hálózati forgalmat bonyolítana
le.A névfeloldás esetében
igyekezzünk kideríteni, hogy pontosan melyik
program is próbál hálózati
neveket feloldatni. Az esetek
többségében
valószínûleg a &man.sendmail.8; lesz a
bûnös. Amennyiben ez a helyzet, akkor az
sendmail démonnak a
saját konfigurációs
állományában kell
beállítanunk, hogy ne oldasson fel
hálózati neveket. Az érintett
konfigurációs állomány
módosításának pontos
részleteirõl a kézikönyv Levelezés
betárcsázós kapcsolattal
címû szakszában olvashatunk
bõvebben. Továbbá az
.mc állományunkba a
következõ sort is érdemes
felvennünk:define(`confDELIVERY_MODE', `d')dnlEzzel a sendmail
beindításáig mindent egy sorban fog
eltárolni (általában a
sendmail démont a
paraméterekkel
szokták meghívni, ami arra utasítja,
hogy 30 percenként dolgozza fel a sorát)
vagy amíg a sendmail
parancs le nem fut
(például a ppp.linkup
állományból).Mit jelentenek a CCP hibák?A naplóban folyamatosan a következõ
üzeneteket lehet látni:CCP: CcpSendConfigReq
CCP: Received Terminate Ack (1) state = Req-Sent (6)Ilyenek azért keletkeznek, mert a &man.ppp.8; a
Predictor1
tömörítési eljárást
próbálja meg beállítani, azonban
a távoli pont egyáltalán semmilyen
tömörítést nem akar
használni. Az ilyen üzenetek többnyire
ártalmatlanok, de ha el akarjuk tüntetni ezeket,
akkor próbáljuk meg a következõ
módon kikapcsolni a Predictor1
tömörítés
használatát:disable pred1A &man.ppp.8; miért nem naplózza a
kapcsolat sebességét?A modemmel végzett teljes
beszélgetés
szövegének
rögzítéséhez a
következõket kell engedélyezni:set log +connectEnnek eredményeképpen a &man.ppp.8;
egészen az utolsóként lekért
karakterláncig naplóz mindent.Ha PAP vagy CHAP hitelesítést
használunk (ezért a CONNECT
parancs kiadása után már nincs semmi
mondanivalónk a
hívószkriptben, tehát nincs
set login szkript), és
szeretnénk látni a csatlakozási
sebességet, ne felejtsük el utasítani a
&man.ppp.8; programot, hogy a teljes
CONNECT sort kérje le, valahogy
így:set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \
\"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"Itt most megkapjuk a CONNECT sort,
ezután nem küldünk semmit, majd
várunk egy soremelést, aminek
hatására a &man.ppp.8; arra
kényszerül, hogy a teljes
CONNECT választ beolvassa.A &man.ppp.8; miért hagyja figyelmen
kívül a \ karaktereket a
szkriptekben?A ppp a
konfigurációs állományokból
minden sort külön beolvas, ezért a
set phone "123 456 789" és
hozzá hasonló karakterláncok
esetén képes felismerni, hogy a megadott
számok valójában
egyetlen paramétert
formáznak. A "
megadásához a visszaper karaktert
(\) kell használnunk.Amikor tárcsázásért
felelõs értelmezõ beolvassa az egyes
paramétereket, újraértelmezi ezeket
olyan speciális helyettesítési
szekvenciák után kutatva, mint
például a \P vagy
\T (részletesebben lásd a
man oldalon). A kettõs elemzés miatt
nekünk is a megfelelõ számban kell
megadnunk ezeket a helyettesítendõ
karaktereket.Ha tehát egy \ karaktert
szeretnénk átküldeni a modemünknek,
akkor nagyjából valami ilyesmit kellene
írnunk:set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"Ennek az eredménye a következõ
lesz:ATZ
OK
AT\X
OKVagy:set phone 1234567
set dial "\"\" ATZ OK ATDT\\T"Ez pedig a következõ szekvenciát
adja:ATZ
OK
ATDT1234567A &man.ppp.8; miért küld
Segmentation Fault hibát,
miközben nem is keletkezik
ppp.core állomány?A ppp (vagy más
hasonló program) elméletileg soha nem hoz
létre .core
állományt. Mivel a &man.ppp.8;
tulajdonképpen a nullás
felhasználói azonosítóval fut,
az operációs rendszer soha nem fogja a
&man.ppp.8; memórialenyomatát
leállítása elõtt a lemezre
menteni. Ha viszont &man.ppp.8; mûködése
valóban leáll egy szegmentációs
hiba vagy bármilyen más
.core állományt
eredményezõ jelzés miatt,
és valóban a legfrissebb
változatát használjuk (lásd a
fejezet elejét), akkor a következõt
tehetjük:&prompt.root; cd/usr/src/usr.sbin/ppp
&prompt.root; echoSTRIP= >> /etc/make.conf
&prompt.root; echoCFLAGS+= >> /etc/make.conf
&prompt.root; makeinstallcleanA fenti parancsokkal telepíteni tudjuk a
&man.ppp.8; egy nyomonkövethetõ
változatát. A &man.ppp.8;
futtatásához root
felhasználónak kell lennünk, mivel minden
korábbi engedélyét
felülírtuk az elõbbiek során. A
&man.ppp.8; indításakor ne felejtsük el
megjegyezni pontosan az aktuális
könyvtárat sem.Innentõl kezdve, amikor a &man.ppp.8; kap egy
szegmentációs hibára vonatkozó
jelzést, létre fog hozni egy
ppp.core nevû
állományt. Ennek birtokában a
következõt kell csinálnunk:&prompt.user; su
&prompt.root; gdb /usr/sbin/ppp ppp.core(gdb)bt
.....
(gdb)f 0
....
(gdb)i args
....
(gdb)l
.....Az így beszerzett információkat
mellékelve nagyobb
valószínûséggel kaphatunk
választ az ezzel kapcsolatos
kérdésünkre.Ha járatosak vagyunk a &man.gdb.1;
használatában, akkor a
.core állományban
további részletek és
információk utáni is kutathatunk,
például mi okozta a hibát, milyen
változóknak ekkor milyen értékei
voltak stb.Miért nem csatlakozik soha az a program, amely a
hívást kezdeményezte
módban?Ez korábban egy ismert probléma volt a
&man.ppp.8; használatával kapcsolatban, amikor
dinamikus helyi IP-címet akart
beállítani
módban. Ez a hiba az újabb
változatokban már nem nincs meg (a man oldalon
keressünk rá az iface
részre).A gondot az okozta, hogy amikor a
tárcsázást elindító
program meghívja a &man.connect.2;
rendszerhívást, akkor a &man.tun.4;
interfészhez tartozó IP-cím a
végpontot képviselõ sockethez
társul. A rendszermag létrehozza az elsõ
kimenõ csomagot és kiírja a &man.tun.4;
eszközre. A &man.ppp.8; ekkor beolvassa a csomagot
és felépíti a kapcsolatot. Ha a
&man.ppp.8; dinamikus IP-cím
kiosztásának eredményeképpen
ilyenkor az interfész címe megváltozik,
akkor azzal egyidõben az eredeti socket végpont
érvénytelenné válik. Így
a távoli végpont felé küldött
további csomagok általában
eldobódnak. Ha valahogy mégis
eljutnának a céljukhoz, a válasz
már semmiképpen sem érkezhet meg, mivel
a küldéshez használt IP-címnek
már nem az adott gép a tulajdonosa.Számos elméleti
megközelítés létezik az
imént felvázolt probléma
megoldására. A legszebb az lenne, ha a
távoli pont lehetõség szerint a
korábban használt IP-címet
osztaná ki újra. A &man.ppp.8; jelenlegi
változata pontosan ugyanezt teszi, viszont a
legtöbbi implementáció már
nem.Részünkrõl az bizonyulna a
legegyszerûbb megoldásnak, ha a &man.tun.4;
intefész IP-címe egyáltalán nem
változhatna meg, hanem helyette menet közben az
összes kimenõ csomag, köztük
természetesen a forrás IP-címe az
interfész IP-címérõl az
idõközben beállított IP-címre
változna. Ez lényegében az, amit a
&man.ppp.8; legújabb változataiban
felbukkanó iface-alias
opció is csinál (a &man.libalias.3; és
a &man.ppp.8; kapcsolója
segítségével): karbantartja az
összes korábban használt interfész
címét és átfordítja
ezeket az utoljára beállított
címre.A másik (és
valószínûleg a sokkal
megbízhatóbb) lehetõség egy olyan
rendszerhívás implementálása
lenne, amely képes az összes használatban
levõ socketet egyik IP-címrõl a
másik IP-címre
átállítani. A &man.ppp.8; ekkor fel
tudná használni ezt arra, hogy
módosítsa az összes addig futó
program socketjét az új IP-cím
beállításakor. Ugyanezzel a
rendszerhívással a DHCP
kliensek is képesek lennének
átállítani a socketjeiket.Lehetõségünk van még
IP-cím nélkül is létrehozni
interfészeket. A kimenõ csomagok ekkor a
255.255.255.255
IP-címet használnák egészen
addig, amíg az elsõ
SIOCAIFADDR &man.ioctl.2;
rendszerhívás le nem zajlik. A &man.ppp.8;
feladata ilyenkor a forrás IP-cím
megváltoztatása, de ha ez 255.255.255.255, akkor egyedül
csak az IP-címnek és az
ellenõrzõösszegnek kell megváltoznia.
Ez viszont már valamilyen mértékben
trükközést a rendszermagon belül,
mivel így könnyen tudunk csomagokat küldeni
egy rosszul beállított interfészre is,
feltételezve, hogy valamilyen módon
képesek vagyunk ilyeneket visszamenõleg
helyreállítani.A legtöbb játék miért nem
mûködik a kapcsoló
megadásával?A játékok és a hozzájuk
hasonló alkalmazások általában
azért nem mûködnek, amikor a
&man.libalias.3; könyvtárat használjuk,
mert a távoli gép megpróbál
kapcsolódni a belsõ hálózatunkon
levõ géphez és kéretlen UDP
csomagokat kezd el küldeni neki. A
címfordítást végzõ
programnak fogalma sincs róla, hogy ezeket a
csomagokat egy belsõ gépnek kell
továbbküldenie.Akkor lehetünk biztosak ebben, ha egyedül csak
azt a szoftvert indítjuk el, amellyel gondjaink
akadtak, majd a vagy az átjáró
&man.tun.4; interfészét kezdjük el a
&man.tcpdump.1; segítségével, vagy
pedig engedélyezzük az
átjárón a &man.ppp.8; TCP/IP
naplózó funkcióját (set
log +tcp/ip).Ahogy elindítjuk a gondokat okozó
programot, látnunk kell a csomagjait, ahogy
megpróbálnak keresztüljutni az
átjárón. Az erre érkezõ
válaszolok eldobódnak (ez jelenti a
problémát). Jegyezzük fel a csomagokhoz
társuló portszámokat és
állítsuk el a programot. Csináljuk meg
néhányszor ezt a vizsgálatot,
így ellenõrizni tudjuk, hogy mindig ugyanazokat
a portokat használja-e. Amennyiben úgy
tapasztaljuk, hogy igen, akkor az
/etc/ppp/ppp.conf
állományba a következõ sort kell
betenni a megfelelõ helyre a mûködés
helyreállításához:nat port protokollbelsõ-gép:portportahol a protokoll lehet
tcp vagy udp, a
belsõ-gép annak a
gépnek a címe, ahova tovább akarjuk
küldeni a csomagokat, valamint a
port a csomagok
célportját adja meg.A fenti parancs megváltoztatása
nélkül nem tudjuk ugyanezt a szoftvert más
gépeken is használni, és itt azzal most
nem is foglalkozunk, hogy miként lehet két
belsõ géprõl használni ugyanazt a
programot. Mindenesetre annyi biztos, hogy a
külvilág felé a belsõ
hálózatunk csupán egyetlen
gépnek fog látszani.Ha azt látjuk, hogy az alkalmazás nem
mindig ugyanazt a portot használja, akkor három
választási lehetõségünk
van:Készítsük el a
támogatását a &man.libalias.3;
függvénykönyvtárhoz. A
különbözõ
szélsõséges esetekre a
/usr/src/sys/netinet/libalias/alias_*.c
állományokban találhatunk
példákat (az
alias_ftp.c tökéletes
kiindulási alap). Ez általában
annyit jelent, hogy beolvasunk bizonyos ismert
kimenõ csomagokat, beazonosítjuk benne azt
az utasítást, amelynek
hatására a külsõ gép
csatlakozni próbál a belsõ
géphez egy adott (véletlenszerûen
választott) porton, majd beállítunk
hozzá egy útvonalat,
így a rákövetkezõ csomagok
már tudni fogják, hogy merre
menjenek.Ez ugyan a legnehezebb megoldás, de egyben ez
is a legjobb, ráadásul így a szoftver
több gépen is
mûködtethetõ.Proxy használata. Elõfordulhat, hogy az
alkalmazás támogatja a
socks5 protokollt vagy (mint ahogy a
cvsup is csinálja) rendelkezik
passzív móddal, és
így lehetõleg igyekszik elkerülni azt,
hogy a távoli géprõl kapcsolatot
próbáljanak meg indítani a helyi
gépre.A nat addr
használatával irányítsunk
át mindent a belsõ gépre. Ez viszont
egy nagyon durva megközelítés.Valaki összeírta már a hasznosabb
portok sorszámait?Egyelõre még nem, de
szándékunkban áll
összeállítani egy ilyen listát
(már amennyiben igény lesz rá). Minden
itt szereplõ példában az
belsõ helyett mindig annak a
gépnek a belsõ IP-címét
írjuk, amelyrõl játszani akarunk.Asheron's Callnat port udp
belsõ :65000
65000Manuálisan változtassuk meg a
játékon belül a portszámot
65000-re. Ha a belsõ
hálózatunkról több
gépen is szeretnénk játszni, akkor
mindegyiknek adjuk meg egy egyedi portot (vagyis
65001, 65002
stb.), majd vegyünk fel mindegyikhez egy-egy
nat port sort.Half Lifenat port udp
belsõ:27005
27015PCAnywhere 8.0nat port udp
belsõ:5632
5632nat port tcp
belsõ:5631
5631Quakenat port udp
belsõ:6112
6112Quake 2nat port udp
belsõ:27901
27910nat port udp
belsõ:60021
60021nat port udp
belsõ:60040
60040Red Alertnat port udp
belsõ:8675
8675nat port udp
belsõ:5009
5009Mik azok az FCS hibák?Az FCS jelentése Frame
Check Sequence, vagyis
az Adatkeret ellenõrzésének
sorozata. Mindegyik PPP csomaghoz tartozik egy
ellenõrzõösszeg, amely arról
gondoskodik, hogy ugyanaz az adat érkezzen meg, mint
amit elküldtek. Amennyiben egy bejövõ csomag
FCS értéke érvénytelennek
minõsül, a csomag eldobódik és a
HDLC FCS számláló
értékkel eggyel növekszik. A HDLC
hibaszámlálói a show
hdlc parancs segítségével
tekinthetõek meg.Ha rosszul mûködik az
összeköttetés (vagy a soros vonali
meghajtónk folyamatosan eldobja a csomagokat), akkor
láthatunk helyenként FCS hibákat.
Többnyire nem érdemes az ilyenek miatt
aggódni, habár ez jelentõs
mértékben lassítja a
tömörítést végzõ
protokollok munkáját. Ha külsõ
modemünk van, akkor ne felejtsük el a
megfelelõ módon leárnyékolni,
mivel ebbõl is származhat a
probléma.Ha a vonal a kapcsolódást
követõen szinte azonnal lemerevedik és
hirtelen nagy mennyiségû FCS hiba jelentkezik,
akkor az arra is utalhat, hogy az
összeköttetés nem tisztán
8 bites. Gondoskodjunk róla, hogy a modem ne a
szoftveres forgalomirányítást
(XON/XOFF) használja. Ha viszont az adatok
közvetítéséhez mégis
szoftveres forgalomirányítást
kell használnunk, akkor a
set accmap 0x000a0000 parancs
kiadásával jelezzük a &man.ppp.8;
felé, hogy a ^Q és
^S karaktereket
helyettesítse.Nagy mennyiségû FCS hibát olyan
esetekben is tapasztalhatunk, amikor a távoli pont
abbahagyta a PPP üzenetek
küldését. Ilyenkor javasolt
engedélyezni az aszinkron naplózás
használatát, aminek
segítségével gyorsan meg tudjuk
állapítani, hogy a beérkezõ adatok
bejelentkezõ vagy shell üzeneteket. Ha a
másik oldalon egy shell parancssorát kapjuk
meg, akkor a &man.ppp.8; a close lcp
megadásával a vonal eldobása
nélkül leállítható (az
utána következõ term
paranccsal pedig a távoli gépen futó
shellre tudunk csatlakozni).Ha a naplókban látszólag semmi sem
indokolja az összeköttetés
leállását, próbáljunk meg
erre rákérdezni a távoli pont
(talán a szolgáltató?)
karbantartójánál.A &macos; és &windows; 98 alól
indított kapcsolatok miért állnak le, ha
PPPoE fut az átjárón?A probléma megoldását Michael
Wozniak (mwozniak@netcom.ca) adta meg, valamint
Dan Flemming (danflemming@mac.com) alkalmazta
ugyanezt Macre:Ennek oka az ún.
útválasztási fekete lyuk.
A &macos; és a &windows; 98 (de
valószínûleg az összes többi
µsoft; operációs rendszer) olyan nagy
méretû TCP csomagokat küld, amelyek
már nem férnek bele egy PPPoE keretbe (amely
mérete Ethernet estén 1500 byte
alapértelmezés szerint)
és beállítja
hozzá a darabolás letiltását
jelzõ (do not fragment) bitet (TCP
esetén ez alapértelmezett), és a Telco
útválasztó pedig nem küldi el a
must fragment (darabolni kell)
ICMP csomagot a letölteni kívánt oldal
szolgáltatója felé. (Másik
lehetõség, hogy az
útválasztó ugyan küld egy ilyen
ICMP csomagot, de ezt a
tartalomszolgáltatónál
található tûzfal eldobja.) Amikor
válaszul a szolgáltató olyan kereteket
kezd el küldeni, amelyek nem illeszkednek a PPPoE
keresztmetszetébe, a Telco
útválasztó egyszerûen eldobja
ezeket és a lap nem pedig nem lesz
elérhetõ (egyes képek és oldalak
esetén elõfordul). Úgy tûnik, ez az
alapbeállítás a legtöbb Telco
PPPoE konfiguráció esetében.Ezt a hibát úgy javíthatjuk, ha a
&windows; 95/98 rendszerekben megtalálható
regedit segítségével
felvesszük a következõ
regisztrációs bejegyzést:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTUA karakterlánc értéke legyen
1436, mivel bizonyos ADSL
útválasztók
állítólag nem képesek
ennél nagyobb méretû csomagokat kezelni.
&windows; 2000 esetén ezt a
beállítást a
Tcpip\Parameters\Interfaces\a
hálózati kártya
azonosítója\MTU helyen kell keresni
és típusa duplaszó (DWORD).A &windows; MTU beállításaival
kapcsolatban olvassuk el a Microsoft Knowledge Base
címén található dokumentumokat:
Q158474
- Windows TCPIP Registry Entries és Q120642
- TCPIP & NBT Configuration Parameters for &windowsnt;
.&windows; 2000 alatt a regisztrációs
adatbázisban érdemes még a
Tcpip\Parameters\Interfaces\a
hálózati kártya
azonosítója\EnablePMTUBHDetect
duplaszó értékét
1-re állítani, ahogy arra
az imént említett 120642-es µsoft;
dokumentum is hivatkozik.Sajnos a &macos; nem nyújt semmilyen
beállítási lehetõséget a
TCP/IP beállítások
megváltoztatására. Léteznek
viszont kereskedelmi termékek, amelyek
lehetõvé teszi a felhasználók
számára, hogy igényeik szerint
módosítsák rendszerük TCP/IP
beállításait. A hálózati
címfordítást használók
keressék meg az MTU
beállításaikat és adják
meg az 1450 értéket az
eredeti 1500 helyett.A &man.ppp.8; újabb (2.3 vagy afeletti)
változatai már tartalmaznak egy
enable tcpmssfixup parancsot, amellyel az
MSS értéke tetszõlegesen
átállítható. Ez
alapértelmezés szerint engedélyezett.
Ha valamiért mégis a &man.ppp.8; egy
korábbi változatával kellene
dolgoznunk, akkor érdemes megnéznünk
net/tcpmssd
portot.Ezek közül egyik sem használt —
segítség! Mit lehetne még
tenni?Ha eddig minden más csõdött mondott,
akkor próbáljuk meg elküldeni az
összes beszerezhetõ információt,
beleértve a konfigurációs
állományokat, hogyan indítjuk el a
&man.ppp.8; programot, a naplók fontosabb
részeit és a netstat -rn
parancs kimenetét (a csatlakozás elõtt
és után) a &a.questions; címére
vagy a comp.unix.bsd.freebsd.misc
hírcsoportba, és valaki talán majd
megmutatja a helyes irányt.Soros vonali kommunikációEbben a szakaszban a &os; alatti soros vonali
kommunikációval kapcsolatos kérdéseket
tárgyaljuk. A PPP és SLIP
használatáról a Hálózatok
címû részben esik szó.Honnan deríthetõ ki, hogy a &os; felismerte
a soros portokat a gépben?Ahogy a &os; rendszermagja az elindulása
után azokat a soros portokat fogja keresni, amelyeket a
konfigurációs állományban
beállítottunk. Figyeljük a rendszer
indulása közben megjelenõ üzeneteket
vagy adjuk ki a következõ parancsot a rendszer
indulásának befejeztével:&prompt.user; dmesg | grep -E "^sio[0-9]"Íme egy példa az iménti parancs
kimenetére:sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550AEzen két soros portot láthatunk. Az
elsõ a negyedik megszakítást és a
0x3f8 címet használja
és egy 16550A típusú UART chip. A
második ugyanolyan chip, de a harmadik
megszakítást és a
0x2f8 címet használja. A
belsõ modemeket a rendszer úgy kezeli, mintha
soros portok lennének, azzal a kivétellel,
hogy a modem mindig kapcsolódik az
adott porthoz.A GENERIC rendszermag
alapértelmezés szerint két soros portot
támogat, a példában szereplõ
megszakítási- és
memóriaértékek
felhasználásával. Ha ezek a
beállítások nem felelnek meg a
rendszerünk számára, esetleg modemet
raktunk a gépünkbe vagy a rendszermagban
több soros portot is támogatni
szeretnénk, akkor nincs más teendõnk,
mint ennek megfelelõen megváltoztatni a
rendszermag paramétereit. A rendszermag fordításáról szóló
rész tárgyalja ennek részleteit.Honnan deríthetõ ki, hogy a &os; felismerte
a modemkártyát a gépben?Olvassuk el az elõzõ kérdésre
adott választ.Hogyan lehet a soros portokat elérni &os;
alatt?A harmadik soros port, a sio2
(lásd &man.sio.4;, DOS alatt
COM3) a
/dev/cuad2 eszközön
keresztül érhetõ el
tárcsázó eszközként,
és a /dev/ttyd2
eszközön keresztül behívó
eszközként. Mi a különbség a
két eszközosztály
között?A
ttydX
eszközöket behívásra
használjuk. Amikor tehát a
/dev/ttydX
eszközt blokkoló módban nyitjuk meg,
akkor a hívó program egészen addig
várni fog, amíg a megfelelõ
cuadX
eszköz inaktívvá nem válik, majd
kivárja, hogy megérkezzen a
hívás fogadását
tolmácsoló jelzés. Amikor megnyitjuk a
cuadX
eszközt, gondoskodik róla, hogy a soros portot
ekkor ne használja a
ttydX
eszköz. Ha a port szabaddá válik,
egyszerûen ellopja a
ttydX
eszköztõl. Sõt, a
cuadX
eszközt egyáltalán nem érdekli a
hívás fogadása jelzés. Ezzel a
megoldással és egy automata modem
segítségével a távoli
felhasználók bármikor be tudnak
jelentkezni a rendszerünkbe, hogy közben
ugyanezzel a modemmel továbbra is tudunk
tárcsázni, mivel a rendszer elintézi a
többit.Hogyan lehet engedélyezi a többportos soros
vonali kártyák
támogatását?Ismét megemlítjük, hogy a rendszermag
beállításával foglalkozó
részben olvashatunk bõvebben a rendszermag
paraméterezésének
mikéntjérõl. A többportos soros
vonali kártyák esetén a
kártyán található mindegyik
soros porthoz vegyünk fel egy-egy &man.sio.4;
bejegyzést a &man.device.hints.5;
állományába. Az IRQ és vektor
értékeket azonban csak az egyiknél
adjuk meg, mivel a kártyán
található összes port egyetlen
megszakításon fog osztozni. A
következetesség kedvéért az
utolsó porthoz adjuk meg a
megszakítást. Ne felejtsük el még
megadni a rendszermag konfigurációs
állományában az alábbi
opciót sem:options COM_MULTIPORTAz alábbi /boot/device.hints
egy AST típusú négyportos soros vonali
kártyát láthatunk a tizenkettedik
megszakításon:hint.sio.4.at="isa"
hint.sio.4.port="0x2a0"
hint.sio.4.flags="0x701"
hint.sio.5.at="isa"
hint.sio.5.port="0x2a8"
hint.sio.5.flags="0x701"
hint.sio.6.at="isa"
hint.sio.6.port="0x2b0"
hint.sio.6.flags="0x701"
hint.sio.7.at="isa"
hint.sio.7.port="0x2b8"
hint.sio.7.flags="0x701"
hint.sio.7.irq="12"A flags paraméterrel megadott
értékek azt jelzik, hogy a fõport
7 alszámmal rendelkezik
(0x700), valamint az összes port
ugyanazon a megszakításon osztozik
(0x001).A &os; képes több többportos soros
vonali kártyát ugyanazon a
megszakításon keresztül
használni?Sajnos még nem. Minden kártyához
másik megszakítást kell megadni.Hogyan lehet beállítani a portok
alapértelmezett paramétereit?Ezzel kapcsolatban olvassuk el a &os;
kézikönyv soros kommunikációt
tárgyaló részét.Hogyan lehet a modemen betárcsázást
beállítani?Erre vonatkozóan olvassuk el a &os;
kézikönyv betárcsázós szolgáltatásokkal
kapcsolatos részét.Hogyan lehet buta terminálokat
&os;-re csatlakoztatni?Az ezzel kapcsolatos információkat a &os;
kézikönyv terminálokról
szóló részében
találhatjuk meg.Miért nem indul el a tip vagy
cu parancs?Elõfordulhat, hogy rendszerünkön a
&man.tip.1; és &man.cu.1; programok csak az
uucp felhasználón
és a dialer csoporton
keresztül tudnak hozzáférni a
mûködésükhöz
szükséges /var/spool/lock
könyvtárhoz. A dialer
csoport segítségével lehet
szabályozni, hogy ki férhessen hozzá a
modemekhez vagy a távoli rendszerekhez. Ilyenkor
egyszerûen csak vegyük fel magunkat a
dialer csoportba.A következõ parancs kiadásával
viszont ettõl függetlenül is
engedélyezhetjük a rendszerünkön
belül, hogy bárki használhassa a
&man.tip.1; vagy &man.cu.1; parancsokat:&prompt.root; chmod 4511 /usr/bin/cu
&prompt.root; chmod 4511 /usr/bin/tipA rendszerhez csatlakozó Hayes
szabványú modem támogatott — mi
ilyenkor teendõ?A &os; kézikönyvben lásd ezt
a választ.Hogyan adjuk meg az AT parancsokat?A &os; kézikönyvben lásd ezt
a választ.A pn tulajdonságnál
miért nem lehet @ jelet
megadni?A &os; kézikönyvben lásd ezt
a választ.Hogyan lehet telefonszámokat
tárcsázni parancssorból?A &os; kézikönyvben lásd ezt
a választ.Minden alkalommal meg kell adni az adatátviteli
sebességet?A &os; kézikönyvben lásd ezt
a választ.Terminálszerver segítségével
hogyan lehet könnyen elérni egyszerre több
gépet is?A &os; kézikönyvben lásd ezt
a választ.A &man.tip.1; képes több vonalat is
használni az egyes gépek
eléréséhez?A &os; kézikönyvben lásd ezt
a választ.Miért kell kétszer lenyomni a CtrlP
billentyûket, hogy egyszer elküldjük
ezeket?A &os; kézikönyvben lásd ezt
a választ.Miért lett hirtelen minden NAGYBETÛS?A &os; kézikönyvben lásd ezt
a választ.Hogyan lehet állományokat mozgatni a
tip használatával?A &os; kézikönyvben lásd ezt
a választ.Hogyan használható a zmodem protokoll a
tip programmal?A &os; kézikönyvben lásd ezt
a választ.Egyéb kérdésekA &os; miért használ sokkal több
lapozóállományt, mint a &linux;?A &os; csupán látszólag
használ több helyet a lapozásra, mint a
&linux;, valójában egyébként
nem. A &os; és a &linux; közt az egyik
leglényegesebb különbség, hogy a
&os; valamivel elõre gondolkodik, és az
összes pillanatnyilag nem használt lapot
kilapozza a központi memóriából a
lapozóterületre. Ezzel igyekszik minél
több memóriát
elõkészíteni az aktív
használatra. A &linux; ezzel szemben a
lapozást csak végsõ esetben
használja. Ennek megfelelõen a
lapozóterület gyakoribb
használatát remekül ellensúlyozza
a fizikai memória hatékonyabb
kihasználása.Habár a &os; igyekszik ebben a tekintetben
elõrelátó lenni, nem minden esetben tudja
pontosan eldönteni, hogy a rendszerben mely lapokat nem
használják éppen. Emiatt nem fogja az
összes memóriát kilapozni, ha
például egész éjszakára
futni hagyjuk a gépünket.A top miért jelez kevés
szabad memóriát, miközben csak
néhány program fut?Röviden úgy válaszolhatnánk
meg ezt a kérdést, hogy a szabad memória
igazából elvesztegetett memória. A
programok által szabadon hagyott
memóriát a &os; rendszermagja többnyire a
lemez gyorsítótárazására
használja fel. A &man.top.1; kimenetében
olvasható Inact,
Cache és Buf
értékek a lényegében
különbözõ öregedési szintek
szerint kategorizált tárazott adatok. A
tárazás lényegében arra utal,
hogy a rendszernek így nem a lassú
elérésû lemezen kell a gyakran
elérni kívánt adatok után
kutatni, aminek köszönhetõen növekszik
az összteljesítmény. A &man.top.1;
kimenetében tehát Free
kategória alacsony értéke
alapvetõen jót jelent, feltéve, ha nem
nagyon kevés.A chmod miért nem
változtatja meg a szimbolikus linkek
engedélyeit?A szimbolikus linkekhez alapértelmezés
szerint nem tartoznak engedélyek, ezért a
&man.chmod.1; ilyen esetekben nem követi nyomon az
eredeti állomány engedélyeinek
megváltozását. Ezért
például, ha adott egy ize
nevû állomány, valamint erre egy
mize nevû szimbolikus link, akkor
a következõ parancs mindig mûködni
fog:&prompt.user; chmod g-w mizeEnnek ellenére az ize
engedélyei nem fognak megváltozni.Ez csak akkor fog mûködni, ha a
opció mellett a
vagy opciókat is megadjuk.
Errõl részletesebb információkat a
&man.chmod.1; és a &man.symlink.7; man
oldalairól tudhatunk meg.A &man.chmod.1; opciója
rekurzív
mûködést tesz lehetõvé.
Óvatosan bánjunk a
könyvtárakkal vagy a
könyvtárakra mutató szimbolikus
linkekkel a &man.chmod.1; használata
során. Ha egy szimbolikus link által
hivatkozott könyvtár engedélyeit
akarjuk megváltoztatni, akkor a &man.chmod.1;
parancsnak ne adjunk meg semmilyen paramétert
és a nevet zárjuk perjellel (/).
Például, ha az ize a
mize
könyvtárra mutató szimbolikus link,
és meg akarjuk változtatni az
ize engedélyeit (ami
valójában a mize engedélyeit
jelenti), akkor valami ilyesmit kellene
megadnunk:&prompt.user; chmod 555 ize/A név végén szereplõ
perjelbõl a &man.chmod.1; tudni fogja, hogy
követnie kell a foo
szimbolikus linket és így az általa
hivatkozott könyvtár, a mize engedélyeit
fogja megváltoztatni.A &os; képes DOS programokat futtatni?Igen, a Portgyûjteményben
található emulators/doscmd, vagyis egy DOS
emulációs program
segítségével.Amennyiben a doscmd
önmagában még nem lenne elegendõ, egy
másik segédprogram, a emulators/pcemu
segítségével emulálni tudunk egy
8088-as processzort, valamint a BIOS annyi
részét, hogy futtatni tudjunk szöveges
DOS alkalmazásokat. A használatához az
X Window Systemre is szükségünk
lesz.Érdemes ezenkívül még
megpróbálnunk a &os;
Portgyûjteményében
található emulators/dosbox portot is. Ez
az alkalmazás elsõsorban a régi DOS-os
játékok futtatásához
szükséges környezet
emulációjára koncentrál, a helyi
állományrendszerben található
állományok
felhasználásával.Hogyan tudjuk az anyanyelvünkre lefordítani
a &os; dokumentációját?Olvassuk el a &os; Dokumentációs Projekt
bevezetõjében található Fordítói
GYIK-ot.A FreeBSD.org
tartományon belüli e-mail címekre
küldött levelek miért pattannak
vissza?A FreeBSD.org
levelezõrendszere a bejövõ levelekre
vonatkozóan átvett néhány
szigorúbb ellenõrzést a
Postfix
alkalmazástól, és ezért eldobja
azokat a leveleket, amelyek formátuma hibás
vagy feltehetõen szemét. A leveleink az
alábbi okok miatt pattanhatnak vissza:A levelet olyan név- vagy
IP-tartományból küldtük, ahonnan
korábban levélszemetet küldtek,
ezért feketelistára került.A &os; levelezõ szerverei eldobnak minden olyan
levelet, amelyek feketelistás
tartományokból érkeznek. Ha olyan
cégen vagy tartományon keresztül
akarunk küldeni, amelyik levélszemetet
gyárt vagy továbbít, akkor
váltsunk szolgáltatót.A levél törzse csak HTML kódot
tartalmaz.A leveleinket egyszerû szöveges
formátumban küldjük.
Állítsuk be a levelezõ
kliensünket erre.A FreeBSD.org
címen üzemelõ levelezõ szerver nem
tudta a csatlakozó gép
IP-címét szimbolikus névre
feloldani.Az ellenkezõ irányú
névfeloldás sikeressége alapvetõ
követelmény a levelek
fogadásához. Gondoskodjunk róla,
hogy a levelezõ szerverünk
IP-címével mûködjön az
inverz névfeloldás, Sok otthoni
szolgáltatás (DSL, kábel,
betárcsázós stb. kapcsolat) erre
nem ad lehetõséget. Ilyenkor a leveleinket
próbáljuk meg a
szolgáltatónk levelezõ szerverein
keresztül küldeni.Az SMTP protokoll EHLO/HELO részében
megadott hálózati név nem
oldható fel valós IP-címre.Egy teljes, feloldható hálózati
név elegendhetetlen a levél
elfogadásához szükséges SMTP
párbeszéd
érvényességéhez. Ha nincs
hivatalosan bejegyzett hálózati
nevünk, akkor a szolgáltató
levelezõ szervereit kell használnunk a
levél elküldéséhez.A küldött üzenet
azonosítója (Message ID) végén
a localhost szerepel.Egyes levelezõ kliensek rossz
azonosítónak hoznak létre az
üzenetekhez, ezért a rendszer nem
hajlandó elfogadni ezeket. Ilyenkor vagy
rávesszük valahogy a levelezõ
kliensünket, hogy rendes azonosítókat
készítsen, vagy úgy
állítjuk be a
levéltovábbítónkat, hogy
érvényes azonosítókra
írja át.Hogyan lehet egyszerûen &os; rendszereket
elérni?Habár a &os; maga nem nyújt akárki
számára hozzáférést a
saját szervereihez, mások viszont
kínálnak bárki által
elérhetõ &unix; rendszereket. Ennek
költsége és minõsége
szolgáltatónként
változik.Az Arbornet,
Inc, vagy másik nevén
M-Net 1983 óta szolgáltat
nyílt hozzáférést &unix;
típusú rendszerekhez. Egy System III
alapokon mûködõ Altos rendszerrõl a
1991-ben BSD/OS-re váltottak, majd 2000
júliusában aztán &os;-re
váltottak. Az M-Nettelnet és
SSH
szolgáltatásokon keresztül is
elérhetõ, és lényegében a
&os; alatt elérhetõ összes programhoz enged
egy alapvetõ hozzáférést. A
hálózati hozzáférés
azonban csak a tagok és a támogatók
számára engedélyezett. Ez egy
non-profit szervezet. Az M-Net
rendelkezik üzenõfallal (bulletin board system,
BBS) és interaktív csevegõrendszerrel
is.A Grex az
M-Net
szolgáltatásához hasonlóan
ugyanúgy kínál üzenõfalat
és csevegési lehetõséget.
Többségében azonban &sun; 4M
gépeik vannak, amelyen &sunos; fut.Mi az a sup és hogyan lehet
használni?A SUP
mozaikszó mögött a Software Update
Protocol (Szoftverfrissítési
protokoll) áll, amelyet fejlesztési
fák szinkronban tartására dolgoztak ki
a Carnegie-Mellon Egyetemen. Régebben ennek
segítségével tartották
frissítették magukat a fejlesztõi
források különbözõ
tükrözései a &os; Projekten
belül.A SUP nem kifejezetten egy
sávszélesség-takarékos
megoldás, és egy ideje már
nyugdíjba vonult. A forrásainkat jelen
pillanatban a CVSup
használatával tudjuk frissíteni.Hogy hívják azt a cuki kis vörös
fickót?Igazából nincs neve, mindenki
egyszerûen csak BSD démonnak
nevezi. Ha mégis hívni szeretnénk
valahogy, akkor szólítsuk csak
beastie-nek, ugyanis a beastie
kiejtése megegyezik a BSD
szóéval
(bíeszdi).A BSD démonról a saját honlapján
tudhatunk meg többet.Felhasználható a BSD démon
képe?Talán. A BSD démon jogait Marshall Kirk
McKusick birtokolja. A felhasználás pontos
lehetõségeivel kapcsolatban olvassuk el Statement
on the Use of the BSD Daemon Figure címû
írást.Röviden úgy foglalhatnánk össze,
hogy ízléses stílusban a saját
céljainkra mindaddig nyugodtan
felhasználhatjuk a képet, amíg
megemlítjük az eredeti szerzõt. Ha
kereskedelmi céljaink vannak, akkor írjunk
&a.mckusick; címére. A pontosabb
részleteket a BSD démon honlapján
olvashatjuk.Található valahol
felhasználható kép a BSD
démonról?EPS és XFig formátumú rajzok a
/usr/share/examples/BSD_daemon/
könyvtárban vannak.A levelezési listákon szerepeltek
ismeretlen kifejezések vagy
rövidítések. Hol lehet ezeknek
utánanézni?Olvassuk el a &os; szakkifejezéseinek gyûjteményét.
Miért fontos annyira a
biciklitároló színe?Erre röviden úgy adhatnánk
választ, hogy ezzel igazából nem kell
annyira törõdnünk. Ha viszont valamivel
terjedelmesebben akarunk válaszolni, akkor azt
mondhatnánk, hogy azért, mert egy
biciklitároló megépítése
még nem tántorít el senkit sem a
válaszott szín
kritizálásától és az
átfestésének
fontolgatásától. Ez a metafora
alapvetõen arról szól, hogy nem kell
feltétlenül minden apró
részletrõl vitatkoznunk csupán
azért, mert jobban értünk hozzá.
Sokak tapasztalata szerint ugyanis a
változtatásokhoz kapcsolódó
megjegyzések által gerjesztett zaj
fordítottan arányos az adott
változtatás
bonyolultságával.A még hosszabb és teljesebb válasz
eredetileg egy nagyon hosszú és
fárasztó vita eredményeképpen
keletkezett, amikor arról esett szó, hogy a
&man.sleep.1; törtekkel dolgozzon-e vagy sem. Erre
válaszul küldte &a.phk; az azóta
híressé vált A
bike shed (any color will do) on greener
grass... ((Bármilyen
színû) biciklitároló megfelelne
egy zöldebb gyepen...) címû
levelét. Ebbõl szeretnénk most
idézni:
&a.phk;, &a.hackers.name;, 1999.
október 2.Mirõl is szól ez a
biciklitároló? —
kérdezték tõlem sokan.Ez egy hosszú, vagy még inkább
régi történet, amely azonban
valójában meglehetõsen rövid. C.
Northcote Parkinson Parkinson
törvénye címmel írt egy
könyvet az 1960-as évek elején,
amelyben elég nagy betekintést adott a
vezetés dinamikájába.[a könyv részletes
bemutatását most
kihagyjuk]A konkrét példában egy
biciklitároló szerepel egy
atomerõmûvel szemben, szóval ez is
eléggé jól érzékelteti
a könyv korát.Parkinson ezen keresztül bemutatja, hogyan kell
egy igazgatói tanács elé járulni
egy több millió vagy akár
milliárd dolláros atomerõmû
megépítéséhez, azonban egy
egyszerû biciklitároló
megépítésekor könnyen
véget nem érõ vitatkozásba
bonyolódhatunk.Parkinson elmagyarázza, mindez azért
van, mert egy atomerõmû annyira
óriási, drága és bonyolult,
hogy az emberek egyszerûen nem értik meg.
Ezért nem szólnak semmit és
megnyugtatják magukat a
feltételezéssel, hogy valaki más
korábban már biztosan
utánajárt a részleteknek. Richard P.
Feynmann is könyveiben rengeteg érdekes
és nagyon találó példát
ad ezekre Los Alamossal kapcsolatban.Vegyünk ezzel szemben most egy
biciklitárolót. Bárki képes egy
hétvége alatt összetákolni egy
ilyet és még így is marad ideje
megnézni a meccset. Ezért nem
számít, mennyire jól megfogalmazott,
elõkészített és logikus is a
javaslatunk, valaki biztosan meg fogja ragadni a
lehetõséget, hogy az orrunk elõtt
fitogtassa a képességeit és
megmutassa magát: õ bizony itt
járt.Dániában ezt mi úgy
hívjuk, hogy otthagyjuk a kezünk
nyomát. Ez mindössze a
személyes büszkeségrõl és
tekintélyrõl szól, vagyis hogy
végre elmondhassuk: Ezt nézd!
Én csináltam.
Ez ugyan leginkább a politikusokra jellemzõ,
de alapvetõen minden emberben ott él.
Gondoljunk csak a friss betonban hagyott
lábnyomokra.
Mókás dolgok a &os;-vel kapcsolatbanMennyire hûsít a &os;?Kérdés: Mérte már valaki,
hogy a &os; futása közben mennyire melengeti meg
a számítógépet? Úgy
hírlik, a &linux; ebben a tekintetben sokkal jobb,
mint a DOS, de &os;-rõl még nem ismert ezzel
kapcsolatban semmi. Mondjuk, elég tüzesnek
tûnik.Válasz: Nem, de korábban már
számos tesztet végeztünk bekötött
szemû önkénteseken, akiknek elõzetesen
250 mikrogram LSD-25-öt adagoltak. A tesztalanyok
35 százaléka szerint a &os; kissé
narancsos ízû volt, míg a &linux;
inkább a rózsaszín ködhöz
hasonlított. A hõmérséklettel
kapcsolatban azonban egyik csoport sem észlelt
komolyabb változást. Végül
aztán teljesen el kellett vetnünk a
kísérlet eredményeit, mert menet
közben túlságosan sok
önkéntes kóborolt el, és ezzel
torzították a mérések
eredményeit. A legtöbb önkéntes
azóta is Apple-nél van, és azóta
is egy új színes, szagos
grafikus felületen dolgoznak. Szép kis
felfordulás!Komolyan: a &os; és a &linux; is egyaránt
a processzorokban található
HLT (halt) utasítást
használja arra, hogy az üresjáratban
levõ rendszer energiafogyasztását
és ezáltal hõtermelését is
valamennyire mérsékelje. Emellett még
az APM (Advanced Power Management) is támogatott,
így a &os; akár tetszés szerint
alacsonyabb energiafogyasztású módba is
tudja tenni a processzort.Mi mocorog a memóriamodulokban?Kérdés: A &os; csinál valami
szokatlan a rendszermag fordítása
közben, ami miatt a memóriák felõl
mocorgást lehet hallani? Amikor fordítok
(vagy egy rövid ideig, amikor az
indításkor a rendszer keresi a
floppymeghajtót) valamilyen furcsa
mocorgásszerû hang jön a
memóriamodulokból.Válasz: Igen! Gyakran utalnak a BSD rendszerek
dokumentációiban mindenféle
démonokra, és ezzel
kapcsolatban a legtöbb ember nem is tudja, hogy ezek
valójában apró, öntudatos,
fizikailag nem létezõ lények, amelyek a
rendszer indulása után
megszállják a
számítógépünket. A
memóriából kiszûrõdõ
mocorgás hangja igazából a
démonok közti magas frekvenciás
beszélgetésbõl ered, amikor éppen
arról egyeztetnek, hogy miként
birkózzanak meg a különbözõ
rendszeradminisztrációs feladatokkal.Ha teljesen megõrjít minket ez a
zajongás, akkor úgy tudunk tõlük
megszabadulni, ha kiadjuk DOS-ból a jó
öreg fdisk /mbr parancsot. Ekkor
viszont ne lepõdjünk meg, ha netalán
visszalõnének és próbálnak
minket megállítani. Ha eközben a
hangszóróinkból Bill Gates
sátáni kacaja harsanna fel, akkor rohanjunk
és ne is nézzünk többet vissza! A
BSD démonok támogatásától
mentesen a &windows; és a DOS ikerördögei
ilyenkor gyakran visszaszerzik gépünk felett a
teljes irányítást és ezzel
örök szenvedésre kárhoztatják
gyarló lelkünket. Ennek tudatában lehet,
hogy mégis csak jobb lenne, ha egyszerûen csak
hozzászoknánk azokhoz a furcsa hangokhoz,
nem?Hány &os; fejlesztõ kell egy
villanykörte kicseréléséhez?Ezeregyszázhatvankilenc:Huszonhárman panaszkodnak a -current
listán, hogy már megint kiment a villany.Négyen erre azt válaszolják, hogy
ez csak konfigurációs probléma,
ezért ennek a -questions listán a
helye.Hárman írnak róla
hibajelentést, de ezek közül az egyik
ráadásul tévesen a
doc kategóriába kerül,
és csak annyi áll benne, hogy
sötét van.Erre az egyikük beszerel egy
kipróbálatlan villanykörtét,
amitõl nem mûködik a rendszer többi
része, így öt perc múlva ki is
szereli.Nyolcan leszidják a hibajelentések
íróit, hogy nem mellékelték a
javítást a jelentéseik
mellé.Öten siránkoznak, hogy nem mûködik
a rendszer.Harmincegyen erre azt válaszolják, hogy
nekik minden remekül mûködik, és az
érintettek minden bizonnyal pont rosszkor
frissítettek.Egy küld egy új villanykörtét a
-hackers listára.Erre egy rászól, hogy õ már
három évvel ezelõtt megcsinálta
ugyanezt, de amikor beküldte a -current listára,
akkor senki sem foglalkozott vele, és
egyébként sem szereti a
hibajelentéseket. Emellett ráadásul az
új villanykörte egyébként sem
tetszik.Huszonheten nekiállnak skandálni, hogy a
villanykörték nem tartoznak az alaprendszerbe,
ezért a committerek a közösség
megkérdezése nélkül nem
csinálhatnak semmit, és különben is:
Mi errõl a -core
véleménye?Kétszázan eközben megvitatják,
milyen színû legyen a
biciklitároló.Hárman jelzik, hogy a javítás nem
felel meg a &man.style.9;
elõírásainak.Tizenheten megjegyzik, hogy az újonnan javasolt
villanykörte GPL licenccel rendelkezik.Ötszázhatvankilencen valóságos
vitaözönt indítanak a GPL, a BSD, MIT
és NPL licencek elõnyeit illetõen, majd
megjegyzéseket tesznek különféle meg
nem nevezett FSF alapítók személyes
higéniajára.Heten a vita bizonyos részeit átviszik a
-chat és -advocacy listákra.Egy végül beszereli a javasolt
villanykörtét, de az valamivel mintha
halványabban világítani, mint az
elõzõ.Ketten leszólják a szerelést,
és összekapnak azon, hogy most akkor a &os;
inkább maradjon sötétségben vagy
érje be a halványabb
világítással.Negyvenhárman rikácsolva követelik a
halványan világító
villanykörte kiszerelését és
panaszukat megírják a -core
listára.Tizenegyen egy kisebb villanykörtét
kérnek, mert ha majd portolni akárják a
Tamagotchijukra a rendszert, akkor ott is
használható legyen.Hetvenhárman felemelik a szavukat a -hackers
és -chat listákon felerõsödött
zaj miatt, és tiltakozásul leiratkoznak
ezekrõl a listákról.Tizenhárman erre egy leiratkozom,
Hogyan kell innen leiratkozni? vagy
Kérlek, vegyetek le errõl a
listáról témájú
levelet küldenek a megszokott stílusban.Egy eközben beszerel végre egy
mûködõ villanykörtét, miközben
mindenki azzal van elfoglalva, hogy szidja a másikat,
így szinte észre sem veszik.Harmincegy ezután hozzáteszi, hogy az
új villanykörte
0,364 százalékkal jobban
világítana, ha TenDRA-val
csinálták volna (akkor viszont kocka
alakú lenne) és a &os;-nek ezért a GCC
helyett TenDRA-t kellene használnia.Egy valaki megemlíti, hogy az új
villanykörtén nincs is burkolat.Kilencen (beleértve a hibajelentések
íróit) azt kérdezgetik folyton, hogy
Mi az az MFC?.Ötvenheten két hét múlva
kezdenek el panaszkodni, hogy a villanykörte
kiment.&a.nik; hozzáteszi:Nagyon jót nevettem
ezen.Közben az jutott az eszembe, hogy
Várjunk csak, nem kellene valahol a
felsorolásban lennie egy egy, aki pedig
ledokumentálja
résznek?És akkor végre
megértettem :-)&a.tabthorpe; szerint: Egy
sem, mert a valódi &os;
fejlesztõk nem félnek a
sötétben!Hova kerül a /dev/null
eszközre küldött adat?A processzoron található speciális
adatsüllyesztõbe kerül, majd hõvé
alakul és elszállítja a felszerelt
hûtõborda és ventillátor.
Ezért is annyira fontos a processzor
hûtése: az emberek minél gyorsabb
géppel rendelkeznek, annál inkább
gondatlanná válnak és annál
több adat köt ki a /dev/null
eszközben. Ha sikerül letörölnünk
a /dev/null eszközt (amivel
így lényegében letiltjuk a processzor
adatsüllyesztõjét), akkor a processzorunk
ugyan kevésbé fog melegedni, viszont gyorsan
eldugul a sok adattól és furcsán kezd
el viselkedni. Ha nagyon gyors hálózati
kapcsolattal rendelkezünk, akkor úgy is le
tudjuk hûteni a processzorunkat, ha folyamatosan
olvassuk a /dev/random eszközt
és valahova elküldjük az eredményt.
Ekkor viszont vigyázzunk arra, hogy ezzel a
módszerrel könnyen túlmelegedhet a
hálózati kártyánk és a
gyökér állományrendszerünk,
valamint a szolgáltató sem fog
örülni ennek, mert akkor a felesleges hõ
náluk keletkezik. Általában viszont
jó a hûtésük, ezért ha okosan
csináljuk, akkor semmi gondunk nem származik belõle.Paul Robinson
hozzáteszi:Vannak még más módszerek is.
Minden jó rendszergazda tudja, hogy szokás a
képernyõre is folyamatosan adatot küldeni,
mert így a pixik is vidámabbak lesznek. A
képernyõt formázó pixik (melyek
gyakran tévesen és hibásan
pixeleknek hívnak) a fejükön
viselt kalapok szerint három csoportba
sorolhatóak (vörös, zöld vagy
kék), és annak megfelelõen bújnak
elõ (illetve mutatják meg a kalapjukat), hogy
kapnak-e enni. A videokártyák felelõsek
azért, hogy a kapott adatokból pixiétel
készüljön és hogy az eljusson a
pixikhez — minél drágább a
kártya, annál jobb minõségû
az elõállított étel, és
annál fegyelmezettebben viselkednek a pixik.
Állandó cirogatásra is
szükségük van — ez a
képernyõvédõk feladata.Az elõbbi javaslatot azzal tudnám még
kiegészíteni, hogy a
/dev/random eszköztõl
származó adatokat akár a konzolra is
küldhetjük, így a pixiket is jól
tudjuk lakatni. Ezzel együtt nem jár semmilyen
hõtermelés, viszont a pixik boldogok lesznek
és így könnyen meg tudunk szabadulni a
felesleges adatoktól is, még úgy is, ha
kissé zavarosnak tûnik közben a
kép.Mellesleg mint az egyik nagy szolgáltató
egykori rendszergazdája elmondhatom, hogy mivel
tapasztalatom szerint a szerverszobában nehéz
tartani a megfelelõ hõmérsékletet,
ezért nem ajánlom senkinek a felesleges adatok
átküldését a
hálózaton. A csomagok
közvetítésével és
irányításával foglalkozó
tündérek sem különösebben szoktak
örülni ennek.Témák haladóknakHonnan lehet többet megtudni a &os; belsõ
felépítésérõl?Jelen pillanatban csak egyetlen mû foglalkozik az
operációs rendszerek
felépítésével a &os;
szemszögébõl, név szerint a Marshall
Kirk McKusick és George V. Neville-Neil által
írt The Design and Implementation of the
&os; Operating System címû könyv
(ISBN 0-201-70245-2), amely a &os;
5.X változatára
koncentrál.Emellett a &unix; típusú rendszerek
használatával kapcsolatos ismeret remekül
alkalmazható a &os; esetén is.A témához tartozó többi
könyvet a kézikönyv Az
operációs rendszerek belsõ
mûködésével
foglalkozó irodalomjegyzékben
találhatjuk meg.Hogyan lehet bekapcsolódni a &os;
fejlesztésébe?Pontosabb tanácsokat akkor kapunk, ha elolvassuk
a &os;
fejlesztésérõl szóló
cikket. Nagyon is számítunk mindenki
segítségére!Mik azok a pillanatkiadások és
kiadások?Jelenleg három aktív és
félig aktív ág van a &os; CVS
repositoryjában. (A korábbi
ágakat már csak nagyon ritkán
módosítják, ezért is csak
három aktív fejlesztési ágon
fejlesztenek):RELENG_6 avagy
6-STABLERELENG_7 avagy
7-STABLEHEAD avagy
-CURRENT avagy
8-CURRENTA HEAD nem olyan ág, mint a
másik kettõ. Ez egyszerûen csak
a jelenlegi, még el nem
ágaztatott fejlesztési
irány jelentéssel
bír, amire pedig sokszor röviden csak
-CURRENT néven
hivatkoznak.Jelen pillanatban a -CURRENT a
8.X fejlesztési
irányát képviseli; az
6-STABLE ág, a
RELENG_6, 2005 novemberében,
míg a 7-STABLE ág, a
RELENG_7, 2008 februárjában
vált le a -CURRENT
ágból.Hogyan lehet saját kiadást
készíteni?Olvassuk el a kiadások
készítésérõl
szóló cikket.A make world
parancs miért írja felül a
korábban telepített binárisokat?Mert alapvetõen ez lenne a cél: ahogy a neve
is sugallja, a rendszer újrafordítása,
vagyis a
make world
parancs feladata a rendszerben található
összes bináris
újrafordítása, aminek
eredményeképpen egy tiszta és
összefüggõ környezetet kapunk
(ezért is tart ilyen sokáig).Ha a make
world vagy a make
install parancs
futtatása elõtt megadjuk a
DESTDIR környezeti
változót, akkor a frissen létrehozott
binárisok az általa mutatott
könyvtárba fognak kerülni pontosan
úgy, ahogy az eredeti rendszer. Az osztott
könyvtárak bizonyos
módosításai és egyes programok
fordítása azonban könnyen térdre
kényszerítheti a make
world
futását.Miért nem forgó (round
robin) névfeloldással lehet
elérni a CVSup szervereket
és így megosztani köztük a
terhelést?Habár a CVSup
tükrözések óránként
frissítik magukat a központi
CVSup szerverrõl, maga a
frissítés azonban bármikor
megtörténhet. Ennek
következményeképpen egyes szervereken
frissebb kód található, miközben a
többin még az egy órával
ezelõtti állapot szerepel. Ha a cvsup.FreeBSD.org forgó
névfeloldással mûködne, akkor a
felhasználók mindig egy
véletlenszerûen választott
CVSup szervert kapnának,
és ezért a CVSup
egymás utáni futtatásakor könnyen
elõfordulhatna, hogy a rendszer régebbi
forrásait kapjuk vissza.A -CURRENT forrásait
korlátozott interneteléréssel is lehet
követni?Igen, ezt a CTM
használatával
anélkül is megtudjuk tenni,
hogy le kellene töltenünk az egész
forrásfát.Hogyan lehet 1392 KB-os darabokra felosztani az
egyes terjesztéseket?Az újabb BSD alapú rendszerekben a
&man.split.1; parancsnak már van egy
paramétere, amellyel
tetszõleges méretûre fel tudunk darabolni
állományokat.Íme erre egy példa a
/usr/src/release/Makefile
állományból:ZIPNSPLIT= gzip --no-name -9 -c | split -b 1392k -Hova lehet küldeni a rendszermaghoz írt
kiegészítéseket?Erre vonatkozóan vessünk egy
pillantást a &os; továbbfejlesztésérõl szóló
cikkre.Köszönjük, hogy gondolt
ránk!A rendszer hogyan érzékeli és
inicializálja a Plug and Play ISA
kártyákat?Frank Durda IV
(uhclem@nemesis.lonestar.org)
válasza:Dióhéjban úgy tudnám ezt
elmagyarázni, hogy van néhány I/O port,
amelyet lekérdezve a PnP kártya képes
válaszolni, hogy elérhetõ-e.
Ezért a PnP eszközök keresése azzal
kezdõdik, hogy a rendszer felteszi a
kérdést, van-e PnP kártya a
számítógépben. Erre
aztán a különbözõ
kártyák a típusuk
megjelölésével válaszolnak,
amelyet ugyanezen az I/O porton kell visszaolvasni,
így ha már legalább egy bitet
beállít valaki, akkor folytatható a
keresés. Ezután a keresést
végzõ kódrész letiltja az
X alatti (a µsoft; és az
&intel; által kiosztott) azonosítóval
rendelkezõ kártyákat, majd ismét
megnézi, hogy valaki továbbra is
válaszol-e. Amennyiben a válasz
0, az arra utal, hogy már nincs
aktív kártya az X
azonosító felett. Ezt követõen a
rendszer megpróbálkozik az
X alatti azonosítók
lekérdezésével. Végül
folytatja az X alatti keresést az
X -(korlát / 4)
feletti azonosítók letiltásával,
majd megismétli az iménti
kérdést. Ezzel a félig-meddig
bináris keresési módszerrel
aztán képes 264
lépésnél jóval kevesebbõl
felderíteni a rendszerünkben
megtalálható PnP
kártyákat.Az azonosítók két 32 bit
hosszúságú mezõbõl
(ezért írtunk az elõbb
264 lépést)
és egy 8 bites
ellenõrzõösszegbõl állnak. Az
elsõ 32 bit a gyártót
azonosítja. Ugyan soha nem vallják be, de
úgy tûnik, hogy még ugyanannak a
gyártónak is lehetnek eltérõ
gyártóazonosítóval
rendelkezõ kártyái. A
gyártók számára fenntartott
32 bites mezõ ezért valamennyire
túlzás.A második 32 bit lehet a kártya
sorozatszáma vagy bárki más, amely
alapján egyértelmûen
beazonosítható. A gyártó
ugyanazzal a 32 bites értékkel nem
gyárthat egy másik kártyát, csak
abban az esetben, ha a másik 32 bit is
eltér. Ennek köszönhetõen egy
gépen belül még az azonos
típusú kártyák is el fognak
térni 64 biten.Az iménti 32 bites csoportok nem lehetnek
teljesen nullák, ezért lehetséges, hogy a
bináris keresés során a
válaszban legalább egy bit mindig aktív
lesz.Miután a rendszer sikeresen beazonosította
a rendelkezésre álló
kártyákat, egyenként újra
elindítja ezeket (ugyanazon az I/O porton
keresztül), és megpróbálja
kitalálni, hogy az adott eszközöknek milyen
erõforrásokra van szüksége, milyen
megszakítást akarnak használni stb. Az
összes kártyától lekérdezi
ezeket az információkat.Az így megszerzett információkat
aztán még kiegészíti a
merevlemezen vagy az MLB BIOS-ban található
ECU állományok tartalmával. Az ECU
és az MLB BIOS PnP támogatása
általában viszont nem valódi, és
az ilyen eszközök igazából nem is
állítanak be semmit maguktól. A BIOS
és az ECU átvizsgálása azonban
segít a felderítést végzõ
rutinnak értesíteni a tényleges PnP
eszközöket, hogy ne foglaljanak el olyan
erõforrásokat, amelyeket a rendszer nem tud
áthelyezni.Ezután a PnP eszközöket a kód
még egyszer végigjárja és
átadja nekik a
mûködésükhöz
szükséges I/O, DMA, IRQ és
memóracímek hozzárendeléseit.
Az eszközök ekkor a megadott helyeken
elérhetõvé válnak és
úgy is maradnak a rendszer következõ
indításáig, de igazából
semmi sem rögzíti ezeket.Talán túlságosan is
egyszerûsítettem a fentieket, de szerintem
már ennyi is elegendõ az alapok
megértéséhez.A µsoft; néhány elsõdleges
nyomtatási állapotot jelzõ portot
átrakott PnP-re, azzal a címszóval,
hogy egyik kártya sem kódolta át ezeket
a címeket az ellenkezõ I/O ciklusok
számára. Találtam is egy eredeti IBM
nyomtatókártyát, amely valóban
át tudta írni az állapotjelzõ
portot a PnP kezdeti változataiban, de arra a
µsoft; csak annyit mondott, hogy
fogós. Ezért a
nyomtatási állapotot jelzõ portot a
címek beállítására
használja, illetve még a
0x800-as portot és egy harmadik
I/O portot valahol a 0x200 és a
0x3ff
környékén.Hogyan lehet fõeszközazonosítót
rendelni egy általunk fejlesztett
meghajtóhoz?2003 februárja óta a &os; képes
dinamikusan és önmûködõen
futás közben lefoglalni
fõeszközazonosítókat a
meghajtóknak (lásd &man.devfs.5;),
ezért erre tulajdonképpen már nincs
szükség.A könyvtárakra vonatkozóan milyen
más kiosztási házirendek léteznek
még?A könyvtárak más fajta
kiosztására vonatkozóan annyit tudok
válaszolni, hogy a jelenleg is alkalmazott
sémát az 1983-ban megalkotott változata
óta változatlanul használjuk.
Eredetileg a gyors állományrendszerhez
készítettem, de soha nem ragaszkodtam
hozzá. Remekül megoldja a cilindercsoportok
betelésének problémáját,
azonban sokan megjegyezték már, hogy a
&man.find.1; esetén gyengén mûködik.
A legtöbb állományrendszert
mélységi bejárással
hozzák létre, így a
könyvtárak szétszóródnak a
cilindercsoportok közt és ezzel a
késõbbi mélységi keresések
számára a lehetõ legrosszabb helyzetet
alakítják ki. Ha valaki például
tudja elõre a létrehozni kívánt
könyvtárak számát, akkor ezt
úgy lehet megoldani, ha a mûvelet során
(összes / cilindercsoportok)
mennyiségû könyvtárat hozunk
létre az egyes cilindercsoportokban. Ennek
meghatározására
nyilvánvalóan lehet adni valamilyen
heurisztikát. Már egy kisebb elõre
rögzített szám, mint
például a 10 kiválasztása is
legalább egy nagyságrendnyi javulást
jelent. Ha szeretnénk
megkülönböztetni az
állományrendszerek
visszaállítását a
hagyományos mûködéstõl (amire a
jelenlegi algoritmus sokkal érzékenyebb),
akkor érdemes tizes csoportokba összefogni a
könyvtárakat, feltéve, hogy
10 másodpercen belül hoztuk létre
ezeket. Mindenesetre elmondható, hogy ezzel
nyugodtan lehet kísérletezni.&a.mckusick;, 1998 szeptembereHogyan lehet kinyerni a legtöbb
információt a rendszermag
összeomlásából?Általában így néz ki a
rendszermag összeomlása:Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x40
fault code = supervisor read, page not present
instruction pointer = 0x8:0xf014a7e5
stack pointer = 0x10:0xf4ed6f24
frame pointer = 0x10:0xf4ed6f28
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 80 (mount)
interrupt mask =
trap number = 12
panic: page faultAmikor egy ilyen üzenetet látunk, akkor nem
elegendõ újra elõcsalni a hibát
és beküldeni. Az
utasításszámláló
(instruction pointer) értéke
ugyan nagyon fontos, de sajnos konfigurációk
szerint eltérhet. Más szóval
úgy fogalmazhatnék, hogy ennek az
értéke a használatban levõ
rendszermag értékétõl
függõen változhat. Ha a
GENERIC rendszermagot használjuk
valamelyik kiadásból, akkor viszont már
elképzelhetõ, hogy valaki más is le tudja
nyomozni a hibát okozó függvényt.
Ha viszont egy saját
beállításokkal rendelkezõ
rendszermagot használunk, akkor egyedül csak
mi vagyunk képesek megmondani a
hiba pontos helyét.Ezért a javaslatom a következõ:Jegyezzük le az
utasításszámláló
értékét. A
0x8: rész ebben az esetben
annyira nem fontos, egyedül csak a
0xf0xxxxxx részre van
szükségünk.A rendszer újraindításakor
írjuk be a következõt:&prompt.user; nm/a.hibát.okozó.rendszermag | grep f0xxxxxxahol az f0xxxxxx az
utasításszámláló
értéke. Könnyen elõfordulhat,
hogy ilyenkor még nem találunk
egyezést, mivel a rendszermag
szimbólumtáblájában csak
az egyes függvények belépési
pontjai találhatóak, és ha az
utasításszámláló
általában valamelyikük
belsejébe mutat, nem az elejükre. Ha
tehát nem még látunk semmit,
akkor egyszerûen hagyjuk el az utolsó
számjegyet és
próbálkozzunk így:&prompt.user; nm/a.hibát.okozó.rendszermag | grep f0xxxxxHa még ez sem hoz eredményt, akkor
vágjunk le a végérõl egy
újabb számjegyet. Egészen addig
csináljuk, amíg nem kapunk valami
értékelhetõ eredményt.
Ilyennek tekintjük például azokat a
függvényeket, amelyek a hibát
okozhatták. Ez ugyan egy nem annyira pontos
felderítési eszköz, viszont
még ez is jobb a semminél.A legjobb viszont mégis az, amikor sikerül
lementeni a hiba bekövetkezésekor a memória
tartalmát, majd a &man.kgdb.1;
használatával elõbányászni
belõle egy hívási láncot.Ehhez többnyire a következõ
módszer javasolt:A rendszermag konfigurációs
állományába
(/usr/src/sys/arch/conf/RENDSZERMAGKONFIG)
vegyük fel a következõ sort:makeoptions DEBUG=-g # A rendszermag fordítása gdb(1) szimbólumokkalLépjünk be a /usr/src
könyvtárba:&prompt.root; cd/usr/srcFordítsuk le a rendszermagot:&prompt.root; makebuildkernelKERNCONF=RENDSZERMAGKONFIGVárjuk meg, amíg a &man.make.1;
befejezi a fordítást.&prompt.root; makeinstallkernelKERNCONF=RENDSZERMAGKONFIGIndítsuk újra a gépet.A KERNCONF használata
nélkül a GENERIC
rendszermag fordul és
telepítõdik.A &man.make.1; programnak a folyamat
végeredményeként két rendszermagot
kell készítenie: a
/usr/obj/usr/src/sys/RENDSZERMAGKONFIG/kernel
és a
/usr/obj/usr/src/sys/RENDSZERMAGKONFIG/kernel.debug.
Ezek közül a kernel/boot/kernel/kernel néven
mentõdik el, miközben a
kernel.debug használható
nyomonkövetésre a &man.kgdb.1;
programmal.A rendszer csak akkor fogja elmenteni
összeomláskor a memória tartalmát,
ha az /etc/rc.conf
állományban beállítjuk a
dumpdev értékét a
lapozóállományt tároló
partícióra (vagy az AUTO
értékre). Ennek hatására az
&man.rc.8; szkriptek a &man.dumpon.8; paranccsal
képesek engedélyezni a memória
lementését. A &man.dumpon.8;
természetesen manuálisan is
elindítható. Az összeomlást
követõen a memória lementett
tartalmához a &man.savecore.8; programmal
férhetünk hozzá. Amikor viszont az
/etc/rc.conf állományban
megadjuk a dumpdev
értékét, az &man.rc.8; szkriptek
maguktól lefuttatják a &man.savecore.8;
parancsot és átrakják a mentést
a /var/crash
könyvtárba.A &os; által létrehozott
memóriamentések mérete
általában a
számítógépünkben
levõ fizikai memória
mennyiségével egyezik meg. Tehát
ha 512 MB RAM van a gépünkben, akkor
egy 512 MB méretû mentést fogunk
kapni. Ezért gondoskodjunk róla, hogy a
/var/crash könyvtárban
mindig legyen elegendõ hely az
állomány tárolásához.
A &man.savecore.8; kézzel is lefuttathazó,
és ilyenkor a memóriát akár
egy másik könyvtárba is
menthetjük. A mentés méretét
options
MAXMEM=N
beállítással is
korlátozhatjuk, ahol az
N értéke a
rendszermag által használható
memória mérete KB-okban.
Például, ha 1 GB RAM van a
gépünkben, de a rendszermag által
használható memóriát
lekorlátozzuk 128 MB-ra, akkor a
mentés mérete sem 1 GB lesz, hanem
csak 128 MB.Ahogy sikerült hozzájutnunk a
memóriamentéshez, azonnal is
kérhetünk a &man.kgdb.1;
használatával egy hívási
láncot belõle:&prompt.user; kgdb/usr/obj/usr/sys/RENDSZERMAGKONFIG/kernel.debug/var/crash/vmcore.0(kgdb)backtraceElõfordulhat, hogy ilyenkor több oldalnyi
információ özönlik hirtelen a
képernyõre, ezért javasolt ezeket
lementeni a &man.script.1; programmal. A
nyomkövetési szimbólumokat is
tartalmazó rendszermag esetén még
akár azt a sort is megkapjuk a rendszermagon
belül, ahol a hiba történt. A
hívási láncot általában
alulról felfelé kell olvasni, és
ebbõl deríthetõ, hogy pontosan milyen
események is vezettek az összeomláshoz.
A &man.kgdb.1; használatával még a
különbözõ változók
és struktúrák értékeit is
meg tudjuk vizsgálni, így még
többet megtudhatunk a rendszer
állapotáról az összeomlás
pillanatában.Ha az iméntiek mentén nagyon
fellelkesültünk volna és van egy
másik
számítógépünk is, akkor a
&man.kgdb.1; akár távoli
nyomkövetésre is
beállítható, aminek
köszönhetõen a &man.kgdb.1;
használatával az egyik rendszeren meg tudjuk
állítani a másikon futó
rendszermagot, ellenõrizhetjük a
viselkedését, akárcsak
bármelyik más felhasználói
program esetében.Ha netalán engedélyeztük volna a
DDB beállítást,
és a rendszermag beleáll a
nyomkövetõbe, akkor a rendszert mi magunk is
össze tudjuk omlasztani (és így a
memóriát elmenteni) a ddb
parancssorában a panic parancs
kiadásával. Ilyenkor a nyomkövetõ
általában még egyszer megáll az
összeomláskor. Ekkor a
continue paranccsal fejeztethetjük
be a memória lementését.A dlsym() függvény
miért nem mûködik már az ELF
állományokra?Az ELF állományokhoz tartozó
segédprogramok alapértelmezés szerint nem
teszik láthatóvá a dinamikus linker
számára a végrehajtható
állományban definiált
szimbólumokat. Ennek eredményeképpen a
dlsym() a dlopen(NULL,
flags) függvénytõl kapott
információk alapján nem találja
meg a keresett szimbólumokat.Ha szükségünk lenne ilyen
keresésekre a dlsym()
használata során a program
végrehajtható állományán
belül, akkor az adott programot a
opció
megadásával kell linkelni (lásd
&man.ld.1;).Hogyan növelhetõ vagy csökkenthetõ a
rendszermag címtere &i386;
architektúrán?Az &i386; platformon a rendszermag címtere
alapértelmezés szerint 1 GB
(PAE esetén 2 GB). Ha
komolyabb hálózati forgalmat
bonyolító szerverünk van
(például egy nagyobb FTP vagy HTTP szerver)
vagy rendszerükön használni akarjuk a ZFS
állományrendszert, akkor könnyen
kifuthatunk a címtérbõl.A címtér méretének
megváltoztatásához vegyük fel a
következõ sort a rendszermag
konfigurációs
állományába, majd fordítsuk
újra a rendszermagot:options KVA_PAGES=NAz N megfelelõ
értékének
megállapításához osszuk el a
beállítani kívánt
címtér (MB-okban megadott)
méretét néggyel. (Tehát
például 2 GB esetén ez
512 lesz.)KöszönetnyilvánításEzt a szegény kis ártatlan GYIKocskát
több százan, ha nem is éppen több ezren
írták, újraírták,
szerkesztették, hajtogatták, tekergették,
csonkítgatták, kibelezték,
nézegették, összekutyulták,
emlegették, felöklendezték,
újraépítették,
javítgatták és felpezsdítették
az utóbbi években. Folyamatosan.Ezúton is szeretnénk köszönetet
mondani mindazoknak, akik gondozásukba vették,
és mindenkit csak bátorítani tudunk, hogy
csatlakozzon
hozzájuk a GYIK
továbbfejlesztésében.
&bibliography;
diff --git a/hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml
index 8e58bd7b1e..f4e736e7a3 100644
--- a/hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/audit/chapter.sgml
@@ -1,1102 +1,1092 @@
TomRhodesÍrta: RobertWatsonBiztonsági események vizsgálataÁttekintésAUDITBiztonsági események
vizsgálataMAC
- A &os; 6.2-RELEASE és az azóta megjelent
- verziók támogatják a biztonsági
- események aprólékos
- vizsgálatát. Ezzel egy megbízható,
- részletes és jól konfigurálható
- naplózási rendszert nyújtanak a rendszerben
- található biztonságot igénylõ
- események széles köréhez,
- beleértve a bejelentkezéseket, a
- konfigurációs állományokban
- bekövetkezõ változásokat,
- állomány- és hálózati
- hozzáféréseket. Az így
- létrehozott naplóbejegyzések
+ A &os; támogatja a biztonsági események
+ aprólékos vizsgálatát. Ezzel egy
+ megbízható, részletes és jól
+ konfigurálható naplózási rendszert
+ nyújtanak a rendszerben található
+ biztonságot igénylõ események
+ széles köréhez, beleértve a
+ bejelentkezéseket, a konfigurációs
+ állományokban bekövetkezõ
+ változásokat, állomány- és
+ hálózati hozzáféréseket. Az
+ így létrehozott naplóbejegyzések
felbecsülhetetlen értékûnek bizonyulhatnak
egy élõ rendszer felügyelete során, vagy
egy hálózati támadás
észleléséhez, esetleg egy
összeomlás okainak kielemezéséhez. A
&os; ehhez a &sun; által kifejlesztett
BSM technológia API-ját és
állományformátumát
valósítja meg, és így képes
együttmûködni a &sun; &solaris; valamint az &apple;
- &macos; X bizonsági rendszereivel egyaránt.
+ &macos; X bizonsági rendszereivel
+ egyaránt.Ebben a fejezetben a biztonsági események
vizsgálatának telepítéséhez
és beállításához
szükséges ismeretek tekintjük át. Ennek
keretében szó esik a vizsgálati
házirendekrõl, valamint mutatunk egy
példát a vizsgálatok
beállítására.A fejezet elolvasása során
megismerjük:mit jelent az események vizsgálata és
hogyan mûködik;hogyan kell beállítani az események
vizsgálatát &os;-n a
különbözõ felhasználók
és programok esetén;hogyan értelmezzük a vizsgálati
nyomokat a vizsgálatot szûkítõ
és -elemzõ segédprogramok
segítségével.A fejezet elolvasásához ajánlott:alapvetõ &unix;-os és &os;-s ismeretek ();a rendszermag konfigurálásával
és fordításával kapcsolatos
tudnivalók alapszintû ismerete ();az informatikai biztonság alapfogalmainak és
annak a &os;-re vonatkozó részleteinek
minimális ismerete ().
- A &os; 6.X
- verziójaiban jelenlevõ biztonsági
- vizsgálat még csak kísérleti
- jelleggel szerepel, éles környezetben
- kizárólag csak az ebbõl eredõ
- kockázatok tudatában és
- elfogadásával javasolt használni. Ismert
- korlátozások: nem mindegyik biztonságot
- érintõ esemény vizsgálható,
- mint például az egyes bejelentkezési
- típusok, mivel azok nem megfelelõen
- hitelesítik a belépõ
+ Az események vizsgálatával kapcsolatos
+ ismert korlátozások: nem mindegyik
+ biztonságot érintõ esemény
+ vizsgálható, mint például az egyes
+ bejelentkezési típusok, mivel azok nem
+ megfelelõen hitelesítik a belépõ
felhasználókat. Ilyenek például az
X11-alapú felületek és az egyéb, erre
a célra alkalmas, más által fejlesztett
démonok.
-
- A biztonsági események vizsgálata
során a rendszer képes nagyon részletes
naplókat készíteni az érintett
tevékenységekrõl. Így egy
kellõen forgalmas rendszeren az
állománymozgások alapos
nyomonkövetése bizonyos
konfigurációkon akár gigabyte-okat is
kitehet hetente. A rendszergazdáknak ezért mindig
javasolt számolniuk a nagy forgalmú
események biztonsági vizsgálatának
tárigényével. Például,
emiatt érdemes lehet egy egész
állományrendszert szánni erre a feladatra a
/var/audit könyvtárban,
és így a többi állományrendszer
nem látja kárát, ha véletlenül
betelne ez a terület.A fejezet fontosabb fogalmaiA fejezet elolvasása elõtt meg kell ismernünk
néhány fontos alapfogalmat:esemény:
Vizsgálható eseménynek azt az
eseményt nevezzük, amely egy vizsgálati
alrendszerben naplózható. Biztonsági
események lehetnek például: egy
állomány létrehozása, egy
hálózati kapcsolat
felépítése, vagy egy
felhasználó bejelentkezése. Egy
esemény jellegzetes, ha
visszakövethetõ valamelyik hitelesített
felhasználóhoz, vagy nem
jellegzetes, ha ez nem lehetséges. Nem
jellegzetes esemény lehet minden olyan esemény,
amely egy bejelentkezési folyamat
hitelesítési lépése elõtt
történik, például egy
belépési kísérlet hibás
jelszóval.osztály:
Eseményosztálynak az összefüggõ
események névvel ellátott halmazát
tekintjük, és szûrési
feltételekben használjuk ezeket.
Általában alkalmazott osztályok:
file creation (fc,
állománylétrehozás),
exec (ex, programindítás),
és login_logout (lo, ki- és
bejelentkezés).rekord: Rekordnak nevezzük a
biztonsági eseményeket leíró
biztonsági naplóbejegyzéseket. A
rekordok tartalmazhatják a feljegyzett esemény
típusát, az eseményt
kiváltó tevékenységet
(felhasználót), a dátumot és az
idõt, tetszõleges objektum vagy paraméter
értékét, feltételek
teljesülését vagy
meghiúsulását.nyom: Vizsgálati nyomnak vagy
naplóállománynak nevezzük a
különféle biztonsági
eseményeket leíró vizsgálati
rekordok sorozatát. A nyomok többnyire
nagyjából az események
bekövetkezése szerinti idõrendben
következnek. Csak és kizárólag az
erre felhatalmazott programok hozhatnak létre
rekordokat a vizsgálati nyomban.szûrési feltétel:
Szûrési feltételnek nevezünk egy olyan
karakterláncot, amelyet események
szûrésére használunk, és
módosítókat valamint
eseményosztályok neveit tartalmazza.elõválogatás:
Elõválogatásnak nevezzük a folyamatot,
amelynek során a rendszer beazonosítja azokat az
eseményeket, amelyek a rendszergazda
számára fontosak. Ezáltal
elkerülhetjük olyan vizsgálati rekordok
generálását, amelyek számunkra
érdektelen eseményekrõl számolnak
be. Az elõválogatás szûrési
feltételek sorát használja az adott
felhasználókhoz tartozó adott
biztonsági események vizsgálatának
beállításához, akárcsak a
hitelesített és a nem hitelesített
programokat értintõ globális
beállítások
meghatározásához.leszûkítés:
Leszûkítésnek nevezzük a folyamatot,
amelynek során a már meglevõ
biztonsági rekordokból válogatunk le
tárolásra, nyomtatásra vagy
elemzésre. Hasonlóan ez a folyamat, ahol a
szükségtelen rekordokat eltávolítjuk
a vizsgálatai nyomból. A
leszûkítés
segítségével a rendszergazdák a
vizsgálati adatok eltárolására
alakíthatnak ki házirendet.
Például a részletesebb vizsgálati
nyomokat érdemes egy hónapig megtartani, ennek
lejártával viszont már inkább
ajánlott leszûkíteni ezeket és
archiválásra csak a bejelentkezési
információkat megtartani.A vizsgálat támogatásának
telepítéseA eseményvizsgálathoz szükséges
felhasználói programok a &os; alaprendszer
- részét képezik. A &os; 7.0 és
- késõbbi verzióiban az
+ részét képezik. Az
eseményvizsgálat támogatása
alapértelmezés szerint megtalálható a
- rendszermagban, azonban a &os; 6.X
- változataiban be kell kapcsolnunk a megfelelõ
+ rendszermagban, azonban egy saját rendszermag esetén
+ már külön be kell kapcsolnunk a megfelelõ
támogatást, mégpedig a rendszermag
konfigurációs állományában az
alábbi sor hozzáadásával:options AUDITFordítsuk és telepítsük újra
a rendszermagot az ben ismertetett
folyamat szerint.Ahogy a rendszermagot a bekapcsolt
eseményvizsgálati támogatással
sikerült lefordítanunk és
telepítenünk, valamint a rendszerünk is
újraindult, indítsuk el a vizsgáló
démont a következõ sor
hozzáadásával az &man.rc.conf.5;
állományban:auditd_enable="YES"A vizsgálatot innentõl ténylegesen egy
ismételt újraindítással vagy pedig az
elõbb említett démon manuális
elindításával aktiválhatjuk:/etc/rc.d/auditd startA vizsgálat beállításaA vizsgálatok beállításához
szükséges összes konfigurációs
állomány a /etc/security könyvtárban
található. A következõ
állományok vannak itt a démon
indítása elõtt:audit_class - a vizsgálati
osztályok definícióit tartalmazza.audit_control - a vizsgálati
alrendszer különbözõ területeit
vezérli, többek közt az
alapértelmezett vizsgálati osztályokat,
az vizsgálati adatok tárhelyén
fenntartandó minimális lemezterületet, a
vizsgálati nyom maximális méretét,
stb.audit_event - a rendszerben
jelenlevõ vizsgálati események
szöveges megnevezése és
leírása, valamint a lista, hogy melyikük
mely osztályban található.audit_user -
felhasználónként változó
vizsgálati elvárások, kombinálva a
bejelentkezéskor érvényes
globálisan alapértelmezett
beállításokkal.audit_warn - az
auditd által használt
testreszabható shell szkript, aminek
segítségével a
szélsõséges helyzetekben figyelmeztetõ
üzeneteket tudunk generálni, mint
például amikor a rekordok számára
fenntartott hely hamarosan elfogy, vagy amikor a nyomokat
tartalmazó állományt
archiváltuk.Az eseményvizsgálat
konfigurációs állományait alapos
körültekintés mellett szabad szerkeszteni
és karbantartani, mivel a bennük keletkezõ
hibák az események helytelen
naplózását eredményezhetik.Eseményszûrési feltételekAz eseményvizsgálati
beállítások során számtalan
helyen felbukkanak a vizsgálni kívánt
eseményeket meghatározó szûrési
feltételek. Ezen feltételek
eseményosztályok felsorolását
tartalmazzák, mindegyiküket egy
módosító vezeti be, ezzel jelezve, hogy az
adott eseményosztályba tartozó rekordokat
tartsuk meg vagy vessük el. Esetleg utalhatnak arra is,
hogy vagy csak a sikerességet jelzõ rekordokat, vagy
csak a sikertelenséget jelzõ rekordokat
szûrjük ki. A szûrési feltételek
balról jobbra értékelõdnek ki,
és két kifejezés
összefûzéssel
kombinálható.A most következõ lista tartalmazza a
audit_class állományban
található alapértelmezett
eseményvizsgálati osztályokat:all - all (mind)
- Minden eseményosztályra vonatkozik.ad - administrive
(adminisztrációs) - olyan
adminisztrációs tevékenységek,
amelyek egyben az egész rendszeren
végrehajtódnak.ap - application
(alkalmazás) - az alkalmazások
által meghatározott
tevékenység.cl - file close
(állomány lezárása) -
a close rendszerhívás
meghívásának vizsgálata.ex - exec
(programindítás) - egy program
indításának vizsgálata. A
parancssorban átadott paraméterek és a
környezeti változók
vizsgálatát az &man.audit.control.5;
vezérli a policy
beállításhoz tartozó
argv és envv
paraméterek segítségével.fa - file attribute access
(állományjellemzõk
hozzáférése) - a
rendszerbeli objektumok jellemzõinek
hozzáférésnek vizsgálata, mint
például a &man.stat.1;, &man.pathconf.2;
és ehhez hasonló események.fc - file create
(állomány
létrehozása) -
állományt eredményezõ
események vizsgálata.fd - file delete
(állomány törlése) -
állományt törlõ események
vizsgálata.fm - file attribute modify
(állományjellemzõk
módosítása) -
állományok jellemzõit
megváltoztató események
vizsgálata, mint például a
&man.chown.8;, &man.chflags.1;, &man.flock.2;, stb.fr - file read
(állományolvasás) -
állományok megnyitásával
olvasásra, olvasásával, stb.
kapcsolatos események vizsgálata.fw - file write
(állományírás) -
állományok megnyitásával
írásra, írásával,
módosításával, stb. kapcsolatos
események vizsgálata.io - ioctl - az
&man.ioctl.2; rendszerhívást
használó események
vizsgálata.ip - ipc - a
folyamatok közti kommunikáció
különféle formáinak,
beleértve a POSIX csövek és System V
IPC mûveleteinek
vizsgálata.lo - login_logout (ki-
és bejelentkezés) - a rendszerben
megjelenõ &man.login.1; és &man.logout.1;
események vizsgálata.na - non attributable (nem
jellegzetes) - a nem jellegzetes események
vizsgálata.no - invalid class
(érvénytelen osztály) -
egyetlen biztonsági eseményt sem
tartalmaz.nt - network
(hálózat) - a
hálózathoz tartozó események
vizsgálata, mint például a
&man.connect.2; és az &man.accept.2;.ot - other
(egyéb) - más egyéb
események vizsgálata.pc - process
(folyamat) - a folyamatokkal kapcsolatos
mûveletek, mint például az &man.exec.3;
és az &man.exit.3; vizsgálata.Az imént felsorolt eseményosztályok az
audit_class és az
audit_event állományok
módosításával igény szerint
testreszabhatóak.A listában szereplõ minden egyes
eseményosztályhoz tartozik még egy
módosító is, amely jelzi, hogy a sikeres
vagy a sikertelen mûveleteket kell-e szûrnünk,
valamint hogy a bejegyzés az adott típust vagy
osztályt hozzáadja vagy elveszi az adott
szûrésbõl.(üres) az adott típusból mind a
sikereseket és mind a sikerteleneket
feljegyzi.+ az eseményosztályba
tartozó sikeres eseményeket vizsgálja
csak.- az eseményosztályba
tartozó sikertelen eseményeket
vizsgálja csak.^ az
eseményosztályból sem a sikereseket,
sem pedig a sikerteleneket nem vizsgálja.^+ az
eseményosztályból nem vizsgálja
a sikeres eseményeket.^- az
eseményosztályból nem vizsgálja
a sikertelen eseményeket.Az alábbi példa egy olyan szûrési
feltételt mutat be, amely a ki- és
bejelentkezések közül megadja a sikereset
és a sikerteleneket, viszont a
programindítások közül csak a
sikereseket:lo,+exA konfigurációs
állományokA vizsgálati rendszer
beállításához az esetek
túlnyomó részében a
rendszergazdáknak csupán két
állományt kell módosítaniuk: ezek az
audit_control és az
audit_user. Az elõbbi felelõs a
rendszerszintû vizsgálati jellemzõkért
és házirendekért, míg az
utóbbi az igények
felhasználókénti
finomhangolásához
használható.Az audit_control
állományAz audit_control
állomány határozza meg a
vizsgálati alrendszer alapértelmezéseit.
Ezt az állományt megnyitva a
következõket láthatjuk:dir:/var/audit
flags:lo
minfree:20
naflags:lo
policy:cnt
filesz:0A opciót használjuk a
vizsgálati naplók
tárolására szolgáló egy
vagy több könyvtár megadására.
Ha egynél több könyvtárra
vonatkozó bejegyzés található az
állományban, akkor azok a megadás
sorrendjében kerülnek feltöltésre.
Nagyon gyakori az a beállítás, ahol a
vizsgálati naplókat egy erre a célra
külön kialakított
állományrendszeren tárolják,
megelõzve ezzel az állományrendszer
betelésekor keletkezõ problémákat a
többi alrendszerben.A mezõ egy rendszerszintû
alapértelmezett elõválogatási
maszkot határoz meg a jellegzetes események
számára. A fenti példában a
sikeres és sikertelen ki- és
bejelentkezéseket mindegyik felhasználó
esetén vizsgáljuk.A opció megszabja a
vizsgálati nyom tárolására
szánt állományrendszeren a
minimális szabad helyet, a teljes kapacitás
százalékában. Amint ezt a
küszöböt túllépjük, egy
figyelmeztetés fog generálódni. A fenti
példa a minimálisan szükséges
rendelkezésre álló helyet húsz
százalékra állítja.A opció megadja azokat az
eseményosztályokat, amelyeket vizsgálni
kell a nem jellegzetes események, mind
például a bejelentkezési folyamatok vagy
rendszerdémonok esetén.A opció a vizsgálat
különbözõ szempontjait
irányító házirendbeli
beállítások vesszõvel
elválasztott listáját tartalmazza. Az
alapértelmezett cnt
beállítás azt adja meg, hogy a rendszer a
felmerülõ vizsgálati hibák
ellenére is folytassa tovább a
mûködését (erõsen javasolt a
használata). A másik gyakorta alkalmazott
beállítás az argv,
amellyel a rendszer a parancsvégrehajtás
részeként az &man.execve.2;
rendszerhívás parancssori paramétereit is
megvizsgálja.A opció határozza
meg a vizsgálati nyom automatikus
szétvágása és
archiválása elõtti maximális
méretét, byte-ban. Az alapértelmezett
értéke a 0, amely kikapcsolja ezt az
archiválást. Ha az itt megadott
állományméret nem nulla és a
minimálisan elvárt 512 KB alatt van, akkor
a rendszer figyelmen kívül hagyja és
errõl egy figyelmeztetést ad.Az audit_user
állományAz audit_user állomány
lehetõvé teszi a rendszergazda
számára, hogy az egyes
felhasználók számára
további vizsgálati szigorításokat
határozzon meg. Minden sor egy-egy
felhasználó vizsgálatának
pontosítását adja meg két
mezõ segítségével: az elsõ
közülük az alwaysaudit
mezõ, mely felsorolja azokat az eseményeket,
amelyeket minden esetben vizsgáni kell az adott
felhasználó esetén, valamint a
második a neveraudit mezõ, mely
az adott felhasználó esetén a nem
vizsgálandó eseményeket adja meg.A most következõ audit_user
példában vizsgáljuk a
root felhasználó ki-
és bejelentkezéseit és sikeres
programindításait, valamint a
www felhasználó
állománylétrehozásait és
sikeres programindításait. Ha a korábban
bemutatott audit_control
példával együtt használjuk, akkor
észrevehetjük, hogy a lo
bejegyzés a root
felhasználó esetén redundáns,
illetve ilyenkor a ki/bejelentkezést a
www felhasználó
esetén is vizsgáljuk.root:lo,+ex:no
www:fc,+ex:noA vizsgálati alrendszer használataA vizsgálati nyomok megtekintéseA vizsgálati nyomok a BSM bináris
formátumban tárolódnak, ezért a
tartalmának konvertálásához
és módosításához
külön segédprogramokra van szükség.
A &man.praudit.1; parancs a nyomállományokat
egyszerû szöveges formátumra alakítja,
az &man.auditreduce.1; parancs pedig a nyomok
elemzéséhez, archiválásához
vagy nyomtatásához szükséges
leszûkítéséket végzi el. Az
auditreduce a szûrési
feltételek paramétereinek széles
skáláját kezeli, beleértve az
eseménytípusokat, -osztályokat,
felhasználókat, események
dátumát vagy idõpontját,
állományok elérési
útvonalát vagy az általuk érintett
objektumokat.Például a praudit
segédprogram képes kilistázni
szövegesen egy adott vizsgálati napló teljes
tartalmát:&prompt.root; praudit /var/audit/AUDITFILEahol az
AUDITFILE a
kiírandó vizsgálati napló.A vizsgálati nyomok tokenekbõl
összeállított vizsgálati rekordok,
amelyeket a praudit egymás után
soronként megjelenít. Minden token adott
típusú, például a
header egy vizsgálati rekord
fejlécét tartalmazza, vagy a
path, amely a
névfeloldásból származó
elérési utat tartalmaz. A következõ
példa egy execve eseményt mutat
be:header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
exec arg,finger,doug
path,/usr/bin/finger
attribute,555,root,wheel,90,24918,104944
subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
return,success,0
trailer,133Ez a vizsgálat egy sikeres execve
hívást rögzít, ahol a finger
doug parancs futott le. A paramétereket
tartalmazó token magában foglalja a shell
által a rendszermag felé jelzett parancsot
és annak paraméterét egyaránt. A
path token tárolja a
végrehajtott állomány rendszermag
által feloldott elérési
útját. A attribute token
errõl a binárisról ad további
információkat, különösen az
állomány módjáról, amely
segít megállapítani, hogy az adott
alkalmazásnál be volt-e állítva a
setuid bit. A subject token leírja az
érintett folyamatot és rendre megjegyzi a
vizsgált felhasználó
azonosítóját, az aktuálisan
érvényben levõ felhasználó
és csoport azonosítóját, a
valós felhasználói és csoport
azonosítót, a folyamat
azonosítóját, a munkamenet
azonosítóját, a port
azonosítóját és a
bejelentkezéshez használt hálózati
címet. Vegyük észre, hogy a vizsgált
felhasználó azonosítója és a
valódi azonosítója eltér
egymástól: a robert nevû
felhasználó a root
accountjára váltott a parancs futattása
elõtt, de az eredetileg hitelesített
felhasználójaként lett vizsgálva.
Végezetül a return token jelzi a
sikeres végrehajtást, és a
trailer pedig zárja a rekordot.A vizsgálati nyomok
leszûkítéseMivel a vizsgálatokhoz tartozó naplók
akár egészen nagyok is lehetnek, ezért a
rendszergazdának minden bizonnyal szüksége
lehet a számára fontos, például egy
adott felhasználóhoz tartozó rekordok
kiválogatására:&prompt.root; auditreduce -u trhodes /var/audit/AUDITFILE | prauditEzzel ki tudjuk szûrni a trhodes
nevû felhasználóhoz tartozó
összes vizsgálati rekordot az
AUDITFILE
állományból.A naplók megtekintéséhez
szükséges jogok továbbadásaAz audit csoport tagjai
olvashatják a /var/audit
könyvtárban található
vizsgálati nyomokat. Alapértelmezés
szerint ez a csoport üres, ezért csak a
root képes ekkor vizsgálni a
nyomokat. A többi felhasználó
számára úgy tudunk olvasási jogot
biztosítani, ha felvesszük õket az
audit csoportba. Mivel a
vizsgálati naplók tartalmának
figyelése jelentõs rálátást
adhat a rendszerben jelenlevõ felhasználók
és folyamatok viselkedésére,
ajánlott körültekintõen kiosztani az
olvasási jogokat.Élõ rendszerfelügyelet a vizsgálati
csövekkelA vizsgálati csövek az eszközök
állományabsztrakcióit
klónozzák le, és ezzel teszik
lehetõvé az alkalmazások
számára, hogy menet közben
megcsapolhassák a megfigyelt eszközök adatait.
Ez az elsõdleges célja a
különbözõ betörésfigyelõ
és rendszerfelügyeleti eszközök
készítõinek. A rendszergazda
számára azonban a vizsgálati csövek
megkönnyítik az élõ megfigyelést,
mert itt nem merülnek fel a nyomok
jogosultságaiból vagy az archiválás
miatt megszakadó eseményfolyamokból
adódó problémák. Az élõ
eseményfolyamra az alábbi parancs
kiadásával lehet rácsatlakozni:&prompt.root; praudit /dev/auditpipeAlapértelmezés szerint a vizsgálati
csõhöz tartozó csomópontok
kizárólag csak a root
felhasználó részére
érhetõek el. Az audit
csoport tagjai úgy tudnak majd hozzáférni,
ha felvesszük a következõ
devfs szabályt a
devfs.rules
állományba:add path 'auditpipe*' mode 0440 group auditA devfs állományrendszer
beállításárõl bõvebben
lásd a &man.devfs.rules.5; oldalt.Könnyen gerjedést lehet elõidézni
a vizsgált események
megfigyelésével, amikor is az egyes
események megtekintése újabb
vizsgálandó események sorozatát
indítják el. Például, ha az
összes hálózati forgalmat egyszerre
vizsgáljuk és a &man.praudit.1; egy
SSH-munkameneten keresztül fut, akkor a vizsgálati
események töméntelen áradata indul
meg, mivel minden kiírandó esemény egy
újabb eseményt indukál. Ennek
elkerülése érdekében ajánlott
a praudit parancsot részletes
forgalmat nem figyelõ vizsgálati csõvel
ellátott munkameneten keresztül
elindítani.A vizsgálati nyomok
archiválásaA vizsgálati nyomokat egyedül a rendszermag
képes írni, illetve csak a vizsgálati
démon, az auditd képes
felügyelni. A rendszergazdáknak ebben az esetben
tehát nem szabad használniuk a
&man.newsyslog.conf.5; vagy a hozzá hasonló
eszközök használatát a vizsgálati
naplók archiválásához.
Helyettük a audit segédprogramot
javasolt használni a vizsgálatok
leállítására, a vizsgálati
rendszer újrakonfigurálására vagy a
napló archiválásának
elvégzésére. Az alábbi parancs
utasítja a vizsgálati démont, hogy hozzon
létre egy új vizsgálati naplót
és jelzi a rendszermagnak, hogy váltson erre az
új naplóra. Az eddig használt
naplót lezárja és átnevezi, ami
ezután a rendszergazda által tetszõlegesen
feldolgozható.&prompt.root; audit -nHa az auditd démon a
parancs kiadásánák pillanatában
nem futna, akkor hiba történik és
errõl hibaüzenetet kapunk.A &man.cron.8; segítségével
tizenként óránként
kikényszeríthetjük a naplók
váltását, ha felvesszük a
/etc/crontab állományba az
alábbi sort:0 */12 * * * root /usr/sbin/audit -nEz a változtatás akkor fog
érvénybe lépni, ha elmentjük az
új /etc/crontab
állományt.A vizsgálati nyomok mérete szerinti
automatikus váltás is
megvalósítható az &man.audit.control.5;
állományban szereplõ
opció beállításával, amit meg
is találhatunk ebben a fejezetben, a
konfigurációs állományok
beállításánál.A vizsgálati nyomok
tömörítéseMivel a vizsgálati nyomok óriásira is
megnõhetnek, sokszor felmerül az igény, hogy
lehessen õket tömöríteni vagy más
egyéb módon archiválni a vizsgálati
démon által lezárt nyomokat. Az
audit_warn szkript
használható a különbözõ
vizsgálatokhoz kapcsolódó események
esetén elvégzendõ mûveletek
megadásához, beleértve ebbe a
vizsgálati nyomok váltásakor
elvégzett szabályos
lezárását. Például a
következõket kell beleírnunk az
audit_warn szkriptbe a nyomok
lezárását követõ
tömörítéséhez:#
# Lezáráskor tömöríti a vizsgálati nyomot.
#
if [ "$1" = closefile ]; then
gzip -9 $2
fiEgyéb archiválási
tevékenységek lehetnek még: a nyomok
felmásolása egy központi szerverre, a
régebbi nyomok törlése, vagy a meglevõ
nyomok leszûkítése csak a fontos
információkra. A szkript csak akkor fog lefutni,
ha a vizsgálati nyomot sikerült szabályosan
lezárni, így tehát a szabálytalan
leálláskor megmaradó nyomok esetén
nem.A &os; 6.3 és késõbbi
verzióiban, a praudit XML kimeneti
formátumot is támogat, amely az
kapcsolóval érhetõ
el.
diff --git a/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml
index fedcbf3f27..947c60c883 100644
--- a/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml
@@ -1,4579 +1,4567 @@
Joseph J.BarbishÍrta: BradDavisSGML formátumúra alakította
és aktualizálta: TûzfalaktûzfalakbiztonságtûzfalakBevezetésA tûzfalakkal a rendszerünkön
keresztülfolyó bejövõ és kimenõ
forgalmat tudjuk szûrni. A tûzfalak egy vagy több
szabályrendszer alapján
vizsgálják az éppen érkezõ vagy
távozó hálózati csomagokat, és
vagy továbbengedik ezeket vagy
megállítják. A tûzfalak
szabályai a csomagok egy vagy több
jellemzõjét veszik szemügyre, amelyek lehetnek
például a protokoll típusa, a forrás
vagy cél hálózati címe, esetleg a
forrás- vagy a célport.A tûzfalak jelentõs mértékben
képesek gyarapítani egy gép vagy egy
hálózat védelmét. Leginkább a
következõkre tudjuk felhasználni:A belsõ hálózatunkban futó
alkalmazások, szolgáltatások,
gépek megvédésére és
elszigetelésére az internetrõl
érkezõ nem kívánt forgalom
ellenA belsõ hálózatban levõ
gépek elérését tudjuk
korlátozni vagy letiltani az interneten
elérhetõ szolgáltatások
feléA hálózati címfordítás
(Network Address Translation, NAT)
beállításához, ahol a belsõ
hálózatunk privát
IP-címeket használnak
és egy közös kapcsolaton keresztül
érik el az internetet (egyetlen
IP-címmel, vagy pedig automatikusan
kiosztott publikus címekkel).A fejezet elolvasása során
megismerjük:hogyan adjuk meg helyesen a csomagok
szûrését leíró
szabályokat;a &os;-be épített tûzfalak közti
különbségeket;hogyan állítsuk be és
használjuk az OpenBSD PF
tûzfalát;hogyan állítsuk be és
használjuk az IPFILTER
tûzfalat;hogyan állítsuk be és
használjuk az IPFW
tûzfalat.A fejezet elolvasása elõtt ajánlott:a &os;-hez és az internethez kötõdõ
alapvetõ fogalmak ismerete.Röviden a tûzfalakróltûzfalakszabályrendszereiA tûzfalak szabályrendszereit alapvetõen
kétféleképpen tudjuk
összeállítani: inkluzív,
vagyis megengedõ, illetve exkluzív
vagyis kizáró módon. Az exkluzív
tûzfalak minden forgalmat átengednek, amirõl nem
rendelkeznek a tûzfal szabályai. Az inkluzív
tûzfalak ennek pontosan az ellenkezõjét teszik.
Csak azt a forgalmat engedik át, amirõl van
szabály és minden mást blokkolnak.Az inkluzív tûzfalak alkalmazásával
sokkal jobban kezünkbentudjuk tartani a
hálózatunk kimenõ forgalmát,
ezért leginkább az internetes
szolgáltatásokat futtató rendszerek
esetében bizonyulhat jobb választásnak.
Emellett az internetrõl a hálózatunk
felé irányuló forgalmat is képes
szabályozni. Ekkor az egyetlen szabályra sem
illeszkedõ csomagokat egyszerûen eldobjuk és
naplózzuk. Az inkluzív tûzfalak
általában biztonságosabbak az exkluzív
típusú társaiknál, mivel
esetükben jelentõs mértékben visszaszorul
a nem kívánatos átfolyó
forgalom.Hacsak nem emeljük ki külön, a fejezet
további részében minden
példaként megadott szabályrendszer
inkluzív tûzfalat hoz létre.Ez a típusú védelem még
tovább fokozható az
állapottartó tûzfalak (stateful
firewall) használatával. Az ilyen
típusú tûzfalak szemmel tartják a rajtuk
keresztül megnyitott kapcsolatokat, és vagy csak a
már meglevõ kapcsolathoz tartozó forgalmat
engedik át vagy nyitnak egy újat. Az
állapottartó tûzfalak hátránya,
hogy a Denial of Service (DoS)
típusú támadásokkal szemben sokkal
sérülékenyebbek olyan helyzetekben, amikor az
új kapcsolatok nagyon gyorsan jönnek létre. A
legtöbb tûzfal esetében azonban tudjuk
vegyíteni az állapottartó és nem
állapottartó viselkedést, és ezzel egy
ideális beállítást
kialakítani.TûzfalakA &os; alaprendszerébe három
különbözõ tûzfalat
építettek be, melyek a következõk: az
IPFILTER (másik nevén
IPF), az IPFIREWALL
(más néven IPFW) és az
OpenBSD csomagszûrõje (Packet
Filter, azaz PF). A forgalom
szabályozására (vagyis alapvetõen a
sávszélesség
kihasználtságának
vezérlésére) a &os; két
beépített csomagot tartalmaz: ez az &man.altq.4;
és a &man.dummynet.4;. Általában a Dummynet
az IPFW, míg az ALTQ
a PF partnere. Az IPFILTER esetében
maga az IPFILTER végzi a címfordítást
és a szûrést, a
sávszélességet pedig az
IPFW a &man.dummynet.4;
vagy a PF az
ALTQ segítségével. Az
IPFW és a PF
szabályokkal rendelkezik a rendszerünkbe
érkezõ vagy onnan távozó
csomagokról, habár megoldásaik teljesen
máshogy mûködnek és a szabályok
megadási módja is eltér.A &os; azért tartalmaz egyszerre ennyiféle
tûzfalat, mert az emberek elvárásai és
igényei eltérnek. Egyikük sem tekinthetõ
a legjobbnak.A szerzõ egyébként az IPFILTER
megoldását részesíti elõnyben,
mivel egy hálózati címfordítást
alkalmazó környezetben sokkal könnyebb vele
megfogalmazni az állapottartó szabályokat,
valamint tartalmaz egy beépített FTP proxyt is,
amivel így a kimenõ FTP kapcsolatok
beállítása még tovább
egyszerûsödik.Mivel az összes tûzfal a csomagok
fejlécének bizonyos mezõinek alapján
dolgozik, ezért a tûzfal
szabályrendszerét megalkotó egyénnek
teljesen tisztában kell lennie a TCP/IP
mûködésével, továbbá azzal,
hogy ezekben a mezõkben milyen értékek
szerepelhetnek és ezeket hogyan használják
egy átlagos kapcsolat alatt. Ebben a témában
a
címen találhatunk egy remek ismertetõt
(angolul).JohnFerrellÁtnézte és
aktualizálta:Az OpenBSD csomagszûrõje (PF) és az
ALTQtûzfalakPF2003 júliusában az OpenBSD PF
néven ismert csomagszûrõjét
átírták &os;-re és
elérhetõvé tették a &os;
Portgyûjteményének részeként. A
PF programot beépítetten
tartalmazó elsõ kiadás pedig 2004
novemberében a &os; 5.3 volt. A PF
egy teljes, mindentudó tûzfal, amely támogatja
az ún. ALTQ (Alternate Queuing, vagyis
a váltóbesorolás)
megoldást. Az ALTQ lehetõvé
teszi a sávszélesség
korlátozását a szolgáltatás
minõsége (Quality of Service, QoS)
alapján.Az OpenBSD Projekt kiváló munkát
végez a PF felhasználói
útmutatójának
karbantartásával. A kézikönyv ezen
szakasza ezért elsõsorban azzal foglalkozik, hogyan
kell a PF-et &os; alatt használni,
miközben igyekszik egy általános
összefoglalást adni a témáról. A
részletesebb információkkal kapcsolatban
azonban feltétlenül nézzük meg a
felhasználói útmutatót.A
címen olvashatunk többet arról (angolul), hogy
a PF-et hogyan használjunk
&os;-n.A PF rendszermagmodulok használataA PF modul
betöltéséhez a következõ sort kell
felvennünk az /etc/rc.conf
állományba:pf_enable="YES"Ezt követõen futtassuk le a
hozzátartozó rendszerindító
szkriptet:&prompt.root; /etc/rc.d/pf startA PF modul abban az esetben nem fog
betöltõdni, ha nem találja a szabályokat
tartalmazó konfigurációs
állományt. Ez alapértelmezés
szerint az /etc/pf.conf
állomány. Ha a szabályok
leírása rendszerünkön máshol
található, akkor az
/etc/rc.conf állományban a
következõ módon adhatjuk meg annak pontos
helyét:pf_rules="/elérési/út/pf.conf"A &os; 7.0 kiadással a minta
pf.conf állomány az
/etc
könyvtárból átkerült a
/usr/share/examples/pf
könyvtárba. A &os; 7.0 elõtti
kiadásokban alapértelmezés szerint
található egy pf.conf
állomány az /etc
könyvtárban.A PF modul parancssorból
akár kézzel is betölthetõ:&prompt.root; kldload pf.koA PF mûködésének
naplózását a pflog.ko
teszi lehetõvé, amelyet az alábbi sor
hozzáadásával engedélyezhetünk
az /etc/rc.conf
állományban:pflog_enable="YES"A modul betöltését a
hozzátartozó rendszerindító szkript
segítségével kérhetjük:&prompt.root; /etc/rc.d/pflog startHa a PF többi
funkcióját is használni szeretnénk,
akkor ehhez egy új rendszermagot kell fordítanunk
PF támogatással.A PF rendszermagbeli
beállításaia rendszermag
beállításaidevice pfa rendszermag
beállításaidevice pfloga rendszermag
beállításaidevice pfsyncNoha egyáltalán nem szükséges
beépítenünk a PF
támogatását a rendszermagba, abban az
esetben mégis szükségünk lehet
rá, amikor a PF olyan komolyabb
lehetõségeit szeretnénk kiaknázni,
amelyek már nem részei a modulnak. Ilyen
például a &man.pfsync.4;, amely a
PF által használt
állapottáblázatok bizonyos
változásainak megjelenítésére
alkalmas pszeudoeszköz. A &man.carp.4;
megoldásával párosítva így
akár hibatûrõ tûzfalak is
kialakíthatóak a PF-fel. A
CARP megoldásáról a
kézikönyvben bõvebb ismertetést a ad.A PF rendszermag
konfigurációs beállításai a
/usr/src/sys/conf/NOTES
állományban találhatóak:device pf
device pflog
device pfsyncA device pf
beállítás engedélyezi a
csomagszûrõ tûzfalat (&man.pf.4;).A device pflog megadásával
keletkezik egy &man.pflog.4; pszeudo hálózati
eszköz, amellyel egy &man.bpf.4; eszközre
érkezõ forgalmat tudunk naplózni.
Ezután a &man.pflogd.8; démon
használható tõle származó
naplózott adatok
rögzítésére.A device pfsync engedélyezi a
&man.pfsync.4; pszeudo hálózati eszköz
létrejöttét, amely az ún.
állapotváltások
megfigyelésére alkalmas.Az rc.conf állományban
elérhetõ beállításokA következõ &man.rc.conf.5;
beállítások aktiválják a
rendszerindítás során a
PF és a &man.pflog.4;
használatát:pf_enable="YES" # a PF engedélyezése (a modul betöltése, ha kell)
pf_rules="/etc/pf.conf" # a pf szabályait tartalmazó állomány
pf_flags="" # a pfctl indításához szükséges további paraméterek
pflog_enable="YES" # a pflogd(8) elindítása
pflog_logfile="/var/log/pflog" # hol tartsa a pflogd az naplóit
pflog_flags="" # a pflogd indításához szükséges paraméterekHa a tûzfalunk mögött egy helyi
hálózat is meghúzódik, akkor az ott
levõ gépek számára valamilyen
módon tudnunk kell továbbítani a csomagokat
vagy címfordítást kell végezni,
így ez is mindenképpen kelleni fog:gateway_enable="YES" # az átjáró funkciók engedélyezéseA szûrési szabályok
megfogalmazásaA PF a beállításait
a &man.pf.conf.5; állomány tárolja (amely
alapértelmezés szerint az
/etc/pf.conf helyen
található), és az ebben
található szabályok alapján
módosítja, dobja el vagy éppen engedi
át a csomagokat. A &os; rendszerünkben ehhez
találhatunk néhány példát a
/usr/share/examples/pf/
könyvtárban. A PF által
használt szabályokról minden
részletre kiterjedõen a PF felhasználói
útmutatójában olvashatunk.A PF felhasználói
útmutatójának
olvasásakor ne feledkezzünk meg róla, hogy
a különbözõ &os; verziók
különbözõ PF
- verziókat tartalmaznak:
-
-
-
- &os; 5.X —
- OpenBSD 3.5 PF
-
-
- &os; 6.X —
- OpenBSD 3.7 PF
-
-
- &os; 7.X —
- OpenBSD 4.1 PF
-
-
-
+ verziókat tartalmaznak. A
+ &os; 7.X és
+ késõbbi változatok az OpenBSD 4.1
+ kiadásában szereplõ PF
+ változatot tartalmazzák.
A &a.pf; remek hely a PF tûzfal
beállításával és
futtatásával kapcsolatos kérdésekre.
A kérdezés elõtt azonban ne felejtsük el
alaposan átnézni az archívumot!A PF használataA PF a &man.pfctl.8;
segítségével vezérelhetõ. Az
alábbiakban ezzel kapcsolatban most összefoglalunk
néhány hasznos parancsot (de ne felejtsük el
megnézni a &man.pfctl.8; man oldalon
található többi lehetõséget
sem):ParancsLeíráspfctl A PF engedélyezésepfctl A PF tiltásapfctl all /etc/pf.confAz összes (címfordítási,
szûrési, állapottartási stb.)
szabály törlése, és az
/etc/pf.conf állomány
újratöltésepfctl [ rules | nat | state ]A szûrési (rules),
címfordítási
(nat) és
állapottartási (state)
információk
lekérdezésepfctl /etc/pf.confAz /etc/pf.conf
állomány ellenõrzése a benne
levõ szabályok betöltése
nélkülAz ALTQ
engedélyezéseAz ALTQ kizárólag csak
úgy használható, ha a
konfigurációs beállításokon
keresztül beépítjük a &os;
rendszermagjába. Az ALTQ
alkalmazását nem minden hálózati
kártya meghajtója támogatja, ezért
ezt a &man.altq.4; man oldalon ellenõrizzük.A következõ rendszermag
konfigurációs beállításokkal
engedélyezhetjük az ALTQ
használatát és bõvíthetjük
azt további lehetõségekkel:options ALTQ
options ALTQ_CBQ # osztályozás alapú besorolás (Class Bases Queuing, CBQ)
options ALTQ_RED # véletlen korai észlelés (Random Early Detection, RED)
options ALTQ_RIO # RED befele/kifele
options ALTQ_HFSC # hiearchikus csomagütemezõ (Hierarchical Packet Scheduler, HFSC)
options ALTQ_PRIQ # prioritásos besorolás (Priority Queuing, PRIQ)
options ALTQ_NOPCC # az SMP esetén kellAz options ALTQ az
ALTQ rendszert engedélyezi.Az options ALTQ_CBQ engedélyezi a
osztályozás alapú besorolást
(Class Based Queuing,
CBQ). A CBQ
használatával a kapcsolatunkhoz tartozó
sávszélességet
különbözõ osztályokra vagy sorokra
tudjuk bontani és a szûrési
szabályoknak megfelelõen osztályozni
segítségükkel a forgalmat.Az options ALTQ_RED a véletlen
korai észlelés (Random Early
Detection, RED)
használatát engedélyezi. A
RED a hálózati forgalomban
keletkezõ torlódások
elkerülésére alkalmas. A
RED ezt a problémát úgy
oldja meg, hogy méri a sorok hosszát és
összeveti a hozzátartozó minimális
és maximális
küszöbértékekkel. Ha a sor hossza
meghaladja a számára elõírt
maximális értéket, akkor az új
csomagokat eldobja. Nevéhez hûen a
RED az eldobásra ítélt
csomagokat véletlenszerûen választja
ki.Az options ALTQ_RIO engedélyezi a
RED használatát mind a
két irányba, tehát be- és
kifelé.Az options ALTQ_HFSC a pártatlan
hierachikus szolgáltatási görbe alapú
csomagütemezõt (Hierarchical Fair Service
Curve Packet Scheduler, HFSC)
engedélyezi. Vele kapcsolatban a
címen találhatunk bõvebben
olvasnivalót (angolul).Az options ALTQ_PRIQ a prioritásos
besorolást (Priority Queuing,
PRIQ) teszi elérhetõvé. A
PRIQ mindig elsõként a nagyobb
értékû sorban levõ forgalmat
továbbítja.Az options ALTQ_NOPCC az
ALTQ SMP, vagyis
többprocesszoros támogatását adja meg.
Ilyen típusú rendszerekben ez
kötelezõ.Az IPFILTER (IPF) tûzfaltûzfalakIPFILTERAz IPFILTER szerzõje Darren Reed. Az IPFILTER nem
kötõdik egyik rendszerhez sem: ez egy olyan nyílt
forráskódú alkalmazás, amelyet
átírtak &os;, NetBSD, OpenBSD, &sunos;, HP/UX
és &solaris; operációs rendszerekre. Az
IPFILTER karbantartása és támogatása
pillanatnyilag is aktív, folyamatosan jelennek meg
újabb változatai.Az IPFILTER egy rendszermag oldalán
mûködõ tûzfalazási és egy
címfordítási mechanizmusra alapszik, amelyet
felhasználói programokkal tudunk felügyelni
és vezérelni. A tûzfal szabályai az
&man.ipf.8; segédprogrammal
állíthatóak be vagy
törölhetõek. A hálózati
címfordításra vonatkozó
szabályokat az &man.ipnat.1; segédprogrammal
állíthatjuk be vagy törölhetjük. Az
&man.ipfstat.8; segédprogram képes futás
közben statisztikákat készíteni az
IPFILTER rendszermagban elhelyezkedõ részeinek
viselkedésérõl. Az &man.ipmon.8; program pedig
az IPFILTER cselekvéseit képes a
rendszernaplókba feljegyezni.Az IPF eredetileg olyan szabályfeldolgozási
módszer szerint készült, amelyben az
utolsó egyezõ szabály nyer és
csak állapotnélküli szabályokat ismert.
Az idõ múlásával az IPF
részévé vált a quick
opció és a keep state opción
keresztül az állapottartás is, melyek
drámai mértékben
korszerûsítették a szabályok
feldolgozásának elvét. Az IPF hivatalos
dokumentációja csak a régi szabályok
létrehozását és azok
feldolgozásának leírását
tartalmazza. A korszerûsített funkciók csak
kiegészítésképpen jelennek meg,
és az általuk felkínált
elõnyök megértése egy sokkal magasabb
szintû és biztonságosabb tûzfal
megépítését teszik
lehetõvé.A szakaszban szereplõ utasításokban olyan
szabályok szerepelnek, amelyek kihasználják a
quick és keep state
opciókat. Ezek az inkluzív
tûzfalszabályok létrehozásának
alapjai.A régi típusú szabályokról
a
és
címeken olvashatunk (angolul).Az IPF gyakran ismételt kérdései a címen
érhetõek el (angolul).A nyílt forrású IPFILTER
levelezési lista kereshetõ archívumait a
címen találjuk (angolul).Az IPF engedélyezéseIPFILTERengedélyezésAz IPF megtalálható a &os;
alaptelepítésében mint menet közben
külön betölthetõ modul. Ha az
rc.conf állományba
beírjuk a ipfilter_enable="YES" sort,
akkor ez a modul dinamikusan betöltõdik. A
betölthetõ modul alapból naplóz
és a default pass all
beállítást tartalmazza. Ha helyette a
block all szabályt akarjuk
használni, akkor emiatt még nem kell
feltétlenül újrafordítanunk a &os;
rendszermagját, elég ha egyszerûen csak a
szabályrendszerünk végére
beszúrjuk.A rendszermag beállításaia rendszermag
beállításaiIPFILTERa rendszermag
beállításaiIPFILTER_LOGa rendszermag
beállításaiIPFILTER_DEFAULT_BLOCKIPFILTERa rendszermag
beállításaiAz IPF használatához nem kötelezõ a
következõ beállításokkal
újrafordítani a &os; rendszermagját, itt
csupán
háttérinformációként
szerepel. Amikor az IPF a rendszermagba kerül, a
betölhetõ modulra nem lesz szükség.Az IPF a rendszermag forrásai között
található
/usr/src/sys/conf/NOTES
állományban megadott
beállításai a következõ
módon foglalhatóak össze:options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCKAz options IPFILTER engedélyezi az
IPFILTER tûzfal
támogatását.Az options IPFILTER_LOG
hatására az IPF az ipl
csomagnaplózó pszeudo eszközre jegyzi fel a
forgalmat — minden olyan szabály esetén,
ahol megjelenik a log kulcsszó.Az options IPFILTER_DEFAULT_BLOCK
megváltoztatja az alapértelmezett
viselkedést, tehát minden olyan csomag, amely nem
illeszkedik a tûzfal valamelyik pass
típusú (átengedõ)
szabályára, blokkolásra kerül.Ezek a beállítások csak azt
követõen érvényesülnek, ha
fordítottunk és telepítettünk
velük egy új rendszermagot.Az rc.conf állomány
beállításaiAz /etc/rc.conf
állományban a következõ
utasításokra lesz szükségünk az
IPF mûködésbe hozására a rendszer
indítása során:ipfilter_enable="YES" # az ipf tûzfal indítása
ipfilter_rules="/etc/ipf.rules" # betölti a szabályokat tartalmazó szöveges állományt
ipmon_enable="YES" # elindítja az IP monitor naplózását
ipmon_flags="-Ds" # D = indítás démonként
# s = naplózás a syslog használatával
# v = a tcp ablak, ack, seq csomagok naplózása
# n = az IP-címek és portok feloldásaHa olyan helyi hálózat áll meg a
tûzfal mögött, amely egy fenntartott
privát IP-címtartományt használ,
akkor még a következõ
utasításokra is szükségünk lesz a
címfordítás
bekapcsolásához:gateway_enable="YES" # a helyi hálózat átjárója
ipnat_enable="YES" # az ipnat funkció elindítása
ipnat_rules="/etc/ipnat.rules" # az ipnat mûködéséhez szükséges definíciókIPFipfAz &man.ipf.8; parancs használható a
szabályokat tartalmazó állomány
betöltésére. Általában egy
állományba írjuk össze a tûzfal
szabályait és ezzel a paranccsal
cseréljük le egyszerre a tûzfalban levõ
jelenlegi szabályokat:&prompt.root; ipf -Fa -f /etc/ipf.rulesAz az összes belsõ
szabály törlését jelenti.Az jelzi, hogy egy
állományból kell beolvasni a
betöltendõ szabályokat.Ezzel mintegy lehetõségünk van
változtatni a korábban
összeállított szabályainkon, futtatni
a fenti IPF parancsot és ezen keresztül úgy
frissíteni a szabályok friss
másolatával a már mûködõ
tûzfalat, hogy nem is kell újraindítanunk a
rendszert. Ez a módszer igen kényelmes az
új szabályok
kipróbálásához, mivel
bármikor tetszõlegesen
végrehajtható.Az &man.ipf.8; man oldala tartalmazza a parancsnak
megadható további
beállításokat.Az &man.ipf.8; parancs a szabályokat
tároló állományt egy
szabványos szöveges állománynak
tekinti, semmilyen szimbolikus helyettesítést
alkalmazó szkriptet nem fogad el.Lehetõségünk van azonban olyan IPF
szabályokat készíteni, amelyek
kiaknázzák a szkriptek szimbolikus
helyettesítésének lehetõségeit.
Errõl bõvebben lásd .Az IPFSTATipfstatIPFILTERstatisztikaAz &man.ipfstat.8; alapértelmezés szerint a
arra használatos, hogy le tudjuk kérdezni
és megjeleníteni a tûzfalhoz tartozó
számlálók értékeit, amelyek a
legutóbbi indítás vagy az ipf
-Z parancs által kiadott
lenullázásuk óta a bejövõ vagy
kimenõ forgalomból a megadott szabályoknak
megfelelõ csomagok alapján gyûjtenek össze
statisztikákat.A parancs mûködésének
részleteit az &man.ipfstat.8; man oldalon
olvashatjuk.Az &man.ipfstat.8; meghívása alapból
így néz ki:input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0
output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0
input packets logged: blocked 99286 passed 0
output packets logged: blocked 0 passed 0
packets logged: input 0 output 0
log failures: input 3898 output 0
fragment state(in): kept 0 lost 0
fragment state(out): kept 0 lost 0
packet state(in): kept 169364 lost 0
packet state(out): kept 431395 lost 0
ICMP replies: 0 TCP RSTs sent: 0
Result cache hits(in): 1215208 (out): 1098963
IN Pullups succeeded: 2 failed: 0
OUT Pullups succeeded: 0 failed: 0
Fastroute successes: 0 failures: 0
TCP cksum fails(in): 0 (out): 0
Packet log flags set: (0)Az mint bejövõ (inbound), vagy
az mint kimenõ (outbound) forgalomra
vonatkozó paraméterek megadásával a
rendszermagban az adott oldalon jelenleg telepített
és alkalmazott szabályokat kérhetjük
le és jeleníthetjük meg.Az ipfstat -in parancs így a
bejövõ forgalomra vonatkozó belsõ
szabályokat mutatja a szabályok
számával.Az ipfstat -on parancs a kimenõ
forgalmat érintõ belsõ szabályokat
mutatja a szabályok számával.Az eredmény körülbelül ilyen
lesz:@1 pass out on xl0 from any to any
@2 block out on dc0 from any to any
@3 pass out quick on dc0 proto tcp/udp from any to any keep stateAz ipfstat -ih a bejövõ
forgalomhoz tartozó belsõ szabályokat mutatja
és mindegyik elé odaírja, hogy eddig mennyi
csomag illeszkedett rájuk.Az ipfstat -oh ugyanígy a
kimentõ forgalom esetén mutatja a belsõ
szabályokat és mindegyik elõtt
feltünteti, hogy az adott pillanatig mennyi csomag
illeszkedett rájuk.A kimenete nagyjából ilyen lesz:2451423 pass out on xl0 from any to any
354727 block out on dc0 from any to any
430918 pass out quick on dc0 proto tcp/udp from any to any keep stateAz ipfstat parancs talán egyik
legfontosabb funkciója a
kapcsolóval csalható elõ, melynek
hatására a rendszerben aktív
állapotok táblázatát mutatja meg
ugyanúgy, ahogy a &man.top.1; a &os; rendszerben
futó programokat. Amikor a tûzfalunk
támadás alatt áll, ezzel a
funkcióval tudjuk a problémát
beazonosítani, leásni a mélyébe
és látni a támadótól
érkezõ csomagokat. A
kiegészítésképpen megadható
alkapcsolók megadásával
kiválaszthatjuk azt a cél vagy forrás
IP-címet, portot vagy protokollt, amelyet valós
idõben meg akarunk figyelni. Ennek részleteit az
&man.ipfstat.8; man oldalán láthatjuk.Az IPMONipmonIPFILTERnaplózásAz ipmon megfelelõ
mûködéséhez be kell kapcsolnunk a
rendszermag IPFILTER_LOG
beállítását. Ez a parancs
két különbözõ módban
használható. Ha parancsot a
opció nélkül gépeljük be, akkor
ezek közül alapból a natív módot
kapjuk meg.A démon mód abban az esetben hasznos, ha
folyamatosan naplózni akarjuk a rendszerben zajló
eseményeket, majd késõbb ezeket
átnézni. Így képes egymással
együttmûködni a &os; és az IPFILTER. A
&os; beépítve tartalmaz olyan
lehetõséget, aminek révén
magától cseréli a rendszernaplókat.
Ezért ha átküldjük a &man.syslogd.8;
démonnak a naplózandó üzeneteket,
akkor sokkal jobban járunk, mintha egyszerûen csak
mezei állományba naplóznánk. Az
rc.conf alapértelmezései
között az ipmon_flags
beállítás a
kapcsolókat rögzíti:ipmon_flags="-Ds" # D = indítás démonként
# s = naplózás a syslog használatával
# v = a tcp ablak, ack, seq csomagok naplózása
# n = az IP-címek és portok nevének feloldásaEnnek a viselkedésnek az elõnyei minden
bizonnyal egyértelmûek.
Segítségével képesek vagyunk az
esetek megtörténte után
átnézni, hogyan milyen csomagokat dobott el a
rendszer, azok milyen címekrõl érkeztek
és hova szánták. Ez egy komoly fegyver a
támadók lenyomozásában.Hiába engedélyezzük a
naplózást, az IPF
önszántából semmilyen
naplózási szabályt nem fog gyártani.
A tûzfal gazdájának kell eldöntenie,
hogy a szabályokat közül melyiket akarja
naplózni, és így neki kell megadnia a
log kulcsszót ezekben az esetekben.
Normális esetben csak a deny
szabályokat naplózzák.Egyáltalán nem ritka, hogy a
szabályrendszer végén egy
alapértelmezés szerint mindent eldobó
szabály áll, amely naplóz. Ezzel
lehetõségünk nyílik
rögzíteni azokat a csomagokat, amelyek egyetlen
szabályra sem illeszkedtek.Naplózás az IPMON
használatávalA syslogd egy saját
módszert alkalmaz a naplózott adatok
elkülönítésére. Egy
funkciók (facility) és
szintek (level) segítségével
kialakított speciális csoportosítást
alkalmaz. Az IPMON módja a
security (biztonság)
funkciót használja. Tehát
az IPMON által naplózott összes adat a
security csoportjába kerül. Ezen
túl a következõ szinteken
különíthetjük el igényeinknek
megfelelõen a naplózott adatokat:LOG_INFO - az átengedés vagy blokkolás helyett a "log" kulcsszóval ellátott csomagok
LOG_NOTICE - az át is engedett csomagok
LOG_WARNING - a blokkolt csomagok
LOG_ERR - a naplózott csomagok közül azok, amelyek túlságosan kicsik (hibás a fejlécük)Az IPFILTER csak akkor tud naplózni a
/var/log/ipfilter.log
állományba, ha elõtte létrehozzuk. Az
alábbi parancs erre tökéletesen
megfelelõ:&prompt.root; touch /var/log/ipfilter.logA &man.syslogd.8; mûködését az
/etc/syslog.conf állományban
szereplõ definíciók vezérlik. A
syslog.conf állomány
számottevõ mértékben képes
meghatározni azt, ahogy a
syslog az IPF és a
hozzá hasonló alkalmazásoktól kapott
rendszerszintû üzeneteket kezeli.Az /etc/syslog.conf
állományba az alábbi sor kell
felvennünk:security.* /var/log/ipfilter.logA security.* megadásával az
összes ilyen típusú üzenet egy
elõre rögzített helyre kerül.Az /etc/syslog.conf
állományban elvégzett
módosításokat úgy
léptethetjük érvénybe, ha
újraindítjuk a
számítógépet vagy az
/etc/rc.d/syslogd reload paranccsal
megkérjük a &man.syslogd.8; démont, hogy
olvassa újra az /etc/syslog.conf
állományt.Az imént létrehozott naplót ne
felejtsük el megadni az
/etc/newsyslog.conf
állományban sem, és akkor ezzel a
cseréjét is megoldjuk.A naplózott üzenetek formátumaAz ipmon által létrehozott
üzenetek whitespace karakterekkel elválasztott
adatmezõkbõl állnak. A következõ
mezõk az összes üzenet esetében
megjelennek:A csomag megérkezésének
dátumaA csomag megérkezésének
idõpontja. ÓÓ:PP:MM.E alakban jelennek
meg az órák, percek, másodpercek
és ezredmásodpercek (ez több
számjegy hosszú is lehet) szerintAzon interfész a neve, ahol a csomag
feldolgozásra került, például
dc0A szabályhoz tartozó csoport és
sorszám, például
@0:17Ezek az ipfstat -in paranccsal
nézhetõek meg.Cselekvés: a p mint átment (passed), b
mint blokkolt (blocked), S mint rövid csomag (short
packet), n mint egyik szabályra sem illeszkedett (not
match), L mint naplózás (log). A
módosítók
megjelenítésének sorrendje: S, p, b, n,
L. A nagybetûs P és B azt jelzi, hogy a
csomagot egy felsõbb szintû
beállítás miatt
naplózták, nem egy szabály
hatására.Címek: ez tulajdonképpen három
mezõt takar: a forrás címet és
portot (melyet egy vesszõ választ el), a ->
jelet és cél címet és portot.
Például: 209.53.17.22,80 ->
198.73.220.17,1722.A PR után a protokoll neve
vagy száma olvasható, például
PR tcp.A len csomaghoz tartozó
fejléc és törzsének teljes
hosszát jelöli, például
len 20 40.Amennyiben a csomag TCP, egy
kötõjellel kezdõdõen további
mezõk is megjelenhetnek a beállított
opcióknak megfelelõ betûk
képében. A betûket és
beállításaikat az &man.ipmon.8; man
oldalán olvashatjuk.Amennyiben a csomag ICMP, a sort két mezõ
zárja, melyek közül az elsõ tartalma
mindig ICMP, és ezt egy perjellel
elválasztva az ICMP üzenet típusa és
altípusa követi. Tehát például
az ICMP 3/3 a nem elérhetõ port
üzenetet hordozza.A szabályok felírása szimbolikus
helyettesítésselAz IPF használatában gyakorlott
felhasználók közül
néhányan képesek olyan
stílusú szabályrendszert
készíteni, ahol szimbolikus
helyettesítést használnak. Ennek az egyik
legnagyobb elõnye az, hogy ilyenkor elég csak a
szimbolikus névhez tartozó értéket
megváltoztatni és amikor a szkript lefut, akkor az
összes rá hivatkozó szabályba ez
kerül be. Szkript lévén a szimbolikus
helyettesítéssel ki tudjuk emelni a gyakran
használt értékeket és
behelyettesíteni ezeket több helyre. Ezt a most
következõ példában
láthatjuk.Az itt alkalmazott felírás kompatibilis az
&man.sh.1;, &man.csh.1; és &man.tcsh.1;
parancsértelmezõkkel.A szimbolikus helyettesítést egy
dollárjellel fejezzük ki:
$.A szimbolikus mezõkben nem szerepel a $
jelölés.A szimbolikus mezõ tartalmát kettõs
idézõjelbe (")
tesszük.Kezdjük így el a szabályok
írását:######### Az IPF szabályait tartalmazó szkript eleje ###########
oif="dc0" # a kimenõ interfész neve
odns="192.0.2.11" # az internet szolgáltató névszerverének IP-címe
myip="192.0.2.7" # a szolgáltatótól kapott statikus IP-címünk
ks="keep state"
fks="flags S keep state"
# Választhatunk, hogy az /etc/ipf.rules állományt ebbõl a szkriptbõl
# hozzuk létre vagy futtathatjuk "magát" a szkriptet.
#
# Egyszerre csak az egyik sort használjuk.
#
# 1) Ezzel gyárhatjuk le az /etc/ipf.rules állományt:
#cat > /etc/ipf.rules << EOF
#
# 2) Ezzel futtathajuk "magát" a szkriptet:
/sbin/ipf -Fa -f - << EOF
# Engedélyezzük a szolgáltató névszerverének elérését.
pass out quick on $oif proto tcp from any to $odns port = 53 $fks
pass out quick on $oif proto udp from any to $odns port = 53 $ks
# Engedélyezzük kifelé a titkosítatlan www funkciót.
pass out quick on $oif proto tcp from $myip to any port = 80 $fks
# Engedélyezzük kifelé a TLS SSL felett üzemelõ titkosított www funkciót.
pass out quick on $oif proto tcp from $myip to any port = 443 $fks
EOF
################## Itt az IPF szkript vége ########################Ennyi lenne. A példában szereplõ
szabályok most nem annyira lényegesek, a
hangsúly most igazából a szimbolikus
helyettesítésen és annak
használatán van. Ha a fenti példát
az /etc/ipf.rules.script
állományba mentjük, akkor ezeket a
szabályokat a következõ paranccsal újra
tudjuk tölteni:&prompt.root; sh /etc/ipf.rules.scriptEgyetlen aprócska gond van a beágyazott
szimbólumokat tartalmazó
állományokkal: az IPF maga nem képes
megérteni a helyettesítéseket, azért
közvetlenül nem olvassa a szkriptet.Ez a szkript két módon
hasznosítható:Vegyük ki megjegyzésbõl a
cat paranccsal kezdõdõ sort,
és tegyük megjegyzésbe az
/sbin/ipf kezdetût. A megszokottak
szerint tegyük az
ipfilter_enable="YES" sort az
/etc/rc.conf állományba,
majd minden egyes módosítása
után futtassuk le a szkriptet az
/etc/ipf.rules állomány
létrehozásához vagy
frissítéséhez.Tiltsuk le az IPFILTER aktiválását
a rendszerindításkor, tehát
írjuk bele az ipfilter_enable="NO"
sort (ami mellesleg az alapértelmezett
értéke) az /etc/rc.conf
állományba.Tegyünk egy, az alábbi szkripthez
hasonlót az /usr/local/etc/rc.d/
könyvtárba. A szkriptnek adjuk valamilyen
értelmes nevet, például
ipf.loadrules.sh. Az
.sh kiterjesztés
használata kötelezõ.#!/bin/sh
sh /etc/ipf.rules.scriptA szkript engedélyeit állítsuk be
úgy, hogy a root
tulajdonában legyen és képes legyen
olvasni, írni valamint végrehajtani.&prompt.root; chmod 700 /usr/local/etc/rc.d/ipf.loadrules.shMost miután a rendszer elindult, az IPF
szabályai be fognak töltõdni.Szabályrendszerek az IPF-benAz IPF esetében a szabályrendszer olyan
szabályokból áll, amelyek a
csomagokról tartalmuk alapján eldöntik, hogy
át kell engedni vagy vissza kell tartani. A gépek
közt két irányban áramló
csomagok egy munkamenet alapú társalgást
képeznek. A tûzfalhoz tartozó
szabályrendszer egyaránt feldolgozza a
internetrõl a hálózatunk felé
igyekvõ csomagokat, illetve a hálózatunk
ezekre adott válaszait. Az egyes
TCP/IP szolgáltatásokat (mint
például telnet, www, levelezés stb.) a
hozzájuk tartozó protokol és
szabványos (fogadó) portszám írja
le. Ezekre a forrásról általában
valamilyen nem szabványos (magasabb
értékû) portról érkeznek
csomagok. Ekkor a kommunikáció összes
paramétere (vagyis a portok és címek)
bármelyike alapján definiálhatunk
blokkolást vagy továbbengedést
leíró szabályokat.IPFILTERa szabályok feldolgozásának
sorrendjeAz IPF eredetileg úgy íródott, hogy a
szabályokat az utolsó illeszkedõ
szabály nyer stílusban dolgozza fel
és csak állapot nélküli
szabályokat ismert. Az idõk folyamán az IPF
szabályai kiegészültek a quick
és az állapottartásra vonatkozó
keep state opciókkal, amelynek
köszönhetõen óriási
mértékben korszerûsödött a
szabályok feldolgozása.A szakaszban szereplõ utasítások olyan
szabályokat alkalmaznak, amelyekben egyaránt
szerepel a quick és az
állapottartásért felelõs keep
state beállítás. Ez az
inkluzív tûzfalak
létrehozásának egyik
alapeszköze.A tûzfal szabályainak
összeállítása során
nagyon óvatosnak kell
lennünk! Bizonyos beállítások
hatására akár ki is
zárhatjuk magunkat a
szerverünkrõl. Az ebbõl fakadó
esetleges kellemetlenségek elkerülése
érdekében javasoljuk, hogy a tûzfal
alapjait elõször helyi konzolról
építsük fel, ne pedig
távolról, például
ssh
segítségével.A szabályok felépítéseIPFILTERa szabályok
felépítéseA szabályok felépítésének
bemutatását itt most leszûkítjük
a modern állapottartó szabályokra és
az elsõ illeszkedõ szabály nyer
típusú feldolgozásra. A szabályok
felírásának régebbi módjai az
&man.ipf.8; man oldalon találhatóak.A # karakterrel egy megjegyzés
kezdetét jelezzük, és általában
a sor végén vagy egy külön sorban bukkan
fel. Az üres sorokat a rendszer nem veszi
figyelembe.A szabályok kulcsszavakat tartalmaznak. Ezeknek a
kulcsszavaknak balról jobbra haladva adott sorrendben
kell szerepelniük. A kulcsszavakat kiemeltük. Egyes
kulcsszavakhoz további beállítások
is tartozhatnak, amelyek maguk is kulcsszavak lehetnek,
és még további opciókkal
rendelkezhetnek. Az alábbi nyelvtan mindegyik
elemét kiemeltük és az alábbiakban
egyenként kifejtjük a részleteiket.CSELEKVÉS BE-KI OPCIÓK
SZÛRÉS ÁLLAPOTTARTÓ PROTOKOLL
FORRÁS_CÍM,CÉL_CÍM OBJEKTUM
PORTSZÁM TCP_BEÁLLÍTÁS
ÁLLAPOTTARTÓCSELEKVÉS = block |
passBE-KI = in | outOPCIÓK = log | quick | on
interfészSZÛRÉS = proto
érték |
forrás/cél IP | port =
szám | flags
beállításPROTOKOLL = tcp/udp | udp | tcp |
icmpFORRÁS_CÍM,CÉL_CÍM
= all | from objektum to
objektumOBJEKTUM =
IP-cím | anyPORTSZÁM =
portszámTCP_BEÁLLÍTÁS
= SÁLLAPOTTARTÓ = keep
stateCSELEKVÉSA cselekvés határozza meg, hogy mit kell
tenni azokkal a csomagokkal, amelyek illeszkednek a
szabály többi részére. Minden
szabályhoz tartoznia kell egy
cselekvésnek. A következõ cselekvések
közül választhatunk:A block megadásával a
szabályban szereplõ szûrési
feltételre illeszkedõ csomagot eldobjuk.A pass megadásával a
szabályban szereplõ szûrési
feltételre illeszkedõ csomagot
átengedjük a tûzfalon.BE-KIAz összes szûrési szabály
esetében kötelezõ egyértelmûen
nyilatkozunk arról, hogy a bemenõ vagy a
kimenõ forgalomra vonatkozik. Ezért a
következõ kulcsszó vagy az
in vagy pedig az out, de
közülük egyszerre csak az egyiket szabad
használni, máskülönben a
szabály hibásnak minõsül.Az in jelenti, hogy a szabályt
az internet felõl az adott interfészen
beérkezõ csomagokra kell alkalmazni.Az out jelenti, hogy a szabályt
az internet felé az adott interfészen
kiküldött csomagokra kell alkalmazni.OPCIÓKEzek az opciók csak a lentebb bemutatott
sorrendben használhatók.A log jelzi, hogy illeszkedés
esetén a csomag fejlécét az
ipl eszközön keresztül
naplózni kell (lásd a
naplózásról szóló
szakaszt).A quickjelzi, hogy illeszkedés
esetén ez lesz a legutolsónak
ellenõrzött szabály és így egy
olyan rövidzárat tudunk
képezni a feldolgozásban, amellyel
elkerüljük a csomagra egyébként
vonatkozó többi szabály
illesztését. Ez az opció a
korszerûsített szabályfeldolgozás
kihasználásához elengedhetetlen.Az on használatával a
szûrés feltételei közé
bevonhatjuk a csomaghoz tartozó hálózati
interfészt. Itt az interfészek az
&man.ifconfig.8; által megjelenített
formában adhatóak meg. Az opció
megadásával csak az adott interfészen az
adott irányba (befelé/kifelé)
közlekedõ csomagokra fog illeszkedni a
szabály. Ez az opció a
korszerûsített szabályfeldolgozás
kihasználásához
nélkülözhetetlen.Amikor naplózunk egy csomagot, akkor a
hozzátartozó fejléc az
IPL csomagnaplózó pszeudo
eszközhöz kerül. A log
kulcsszó után közvetlenül a
következõ minõsítõk szerepelhetnek
(a következõ sorrendben):A body jelzi, hogy a csomag
tartalmának elsõ 128 byte-ját még
jegyezzük fel a fejléc mellé.A first minõsítõt
akkor érdemes használnunk, amikor a
log kulcsszót a keep
state opcióval együtt alkalmazzuk, mivel
ilyenkor csak a szabályt kialakító csomag
kerül naplózásra és nem minden
olyan, ami illeszkedik az állapottartási
feltételekre.SZÛRÉSEbben a szakaszban olyan kulcsszavak jelenhetnek meg,
amelyekkel a csomagok különféle
tulajdonságai alapján
ítélkezhetünk azok
illeszkedésérõl. Itt adott egy
kiinduló kulcsszó, amelyhez további
kulcsszavak is tartoznak, és amelyek közül
csak egyet választhatunk. Az alábbi
általános tulajdonságok alapján
tudjuk szûrni a csomagokat, ebben a sorrendben:PROTOKOLLA proto egy olyan kulcsszó,
amelyhez hozzá kell rendelnünk még
valamelyik opcióját is. Ez az opció
segít az adott protokolloknak megfelelõen
válogatni a csomagok között. A
korszerûsített szabályfeldolgozás
lehetõségeinek
kihasználásához
nélkülözhetetlen.Opcióként a tcp/udp | udp | tcp |
icmp, vagy bármelyik, az
/etc/protocols állományban
megtalálható kulcsszó
felhasználható. A tcp/udp
ebbõl a szempontból speciálisnak
tekinthetõ, mivel hatására egyszerre
illeszthetõek a szabályra a TCP
és UDP csomagok, és
így a protokolltól eltekintve azonos
szabályok felesleges
többszörözését
kerülhetjük el.FORRÁS_CÍM/CÉL_CÍMAz all kulcsszó gyakorlatilag a
from any to any (bárhonnan
bárhova) szinonímája és
nem tartozik hozzá paraméter.A from forrás
to cél
felépítése: a from
és to kulcsszavak az IP-címek
illesztésére használhatóak.
Ilyenkor a szabályokban a forrás
és a cél
paramétereknek is szerepelniük kell. Az
any egy olyan speciális
kulcsszó, amely tetszõleges IP-címre
illeszkedik. Néhány példa az
alkalmazására: from any to
any vagy from 0.0.0.0/0 to any,
from any to 0.0.0.0/0, from
0.0.0.0/0 to any vagy from any to
0.0.0.0.Az IP-címek megadhatóak pontozott numerikus
formában a hálózati maszk bitekben
mért hosszával együtt, vagy akár
egyetlen pontozott numerikus IP-címként.Nincs lehetõség olyan
IP-címtartományok illesztésére,
amelyek nem adhatóak meg kényelmesen ponttal
elválasztott számok és maszk
hosszával. A net-mgmt/ipcalc port az ilyen
számításokat könnyíti meg. A
hálózati maszkok hosszának
megállapításban segíthet az
említett segédprogram (angol nyelvû)
honlapja: .PORTAmikor portra vonatkozó illeszkedést
írunk elõ, megadhatjuk a forrásra és
célra, amit aztán vagy csak
TCP vagy pedig csak UDP
csomagokra alkalmazunk. A portok feltételeinek
megfogalmazásánál használhatjuk a
portok számát vagy az
/etc/services állományban
szereplõ nevüket. Amikor a port egy
from típusú objektum
leírásában jelenik meg, akkor
automatikusan a forrásportot jelenti, míg a
to objektum leírásában
pedig a célportot. A to
objektumoknál a port megadása elengedhetetlen a
korszerûsített szabályfeldolgozás
elõnyeinek kihasználásához.
Példa: from any to any port =
80.Az egyes portokat különbözõ
mûveletek segítségével, numerikusan
hasonlíthatjuk össze, ahol akár
porttartományt is megadhatunk.port "=" | "!=" | "<" | ">" | "<=" | ">=" |
"eq" | "ne" | "lt" | "gt" | "le" | "ge".A porttartományok megadásához
használjuk a port "<>" |
"><" felírási módot.A forrásra és célra
vonatkozó paraméterek után
szereplõ másik két paraméter
nélkülözhetetlen a
korszerûsített szabályfeldolgozás
mûködéséhez.TCP_BEÁLLÍTÁSA beállítások csak a
TCP forgalom
szûrésénél
érvényesülnek. A betûk jelölik
azokat a lehetséges beállításokat,
amelyek a TCP csomagok
fejlécében
megvizsgálhatóak.A korszerûsített
szabályfeldolgozás a flags S
paraméter segítségével ismeri fel
a TCP munkameneteket
kezdeményezõ kéréseket.ÁLLAPOTTARTÓA keep state jelzi, hogy a
szabály paramétereinek megfelelõ
bármely csomag aktiválja az
állapottartó szûrés
használatát.Ez a beállítás
feltétlenül szükséges a
korszerûsített szabályfeldolgozás
megfelelõ kihasználásához.Állapottartó csomagszûrésIPFILTERállapottartó
szûrésAz állapottartó szûrés a csomagok
kétirányú áramlását
egy létrejött kapcsolatba sorolja be. Amikor
aktiválódik, az állapottartó
szabály elõre dinamikusan létrehozza a
kétirányú kommunikációban
megforduló csomagokhoz a megfelelõ belsõ
szabályokat. Olyan vizsgálatokat végez,
amelyek segítségével ki tudja
deríteni, hogy a csomag küldõje és
címzettje között fennálló
kétirányú kapcsolat érvényes
szabályok szerint zajlik-e. Minden olyan csomagot, amely
nem illeszkedik megfelelõen a kapcsolatra vonatkozó
sémára, csalásnak tekintjük és
automatikusan eldobjuk.Az állapottartás révén
lehetõségünk van a TCP vagy
UDP kapcsolatokhoz tartozó
ICMP csomagokat is átengedni a
tûzfalon. Tehát ha kapunk egy 3-as
típusú, 4-es kódú
ICMP választ valamilyen
böngészésre használt
állapottartó szabályon keresztül
kiküldött kérésre, akkor az
automatikusan bejöhet. Amelyik csomagot az IPF
egyértelmûen képes besorolni az aktív
kapcsolatba, még ha az eltérõ protokollt is
használ, beengedi.Ami ilyenkor történik:Az internethez csatlakozó interfészen
keresztül kifelé haladó csomagokat
elõször egy dinamikus állapottábla
alapján illesztjük, és ha a csomag
illeszkedik az aktív kapcsolatban
következõként várt csomagra, akkor
átmegy a tûzfalon és a dinamikus
állapottáblában frissül a kapcsolat
állapota. Az aktív munkameneten kívül
csomagok pedig egyszerûen a kimenõ
szabályrendszer szerint kerülnek
ellenõrzésre.Hasonlóan az elõzõhöz, az internethez
csatlakozó interfészen keresztül
befelé haladó csomagokat elõször egy
dinamikus állapottábla alapján
illesztjük, és ha a csomag illeszkedik az
aktív kapcsolatban következõként
várt csomagra, akkor átmegy a tûzfalon
és a dinamikus állapottáblában
frissül a kapcsolat állapota. Az aktív
munkamenethez nem tartozó csomagok pedig egyszerûen
a bejövõ szabályrendszer szerint kerülnek
ellenõrzésre.Amikor egy kapcsolat befejezõdik, automatikusan
törlõdik a dinamikus
állapottáblából.Az állapottartó csomagszûrés
használatával az újonnan keletkezõ
kapcsolatok elutasítására vagy
engedélyezésére tudunk koncentrálni.
Ha engedélyeztük egy új kapcsolat
létrejöttét, akkor a
rákövetkezõ összes többi csomag
automatikusan átmegy a tûzfalon és minden
más hamis csomag eldobódik. Ha tiltjuk az
új kapcsolatot, akkor egyetlen
rákövetkezõ csomag sem juthat át. Az
állapottartó szûrés által
felkínált fejlett elemzési
lehetõségek képesek védelmet
nyújtani a behatolók részérõl
alkalmazott megannyi különbözõ
támadási módszer ellen.Példa inkluzív
szabályrendszerreA most következõ szabályrendszer arra mutat
példát, hogyan programozzunk le egy nagyon
biztonságos inkluzív tûzfalat. Az
inkluzív tûzfalak csak a szabályainak
megfelelõ szolgáltatásokat engedik
keresztül, és alapértelmezés szerint
minden mást blokkolnak. Egy hálózat
gépeit védõ tûzfalnak, amelyet gyakran
hálózati tûzfalnak (network
firewall) is neveznek, legalább két
hálózati interfésszel kell rendelkeznie.
Ezeket az interfészeket általában
úgy állítják be, hogy
tökéletesen megbíznak az egyik oldalban (a
helyi hálózatban), a másikban (az
internetben) pedig egyáltalán nem. A
tûzfalat egyébként úgy is
beállíthatjuk, hogy csak a tûzfalat
mûködtetõ gépet védje — ezt
egyrendszeres tûzfalnak (host based
firewall) nevezik. Az ilyen típusú
megoldásokat nem biztonságos
hálózaton keresztül kommunikáló
szervereknél alkalmaznak.Mindegyik &unix;-típusú rendszert,
köztük a &os;-t is úgy
alakították ki, hogy az operációs
rendszeren belüli kommunikáció az
lo0 interfészen és a
127.0.0.1 IP-címen
keresztül történik. A tûzfal
szabályai között feltétlenül
szerepelniük kell olyanoknak, amelyek lehetõvé
teszik ezen a speciális intefészen a csomagok
zavartalan mozgását.Az internetre csatlakozó interfészhez kell
rendelni a kifelé és befelé haladó
forgalom hitelesítését é a
hozzáférésének
vezérlését. Ez lehet a
felhasználói PPP által létrehozott
tun0 interfész vagy a DSL-,
illetve kábelmodemhez csatlakozó
hálózati kártya.Ahol egy vagy több hálózati kártya
is csatlakozik több különbözõ helyi
hálózathoz, úgy kell
beállítani a hozzájuk tartozó
interfészeket, hogy egymás felé és
az internet felé képesek legyenek küldeni
és fogadni.A szabályokat elõször három nagy
csoportba kell szerveznünk: elõször jönnek a
megbízható interfészek, ezeket követik
az internet felé mutató interfészek,
végül internet felõl jövõ, nem
megbízható interfészeke.Az egyes csoportokban szereplõ szabályokat
úgy kell megadni, hogy közülük elõre
kerüljenek a leggyakrabban alkalmazottak, és a
csoport utolsó szabálya blokkoljon és
naplózzon minden csomagot az adott interfészen
és irányban.A kimenõ forgalomat vezérlõ
szabályrendszer csak pass
(tehát átengedõ) szabályokat
tartalmazhat, amelyek bentrõl az interneten
elérhetõ szolgáltatásokat
azonosítják egyértelmûen. Az
összes ilyen szabályban meg kell jelenni a
quick, on,
proto, port és
keep state
beállításoknak. A proto
tcp szabályok esetében meg kell adni a
flag opciót is, amivel fel tudjuk
ismertetni a kapcsolatok keletkezését és
ezen keresztül aktiválni az
állapottartást.A bejövõ forgalmat vezérlõ
szabályrendszerben elõször az eldobni
kívánt csomagokat kell megadni, aminek két
eltérõ oka van. Elõször is
elõfordulhat, hogy a veszélyes csomagok
részleges illeszkedés miatt szabályosnak
tûnnek. Az ilyen csomagokat értelemszerûen nem
lenne szabad beengedni a szabályok részleges
megfelelése alapján. A másodszor az eleve
ismerten problémás és értelmetlen
csomagokat csendben el kellene vetni, mielõtt a szakaszhoz
tartozó utolsó szabály fogná meg
és naplózná. Ez az utolsó
szabály egyébként szükség
esetén felhasználható a
támadók elleni bizonyítékok
begyûjtésére.A másik, amire még oda kell figyelnünk,
hogy a blokkolt csomagok esetében semmilyen válasz
nem keletkezzen, egyszerûen csak tûnjenek el.
Így a támadó nem fogja tudni, hogy a
csomagjai vajon elérték-e a rendszerünket.
Minél kevesebb információt tudnak
összegyûjteni a rendszerünkrõl a
támadók, annál több idõt kell
szánniuk csínytevéseik
kieszelésére. A log first
opciót tartalmazó szabályok csak az
illeszkedésnél fogják naplózni a
hozzájuk tartozó eseményt. Erre
láthatunk példát az nmap OS
fingerprint szabálynál. Az security/nmap segédprogramot
a támadók gyakran alkalmazzák a
megtámadni kívánt szerver
operációs rendszerének
felderítésére.Minden log first opcióval megadott
szabály illeszkedésénél a
ipfstat -hio parancs
meghatározódik az eddigi illeszkedések
aktuális száma. Nagyobb értékek
esetében következtethetünk arra, hogy a
rendszerünket megtámadták (vagyis csomagokkal
árasztják éppen el).Az ismeretlen portszámok
felderítésére az
/etc/services állomány,
esetleg a
(angol nyelvû) honlap használható.Érdemes továbbá megnézni a
trójai programok által használt portokat a
címen (angolul).A következõ szabályrendszer egy olyan
biztonságos inkluzív
típusú tûzfal, amelyet éles rendszeren
is használnak. Ezt a rendszerünkön nem
használt szolgáltatásokra vonatkozó
pass szabályok
törlésével könnyedén a
saját igényeink szerint
alakíthatjuk.Ha nem akarunk látni bizonyos üzeneteket, akkor
vegyünk fel hozzájuk egy block
típusú szabályt a befelé
irányuló forgalomhoz tartozó
szabályok közé.A szabályokban írjuk át a
dc0 interfész nevét annak
a hálózati kártyának az
interfészére, amelyen keresztül csatlakozunk
az internethez. A felhasználói PPP
esetében ez a tun0 lesz.Tehát a következõket kell beírni az
/etc/ipf.rules
állományba:#################################################################
# A helyi hálózatunkon zajló forgalmat ne korlátozzuk.
# Csak akkor kell, ha helyi hálózathoz is csatlakozunk.
#################################################################
#pass out quick on xl0 all
#pass in quick on xl0 all
#################################################################
# A belsõ interfészen szintén ne korlátozzunk semmit.
#################################################################
pass in quick on lo0 all
pass out quick on lo0 all
#################################################################
# Az internet felé forgalmazó interfész (kimenõ kapcsolatok)
# A saját hálózatunkról belülrõl vagy errõl az átjáróról
# kezdeményezett kapcsolatokat vizsgáljuk az internet felé.
#################################################################
# Engedélyezzük az internet szolgáltatók névszerverének elérését,
# az "xxx" helyett a névszervet IP-címét kell megadni.
# Másoljuk le ezeket a sorokat, ha a szolgáltatónknak több
# névszerverét is beakarjuk állítani. A címeiket az /etc/resolv.conf
# állományban találjuk.
pass out quick on dc0 proto tcp from any to xxx port = 53 flags S keep state
pass out quick on dc0 proto udp from any to xxx port = 53 keep state
# DSL vagy kábeles hálózatoknál engedélyezzük a
# szolgáltatónk DHCP szerverének elérését.
# Ez a szabály nem kell, ha "felhasználói PPP"-vel
# kapcsolódunk az internethez, ilyenkor tehát az egész
# csoport törölhetõ.
# Használjuk az alábbi szabályt és keressük meg a naplóban az
# IP-címet. Ha megtaláltuk, akkor tegyük bele a megjegyzésben
# szereplõ szabályba és töröljük az elsõ szabályt.
pass out log quick on dc0 proto udp from any to any port = 67 keep state
#pass out quick on dc0 proto udp from any to z.z.z.z port = 67 keep state
# Kifelé engedélyezzük a szabványos nem biztonságos WWW funkciókat.
pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state
# Kifelé engedélyezzük a biztonságos WWW funkciókat TLS SSL
# protokollal.
pass out quick on dc0 proto tcp from any to any port = 443 flags S keep state
# Kifelé engedélyezzük az e-mailek küldését és fogadását.
pass out quick on dc0 proto tcp from any to any port = 110 flags S keep state
pass out quick on dc0 proto tcp from any to any port = 25 flags S keep state
# Kifelé engedélyezzük az idõ szolgáltatást.
pass out quick on dc0 proto tcp from any to any port = 37 flags S keep state
# Kifelé engedélyezzük az nntp híreket.
pass out quick on dc0 proto tcp from any to any port = 119 flags S keep state
# Kifelé engedélyezzük az átjáróról és a helyi hálózatról a nem
# biztonságos FTP használatát (passzív és akív módokban is). Ez a
# funkció a mûködéséhez a nat szabályokat tartalmazó állományban
# hivatkozott FTP proxyt használja. Amennyiben a pkg_add paranccsal
# csomagokat akarunk telepíteni az átjáróra, erre a szabályra
# mindenképpen szükségünk lesz.
pass out quick on dc0 proto tcp from any to any port = 21 flags S keep state
# Kifelé engedélyezzük az ssh/sftp/scp # (biztonságos telnet/rlogin/FTP)
# szolgáltatások # elérését az SSH (secure shell) használatával.
pass out quick on dc0 proto tcp from any to any port = 22 flags S keep state
# Kifelé engedélyezzük a nem biztonságos telnet elérését.
pass out quick on dc0 proto tcp from any to any port = 23 flags S keep state
# Kifelé engedélyezzük FreeBSD CVSUp funkcióját.
pass out quick on dc0 proto tcp from any to any port = 5999 flags S keep state
# Kifelé engedélyezzük a pinget.
pass out quick on dc0 proto icmp from any to any icmp-type 8 keep state
# Kifelé engedélyezzük a helyi hálózatról érkezõ whois kéréseket.
pass out quick on dc0 proto tcp from any to any port = 43 flags S keep state
# Minden mást eldobunk és naplózzuk az elsõ elõfordulásukat.
# Ez a szabály blokkol alapértelmezés szerint mindent.
block out log first quick on dc0 all
#################################################################
# Az internet felõli interfész (bejövõ kapcsolatok)
# A saját hálózatunk felé vagy erre az átjáróra
# nyitott kapcsolatokat vizsgáljuk az internet felõl.
#################################################################
# Eldobjuk az összes olyan bejövõ forgalmat, amit hivatalosan nem
# lehetne továbbítani vagy fenntartott címterülethez tartozik.
block in quick on dc0 from 192.168.0.0/16 to any #RFC 1918: privát IP
block in quick on dc0 from 172.16.0.0/12 to any #RFC 1918: privát IP
block in quick on dc0 from 10.0.0.0/8 to any #RFC 1918: privát IP
block in quick on dc0 from 127.0.0.0/8 to any #helyi
block in quick on dc0 from 0.0.0.0/8 to any #helyi
block in quick on dc0 from 169.254.0.0/16 to any #DHCP
block in quick on dc0 from 192.0.2.0/24 to any #dokumentációs célokra fenntartva
block in quick on dc0 from 204.152.64.0/23 to any #Sun klaszterek összekötésére használt
block in quick on dc0 from 224.0.0.0/3 to any #D és E osztályú multicast
##### Itt eldobunk egy rakás csúf dolgot ############
# Ezeket nem akarjuk a naplóban látni:
# Eldobjuk a töredékcsomagokat.
block in quick on dc0 all with frags
# Eldobjuk a túlságosan rövid TCP csomagokat.
block in quick on dc0 proto tcp all with short
# Eldobjuk a forrás által közvetített (source routed) csomagokat.
block in quick on dc0 all with opt lsrr
block in quick on dc0 all with opt ssrr
# Elutasítjuk az "OS fingerprint" kéréseket.
# Naplózzuk az elsõ elõfordulást, így nálunk lesz a kíváncsiskodó
# egyén IP-címe.
block in log first quick on dc0 proto tcp from any to any flags FUP
# Eldobunk mindent, aminek speciális beállításai vannak.
block in quick on dc0 all with ipopts
# Elutasítjuk a publikus pinget.
block in quick on dc0 proto icmp all icmp-type 8
# Elutasítjuk az ident kéréseket.
block in quick on dc0 proto tcp from any to any port = 113
# Blokkoljuk az összes Netbios szolgáltatást: 137=név, 138=datagram,
# 139=session. A Netbios az MS Windows megosztását implementálja.
# Blokkoljuk az MS Windows hosts2 névszerver kéréseit is a 81-es
# porton.
block in log first quick on dc0 proto tcp/udp from any to any port = 137
block in log first quick on dc0 proto tcp/udp from any to any port = 138
block in log first quick on dc0 proto tcp/udp from any to any port = 139
block in log first quick on dc0 proto tcp/udp from any to any port = 81
# Engedélyezzük a szolgáltatónk DHCP szerverétõl érkezõ forgalmat.
# Ebben a szabályban meg kell adnunk a szolgáltató DHCP szerverének
# IP-címét, mivel itt csak a hiteles forrásból fogadunk el csomagokat.
# Erre csak DSL- és kábelmodemes kapcsolat esetében van szükség, a
# "felhasználói PPP" alkalmazása során szükségtelen. Ez az IP-cím
# megegyezik a kimenõ kapcsolatoknál megadott címmel.
pass in quick on dc0 proto udp from z.z.z.z to any port = 68 keep state
# Befelé engedélyezzük a szabványos WWW funkciót, mivel webszerverünk
# van.
pass in quick on dc0 proto tcp from any to any port = 80 flags S keep state
# Befelé engedélyezzük az internetrõl érkezõ nem biztonságos telnet
# kapcsolatokat. Azért nem biztonságos, mert az azonosítókat és
# jelszavakat titkosítatlan formában közli az interneten keresztül.
# Töröljük ezt a szabályt, ha nem használunk telnet szervert.
#pass in quick on dc0 proto tcp from any to any port = 23 flags S keep state
# Befelé engedélyezzük az internetrõl # érkezõ ssh/sftp/scp (biztonságos
# telnet/rlogin/FTP) # kapcsolatokat az SSH (secure shell) használatával.
pass in quick on dc0 proto tcp from any to any port = 22 flags S keep state
# Minden mást dobjuk el és naplózzuk az elsõ elõfordulásukat.
# Az elsõ alkalom naplózásával elejét tudjuk venni a "Denial of
# Service" típusú támadásoknak, amivel egyébként lehetséges lenne a
# napló elárasztása.
# Ez a szabály blokkol alapértelmezés szerint mindent.
block in log first quick on dc0 all
################### Itt van a szabályok vége ##############################NATNATIP maszkolásNAThálózati
címfordításNATA NAT jelentése Network
Address Translation, vagyis hálózati
címfordítás. A &linux; esetében ezt
IP masqueradingnak, vagyis IP maszkolásnak
hívják. A hálózati
címfordítás és az IP
maszkolás lényegben ugyanazt takarja. Az IPF
címfordításért felelõs
funkciójának köszönhetõen
képesek vagyunk a tûzfal mögött
elhelyezkedõ helyi hálózat
számára megosztani az
internet-szolgáltatól kapott publikus
IP-címet.Sokakban felmerülhet a kérdés, hogy erre
vajon mi szükségünk lehet. Az
internet-szolgáltatók a
magánszemélyeknek általában
dinamikus IP-címeket osztanak ki. A dinamikus itt arra
utal, hogy a címünk minden alkalommal
változik, amikor betárcsázunk a
szolgáltatóhoz vagy amikor ki- és
bekapcsoljuk a modemünket. Ez a dinamikus IP-cím
fog azonosítani minket az interneten.Most tegyük fel, hogy öt gépünk van
otthon, viszont csak egyetlen elõfizetéssel
rendelkezünk. Ebben az esetben öt telefonvonalat
kellene használnunk és mindegyik géphez
elõfizetni az internetre.A hálózati címfordítás
alkalmazásával azonban mindössze egyetlen
elõfizetés kell. A gépek közül
négyet hozzákötünk egy switch-hez
és a switch-et pedig a fennmaradó géphez,
amelyen &os; fut. Ez utóbbi lesz az így
kialakított helyi hálózatunk
átjárója. A tûzfalban
mûködõ címfordítás
segítségével a helyi
hálózaton található gépek
IP-címeit észrevétlenül át
tudjuk fordítani a hálózatunk publikus
IP-címére, ahogy a csomagok elhagyják az
átjárót. A beérkezõ csomagok
esetében mindez visszafelé történik
meg.Az IP-címek közül adott egy
tartomány, amit a címfordítást
használó helyi hálózatok
részére tartanak fenn. Az RFC 1918 szerint
az alábbi IP-címtartományok
használhatók a helyi hálózatban,
mivel ezeken keresztül közvetlenül sosem lehet
kijutni az internetre:Kezdõ IP: 10.0.0.0-Záró IP: 10.255.255.255Kezdõ IP: 172.16.0.0-Záró IP: 172.31.255.255Kezdõ IP: 192.168.0.0-Záró IP: 192.168.255.255IPNATNATIPFILTERipnatA címfordításra vonatkozó
szabályokat az ipnat paranccsal tudjuk
betölteni. Az ilyen típusú
szabályokat általában az
/etc/ipnat.rules állományban
találjuk. A részleteket lásd az
&man.ipnat.1; man oldalán.Amikor a címfordítás üzembe
helyezése után meg akarjuk változtatni a
címfordítás szabályait,
elõször a címfordítás
szabályait tartalmazó állományt
módosítsuk, majd a belsõ
címfordítási szabályok és a
címfordítási táblázatban
szereplõ aktív bejegyzések
törléséhez futassuk le az
ipnat parancsot a
beállítással.A címfordítási szabályok
újratöltését egy ehhez hasonló
paranccsal tudjuk elvégezni:&prompt.root; ipnat -CF -f /etc/ipnat.szabályokA címfordításhoz tartozó
statisztikákat ezzel a paranccsal tudjuk
lekérdezni:&prompt.root; ipnat -sA címfordítási
táblázatban pillanatnyilag szereplõ
összerendeléseket a következõ paranccsal
tudjuk listázni:&prompt.root; ipnat -lA szabályok feldolgozásával és
az aktív szabályokkal/bejegyzésekkel
kapcsolatos információk
részletezését így
engedélyezhetjük:&prompt.root; ipnat -vA címfordítási
szabályokA címfordítási szabályok nagyon
rugalmasak és rengeteg olyan funkciót meg tudunk
velük valósítani, ami az üzleti
és otthoni felhasználók
számára egyaránt hasznos.Itt most a szabályok
felépítését csak
egyszerûsítve mutatjuk be, leginkább a nem
üzleti környezetek tekintetében. A
szabályok komplett formai leírását
az &man.ipnat.5; man oldalán találjuk.Egy címfordítási szabály
tehát valahogy így néz ki:map INTERFÉSZHELYI_IP_TARTOMÁNY -> PUBLIKUS_CÍMA szabályt a map kulcsszó
kezdi.A INTERFÉSZ helyére
az internet felé mutató külsõ
interfész nevét írjuk be.A HELYI_IP_TARTOMÁNY lesz
az, amelyben a kliensek címeznek. Ez
például a 192.168.1.0/24.A PUBLIKUS_CÍM lehet egy
külsõ IP-cím vagy a 0/32
speciális kulcsszó, amellyel a
FELÜLET-hez rendelt
IP-címre hivatkozunk.Hogyan mûködik a hálózati
címfordításA publikus cél felé haladó csomag
megérkezik a helyi hálózatról.
Miután a kimenõ kapcsolatokra vonatkozó
szabályok átengedik, a
címfordítás kapja meg a szerepet és
fentrõl lefelé haladva nekilát alkalmazni a
saját szabályait, ahol az elsõ egyezõ
szerint cselekszik. A címfordítás a
szabályokat a csomaghoz tartozó interfészre
és a forrás IP-címére illeszti.
Amikor a csomag interfészének neve illeszkedik egy
címfordítási szabályra, akkor
ezután a csomag forrás (vagyis a helyi
hálózaton belüli)
IP-címérõl igyekszik eldönteni, hogy a
szabály nyilának bal oldalán szereplõ
tartományba esik-e. Ha erre is illeszkedik, akkor a
forrás IP-címét átírjuk a
0/32 kulcsszó alapján
felderített publikus IP-címre. A
címfordító rutin ezt feljegyzi a
saját belsõ táblázatába,
így amikor a csomag visszatér az internetrõl,
akkor képes lesz visszafordítani az eredeti
belsõ IP-címére és
feldolgozásra átadni a tûzfal
szabályainak.A címfordítás
engedélyezéseA címfordítás életre
keltéséhez a következõket kell
beállítanunk az /etc/rc.conf
állományban.Elõször engedélyezzük a
gépünknek, hogy közvetítsen forgalmat az
interfészek között:gateway_enable="YES"Minden alkalommal indítsuk el a
címfordításért felelõs IPNAT
programot:ipnat_enable="YES"Adjuk meg az IPNAT számára a
betöltendõ szabályokat:ipnat_rules="/etc/ipnat.rules"Hálózati címfordítás
nagyon nagy helyi hálózatok
esetébenAz olyan helyi hálózatokban, ahol rengeteg PC
található vagy több alhálózatot
is tartalmaz, az összes privát IP-cím
egyetlen publikus IP-címbe
tömörítése igen komoly
problémává tud dagadni és az azonos
portok gyakori használata a helyi hálózatra
kötött számítógépek
között ütközéseket okoz. Két
módon tudunk megoldást nyújtani erre a
problémára.A használható portok
kiosztásaEgy normális címfordítási
szabály valahogy így nézne ki:map dc0 192.168.1.0/24 -> 0/32A fenti szabályban a csomag
forrásportját az IPNAT
változatlanul a feldolgozás után hagyja.
Ha ehhez még hozzátesszük a
portmap kulcsszót, akkor ezzel
utasítani tudjuk az IPNAT-ot, hogy
csak az adott tartományban képezze le a
forrásportokat. Például a
következõ szabály hatására az
IPNAT a forrásportokat egy adott
tartományon belül fogja
módosítani:map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp 20000:60000Ha viszont még inkább meg akarjuk
könnyíteni a dolgunkat, akkor itt egyszerûen
csak adjuk meg az auto kulcsszót,
amellyel az IPNAT
önmagától megállapítja, hogy
milyen portokat tud használni:map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp autoTöbb publikus cím használataMinden nagyobb helyi hálózat esetében
elérkezünk ahhoz a ponthoz, ahol már
egyetlen publikus cím nem elég. Ha több
publikus IP-címmel is rendelkezünk, akkor
ezekbõl a címekbõl egy közös
készletet hozhatunk létre, amibõl
majd az IPNAT válogathat miközben a csomagok
címeit átírja kifelé
menetben.Például ahelyett, hogy a csomagokat egyetlen
publikus IP-címre képeznénk le, ahogy itt
tesszük:map dc0 192.168.1.0/24 -> 204.134.75.1A hálózati maszk
segítségével meg tudjuk adni
IP-címek egy tartományát is:map dc0 192.168.1.0/24 -> 204.134.75.0/255.255.255.0CIDR-jelöléssel:map dc0 192.168.1.0/24 -> 204.134.75.0/24A portok átirányításaGyakran elõfordul, hogy van webszerverünk,
levelezõ szerverünk, adatbázis szerverünk
és névszerverünk, melyek a helyi
hálózat különbözõ
gépein futnak. Ebben az esetben a szerverekhez
tartozó forgalmat is fordítanunk kell, illetve
valamilyen módon a bejövõ forgalmat is
át kell irányítanunk a helyi
hálózat megfelelõ gépeihez. Az
IPNAT ezt a gondot a hálózati
címfordítás
átirányítást támogató
funkcióival szünteti meg. Tegyük fel, hogy a
10.0.10.25 belsõ
címen van egy webszerverünk, amelyhez a 20.20.20.5 publikus IP tartozik.
Ilyenkor a következõ szabályt adjuk meg:rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80vagy:rdr dc0 0.0.0.0/0 port 80 -> 10.0.10.25 port 80Így tudjuk beállítani a 10.0.10.33 címmel
rendelkezõ névszervert a kintrõl
érkezõ névfeloldási
kérések fogadására:rdr dc0 20.20.20.5/32 port 53 -> 10.0.10.33 port 53 udpAz FTP és a címfordításAz FTP egy olyan õskövület, amely még
az internet egy régi korszakából maradt fenn,
amikor az egyetemek között még bérelt
vonal létezett és az FTP szolgált a
kutatók közt az állományok
megosztására. Ez még abban az idõben
történt, amikor a biztonság
egyáltalán nem volt lényeges szempont. Az
évek elõrehaladtával az FTP protokoll
beleivódott a feltörekvõ internet
gerincébe és a titkosítatlanul
küldött azonosítóival és
jelszavaival továbbra is ugyanolyan védtelen
maradt. Az FTP két változatban, aktív
és passzív módban képes
mûködni. Az eltérés kettejük
között az adatcsatorna
megállapításában van. A
passzív mód sokkal biztonságosabb, mivel
ilyenkor az adatcsatornát az FTP kapcsolatot
kezdeményezõ állítja be. Az FTP
különbözõ módjainak
magyarázatát és a köztük
levõ különbséget a
címen ismerhetjük meg részleteiben
(angolul).Az IPNAT szabályaiAz IPNAT egy speciális beépített FTP
proxyval rendelkezik, amelyre a hálózati
címfordítás leképezései
között hivatkozhatunk. Képes figyelni az
összes aktív vagy passzív FTP kapcsolathoz
tartozó kimenõ kérést és
ezekhez dinamikusan létrehozni olyan ideiglenes
szûrési szabályokat, amelyek valóban
csak az adatcsatornához felhasznált portokat
tartalmazzák. Ezzel ki tudjuk
küszöbölni az FTP azon káros
hatását a tûzfalra nézve, hogy
egyszerre túlságosan sok magasabb
tartománybeli port legyen nyitva.Ez a szabály a belsõ hálózat
összes FTP forgalmát lekezeli:map dc0 10.0.10.0/29 -> 0/32 proxy port 21 ftp/tcpEz a szabály pedig az
átjáróról érkezõ FTP
forgalommal bírkózik meg:map dc0 0.0.0.0/0 -> 0/32 proxy port 21 ftp/tcpEz a szabály kezeli a belsõ
hálózatról érkezõ összes
nem FTP típusú forgalmat:map dc0 10.0.10.0/29 -> 0/32Az FTP leképzésére vonatkozó
szabály a szokásos leképzési
szabály elé kerül. Az összes csomag
fentrõl haladva az elsõ illeszkedõ
szabály alapján kerül feldolgozásra.
Elõször az interfész nevét
vizsgáljuk, majd a belsõ hálózatbeli
forrás IP-t, végül azt, hogy a csomag egy
FTP kapcsolat része. Ha minden
paraméterében megfelel, akkor az FTP proxy
készít egy ideiglenes szûrési
szabályt hozzá, amellyel az FTP kapcsolathoz
tartozó csomagok mind a két irányba
képesek lesznek vándorolni, természetesen
a címfordítással együtt. Az
összes többi bentrõl érkezõ csomag
átlép ezen a szabályon és
megáll a harmadiknál, ahol az
interfésznek és forrás IP-nek
megfelelõen átfordítjuk a
címét.Az IPNAT szûrési szabályai
FTP-reAz FTP esetében csak egyetlen szûrési
szabályra van szükségünk a
hálózati címfordításba
épített FTP proxy
használatához.FTP proxy nélkül az alábbi három
szabály kellene:# Kifelé engedélyezzük a belsõ gépek FTP elérést az internet irányába,
# aktív és passzív módokban.
pass out quick on rl0 proto tcp from any to any port = 21 flags S keep state
# Kifelé engedélyezzük a passzív módhoz tartozó magasabb tartománybeli
# adatcsatornákat.
pass out quick on rl0 proto tcp from any to any port > 1024 flags S keep state
# Aktív módban beengedjük az FTP szervertõl érkezõ adatcsatornát.
pass in quick on rl0 proto tcp from any to any port = 20 flags S keep stateIPFWtûzfalakIPFWAz IPFIREWALL (IPFW) a &os; által
támogatott tûzfalazó alkalmazás, melyet a
&os; Projektben résztvevõ önkéntesek
fejlesztettek ki és tartanak karban. Régi
típusú, állapottartás
nélküli szabályokat használ, és
az itt használatos szabályírási
technikát egyszerû állapottartó
megoldásnak nevezzük.Az IPFW szabvány &os;-ben levõ, mintaként
szolgáló szabályrendszere (ez az
/etc/rc.firewall és
/etc/rc.firewall6 állományokban
található meg) annyira egyszerû, hogy komolyabb
módosítások nélkül nem
ajánlatos használni. Ez a példa nem
tartalmaz állapottartó szûrést, ami
viszont a legtöbb esetben kívánatos lenne,
ezért ezt a szakaszt nem erre alapozzuk.Az IPFW állapottartás nélküli
szabályainak felépítésében
olyan technikailag kifinomult leválogatási
képességek bújnak meg, amelyek
jócskán meghaladják az átlagos
tûzfalépítõk tudását. Az
IPFW elsõsorban olyan szakemberek vagy szakmailag
elõrehaladott felhasználók
számára készült, akiknek
speciális csomagszûrési igényeik vannak.
A különbözõ protokollok
használatának és a hozzájuk
tartozó fejlécinformációk mindenre
kiterjedõ ismerete szinte nélkülözhetetlen
az IPFW valódi erejének
kihasználásához. Ez a szint azonban
túlmutat a kézikönyv ezen szakaszának
keretein.Az IPFW hét komponensbõl épül fel,
melyek közül az elsõdleges a rendszermag
tûzfalazásért felelõs
szabályfeldolgozó és a
hozzátartozó csomagnyilvántartás, majd
ezt követi a naplózás, a hálózati
címfordítást aktiváló
divert szabály, valamint a komolyabb
célok megvalósítására alkalmas
lehetõségek: a forgalom
korlátozásáért felelõs dummynet,
a továbbküldésre alkalmas fwd
rule szabály, a hálózati hidak
támogatása, illetve az ipstealth. Az IPFW
egyaránt használható IPv4 és IPv6
esetén.Az IPFW engedélyezéseIPFWengedélyezéseAz IPFW az alap &os; telepítésben
külön, futás idõben betölthetõ
modulként érhetõ el. Ha az
rc.conf állományban megadjuk
a firewall_enable="YES"
beállítást, akkor a rendszer
indulásakor ezt a modult dinamikusan betölti. Az
IPFW-t csak akkor kell a &os; rendszermagjába
beépítenünk, ha szükségünk
van a címfordítási
funkciójára is.Ha tehát az rc.conf
állományban megadtuk a
firewall_enable="YES" sort és
újraindítottuk a
számítógépünket, akkor a
következõ fehérrel kiemelt üzenet fog
megjelenni a rendszerindítás során:ipfw2 initialized, divert disabled, rule-based forwarding disabled, default to deny, logging disabledA logging disabled üzenetbõl
kiderül, hogy a modul nem végez
naplózást. A naplózást és a
hozzátartozó részletesség
szintjét úgy tudjuk beállítani, ha
az /etc/sysctl.conf
állományba felvesszük a következõ
sorokat, amivel a következõ indításkor
már mûködni fog:net.inet.ip.fw.verbose=1
net.inet.ip.fw.verbose_limit=5A rendszermag beállításaia rendszermag
beállításaiIPFIREWALLa rendszermag
beállításaiIPFIREWALL_VERBOSEa rendszermag
beállításaiIPFIREWALL_VERBOSE_LIMITIPFWa rendszermag
beállításaiHa nem akarjuk kihasználni az IPFW által
felkínált címfordítási
lehetõségeket, akkor egyáltalán nem
szükséges a &os; rendszermagjába
belefordítani a támogatását.
Ezért az alábbiakat csak
kiegészítõ
információként tüntettük
fel.options IPFIREWALLEz a beállítás engedélyezi az
IPFW használatát a rendszermag
részeként.options IPFIREWALL_VERBOSEEzzel és a log kulcsszóval
tudjuk az IPFW szabályain keresztülhaladó
csomagokat naplózni.options IPFIREWALL_VERBOSE_LIMIT=5Ez az érték korlátozza a
&man.syslogd.8; segítségével
naplózott azonos bejegyzések maximális
számát. Ezt a beállítást
olyan veszélyes környezetekben érdemes
használnunk, ahol naplózni akarunk.
Segítségével meg tudjuk akadályozni,
hogy a rendszernapló elárasztásával
megakasszák a rendszerünket.a rendszermag
beállításaiIPFIREWALL_DEFAULT_TO_ACCEPToptions IPFIREWALL_DEFAULT_TO_ACCEPTEzen beállítás hatására a
tûzfal alapértelmezés szerint mindent
átenged, ami általában akkor jöhet
jól, amikor elõször beállítjuk a
tûzfalat.a rendszermag
beállításaiIPDIVERToptions IPDIVERTEzzel a beállítással
engedélyezzük a címfordítás
használatát.Ha nem adjuk meg az IPFIREWALL_DEFAULT_TO_ACCEPT
beállítást, vagy ha nem
engedélyezzük a bejövõ csomagokat, akkor
a gépünkre semmilyen csomag nem lesz képes
bejutni, illetve onnan kijutni.Az /etc/rc.conf
beállításaiÍgy tudjuk engedélyezni a
tûzfalat:firewall_enable="YES"A &os;-hez mellékelt alapértelmezett
tûzfaltípusok közül az
/etc/rc.firewall állomány
átolvasásával tudunk választani,
és megadni az alábbi helyett:firewall_type="open"A következõ értékek állnak
rendelkezésünkre:open — átengedi az
összes forgalmatclient — csak ezt a
gépet védisimple — az egész
hálózatot védiclosed — a helyi
interfész kivételével minden IP
alapú forgalmat tiltUNKNOWN — tiltja a tûzfal
szabályainak betöltésétállománynév
— a tûzfal szabályait tartalmazó
állomány abszolút elérési
útvonalaKét különbözõ módon lehet
betölteni a saját ipfw
szabályainkat. Az egyik közülük, ha a
firewall_type változóban
megadjuk a tûzfal szabályait
tartalmazó állomány abszolút
elérési útvonalát, az &man.ipfw.8;
parancssori beállításai nélkül.
Az alábbi példában egy olyan egyszerû
szabályrendszert láthatunk, amely blokkolja az
összes bejövõ és kimenõ
forgalmat:add deny in
add deny outMásrészrõl az
firewall_script változóban is
megadhatjuk azt a szkriptet, amelyben a
rendszerindítás során meghívjuk
ipfw parancsot. Az iménti
szabályrendszert az alábbi szkripttel tudjuk
kiváltani:#!/bin/sh
ipfw -q flush
ipfw add deny in
ipfw add deny outHa a firewall_type
változó client vagy
simple értékét
használjuk, akkor az
/etc/rc.firewall
állományban található
alapértelmezett szabályokat érdemes
átvizsgálnunk, hogy kellõen illeszkednek-e
az adott géphez. Hozzátennénk, hogy a
fejezetben szereplõ példák azt
feltételezik, hogy a firewall_script
értéke az /etc/ipfw.rules
állomány.A naplózás így
engedélyezhetõ:firewall_logging="YES"A firewall_logging
változó egyedül csak annyit tesz, hogy
beállítja a
net.inet.ip.fw.verbose sysctl
változónak az 1
értéket (lásd ). A napló
korlátozására nincs külön
változó az rc.conf
állományon belül, de az
/etc/sysctl.conf állomány
segítségével és manuálisan
be tudjuk állítani a hozzátartozó
változót:net.inet.ip.fw.verbose_limit=5Amennyiben a gépünk
átjáróként viselkedik, tehát
a &man.natd.8; segítségével
címfordítást végez, a ban olvashatunk utána, hogy ehhez
az /etc/rc.conf állományban
milyen beállításokat kell megadnunk.Az IPFW parancsipfwNormál esetben az ipfw parancs
használatos arra, hogy a tûzfal
mûködése közben az aktív belsõ
szabályai közé vegyünk fel vagy
töröljünk közülük
manuálisan bejegyzéseket. Ennek a
módszernek az egyedüli hátránya, hogy
az így végrehajtott
módosítások el fognak veszni a rendszer
leállításával. Itt inkább
azt a megoldást javasoljuk, hogy az összes
szabályt tegyük bele egy állományba
és a rendszerindítás során ezt
töltsük be, majd ha változtatni akarunk a
tûzfalon, akkor ezt az állományt
módosítsuk és a régiek
törlésével töltsük be újra
az egész szabályrendszert.Az ipfw parancs mellesleg remekül
használható a jelenleg futó
tûzfalszabályok megjelenítésére
a konzolon. Az IPFW nyilvántartásában az
egyes szabályokhoz dinamikusan jönnek létre
számlálók, amelyek a rá
illeszkedõ csomagokat számolják. A
tûzfal tesztelése folyamán a szabályok
és hozzátartozó
számlálók lekérdezése a
megfelelõ mûködés
ellenõrzésének egyik lehetséges
módja.A szabályokat így tudjuk egymás
után felsoroltatni:&prompt.root; ipfw listA szabályokat így tudjuk az utolsó
illeszkedésük idejével együtt
megjeleníteni:&prompt.root; ipfw -t listA következõ példában a
nyilvántartási információkat
kérdezzük le, ekkor a szabályok mellett az
illeszkedõ csomagok száma is
láthatóvá válik. Az elsõ
sorban a szabály száma szerepel, majd ezt
követi rendre az illeszkedõ kimenõ és
bejövõ csomagok mennyisége, valamint
végül maga a szabály.&prompt.root; ipfw -a listA statikus szabályok mellett a dinamikusakat
így lehet kilistázni:&prompt.root; ipfw -d listA lejárt dinamikus szabályokat is meg tudjuk
nézni:&prompt.root; ipfw -d -e listA számlálók
nullázása:&prompt.root; ipfw zeroCsak a SZÁM
sorszámú szabályhoz tartozó
számlálók nullázása:&prompt.root; ipfw zero SZÁMSzabályrendszerek az IPFW-benAz IPFW esetében a szabályrendszer olyan
szabályokból áll, amelyek a
csomagokról tartalmuk alapján eldöntik, hogy
át kell engedni vagy vissza kell tartani. A gépek
közt két irányban áramló
csomagok egy munkamenet alapú társalgást
képeznek. A tûzfalhoz tartozó
szabályrendszer egyaránt feldolgozza a
internetrõl a hálózatunk felé
igyekvõ csomagokat, illetve a hálózatunk
ezekre adott válaszait. Az egyes
TCP/IP szolgáltatásokat (mint
például telnet, www, levelezés stb.) a
hozzájuk tartozó protokol és
szabványos (fogadó) portszám írja
le. Ezekre a forrásról általában
valamilyen nem szabványos (magasabb
értékû) portról érkeznek
csomagok. Ekkor a kommunikáció összes
paramétere (vagyis a portok és címek)
bármelyike alapján definiálhatunk
blokkolást vagy továbbengedést
leíró szabályokat.IPFWa szabályok feldolgozásának
sorrendjeAmikor egy csomag eléri a tûzfalat, a
szabályrendszer elsõ szabályával
kerül összehasonlításra és
amíg nem illeszkedik valamelyikre, addig lefut rá
a többi szabály is fentrõl lefelé
egyesével, a sorszámuknak megfelelõ
növekvõ sorrendben. Ha a csomag megfelel valamelyik
szabály leválogatási paramétereinek,
akkor a benne megnevezett cselekvés zajlik le, és
számára a feldolgozás befejezõdik.
Ezt a viselkedést neveztük az elsõ
illeszkedés nyer típusú
keresésnek. Amennyiben a csomag egyetlen
szabályra sem illeszkedik, akkor az IPFW 65535-ös
sorszámú állandó szabálya
fogja elcsípni, amely feladata szerint eldobja az
összes hozzá beérkezõ csomagot
anélkül, hogy bármit is válaszolna a
csomag feladójának.A keresés a count,
skipto és tee
szabályok után még
folytatódik.Az itt szereplõ utasítások
különbözõ állapottartásra
vonatkozó opciókat, például a
keep state, limit,
in, out és
via kulcsszavakat tartalmazó
szabályokon alapulnak. Lényegében ezt
tekinthetjük az inkluzív típusú
tûzfalak kiindulási alapjaként.A tûzfal szabályainak
beállítása során nem árt
óvatosnak lennünk, mert
figyelmetlenségünk révén
könnyen kizárathatjuk magunkat a
gépünkrõl.A szabályok
felépítéseIPFWa szabályok
felépítéseAz itt bemutatásra kerülõ
szabályok felépítését csak
olyan mértékig részletezzük, ami
elengedõ a szabványos inkluzív
típusú tûzfalak
kialakításához. A szabályok
felépítésének pontos
leírását az &man.ipfw.8; man
oldalán találhatjuk meg.A szabályok kulcsszavakat tartalmaznak. Ezeket a
kulcsszavakat soronként egy elõre
rögzített sorrendben kell szerepeltetni. A
kulcsszavakat a szövegben kiemeltük. Bizonyos
kulcsszavakhoz további opciókhoz is
tartozhatnak, amelyek gyakran maguk is kulcsszavak és
szintén további opciókat
tartalmazhatnak.A # egy megjegyzés
kezdetét jelzi, mely egyaránt megjelenhet egy
külön sorban, vagy egy szabályt
tartalmazó sor végén. Az üres sorok
nem vesznek részt a feldolgozásban.PARANCS SZABÁLY_SZÁM
CSELEKVÉS NAPLÓZÁS SZÛRÉS
ÁLLAPOTTARTÁSPARANCSMinden új szabály elõttt az
add (mint hozzáadás)
parancsnak kell szerepelni, amellyel a belsõ
táblázatba tudjuk felvenni.SZABÁLY_SZÁMA szabályokhoz mindig tartozik egy sorszám
is.CSELEKVÉSA szabályhoz az alábbi cselekvések
valamelyike kapcsolható, amely akkor hajtódik
végre, amikor a csomag megfelel a
hozzátartozó szûrési
feltételeknek.allow | accept | pass |
permitA fentiek közül mindegyik ugyanazt jelenti,
vagyis hatásukra az illeszkedõ csomag
kilép a tûzfalból. Ez a szabály
megállítja a keresést.check-stateA csomagot a dinamikus szabályokat
tároló táblázattal veti
össze. Ha itt egyezést talál, akkor
végrehajtja az egyezõ dinamikus
szabályhoz tartozó cselekvést, minden
más esetben továbblép a
következõ szabályra. Ennek a
szabálynak nincs illeszthetõ paramétere.
Ha a szabályrendszerben nem szerepel ilyen, akkor a
dinamikus szabályok vizsgálatát az
elsõ keep-state vagy
limit használatánál
vonja be a rendszer.deny | dropMind a két szó ugyanarra utal, vagyis a
szabályra illeszkedõ csomagokat el kell dobni.
Ebben az esetben a keresés befejezõdik.NAPLÓZÁSlog vagy
logamountAmikor egy csomag egy log
kulcsszót tartalmazó szabályra
illeszkedik, akkor a rendszernaplóban egy üzenet
keletkezik a security (biztonság)
funkción keresztül. A naplóba
ténylegesen csak akkor kerül bele az
üzenet, ha az adott szabály még nem
haladta meg a hozzátartozó
logamount paraméter
értékét. Ha ezt nem adtuk meg, akkor
az itt érvényes korlát a
net.inet.ip.fw.verbose_limit sysctl
változóból fog származni. A
nulla érték mind a két esetben
megszünteti ezt a korlátozást. Ha
elértük a korlátot, akkor a
naplózást úgy tudjuk újra
engedélyezni, ha töröljük a
naplózáshoz tartozó
számláló értékét,
lásd az ipfw reset log
parancsot.A naplózás mindig az összes
paraméter illeszkedésének
ellenõrzése után történik,
de még a cselekvés (accept, deny)
elvégzése elõtt. Teljesen rajtunk
múlik, hogyan milyen szabályokat
naplózunk.SZÛRÉSEbben a szakaszban azok a kulcsszavak
találhatóak, amelyek
segítségével a csomagok
különbözõ tulajdonságait tudjuk
megvizsgálni és eldönteni, hogy
illeszkedik-e a szabályra vagy sem. A
következõ általános
tulajdonságokat tudjuk megvizsgálni, ebben a
kötött sorrendben:udp | tcp | icmpBármilyen más olyan protokoll is
megadható, amely megtalálható az
/etc/protocols
állományban. Ezzel adjuk a csomaghoz
tartozó protokollt. Használata
kötelezõ.from forrás
to célMind a from és
to kulcsszavak IP-címek
illesztésére alkalmasak. A
szabályoknak tartalmazniuk kell a
forrás ÉS a
cél paramétereket
is. Az any egy olyan kulcsszó,
amely tetszõleges IP-címre illeszkedik. A
me pedig egy olyan speciális
kulcsszó, amely a tûzfalat
mûködtetõ &os;-s gép (tehát ez
a gép) adott interfészhez tartozó
IP-címét jelöli, mint ahogy a
from me to any, from any to
me, from 0.0.0.0/0 to any,
from any to 0.0.0.0/0, from
0.0.0.0 to any, from any to
0.0.0.0 vagy from me to 0.0.0.0
paraméterekben. Az IP-címek numerikus
pontozott formában a hálózati maszk
hosszával együtt (CIDR-jelöléssel),
vagy egyszerûen csak pontozott formában
adhatóak meg. A hálózati maszkok
megállapításában a net-mgmt/ipcalc port lehet
segítségünkre. Errõl bõvebb
információkat a segédprogram
honlapján, a címen
találhatunk (angolul).port
számA portszámokat is ismerõ protokollok
esetében (mint például a
TCP vagy UDP) adhatjuk
meg. Fontos, hogy itt annak a szolgáltatásnak
a portszámát adjuk meg, amelyre a
szabály vonatkozik. A szolgáltatás (az
/etc/services
állományból származó)
nevét is megadhatjuk a port száma
helyett.in | outA beérkezõ valamint a kimenõ csomagokat
adhatjuk meg ezen a módon. Itt az
in és out
kulcsszavak, melyeket kötelezõ megadni a
szabály részeként.via
interfészNév szerint az adott interfészen
keresztül haladó csomagokat tudjuk szûrni.
A via kulcsszó
hatására a használt interfész is
számítani fog a csomag feldolgozása
során.setupEz a kulcsszó a TCP csomagok
esetében a kapcsolatok
felépítésére vonatkozó
kéréseket segít
beazonosítani.keep-stateEz egy kötelezõ kulcsszó.
Feldolgozásakor a tûzfal létrehoz
dinamikus szabályt, amely
alapértelmezés szerint az egyazon protokollt
használó forrás és cél
IP/port párosok közti
kétirányú forgalomra fog automatikusan
illeszkedni.limit
{forráscím |
forrásport |
célcím |
célport}A tûzfal csak N darab, a
szabálynak megfelelõ azonos
paraméterû kapcsolatot fog átengedi. Itt
egy vagy több forrás- és
célcím valamint forrás- és
célport adható meg. A
limit és a
keep-state egy szabályon
belül nem használható. A
limit ugyanazokat az
állapottartó funkciókat
képviseli, mint a keep-state, csak
a saját kiegészítéseivel
megtoldva.ÁLLAPOTTARTÁSIPFWállapottartó
szûrésAz állapottartó szûrés a
kétirányú csomagváltásokat
egy létrejött kapcsolatba sorolja. Olyan
vizsgálatokat végez, amivel képes
megállapítani, hogy a csomag küldõje
és címzettje között kialakult
kommunikáció követ-e valamilyen
kétirányú csomagküldésre
érvényes folyamatot. Az így
felállított sablontól eltérõ
összes csomag hamisnak minõsül és
automatikusan eldobásra kerül.A check-state
segítségével ellenõrizhetjük,
hogy az adott csomag a IPFW szerint megfelel-e valamelyik
dinamikusan leképzett szabálynak. Ha egyezik
valamelyikõjükkel, akkor a csomag a
tûzfalból kilépve folytatja
útját és a kommunikációban
soron következõ csomag számára
létrejön egy másik dinamikus
szabály. Ha nincs egyezés, akkor csomag
feldolgozása a szabályrendszer
következõ szabályánál
folytatódik.A dinamikus szabályokat kezelõ rutin
sebezhetõ, mivel ha egyszerre nagy mennyiségû
SYN csomagot küldünk, akkor olyan sok dinamikus
bejegyzés keletkezik, hogy egyszerûen kifogyunk a
rendelkezésre álló
erõforrásokból. A &os; fejlesztõi
azonban az ilyen természetû
támadások kivédésére is
felkészítették, és
kialakították belõle a
limit opciót.
Alkalmazásával le tudjuk korlátozni az
egyszerre folyó párhuzamos kapcsolatok
számát a forrás vagy a cél a
limit paraméternél megadott
mezõinek és a csomag IP-címe
alapján. Így az adott szabályhoz
és IP-címhez csak elõre
rögzített mennyiségû nyitott
állapotú dinamikus szabály
létezhet egy idõben. Ha ezt a korlátot
átlépjük, a csomag eldobódik.A tûzfal üzeneteinek
naplózásaIPFWnaplózásA naplózás elõnyei
nyilvánvalóak. Ha engedélyezzük,
aktiválása után képesek
leszünk olyan információknak
utánanézni, mint például milyen
csomagokat dobtunk el, honnan érkeztek, hova tartottak.
Ez egy komoly fegyverünk lehet a potenciális
támadókkal szemben.Azonban hiába engedélyezzünk
önmagában a naplózást, attól
az IPFW még saját magától nem fog
naplózást elõíró
szabályokat gyártani. A tûzfal
karbantartóinak maguknak kell eldöntenie, hogy a
szabályrendszerben mely szabályokhoz tartozzon
naplózás, nekik kell felvenni ezekhez a
log kulcsszót.
Általában csak az eldobással
járó deny
típusú szabályokat vagy a
bejövõ ICMP pingeket
szokták naplózni. Gyakran úgy
oldják meg ezt, hogy a szabályrendszer
utolsó szabályaként
lemásolják az ipfw
alapértelmezett mindent eldobunk
szabályát és a naplózást
adják meg benne. Ezen a módon fény
derül azokra a csomagokra, amelyek a
szabályrendszerben semmire sem illeszkedtek.A naplózás azonban egy
kétélû fegyver, mivel ha nem vagyunk
elég körültekintõek, akkor a sok
naplóinformáció között
könnyen el tudunk veszni és a lemezünk is
gyorsan betelhet a mindent elfoglaló
naplóktól. Mellesleg a naplók
megdagasztását célzó DoS
típusú támadás a rendszerek
lebénítására alkalmazott egyik
legõsibb technika. Ezek az üzenetek nem csak a
rendszernaplóba kerülnek bele, hanem az
elsõdleges konzol képernyõjére is
kiíródnak, ami egy idõ után
idegesítõ tud lenni.A rendszermag
IPFIREWALL_VERBOSE_LIMIT=5
beállításával azonban
képesek vagyunk korlátozni azokat a
rendszernapló felé küldött
egymás után következõ üzeneteket,
amelyek ugyanarra a szabályra vonatkoznak. Amikor ezt
a beállítást megadjuk a rendszermag
fordításánál, akkor az egyes
szabályokhoz az általa meghatározott
értéken felül nem jön létre
több hasonló üzenet. Hiszen semmi sem
derül ki 200 teljesen azonos
naplóüzenetbõl. Például, ha az
egyes szabályokhoz legfeljebb öt egymást
követõ üzenetet engedélyezünk,
akkor a többi fennmaradó azonos üzenetet
összeszámolja a rendszer és a
következõ módon közvetíti a
rendszernaplózó szolgáltatás
felé:last message repeated 45 timesAmi magyarul így hangzik:az utolsó üzenet 45 alkalommal ismétlõdött megAz összes csomagokkal kapcsolatos
naplózás alapértelmezés szerint a
/var/log/security
állományba kerül, amelyet az
/etc/syslog.conf állomány
definiál.Szabályokat tartalmazó szkript
készítéseA rutinosabb IPFW felhasználók a
szabályokat egy állományban
programozzák le olyan stílusban, hogy
szkriptként is futtatható legyen. Ennek az
egyik legnagyobb elõnye, hogy a tûzfal
szabályai így egyszerre cserélhetõek
a rendszer újraindítása
nélkül. Ez a módszer nagyon
kényelmes az új szabályok
kipróbálásánál, mivel
tetszõleges alkalommal végrehajthatjuk. Mivel ez
egy szkript, ki tudjuk használni az itt megszokott
szimbolikus helyettesítés által
felkínált lehetõségeket, és
ezzel a gyakran használt értékeket is
egyszerre több szabályban tudjuk
helyettesíteni. Erre a következõkben fogunk
egy konkrét példát látni.A szkript felépítése kompatibilis a
&man.sh.1;, &man.csh.1; és &man.tcsh.1;
parancsértelmezõkkel. A szimbolikus mezõk
helyettesítését a $ vagyis
dollárjel vezeti be. Maguk a szimbolikus mezõk
nem tartalmazzák a $ elõtagot. A
szimbolikus mezõk értékeit "kettõs
idézõjelek" között kell megadni.A szabályok összeírását
kezdjük el így:####### itt kezdõdik az ipfw szabályait tartalmazó szkript ######
#
ipfw -q -f flush # töröljük az összes aktuális szabályt
# Set defaults
oif="tun0" # a kimenõ interfész
odns="192.0.2.11" # az internet szolgáltató névszerverének IP-címe
cmd="ipfw -q add " # a szabályok hozzáadásához szükséges elemek
ks="keep-state" # csupán a lustaság miatt
$cmd 00500 check-state
$cmd 00502 deny all from any to any frag
$cmd 00501 deny tcp from any to any established
$cmd 00600 allow tcp from any to any 80 out via $oif setup $ks
$cmd 00610 allow tcp from any to $odns 53 out via $oif setup $ks
$cmd 00611 allow udp from any to $odns 53 out via $oif $ks
#### itt fejezõdik be az ipfw szabályait tartalmazó szkript ######Ezzel készen is vagyunk. Most ne
törõdjünk a példában
szereplõ szabályokkal, itt most a szimbolikus
helyettesítés használatát
igyekeztük bemutatni.Ha az iménti példát az
/etc/ipfw.rules állományba
mentettük el, akkor az alábbi parancs
kiadásával tudjuk újratölteni a
benne szereplõ szabályokat:&prompt.root; sh /etc/ipfw.rulesAz /etc/ipfw.rules
állományt egyébként
tetszõleges néven hívhatjuk és
bárhová rakhatjuk.Ugyanez természetesen elérhetõ a
következõ parancsok egymás utáni
begépelésével is:&prompt.root; ipfw -q -f flush
&prompt.root; ipfw -q add check-state
&prompt.root; ipfw -q add deny all from any to any frag
&prompt.root; ipfw -q add deny tcp from any to any established
&prompt.root; ipfw -q add allow tcp from any to any 80 out via tun0 setup keep-state
&prompt.root; ipfw -q add allow tcp from any to 192.0.2.11 53 out via tun0 setup keep-state
&prompt.root; ipfw -q add 00611 allow udp from any to 192.0.2.11 53 out via tun0 keep-stateÁllapottartó
szabályrendszerekA most következõ
címfordítás nélküli
szabályrendszer arra mutat példát, hogyan
valósítsunk meg egy biztonságos
inkluzív tûzfalat. Az
inkluzív tûzfalak csak a szabályainak
megfelelõ szolgáltatásokat engedik
át, minden mást alapértelmezés
szerint tiltanak. A komplett hálózati
szegmensek védelmére
összeállított tûzfalaknak
legalább két interfészük van,
amelyek mindegyikéhez tartoznia kell
szabályoknak a megfelelõ
mûködéshez.Az &unix; mintájú operációs
rendszer, köztül a &os; is olyan, hogy a rendszerben
belüli kommunikációt a
lo0 nevû interfészen
és a 127.0.0.1
IP-címen bonyolítja le. A tûzfalban
mindenképpen szerepelniük kell olyan
szabályoknak, amelyek gondoskodnak ezen
speciális belsõ csomagok zavartalan
közlekedésérõl.Az internet felé csatlakozó interfész
lesz az, amelyen keresztül a kifelé menõ
kéréseket hitelesítjük és
vezéreljük az internet
elérését, valamint ahol szûrjük
az internet felõl érkezõ
kéréseket. Ez lehet a PPP
esetében a tun0 eszköz,
vagy a DSL-, illetve kábelmodemhez csatlakozó
hálózati kártya.Abban az esetben, amikor egy vagy több
hálózati kártyával csatlakozunk a
tûzfal mögött található
belsõ helyi hálózatra, szintén
gondoskodnunk kell a helyi hálózaton belül
mozgó csomagok akadálymentes
továbbításáról.A szabályokat elõször három
nagyobb osztályba kell sorolnunk: az összes
szabadon forgalmazó interfész, a publikus
kimenõ és a publikus bejövõ
interfész csoportjába.A publikus interfészekhez tartozó
csoportokban úgy kell rendeznünk a
szabályokat, hogy elõre kerüljenek a
gyakrabban használtak és hátra a
kevésbé használtak, valamint a csoportok
utolsó szabálya blokkoljon és
naplózzon minden csomagot az adott interfészen
és irányban.A következõ szabályrendszerben
szereplõ, a kimenõ kapcsolatokat tartalmazó
csoport csak olyan allow
típusú szabályokat tartalmaz, amelyek
szûrési feltételei egyértelmûen
azonosítják az interneten elérhetõ
szolgáltatásokat. Az összes
szabályban megjelennek a proto,
port,
in/out,
via és keep
state opciók. A proto
tcp szabályokban emellett szerepel még
egy setup opció is, amellyel a
kapcsolatokat kezdeményezõ csomagokat tudjuk
azonosítani és felvenni az
állapottartásért felelõs dinamikus
szabályok közé.A bejövõ forgalmat vezérlõ
szabályrendszerben elõször az eldobni
kívánt csomagokat kell megadni, aminek
két eltérõ oka van. Elõször is
elõfordulhat, hogy a veszélyes csomagok
részleges illeszkedés miatt szabályosnak
tûnnek. Az ilyen csomagokat értelemszerûen
nem lenne szabad beengedni a szabályok részleges
megfelelése alapján. A másodszor az
eleve ismerten problémás és
értelmetlen csomagokat csendben el kellene vetni,
mielõtt a szakaszhoz tartozó utolsó
szabály fogná meg és
naplózná. Ez az utolsó szabály
egyébként szükség esetén
felhasználható a támadók elleni
bizonyítékok
begyûjtésére.A másik, amire még oda kell figyelnünk,
hogy a blokkolt csomagok esetében semmilyen
válasz nem keletkezzen, egyszerûen csak
tûnjenek el. Így a támadó nem fogja
tudni, hogy a csomagjai vajon elérték-e a
rendszerünket. Minél kevesebb
információt tudnak összegyûjteni a
rendszerünkrõl a támadók, annál
biztonságosabbnak tekinthetõ.
Amikor ismeretlen portokra érkezõ csomagokat
naplózunk, érdemes az
/etc/services/ állományban
vagy
címen (angolul) utánanézni a porthoz
tartozó szolgáltatásnak. A
különbözõ trójai programok
által portok számai ezen a linken
érhetõek el (angolul): .Példa egy inkluzív
szabályrendszerreA most következõ,
címfordítást nem tartalmazó
szabályrendszer teljesen inkluzív
típusú. Éles rendszereken is nyugodtan
alkalmazhatjuk. Egyszerûen csak annyit kell
tennünk, hogy megjegyzésbe tesszük az olyan
szolgáltatásokra vonatkozó
szabályokat, amelyeket nem akarunk engedélyezni.
Amikor pedig olyan üzenetek jelennek meg a
naplóban, amelyeket nem akarunk tovább
látni, a bejövõ kapcsolatokhoz vegyünk
fel egy deny típusú
szabályt hozzájuk. Minden szabályban
cseréljük ki a dc0
interfészt arra a hálózati
kártyára, amely közvetlenül
csatlakoztatja rendszerünket az internethez. A
felhasználói PPP
esetében ez a tun0.A szabályok használatában
felfedezhetünk egyfajta
rendszerszerûséget:Mindegyik sorban, ahol az internet felé nyitunk
meg egy kapcsolatot, a keep-state
opciót használjuk.Az internetrõl az összes hitelesített
szolgáltatás elérése
tartalmazza a limit opciót az
elárasztások kivédése
miatt.Az összes szabályban az
in vagy az out
paraméterrel megadjuk szûrni
kívánt forgalom
irányát.Az összes szabályban szerepel a
via paraméterrel a csomagokat
továbbító interfész
neve.Az alábbi szabályokat tegyük az
/etc/ipfw.rules
állományba.############## Itt kezdõdnek az IPFW szabályai ##########################
# Kezdés elõtt töröljük az összes aktív szabályt.
ipfw -q -f flush
# Állítsuk be a parancsok további szükséges opciót.
cmd="ipfw -q add"
pif="dc0" # az internethez csatlakozó
# interfész neve
#################################################################
# A belsõ hálózat számára ne korlátozzunk semmit se.
# Ha nincs helyi hálózatunk, akkor erre nincs szükségünk.
# Az 'xl0' nevét írjuk át a helyi hálózatra csatlakozó
# interfész nevére.
################################################################
#$cmd 00005 allow all from any to any via xl0
################################################################
# A rendszer belsõ interfészét se szûrjük.
################################################################
$cmd 00010 allow all from any to any via lo0
################################################################
# A csomagot engedjük át a tûzfalon, ha korábban már felvettünk
# hozzá egy dinamikus szabályt a keep-state opcióval.
################################################################
$cmd 00015 check-state
################################################################
# Az internet felé forgalmazó interfész (kimenõ kapcsolatok)
# A saját hálózatunkról belülrõl vagy errõl az átjáróról
# kezdeményezett kapcsolatokat vizsgáljuk az internet felé.
################################################################
# Kifelé engedélyezzük az internet-szolgáltatónk névszerverének
# elérését. Az x.x.x.x a szolgáltatónk névszerverének IP-címe
# legyen. Ha a szolgáltatónak több névszervere is van, akkor
# másoljuk le ezeket a sorokat és az /etc/resolv.conf
# állományban található IP-címeket helyettesítsük be.
$cmd 00110 allow tcp from any to x.x.x.x 53 out via $pif setup keep-state
$cmd 00111 allow udp from any to x.x.x.x 53 out via $pif keep-state
# Kábel/DSL konfigurációk esetében kifelé engedélyezzük a
# szolgáltatónk DHCP szerverének elérését. Ha a "felhasználói
# PPP"-t használjuk, akkor erre nem lesz szükségünk, az egész
# csoportot törölhetjük. Az alábbi szabállyal csíphetjük el a
# beírandó IP-címet. Ha a naplóban megtaláltuk, akkor vegyük
# ki az elsõ szabályt, a másodikba írjuk bele a címet és
# engedélyezzük.
$cmd 00120 allow log udp from any to any 67 out via $pif keep-state
#$cmd 00120 allow udp from any to x.x.x.x 67 out via $pif keep-state
# Kifelé engedélyezzük a szabvány nem biztonságos WWW
# funkció elérését.
$cmd 00200 allow tcp from any to any 80 out via $pif setup keep-state
# Kifelé engedélyezzük a biztonságos HTTPS funkció
# elérését TLS SSL használatával.
$cmd 00220 allow tcp from any to any 443 out via $pif setup keep-state
# Kifelé engedélyezzük a e-mailek küldését és fogadását.
$cmd 00230 allow tcp from any to any 25 out via $pif setup keep-state
$cmd 00231 allow tcp from any to any 110 out via $pif setup keep-state
# Kifelé engedélyezzük a FreeBSD (a make install és a CVSUP)
# funkcióit. Ezzel lényegében a rendszeradminisztrátornak
# ,,ISTENI'' jogokat adunk.
$cmd 00240 allow tcp from me to any out via $pif setup keep-state uid root
# Kifelé engedélyezzük a pinget.
$cmd 00250 allow icmp from any to any out via $pif keep-state
# Kifelé engedélyezzük az idõ szolgáltatást.
$cmd 00260 allow tcp from any to any 37 out via $pif setup keep-state
# Kifelé engedélyezzük az nntp news szolgáltatást
# (vagyis a hírcsoportokat)
$cmd 00270 allow tcp from any to any 119 out via $pif setup keep-state
# Kifelé engedélyezzük a biztonságos FTP, telnet és SCP
# elérését az SSH (secure shell) használatával.
$cmd 00280 allow tcp from any to any 22 out via $pif setup keep-state
# Kifelé engedélyezzük a whois szolgáltatást.
$cmd 00290 allow tcp from any to any 43 out via $pif setup keep-state
# Dobjuk el és naplózzunk mindent, ami megpróbál kijutni.
# Ez a szabály gondoskodik róla, hogy alapértelmezés szerint
# mindent blokkoljunk.
$cmd 00299 deny log all from any to any out via $pif
################################################################
# Az internet felõli interfész (bejövõ kapcsolatok)
# A saját hálózatunk felé vagy erre az átjáróra
# nyitott kapcsolatokat vizsgáljuk az internet felõl.
################################################################
# Blokkoljunk minden olyan bejövõ forgalmat, amely a fenntartott
# címtartományok felé tart.
$cmd 00300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918: privát IP
$cmd 00301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918: privát IP
$cmd 00302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918: privát IP
$cmd 00303 deny all from 127.0.0.0/8 to any in via $pif #helyi
$cmd 00304 deny all from 0.0.0.0/8 to any in via $pif #helyi
$cmd 00305 deny all from 169.254.0.0/16 to any in via $pif #DHCP
$cmd 00306 deny all from 192.0.2.0/24 to any in via $pif #dokumentációs célokra fenntartott
$cmd 00307 deny all from 204.152.64.0/23 to any in via $pif #Sun klaszterek összekötésére használt
$cmd 00308 deny all from 224.0.0.0/3 to any in via $pif #D és E osztályú multicast
# A nyilvános pingek tiltása.
$cmd 00310 deny icmp from any to any in via $pif
# Az ident szolgáltatás tiltása.
$cmd 00315 deny tcp from any to any 113 in via $pif
# Blokkoljuk az összes Netbios szolgáltatást: 137=név, 138=datagram,
# 139=session. A Netbios az MS Windows megosztását implementálja.
# Blokkoljuk az MS Windows hosts2 névszerver kéréseit is a 81-es
# porton.
$cmd 00320 deny tcp from any to any 137 in via $pif
$cmd 00321 deny tcp from any to any 138 in via $pif
$cmd 00322 deny tcp from any to any 139 in via $pif
$cmd 00323 deny tcp from any to any 81 in via $pif
# Eldobjuk az összes késõn érkezõ csomagot.
$cmd 00330 deny all from any to any frag in via $pif
# Eldobjuk azokat az ACK csomagokat, amelyek egyik dinamikus
# szabálynak sem felelnek meg.
$cmd 00332 deny tcp from any to any established in via $pif
# Befelé engedélyezzük a szolgáltató DHCP szerverének válaszát. Ebben
# a szabályban csak a DHCP szerver IP-címe szerepelhet, mivel ez az
# egyetlen olyan hitelesített forrás, ami ilyen csomagokat küldhet.
# Ez csak a kábeles és DSL típusú kapcsolatok esetében szükséges.
# Amikor a "felhasználói PPP"-vel csatlakozunk az internethez, nem
# kell ez a szabály. Ugyanazt az IP-címet kell megadnunk, amelyet a
# kimenõ kapcsolatoknál is.
#$cmd 00360 allow udp from any to x.x.x.x 67 in via $pif keep-state
# Befelé engedélyezzük a szabvány WWW funkciót, mivel webszerverünk
# is van.
$cmd 00400 allow tcp from any to me 80 in via $pif setup limit src-addr 2
# Befelé engedélyezzük a biztonságos FTP, telnet és SCP
# típusú kapcsolatokat az internetrõl.
$cmd 00410 allow tcp from any to me 22 in via $pif setup limit src-addr 2
# Befelé engedélyezzük az internetrõl érkezõ nem biztonságos telnet
# kapcsolatokat. Azért tekintjük nem biztonságosnak, mert az
# azonosítók és a jelszavak az interneten titkosítatlanul vándorolnak.
# Töröljük ezt a csoportot, ha nincs telnet szolgáltatásunk.
$cmd 00420 allow tcp from any to me 23 in via $pif setup limit src-addr 2
# Dobjuk el és naplózzuk az összes többi kintrõl érkezõ csomagot.
$cmd 00499 deny log all from any to any in via $pif
# Alapértelmezés szerint dobjuk el mindent. Az ide érkezõ
# csomagokat is naplózzuk, amibõl többet is ki tudunk majd
# deríteni.
$cmd 00999 deny log all from any to any
############# Itt fejezõdnek be az IPFW szabályai #####################Példa hálózati
címfordításra és
állapottartásracímfordításés az IPFWAz IPFW címfordító
funkciójának
kihasználásához további
konfigurációs beállítások
alkalmazására is szükségünk
lesz. A rendszermagban opció között meg kell
adnunk az option IPDIVERT sort a többi
IPFIREWALL sor mellett, és
fordítanunk egy saját verziót.Emellett még az /etc/rc.conf
állományban is engedélyezni kell az IPFW
alapvetõ funkcióit.natd_enable="YES" # engedélyezzük a címfordításért felelõs démont
natd_interface="rl0" # az internet felé mutató hálózati kártya neve
natd_flags="-dynamic -m" # -m = a portszámok megtartása, ha lehetségesAz állapottartó szabályok
használata a divert natd
címfordítási opcióval együtt
nagyban növeli a szabályrendszer
leprogramozásának bonyolultságát.
A check-state és divert
natd szabályok helye kritikus a
megfelelõ mûködés tekintetében.
Az eddig megszokott egyszerû viselkedés itt
már nem érvényesül. Bevezetünk
egy új cselekvést is, amelynek a neve
skipto. A skipto
parancs használatához elengedhetetlen a
szabályok sorszámozása, mivel pontosan
tudnunk kell, hogy a skipto
hatására hova kell ugrania a
vezérlésnek.A következõ példában nem fogunk
sok megjegyzést látni, mivel benne az egyik
lehetséges programozási stílust
próbáljuk érzékeltetni és a
csomagok szabályrendszerek közti
áramlását magyarázzuk.A feldolgozás a szabályokat
tartalmazó állomány tetején
található elsõ szabállyal
kezdõdik, és innen egyesével pereg
végig lefelé a feldolgozás egészen
addig, amíg a csomag a szûrési
feltételek valamelyikének eleget nem tesz
és távozik a tûzfalból.
Leginkább a 100-as, 101-es, 450-es, 500-as és
510-es sorszámú szabályokat
emelnénk ki. Ezek vezérlik kimenõ
és bejövõ csomagok
fordítását, ezért a
hozzájuk tartozó dinamikus
állapottartó bejegyzések mindig a helyi
hálózat IP-címeire hivatkoznak. Amit
még érdemes megfigyelnünk, hogy az
összes áteresztõ és eldobó
szabályban szerepel a csomag haladási
iránya (tehát kimenõ vagy éppen
bejövõ) és az érintett
interfészt megnevezése. Emellett azt is
vegyük észre, hogy az összes kifelé
irányuló kapcsolatlétrehozási
kérés az 500-as sorszámú
szabályhoz fog ugrani a
címfordítás
elvégzéséhez.Tegyük fel, hogy a helyi hálózatunkon
levõ felhasználók szeretnek honlapokat
nézgetni az interneten. A honlapok a 80-as porton
keresztül kommunikálnak. Tehát amikor egy
ilyen csomag eléri a tûzfalat, nem fog illeszkedni
a 100-as szabályra, mert a fejléce szerint
kifelé halad és nem befelé. A 101-es
szabályon is átlép, mivel ez az elsõ
csomag, így a dinamikus állapottartó
táblázatban sem szerepel még. A csomag
végül a 125-ös szabályra fog
illeszkedni: kifelé halad az internetre
csatlakozó hálózati
kártyán. A csomagban azonban még mindig
az eredeti forrás IP-címe
található, amely a helyi hálózat
egyik gépére hivatkozik. A szabály
illeszkedésekor két cselekvés is
végbemegy. A keep-state opció
hatására ez a szabály felveszi ezt a
kapcsolatot az állapottartó dinamikus
szabályok közé és végrehajtja
a másik megadott feladatot. Ez a feladat része
a dinamikus táblázatba rögzített
bejegyzésnek, ami ebben az esetben a skipto
500 (ugorjunk az 500-as
szabályra) lesz. Az 500-as szabály a
továbbküldés elõtt lefordítja a
csomag forrás IP-címét. Ezt ne
felejtsük el, nagyon fontos! A csomag ezután
eljut a céljához, és visszatérve
ismét belép a szabályrendszer
tetején. Ezúttal illeszkedni fog a 100-as
szabályra és a cél IP-címét
visszafordítjuk a helyi hálózatunk
megfelelõ gépének címére.
Ezután a check-state
szabályhoz kerül, amely megtalálja a
dinamikus szabályok között és
továbbengedi a belsõ hálózatra.
Ezzel visszakerül a küldõ géphez, amely
egy újabb csomagot küld egy újabb
adatszeletet kérve a távoli szervertõl.
Ekkor már a check-state
szabály megtalálja a hozzátartozó
bejegyzést a dinamikus szabályok
között és végrehajtódik a
korábban letárolt skipto 500
mûvelet. A csomag erre az 500-as szabályra ugrik,
ahol lefordítjuk a címét és
továbbküldjük.Az bejövõ oldalon minden, ami egy
korábban kialakult kapcsolat részeként
érkezik, automatikusan a check-state
és a megfelelõ helyre rakott divert
natd szabályok által dolgozódik
fel. Itt mindössze a rossz csomagok
eldobásával és a hitelesített
szolgáltatások elérésének
biztosításával kell foglalkoznunk.
Például a tûzfalon egy webszerver fut,
és azt szeretnénk, hogy az internetrõl
képesek legyenek elérni a rajta levõ
oldalakat. Az újonnan beérkezõ
kapcsolatépítési kérelem a 100-as
szabályra fog illeszkedni, amelynek a cél
IP-címét a tûzfal helyi
hálózaton található
címére fogjuk leképezni. A csomagot
ezután még megvizsgáljuk, nem tartalmaz-e
valamilyen huncutságot, majd végül a
425-ös szabálynál fog kikötni. Az
egyezéskor két dolog történhet: a
csomaghoz felveszünk egy dinamikus szabályt, de
ezúttal az adott forrás IP-címrõl
érkezõ kapcsolatkérések
számát 2-re lekorlátozzuk. Ezzel az
adott szolgáltatás portján meg tudjuk
óvni a tûzfalat üzemeltetõ gépet
a DoS típusú támadásoktól.
A csomagot ezután hozzátartozó
cselekvés szerint továbbengedjük a
belsõ hálózat felé.
Visszatéréskor a tûzfal felismeri, hogy a
csomag egy már meglevõ kapcsolathoz tartozik,
ezért közvetlenül az 500-as szabályhoz
kerül címfordításra, majd a
kimenõ interfészen keresztül
továbbküldjük.Íme az elsõ példa egy ilyen
szabályrendszerre:#!/bin/sh
cmd="ipfw -q add"
skip="skipto 500"
pif=rl0
ks="keep-state"
good_tcpo="22,25,37,43,53,80,443,110,119"
ipfw -q -f flush
$cmd 002 allow all from any to any via xl0 # nem szûrjük a belsõ hálózatot
$cmd 003 allow all from any to any via lo0 # nem szûrjük a helyi interfészt
$cmd 100 divert natd ip from any to any in via $pif
$cmd 101 check-state
# A kimenõ csomagok hitelesítése:
$cmd 120 $skip udp from any to xx.168.240.2 53 out via $pif $ks
$cmd 121 $skip udp from any to xx.168.240.5 53 out via $pif $ks
$cmd 125 $skip tcp from any to any $good_tcpo out via $pif setup $ks
$cmd 130 $skip icmp from any to any out via $pif $ks
$cmd 135 $skip udp from any to any 123 out via $pif $ks
# Az összes olyan csomagot eldobjuk, amely a fenntartott
# címtartományokba tart:
$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918: privát IP
$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918: privát IP
$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918: privát IP
$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #helyi
$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #helyi
$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP
$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #dokumentációs célokra fenntartott
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun klaszter
$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #D és E osztályú multicast
# Az érkezõ csomagok hitelesítése:
$cmd 400 allow udp from xx.70.207.54 to any 68 in $ks
$cmd 420 allow tcp from any to me 80 in via $pif setup limit src-addr 1
$cmd 450 deny log ip from any to any
# Ide ugrunk a kimenõ állapottartó szabályoknál:
$cmd 500 divert natd ip from any to any out via $pif
$cmd 510 allow ip from any to any
##################### a szabályok vége ##################A következõ példa teljesen megegyezik az
elõzõvel, azonban itt már
dokumentációs szándékkal
szerepelnek megjegyzések is, melyek a tapasztalatlan
IPFW szabályíróknak segítik jobban
megérteni a szabályok pontos
mûködését.A második példa:#!/bin/sh
############# Az IPFW szabályai itt kezdõdnek ###########################
# Kezdés elõtt töröljük az összes jelenleg aktív szabályt:
ipfw -q -f flush
# Beállítjuk a parancsok megfelelõ elõtagjait:
cmd="ipfw -q add"
skip="skipto 800"
pif="rl0" # az internethez csatlakozó
# hálózati interfész neve
#################################################################
# A belsõ hálózat számára ne korlátozzunk semmit se.
# Ha nincs helyi hálózatunk, akkor erre nincs szükségünk.
# Az 'xl0' nevét írjuk át a helyi hálózatra csatlakozó
# interfész nevére.
#################################################################
$cmd 005 allow all from any to any via xl0
#################################################################
# A rendszer belsõ interfészét se szûrjük.
#################################################################
$cmd 010 allow all from any to any via lo0
#################################################################
# Ellenõrizzük, hogy ez egy beérkezõ csomag és ha igen, akkor
# fordítsuk a címét.
#################################################################
$cmd 014 divert natd ip from any to any in via $pif
#################################################################
# Ha ehhez a csomaghoz korábban már vettük fel dinamikus
# szabályt a keep-state opció révén, akkor engedjük tovább.
#################################################################
$cmd 015 check-state
#################################################################
# Az internet felé forgalmazó interfész (kimenõ kapcsolatok)
# A saját hálózatunkról belülrõl vagy errõl az átjáróról
# kezdeményezett kapcsolatokat vizsgáljuk az internet felé.
#################################################################
# Kifelé engedélyezzük az internet-szolgáltatónk névszerverének
# elérését. Az x.x.x.x a szolgáltató névszerverének IP-címe
# lesz. Ha a szolgáltatónknak több névszervere is van, akkor
# az /etc/resolv.conf állományból nézzük ki a címeiket és
# másoljuk le az alábbi sor mindegyikükhöz.
$cmd 020 $skip tcp from any to x.x.x.x 53 out via $pif setup keep-state
# A kábeles és DSL kapcsolatok esetén engedélyezzük a szolgáltató
# DHCP szerverének elérését.
$cmd 030 $skip udp from any to x.x.x.x 67 out via $pif keep-state
# Kifelé engedélyezzük a szabvány nem biztonságos WWW funkciót
$cmd 040 $skip tcp from any to any 80 out via $pif setup keep-state
# Kifelé engedélyezzük a biztonságos HTTPS funkciót a TLS SSL
# használatával.
$cmd 050 $skip tcp from any to any 443 out via $pif setup keep-state
# Kifelé engedélyezzük az e-mailek küldését és fogadását.
$cmd 060 $skip tcp from any to any 25 out via $pif setup keep-state
$cmd 061 $skip tcp from any to any 110 out via $pif setup keep-state
# Kifelé engedélyezzük a FreeBSD (make install és CVSUP) funkcióit.
# Ezzel a rendszeradminisztrátornak ,,ISTENI'' jogokat adunk.
$cmd 070 $skip tcp from me to any out via $pif setup keep-state uid root
# Kifelé engedélyezzük a pinget.
$cmd 080 $skip icmp from any to any out via $pif keep-state
# Kifelé engedélyezzük az idõ szolgáltatást.
$cmd 090 $skip tcp from any to any 37 out via $pif setup keep-state
# Kifelé engedélyezzük az nntp news szolgáltatást (tehát a
# hírcsoportokat).
$cmd 100 $skip tcp from any to any 119 out via $pif setup keep-state
# Kifelé engedélyezzük a biztonságos FTP, telnet és SCP
# funkciókat az SSH (secure shell) használatával.
$cmd 110 $skip tcp from any to any 22 out via $pif setup keep-state
# Kifelé engedélyezzük ki a whois kéréseket.
$cmd 120 $skip tcp from any to any 43 out via $pif setup keep-state
# Kifelé engedélyezzük az NTP idõszerver elérését.
$cmd 130 $skip udp from any to any 123 out via $pif keep-state
#################################################################
# Az internet felõli interfész (bejövõ kapcsolatok)
# A saját hálózatunk felé vagy erre az átjáróra
# nyitott kapcsolatokat vizsgáljuk az internet felõl.
#################################################################
# Tiltsuk a fenntartott címtartományok felé haladó összes beérkezõ
# forgalmat.
$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918: privát IP
$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918: privát IP
$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918: privát IP
$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #helyi
$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #helyi
$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP
$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #dokumentációs célokra fenntartott
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun klaszter
$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #D és E osztályú multicast
# Az ident tiltása.
$cmd 315 deny tcp from any to any 113 in via $pif
# Blokkoljuk az összes Netbios szolgáltatást: 137=név, 138=datagram,
# 139=session. A Netbios az MS Windows megosztását implementálja.
# Blokkoljuk az MS Windows hosts2 névszerver kéréseit is a 81-es
# porton.
$cmd 320 deny tcp from any to any 137 in via $pif
$cmd 321 deny tcp from any to any 138 in via $pif
$cmd 322 deny tcp from any to any 139 in via $pif
$cmd 323 deny tcp from any to any 81 in via $pif
# Dobjuk el a késõn érkezõ csomagokat.
$cmd 330 deny all from any to any frag in via $pif
# Dobjuk el azokat az ACK csomagokat, amelyekre nincs
# dinamikus szabály.
$cmd 332 deny tcp from any to any established in via $pif
# Engedélyezzük a szolgáltató DHCP szerverétõl érkezõ forgalmat. Ennek
# a szabálynak tartalmaznia kell a DHCP szerver címét, mert csak tõle
# fogadunk el ilyen típusú csomagokat. Egyedül csak kábeles vagy DSL
# konfigurációk esetén használatos, a "felhasználói PPP" esetében
# törölhetjük. Ez ugyanaz az IP-cím, amelyet a kimenõ kapcsolatoknál
# megadtunk.
$cmd 360 allow udp from x.x.x.x to any 68 in via $pif keep-state
# Befelé engedélyezzük a szabvány WWW funkciót, mivel van
# webszerverünk.
$cmd 370 allow tcp from any to me 80 in via $pif setup limit src-addr 2
# Befelé engedélyezzük a biztonságos FTP, telnet és SCP
# használatát az internetrõl.
$cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2
# Befelé engedélyezzük a nem biztonságos telnet elérését az
# internetrõl. Azért nem tekintjük biztonságosnak, mert az
# azonosítókat és a jelszavakat az interneten titkosítatlanul
# közvetíti. Ha nincs telnet szolgáltatásunk, akkor törölhetjük is ezt
# a csoportot.
$cmd 390 allow tcp from any to me 23 in via $pif setup limit src-addr 2
# Dobjuk el és naplózzuk az összes internetrõl érkezõ hitelesítetlen kapcsolatot.
$cmd 400 deny log all from any to any in via $pif
# Dobjuk el és naplózzuk az összes internetre menõ hitelesítetlen kapcsolatot.
$cmd 450 deny log all from any to any out via $pif
# Ez lesz a kimenõ szabályokhoz tartozó "skipto" célja.
$cmd 800 divert natd ip from any to any out via $pif
$cmd 801 allow ip from any to any
# Minden mást alapértelmezés szerint tiltunk és naplózunk.
$cmd 999 deny log all from any to any
############# Az IPFW szabályai itt fejezõdnek be #####################
diff --git a/hu_HU.ISO8859-2/books/handbook/kernelconfig/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/kernelconfig/chapter.sgml
index 306d3dc1e0..fc103296d9 100644
--- a/hu_HU.ISO8859-2/books/handbook/kernelconfig/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/kernelconfig/chapter.sgml
@@ -1,2150 +1,2151 @@
JimMockFrissítette és átdolgozta:
JakeHambyEredetileg írta: A &os; rendszermag testreszabásaÁttekintésrendszermagsaját rendszermag
készítéseA rendszermag a &os; operációs rendszer lelke.
Felelõs a memória kezelésért, a
biztonsági szabályozások
betartatásáért, a hálózat
mûködtetéséért, a
lemezhozzáférésért és sok
minden másért is. Miközben maga a &os; egyre
jobban konfigurálható dinamikusan, addig
alkalmanként elegedhetetlen, hogy
újrakonfiguráljuk és
újrafordítsuk a rendszermagot.A fejezet elolvasása során
megismerjük:miért lehet szükségünk egy
saját rendszermagra;hogyan készítsünk
konfigurációs állományt a
rendszermaghoz, vagy hogyan módosítsunk egy
már létezõt;hogyan használjuk a rendszermag
konfigurációs állományát
egy új rendszermag lefordítására
és létrehozására;hogyan telepítsük az új
rendszermagot;hogyan orvosoljuk a felmerülõ
problémákat.A fejezetben az összes példaként
bemutatásra kerülõ parancsot
root felhasználóként
kell kiadni a sikeres végrehajtásukhoz.Miért készítsünk saját
rendszermagot?A &os; eredetileg ún. monolitikus
rendszermaggal rendelkezett. Ez azt jelenti, hogy a rendszermag
egyetlen nagy program volt, ami elõre rögzített
eszközöket ismert, és ha meg akartuk
változtatni a rendszermag
mûködését, akkor fordítanunk
kellett új rendszermagot, majd újra kellett
indítanunk vele a
számítógépet.Manapság azonban a &os; már inkább
afelé a megközelítés felé halad,
ahol a rendszermag funkcionalitásának nagy
részét mûködés közben az
igények szerint betölthetõ és
eltávolítható modulok adják. Ezzel
lehetõvé válik, hogy a rendszermag gyorsan
illeszkedjen az újonnan megjelenõ
hardvereszközökhöz (mint például a
laptopok PCMCIA-kártyáihoz), vagy olyan új
funkciókat tegyünk a rendszermaghoz, amelyek a
fordításánál nem voltak
feltétlenül szükségesek. Ezt a modellt
nevezik moduláris rendszermagnak.Ennek ellenére még mindig elkerülhetetlen,
hogy esetenként ne legyen szükség a rendszermag
statikus testreszabására. Ez a legtöbb esetben
azzal magyarázható, hogy vannak olyan
funkciók, amelyek túlságosan is mélyen
helyezkednek el a rendszermagban, ezáltal nem
tölthetõek be dinamikusan. Máskor viszont
egyszerûen azért nem lehetséges, mert
még senki sem szánt idõt az adott
funkcióhoz tartozó, dinamikusan betölthetõ
modul elkészítésére.Egy saját rendszermag készítése
azon legfontosabb próbatételek egyike, melyet egy
haladó BSD felhasználónak ki kell
állnia. Ez a folyamat, habár némileg
idõigényes, számos elõnyt tartogat &os;
rendszerünk számára. Eltérõen egy
GENERIC (általános)
rendszermagtól, amely rengeteg hardvert támogat, egy
saját rendszermag csak a saját
PC-nk hardverét ismeri. Ennek több elõnye is
van, például:A rendszerünk gyorsabban indul. Mivel a rendszermag
csak azokat a hardvereket fogja keresni, melyek a
rendszerünkben megtalálhatóak,
jelentõs mértékben le tud csökkeni az
induláshoz szükséges idõ.Kisebb memóriahasználat. Egy saját
rendszermag a szükségtelen részek és
eszközmeghajtók elhagyása miatt gyakran
kevesebb memóriát emészt fel, mint a
GENERIC rendszermag. Ez azért is
fontos, mert a rendszermag mindig benn van a fizikai
memóriában, és ezzel az
alkalmazások elöl veszi a helyet. Emiatt egy
saját rendszermag elkészítése
különösen hasznos lehet egy kevés
fizikai memóriával rendelkezõ
rendszeren.További hardverek támogatása. A
saját rendszermagunkba olyan eszközök
támogatását is beletehetjük, amelyek
nem szerepelnek a GENERIC rendszermagban,
mint például a
hangkártyákét.TomRhodesÍrta: A rendszerünkben levõ hardverek
összeszedéseMielõtt belevetnénk magunkat a rendszermag
beállításába, érdemes egy
leltárt készíteni a gépünkben
található különbözõ
eszközökrõl. Ahol a &os; nem elsõdlegesen
használt operációs rendszer, ott ehhez
elegendõ megnézni a jelenlegi rendszerben
található elemeket. Például az
µsoft; rendszerek
Eszközkezelõjében
(Device Manager) általában az összes
eszköz fontosabb adatait megtaláljuk. Magát az
Eszközkezelõt pedig a
Vezérlõpultból (Control Panel)
érhetjük el.A µsoft.windows; egyes verzióiban a
Rendszer (System) ikonjára
kattintva megkapjuk azt a képernyõt, ahonnan
közvetlenül el tudjuk érni az
Eszközkezelõt.Ha viszont nincs másik operációs rendszer
a gépünkön, akkor magunknak kell mindezeknek
utánanéznünk. Erre az egyik alkalmas
módszer a &man.dmesg.8; és a &man.man.1; parancsok
használata. A &os;-ben található
legtöbb meghajtónak van saját man oldala, ami
tartalmazza az általuk kezelt eszközök
listáját, illetve így a
rendszerindítás során észlelt
hardvereket nézhetjük vissza. Például
az alábbi sor arra utal, hogy a
psm meghajtó megtalálta a
gépünkhöz tartozó egeret:psm0: <PS/2 Mouse> irq 12 on atkdbc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0Ezután ezt a meghajtót vagy a rendszermagba kell
beépítenünk, vagy pedig a &man.loader.conf.5;
állományon keresztül
betöltenünk.Bizonyos esetekben a dmesg az
eszközök felkutatásának eredményei
helyett csak a rendszer üzeneteit mutatja. Ilyen
helyezetekben a teljes kimenet a
/var/run/dmesg.boot állományban
tekinthetõ meg.A hardverek manuális
felderítésének módja a &man.pciconf.8;
segédprogram kimenetének
böngészése, ami egy valamivel
részletesebb eredményt ad. Mint
például:ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'AR5212 Atheros AR5212 802.11abg wireless'
class = network
subclass = ethernetA pciconf paranccsal
kapott kimenet ezen része azt mutatja, hogy az
ath
meghajtó talált egy vezeték
nélküli Ethernet eszközt. Innen a man
ath paranccsal
érhetjük el a &man.ath.4; man oldalát.A &man.man.1; a paraméter
megadásával további hasznos
információkkal is tud szolgálni. A
fentiekbõl kiindulva például a
következõ paranccsal:&prompt.root; man -k Atherosle tudjuk kérdezni azokat a man oldalakat, amelyek
tartalmazzák az adott szót:ath(4) - Atheros IEEE 802.11 wireless network driver
ath_hal(4) - Atheros Hardware Access Layer (HAL)A hardvereszközeink listájával
felvértezve most már egy saját rendszermag
létrehozása sem lesz annyira ijesztõ.Meghajtók, alrendszerek és modulokrendszermagmeghajtók, modulok, alrendszerekMielõtt új rendszermagot
készítenénk, érdemes megfontolnunk, hogy
egyáltalán szükségünk lesz-e
rá. Ha például valamilyen eszköz
támogatásához kell, akkor könnyen
elõfordulhat, hogy azt modulként is be tudjuk
tölteni.A rendszermaghoz tartozó modulok a /boot/kernel
könyvtárban találhatóak, és a
&man.kldload.8; segítségével a rendszer
mûködése közben dinamikusan
betölthetõek. Ha nem is az összes, de a
legtöbb meghajtóhoz tartozik egy modul és egy
man oldal. Például az elõzõ szakaszban az
ath vezeték nélküli
Ethernet meghajtóval foglalkoztunk. A következõ
leírást találjuk a hozzátartozó
man oldalon:Vagy ha modulként akarjuk betölteni ezt a meghajtót a rendszer indítása
során, akkor a &man.loader.conf.5; állományba vegyük fel a következõ
sort:
if_ath_load="YES"A fentebb leírtak szerint tehát ha a
if_ath_load="YES" sort hozzáadjuk a
/boot/loader.conf állományhoz,
akkor a rendszer indulásakor ez a modul mindig dinamikusan
betöltõdik.Némely esetben azonban nem áll
rendelkezésünkre ilyen modul. Ez
különösen igaz bizonyos alrendszerekre és a
fontosabb meghajtókra, például az
FFS állományrendszerre
vonatkozóan, mivel ezeknek kötelezõen a
rendszermagban kell lenniük. Ugyanez elmondható a
hálózati támogatásra is (INET). Csak
úgy tudjuk megmondani, hogy valamelyik meghajtóra
szükség van a rendszermagban, ha elõször
megpróbáljuk megkeresni hozzá a
megfelelõ modult.A beépített meghajtók figyelmetlen
eltávolításával könnyen
lefordíthatatlan állapotba kerülhet a
rendszermag. Például, ha a &man.ata.4;
meghajtót kivesszük a rendszermag
konfigurációs
állományából, az
ATA alrendszert használó
meghajtók csak abban az esetben fognak biztosan
mûködni, ha egyúttal felvesszük a
loader.conf állományba. Ha
nem vagyunk benne biztosak, akkor elõször
próbáljuk meg használni a modult és
csak utána hagyjuk el a rendszermagba
épített változatát.Saját rendszermag készítése
és telepítéserendszermagkészítése,
telepítéseElõször is tegyünk egy rövidke
sétát a rendszermag könyvtárában.
A továbbiakban említendõ összes
könyvtár a /usr/src/sys
könyvtáron belül található, amely
/sys néven is elérhetõ.
Itt rengeteg alkönyvtár található,
mindegyikük a rendszermag különbözõ
részeit testesíti meg. Ezek közül most
számunkra a legfontosabb az
architektúra/conf
lesz, ahol majd létrehozzuk a saját rendszermagunk
konfigurációs állományát,
valamint a compile, ahol majd a
rendszermagunk fordítása történik. Itt
az architektúra lehet
i386, alpha,
amd64, ia64,
powerpc, sparc64 vagy
pc98 (a PC-k egyik, leginkább
Japánban elterjedt változata). Az adott
architektúra könyvtárában
található összes állomány csak
arra az architektúrára vonatkozik, a kód
többi része pedig gépfüggetlen és
közös az összes többi létezõ
és leendõ &os; platformon. Érdemes megfigyelni
a könyvtárak logikai elrendezését:
minden egyes ismert eszköz, állományrendszer
és bõvítmény saját
alkönyvtárral rendelkezik.A példák során ez a fejezet
feltételezi, hogy az i386 architektúrát
használjuk. Ha ez a mi esetünkben nem így
lenne, ne felejtsük el átírni bennük az
elérési útvonalakat a rendszerünk
architektúrájának megfelelõen.Ha nem lenne/usr/src/sys könyvtár a
rendszerünkben, valószínûleg még
nem telepítettük a rendszermag
forráskódját. Ezt a legkönnyebben
úgy tudjuk megtenni, ha root
felhasználóként elindítjuk a
sysinstall programot és ott
kiválasztjuk a Configure
(Beállítások), azon belül
Distributions (Terjesztések)
menüpontot, amiben válasszuk ki a
src, base
és sys terjesztéseket.
Ha nem szeretnénk erre a célra a
sysinstall programot
használni, de rendelkezésünkre áll a
hivatalos &os; CD, akkor a forrásokat
akár parancssorból is
telepíthetjük:&prompt.root; mount /cdrom
&prompt.root; mkdir -p /usr/src/sys
&prompt.root; ln -s /usr/src/sys /sys
&prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
&prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf -Ezután lépjünk be az
i386/conf
könyvtárba és másoljuk le a
GENERIC konfigurációs
állományt a kedvünk szerinti nevûre.
Például:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC SAJÁTÁltalában a nevet végig nagybetûkkel
írjuk, és ha több &os;-s gépet is
üzemeltetünk különbözõ hardverekkel,
hasznosnak bizonyulhat megemlíteni benne az adott
gép rendszerének nevét is. Ebben a
példában ez most a
SAJÁT
lesz.A rendszermagunk konfigurációs
állományát nem éppen a legjobb
ötlet a /usr/src
könyvtárban tárolni. Ugyanis könnyen
elõfordulhat, hogy egy rosszul sikerült
fordítás után egyszerûen csak
letöröljük az egész
/usr/src könyvtárat és
onnan kezdjük újra. Azonban csak ezután
juthat eszünkbe, hogy vele együtt bizony
letöröltük a saját rendszermagunk
konfigurációs állományát is!
Ehhez hasonlóan, közvetlenül a
GENERIC konfigurációs
állomány szerkesztése sem ajánlott,
mivel a források egy esetleges frissítésénél
könnyen felülíródhat és ezzel
együtt elvesznek a módosításaink
is.Tehát érdemes inkább valahol
máshol tárolnunk a rendszermagunk
konfigurációs állományát,
majd létrehozni rá egy szimbolikus linket a
i386
könyvtárban.Valahogy így:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; mkdir /root/kernel
&prompt.root; cp GENERIC /root/kernel/SAJÁT
&prompt.root; ln -s /root/kernel/SAJÁTMost pedig a kedvenc szövegszerkesztõnkkel
lássunk neki a
SAJÁT
átírásának! Ha nemrég
telepítettük csak a rendszerünket, az egyetlen
elérhetõ szövegszerkesztõnk minden bizonnyal
a vi lesz. Róla most
túlságosan is bonyolult lenne leírást
adnunk, de az Irodalomjegyzékben
található könyvek közül sokban
elég jól bemutatják. Ezen kívül
a &os; ajánl egy könnyebben megtanulható
szövegszerkesztõt is az ee
személyében, amely a kezdõk
számára az ideális választás.
Nyugodtan átírhatjuk az elöl
található megjegyzéseket a saját
konfigurációnknak megfelelõen, vagy akár
azt is rögzíthetjük, hogy miben
tértünk el a GENERIC
beállításaitól.SunOSHa fordítottunk már rendszermagot &sunos; vagy
más BSD operációs rendszer alatt, ez az
állomány ismerõsnek tûnhet. Ha viszont
más operációs rendszerek, mint
például a DOS felõl érkezünk, a
GENERIC konfigurációs
állomány egy kissé terebélyesnek
tûnhet számunkra, ezért A konfigurációs
állomány címû részt
figyelmesen és lassan olvassuk át.Amennyiben a forrásfánkat a &os; projekt
legfrissebb forrásaival szinkronizáljuk, mindig
olvassuk el a /usr/src/UPDATING
állományt, mielõtt bármilyen
frissítéshez is kezdenénk. Itt
megtalálhatóak azok a fontos érintett
kérdések és területek, amely
külön figyelmet igényelnek a frissített
forráskód esetén. A
/usr/src/UPDATING mindig a &os;
forrásának legfrissebb változatához
igazodik, és ezért sokkal naprakészebb
információkat tartalmaz, mint ez a
kézikönyv.Most pedig le kell lefordítanunk a rendszermag
forráskódját.A rendszermag lefordításaLépjünk be a /usr/src
könyvtárba:&prompt.root; cd /usr/srcFordítsuk le a rendszermagot:&prompt.root; make buildkernel KERNCONF=SAJÁTTelepítsük az új rendszermagot:&prompt.root; make installkernel KERNCONF=SAJÁTA &os; teljes forrásfájára
szükség van a rendszermag
lefordításához.Amikor egy saját rendszermagot
alapértelmezés szerint fordítunk, vele
együtt az összes modul is
lefordításra kerül. Ha viszont idõt
szeretnénk megtakarítani a rendszermag
frissítése során vagy csak a saját
moduljainkat akarjuk lefordítani, érdemes
átírnunk az /etc/make.conf
állományt a rendszermag
fordításának megkezdése
elõtt:MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfsEz a változó megadja a ténylegesen
lefordítandó modulok
listáját.
- WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs
+ WITHOUT_MODULES = linux acpi sound ntfsEz a változó a
- fordításból kihagyandó modulokat
- sorolja fel. A rendszermag fordításának
- folyamatában egyéb hasznosnak tekinthetõ
+ fordításból kihagyandó felsõ
+ szintû modulokat sorolja fel. A rendszermag
+ fordításának folyamatában
+ egyéb hasznosnak tekinthetõ
változókról a &man.make.conf.5; man
oldalán olvashatunk./boot/kernel.oldEzután az új rendszermag a /boot/kernel könyvtárba
kerül /boot/kernel/kernel néven
és a korábbi rendszermag pedig
/boot/kernel.old/kernel néven
õrzõdik meg. Most állítsuk le a rendszert
és indítsuk újra az új rendszermag
aktiválásához. Ha közben valamilyen
hiba történt volna, nézzük meg a fejezet
végén található, hibakeresésre
vonatkozó utasításokat. Mindenképpen
olvassuk el azt a részt, amely leírja, hogyan
állítsuk helyre a rendszerünket abban az
esetben, ha az új rendszermaggal nem indul.A rendszerindítási folyamathoz tartozó
további állományok, mint
például a rendszerbetöltõ
(&man.loader.8;) és annak konfigurációs
állománya, a /boot
könyvtárban találhatóak. A
külsõ és saját modulok a /boot/kernel a
könyvtárba kerülhetnek, azonban a
felhasználóknak nagyon ügyelniük kell
rá, hogy az itt található modulok
szinkronban legyenek a lefordított rendszermaggal.
Ellenkezõ esetben a rendszerben
megbízhatatlanságot, hibákat
észlelhetünk.JoelDahlA &os; 6.X verziójához
igazította: A konfigurációs állományrendszermagNOTESNOTESrendszermagkonfigurációs
állományA 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 &os; 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:include GENERIC
ident SAJAT
options IPFIREWALL
options DUMMYNET
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
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:&prompt.root; cd /usr/src/sys/i386/conf && make LINTrendszermagkonfigurációs
állományItt 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/i386/conf/GENERIC
állománnyal.a rendszermag beállításaimachinemachine i386A 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 rendszermag beállításaicpucpu I486_CPU
cpu I586_CPU
cpu I686_CPUA 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 a 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.a rendszermag beállításaiidentident GENERICEz a rendszermag azonosítója.
Változtassuk meg rendszermagunk nevére, legyen
például
SAJAT, ha a
korábbi utasításokat követtük. Az
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).# ha a /boot/device.hints használata helyett statikusan bele akarjuk fordítani
#hints "GENERIC.hints" # itt szerepelnek a device hintekA &man.device.hints.5; használható az
eszközmeghajtók
beállítására. A &man.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.makeoptions DEBUG=-g # a nyomkövetéshez szükséges gdb(1) szimbólumok beépítéseA &os; hagyományos fordításának
folyamata során a rendszermagot a
használatával készítjük el,
aminek köszönhetõen hibakeresési
információkat tudunk átadni a &man.gcc.1;
fordítónak.options SCHED_ULE # ULE ütemezõA &os; alapértelmezett rendszerütemezõje. Ne
változtassuk meg!options PREEMPTION # a rendszerszálak megszakíthatóságának engedélyezéseHa 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.options INET # hálózatkezelésA 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õ!options INET6 # IPv6 kommunikációs prokotollokEngedélyezi az IPv6 kommunikációs
protokollok használatát.options FFS # Berkeley Fast FilesystemEz a legalapvetõbb merevlemezes
állományrendszer. Hagyjuk meg, ha
merevlemezrõl akarjuk indítani a
rendszerünket.options SOFTUPDATES # az FFS Soft Updates támogatásaEz 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 &man.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
&man.tunefs.8; vagy (új állományrendszerek
esetén) a &man.newfs.8; parancsokkal tudjuk
bekapcsolni.options UFS_ACL # a hozzáférés-vezérlési listák (ACL) támogatásaEzzel 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 ban
tárgyaljuk. Az ACL
alapértelmezés szerint támogatott, és
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.options UFS_DIRHASH # nagyobb könyvtárak esetén gyorsulást hozEzzel 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 interaktívitást
igénylõ munkaállomásokra tartogatni,
és eltávolítani olyan esetekben, amikor a
&os;-t egy 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.options MD_ROOT # tudunk memórialemezrõl is rendszert indítaniEzzel az opcióval engedélyezni tudjuk a rendszer
indítását memóriában
tárolt virtuális lemezekrõl.a rendszermag beállításaiNFSa rendszermag beállításaiNFS_ROOToptions NFSCLIENT # hálózati állományrendszer (NFS) kliens
options NFSSERVER # NFS szerver
options NFS_ROOT # NFS használható gyökérként is, kell hozzá az NFSCLIENTA hálózati állományrendszer
támogatása. Hacsak nem akarunk TCP/IP-n
keresztül állományrendszereket csatlakoztatni
egy &unix; állományszerverrõl,
kivethetjük.a rendszermag beállításaiMSDOSFSoptions MSDOSFS # MS-DOS állományrendszerAz &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).options CD9660 # ISO 9660 állományrendszerAz 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.options PROCFS # a futó programok állományrendszere (szükséges hozzá a PSEUDOFS)A futó programok állományrendszere. Ez
csak a /proc könyvtárra
csatlakoztatott színlelt
állományrendszer, amely
segítségével a &man.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.options PSEUDOFS # pszeudo állományrendszerek támogatásaA 6.X verziójú rendszermagokban a
PROCFS használatához
engedélyeznünk kell a PSEUDOFS
használatát is.options GEOM_GPT # GUID típusú partíciós táblák használataEzzel a beállítással engedélyezni
tudjuk nagy mennyiségû partíció
támogatását egyetlen lemezen.options COMPAT_43 # kompatibilitás fenntartása a 4.3 BSD-vel [NE TÖRÖLD!]Kompatibilitás a 4.3BSD-vel. Ne vegyük ki, mert
bizonyos programok furcsán fognak viselkedni a
hiánya esetén.options COMPAT_FREEBSD4 # kompatibilitás a &os;4-elEz a beállítás szükséges a
&os; 5.X &i386; és Alpha rendszerein a &os;
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.options COMPAT_FREEBSD5 # kompatibilitás a &os;5-elEzt a beállítást a &os; 6.X
és afeletti verziókban kell használni az
olyan &os; 5.X verziókra fordított
alkalmazások futtatásának
támogatásához, melyek a &os; 5.X
rendszerhívásait használják.options SCSI_DELAY=5000 # a SCSI eszközök keresése elõtt késleltetés (ezredmásodpercben)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árolag csak IDE
típusú merevlemezeink vannak, nyugodtan
kihagyhatjuk, máskülönben érdemes a
rendszerindítás gyorsítása
érdekében próbáljuk meg
csökkenteni ezt az értéket.
Természetesen, ha így teszünk és a &os;
nem tudja felismerni a SCSI eszközeinket, akkor
növeljük meg valamennyivel.options KTRACE # a ktrace(1) támogatásaEngedélyezi a rendszermagban futó rutinok
nyomonkövetését, ami hasznos lehet a
hibák keresése során.options SYSVSHM # SYSV-szerû osztott memóriaEzzel 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.options SYSVMSG # SYSV-szerû üzenetsorokA 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.options SYSVSEM # SYSV-szerû szemaforokA 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 &man.ipcs.1; parancs
paraméterével ki tudjuk listáztatni azokat
futó programokat, amelyek ezen System V
eszközöket használják.options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B valósidejû kiterjesztésekA &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;).options KBD_INSTALL_CDEV # CDEV bejegyzés létrehozása a /dev könyvtárbanEz a beállítás kell ahhoz, hogy
/dev könyvtárban létre
tudjunk hozni eszközleírókat a
billentyûzethez.options ADAPTIVE_GIANT # adaptív Giant mutexekA 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 keresztmetszet 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 &os; 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.a rendszermag beállításaiSMPdevice apic # I/O APICAz 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.device eisaAbban 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.device pciTegyü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.# Hajlékonylemezes meghajtók
device fdcEz a hajlékonylemezes meghajtó
vezérlõje.# ATA és ATAPI eszközök
device ataEz 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.device atadisk # ATA lemezmeghajtókAz ATA lemezmeghajtók
támogatásához erre van még
szükség a device ata
mellett.device ataraid # ATA RAID-meghajtókAz ATA RAID-meghajtók kezeléséhez erre a
sorra van szükség a device ata
mellett.
device atapicd # ATAPI CD-meghajtókAz ATAPI CD-meghajtók használatához ezt
is tegyük a konfigurációba a device
ata mellé.device atapifd # ATAPI floppy meghajtókA device ata használata mellett erre
van még szükségünk az ATAPI floppy
meghajtók kezeléséhez.device atapist # ATAPI szalagos meghajtókAz ATAPI szalagos egységek ezt a sort is tegyük a
konfigurációba a device ata
mellé.options ATA_STATIC_ID # statikus eszközszámozásEzzel 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
device ahb # EISA AHA1742 család
device ahc # AHA2940 és integrált AIC7xxx eszközök
options AHC_REG_PRETTY_PRINT # a hibák kereséséhez kiíratja a regiszterek
# bitmezõit. Kb. 128 KB-al növeli a méretét.
device ahd # AHA39320/29320 és integrált AIC79xx eszközök
options AHD_REG_PRETTY_PRINT # a hibák kereséséhez kiíratja a regiszterek
# bitmezõit. Kb. 215 KB-al növeli a méretét.
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic család
#device ispfw # a QLogic HBA firmware-e, többnyire modul
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (újabb chipsetek, illetve az `ncr' típusúak)
device trm # Tekram DC395U/UW/F DC315U csatolók
device adv # Advansys SCSI-csatolók
device adw # Advansys wide SCSI-csatolók
device aha # Adaptec 154x SCSI-csatolók
device aic # Adaptec 15[012]x SCSI-csatolók, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI-csatolók
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50SCSI-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
device scbus # SCSI-busz (kell a SCSI-hoz)
device ch # SCSI médiumváltók (media changer)
device da # közvetlen hozzáférés (lemezek)
device sa # soros hozzáférés (szalag stb.)
device cd # CD
device pass # áteresztõ eszköz (közvetlen SCSI hozzáférés)
device ses # SCSI környezeti szolgáltatások (és SAF-TE)SCSI-perifériák. Itt is érvényes,
hogy kivethetjü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 &man.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.# a SCSI alrendszerhez kapcsolódó RAID-vezérlõk
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI és Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - lásd a NOTES állományt
device hptmv # Highpoint RocketRAID 182x
device rr232x # Highpoint RocketRAID 232x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID vezérlõk
device aac # Adaptec FSA RAID
device aacp # SCSI áteresztõ az aac-hez (kell hozzá a CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 család
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAIDAz ismert RAID-vezérlõk. Ha
közülük egyikkel sem rendelkezünk,
távolítsuk el ezeket a
konfigurációból.# az atkbdc0 vezérli a billentyûzetet és a PS/2-es egeret
device atkbdc # AT billentyûzet vezérlõ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.device atkbd # AT billentyûzetAz 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é.device psm # PS/2 egérHasználjuk ezt az eszközt, ha az egerünk a
PS/2 portra csatlakozik.device kbdmux # billentyûzet multiplexerA 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.device vga # VGA videokártya meghajtóVideokártya meghajtó.
device splash # üdvözlõképernyõk és képernyõkímélõk támogatásaNyissunk egy üdvözlõképernyõvel! A
képernyõkímélõknek is
szüksége van erre az eszközre.# a syscons az alapértelmezett konzolmeghajtó, hasonlít a SCO konzolra
device scAz 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ónk a
scoansi értékre.# ezzel tudjuk engedélyezni a pcvt (VT220-kompatibilis) konzolmeghajtót
#device vt
#options XSERVER # az X szerver támogatása vt konzolon
#options FAT_CURSOR # telt kurzor használataEz a VT220-kompatibilis konzolmeghajtó, amely
visszafele 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õ.device agpÍ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.APM# energiagazdálkodás támogatása (bõvebben lásd: NOTES)
#device apmA 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 i8254 készenléti módjának támogatása
device pmtimerAz energiagazdálkodási események, mint
például APM és ACPI
idõzítõjének
eszközmeghajtója.# PCCARD (PCMCIA) támogatás
# PCMCIA és cardbus támogatás
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16 bites) busz
device cardbus # CardBus (32 bites) buszA PCMCIA támgotása. Mindenképpen
szükségünk lesz rá, ha laptopunk
van.# soros (COM) portok
device sio # 8250, 16[45]50 alapú soros portokEzek 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 októl kifolyólag a COM2 = IRQ9), hogy
hozzá tudjunk férni &os;-bõl. Ha
többportos soros kártyánk lenne, lapozzuk fel
a &man.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.# párhuzamos port
device ppcEz az ISA busz párhuzamos portjának
felülete.device ppbus # a párhuzamos port busza (kell)A párhuzamos porthoz tartozó busz
támogatása.device lpt # nyomtató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.device plip # TCP/IP párhuzamos porton keresztülEz a párhuzamos port hálózati
felületének meghajtója.device ppi # a párhuzamos port felületének eszközeÁltalános célú (geek
port) és IEEE1284 I/O.#device vpo # az scbus és a da kell a használatáhozzip meghajtó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.#device pucTegyü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
&man.puc.4; segédmeghajtó ismer.# PCI Ethernet kártyák
device de # DEC/Intel DC21x4x (Tulip)
device em # Intel PRO/1000 Gigabit Ethernet kártya
device ixgb # Intel PRO/10GbE Ethernet kártya
device txp # 3Com 3cR990 (Typhoon)
device vx # 3Com 3c590, 3c595 (Vortex)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.# PCI Ethernet kártyák, melyek az MII busz vezérlõkódját használják
# FIGYELEM: Ne töröljük ki a 'device miibus' sort, ha ilyen kártyánk van!
device miibus # az MII busz támogatásaAz 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.device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 és egyéb hasonlóak
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device lge # Level 1 LXT1001 gigabit ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device nge # NatSemi DP83820 gigabit ethernet
device nve # nVidia nForce MCP integrált Ethernet hálózat
device pcn # AMD Am79C97x PCI 10/100 (az 'lnc' elõtt)
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 EPIC)
device vge # VIA VT612x gigabit ethernet
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang, Cyclone)Meghajtók, melyek az MII busz
vezérlõkódját
használják.# ISA Ethernet és pccard hálózati kártyák.
device cs # Crystal Semiconductor CS89x0 NIC
# az 'device ed' eszközhöz kell a 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 és Pro/10+
device ep # Etherlink III alapú kártyák
device fe # Fujitsu MB8696x alapú kártyák
device ie # EtherExpress 8/16, 3C507, StarLAN 10 stb.
device lnc # NE2100, NE32-VL Lance Ethernet kártyák
device sn # az SMC 9000-res sorozatú Ethernet chipjei
device xe # Xircom pccard Ethernet
# ISA eszközök, melyek a régi ISA betétet használják
#device leISA Ethernet meghajtók. A konkrétan
támogatott kártyák teljes
felsorolását lásd a
/usr/src/sys/i386/conf/NOTES
állományban.# vezeték nélküli hálózati kártyák
device wlan # 802.11 támogatásÁ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.device wlan_wep # 802.11 WEP támogatás
device wlan_ccmp # 802.11 CCMP támogatás
device wlan_tkip # 802.11 TKIP támogatásA 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.device an # Aironet 4500/4800 802.11 vezeték nélküli hálózati kártyák
device ath # Atheros pci/cardbus hálózati kártyák
device ath_hal # Atheros HAL (Hardware Access Layer)
device ath_rate_sample # küldési mintavételi vezérlés az ath-hoz
device awi # BayStack 660 és mások
device ral # Ralink Technology RT2500 vezeték nélküli hálózati kártyák
device wi # WaveLAN/Intersil/Symbol 802.11 vezeték nélküli hálózati kártyák
#device wl # régebbi, nem 802.11 Wavelan vezeték nélküli hálózati kártyákA különbözõ vezeték
nélküli kártyák
támogatása.# Pszeudo eszközök
device loop # hálózati loopbackEz 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õ!device random # álvéletlenszám eszközKriptográfiai szempontból biztonságos
álvéletlenszám generátor.device ether # Ethernet támogatásAz ether eszközre csak abban az
esetben van szükség, ha Ethernet kártyán
van. Ez magában foglalja az általános
Ethernet protokoll kódját.device sl # belsõ SLIPAz 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.device ppp # belsõ PPPEz 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.device tun # csomag alagútEzt 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.
device pty # Pszeudo terminálok (telnet stb.)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.device md # memórialemezekA memóriában levõ pszeudo lemezes
meghajtók.device gif # IPv6 és IPv4 tunnelek használataMegvaló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.device faith # IPv6-IPv4 közti továbbítás (fordítás)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 `bpf' eszköz használatával a Berkeley csomagszûrõt (Berkeley Packet Filter) engedélyezzük
# Legyünk rá tekintettel, hogy ennek komoly következményei lehetnek
# rendszeradminisztrációs szempontból!
# A 'bpf'-re szükség van a DHCP-hez.
device bpf # Berkeley csomagszûrõ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
&man.tcpdump.1; program segítségével.A &man.bpf.4; eszközt a &man.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.# USB támogatás
device uhci # UHCI PCI->USB felület
device ohci # OHCI PCI->USB felület
device ehci # EHCI PCI->USB felület (USB 2.0)
device usb # USB busz (kell)
#device udbp # USB Double Bulk Pipe eszközök
device ugen # általános
device uhid # Human Interface Devices
device ukbd # billentyûzet
device ulpt # nyomtató
device umass # lemez/háttértároló - kell hozzá az scbus és a da
device ums # egér
device ural # Ralink Technology RT2500USB vezeték nélküli hálózati kártyák
device urio # Diamond Rio 500 MP3 lejátszó
device uscanner # lapolvasók
# USB Ethernet, kell hozzá az mii
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # általános USB, Etherneten keresztül
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB EthernetA különféle USB eszközök
támogatása.# FireWire támogatás
device firewire # FireWire buszkód
device sbp # SCSI FireWire-ön keresztül (kell hozzá az scbus és a da)
device fwe # Ethernet FireWire-ön keresztül (nem szabványos!)A különféle Firewire eszközök
támogatása.A &os; által ismert további
eszközökrõl a
/usr/src/sys/i386/conf/NOTES
állományból
tájékozódhatunk.Sok memória kezelése
(PAE)Fizikai címkiterjesztés
(PAE)sok memóriaA 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 &os; is támogatja
ezt a tulajdonságot a rendszermag
beállítás használatával,
és megtalálható a &os; ö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 segítségével
hozzáadásával tudjuk
engedélyezni:options PAEA &os;-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 &os;-ben
található PAE
támogatás nem lett szélesebb
körben próbára téve, ezért
a &os; többi megbízható elemeihez
képest csak béta állapotúnak
tekinthetõ.A &os; 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 &man.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
&os;-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
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
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
&man.tuning.7; man oldalt. A &man.pae.4; man oldalon pedig a
&os; PAE
támogatásáról találhatunk
naprakész információkat.Ha valamilyen hiba történneNégyféle probléma jelentkezhet egy
saját rendszermag készítése
során. Ezek:A config hibát jelez:Amikor a &man.config.8; parancs hibát jelez
vissza a rendszermagunk konfigurációs
beállításainak feldolgozása
során, akkor minden bizonnyal csak egy apró
hibát vétettünk valahol.
Szerencsére a &man.config.8; kiírja a
hibás sor számát, ezért gyorsan
fel tudjuk kutatni a hibát tartalmazó sort.
Például, ha ezt látjuk:config: line 17: syntax errorAkkor gyõzödjünk meg róla, hogy
helyesen írtuk be az adott sorban szereplõ
kulcsszót. Ebben segítségünkre
lehet, ha összevetjük a
GENERIC konfigurációs
állománnyal vagy más
hivatkozásokkal.A make hibát jelez:Ha a make jelez hibát, az
általában arra utal, hogy az általunk
korábban megadott rendszermag
konfigurációs állományt a
&man.config.8; nem értette meg rendesen. Megint azt
tudjuk csak javasolni, hogy nézzük át a
konfigurációs
beállításainkat, és ha
ezután sem sikerül megoldani a
problémát, akkor mellékeljük egy
levélben a rendszermagunk konfigurációs
beállításait és
küldjük el a &a.questions; címére,
ahol a hozzáértõk gyorsan
átnézik.A rendszermag nem indul:Ha az új rendszermagunk nem indul vagy nem
képes felismerni az eszközeinket, ne essünk
kétségbe! Szerencsére a &os;
tökéletes megoldással tud
szolgálni az összeférhetetlen
rendszermagok esetére: a &os;
rendszerbetöltõjében egyszerûen
válasszuk ki az indítandó
rendszermagot. Ezt akkor tudjuk elõhívni,
amikor a rendszerindító menü megjelenik.
Válasszuk ki a hatos, vagyis az Escape to a
loader prompt (a betöltõ
parancssorának elõhívása)
menüpontot. Mikor megjelenik a parancssor,
írjuk be, hogy unload kernel, majd
adjuk ki a boot
/boot/kernel.old/kernel,
parancsot, amiben bármilyen más olyan
rendszermagot is megnevezhetünk, ami korábban
már mûködött. Ezért amikor
beállítunk egy új rendszermagot, mindig
érdemes a kezünk ügyében tartani
legalább egy olyan rendszermagot, amely
mûködik.Miután sikerült elindítanunk az egyik
használható rendszermagot, nézzük
át még egyszer a konfigurációs
állományt és próbáljuk
újra lefordítani a rendszermagot. A
probléma megoldását segítheti a
/var/log/messages
állomány áttanulmányozása
is, ami többek közt rögzíti a
rendszermag sikeres indulása során
keletkezõ üzeneteket. Ezenkívül a
&man.dmesg.8; parancs is meg tudja jeleníteni az
aktuális rendszerindítás
üzeneteit.Ha gondok merülnének fel a rendszermag
elkészítése során,
mindenképpen tartsuk meg a
GENERIC, vagy bármilyen
másik olyan rendszermagot, amelyrõl tudjuk,
hogy mûködik. Nevezzük át,
így nem fog felülíródni a
következõ fordítás és
telepítés során. A
kernel.old állományra
ugyanis nem minden esetben számíthatunk,
mivel az új rendszermagok
telepítésénél a
kernel.old mindig
felülíródik a legutóbb
telepített rendszermaggal, amely azonban nem
feltétlenül lesz
mûködõképes. Sõt, amint csak
lehetséges, rakjuk a mûködõ
rendszermagot a /boot/kernel
könyvtárba vagy különben a
&man.ps.1; és a hozzá hasonló
parancsok nem fognak rendesen mûködni. Mindezek
elvégzéséhez egyszerûen
nevezzük át a jó rendszermagot
tartalmazó könyvtárt:&prompt.root; mv /boot/kernel /boot/kernel.rossz
&prompt.root; mv /boot/kernel.jó /boot/kernelA rendszermag mûködik, de a &man.ps.1; viszont
nem:Ha olyan rendszermagot telepítettünk, aminek
a verziója nem egyezik meg a
hozzátartozó segédprogramokéval,
tehát például -CURRENT rendszermagot
raktunk egy -RELEASE rendszerhez, egyes
rendszerállapotjelzõ parancsok, mint
például a &man.ps.1; vagy a &man.vmstat.8; nem
fognak mûködni. Ebben az esetben az egész rendszert újra
kell fordítanunk és
telepítenünk a rendszermagunkkal
megegyezõ verziójú
forrásból. Részben ezért sem
különösen ajánlott, hogy az
operációs rendszer többi
részétõl eltérõ
verziójú rendszermagot
használjunk.
diff --git a/hu_HU.ISO8859-2/books/handbook/l10n/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/l10n/chapter.sgml
index a6e049ccbb..2ccda0e88e 100644
--- a/hu_HU.ISO8859-2/books/handbook/l10n/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/l10n/chapter.sgml
@@ -1,1350 +1,1348 @@
AndreyChernovÍrta: Michael C.WuÁtdolgozta: Honosítás: Az I18N/L10N használata
és beállításaÁttekintésA &os; felhasználói földrajzi
elhelyezkedésüket tekintve mindenhol
megtalálhatóak a világon. Ebben a fejezetben
ismertetjük a &os; honosításához
és idegennyelvre fordításához
alkalmazható eszközöket, amelyek
segítségével az angolt nem, vagy csak
kevésbé ismerõ felhasználók is
képesek lesznek komolyabban használni. Az i18n
megvalósítása rengeteg szemszögbõl
megközelíthetõ rendszer és
alkalmazás szintjén egyaránt, ezért
ahol szükséges, hivatkozni fogunk az odaillõ
forrásokra.A fejezet elolvasása során
megismerjük:milyen nyelveket és nyelvi
beállításokat találhatunk napjaink
operációs rendszereiben;hogyan használjuk a nyelvi
beállításokat a saját
parancsértelmezõnkben;hogyan állítsuk be a konzolt az angolon
kívül más nyelvekhez;hogyan használjuk ténylegesen az X Window
Systemet a különbözõ nyelvekkel;hol olvashatunk többet az I18N-kompatibilis
alkalmazások fejlesztésérõl.A fejezet elolvasásához ajánlott:külsõ alkalmazáok
telepítésének ismerete ().Az alapokMi az I18N/L10N?idegennyelvûséghonosításhonosításA fejlesztõk az I18N elnevezést az angol
internationalization
(idegennyelvûség) szóból
származtatják, amiben a szám az elsõ
és utolsó betû (az I és
N) közt állók
mennyiségére utal. Ehhez hasonlóan
keletkezett az L10N a localization
(honosítás) kifejezésbõl. Ezek
házasságából jöttek
létre az I18N/L10N módszerei, protokolljai
és mindazon alkalmazásai, melyekkel a
felhasználók a választott nyelvüket
használni tudják.Az I18N alkalmazások céljak
eléréséhez
függvénykönyvtárakban
implementált I18N készleteket használnak.
Ezzel lehetõvé válik a fejlesztõik
számára, hogy összegyûjtsék a
programukban megjelenõ összes szöveget egyetlen
állományba, majd azt külön
lefordítsák a különbözõ
nyelvekre. Mi is ezen konvenció
követésére szeretnénk bíztatni
minden programozót.Miért használjuk az I18N/L10N-t?Az I18N/L10N mindenhol jól jöhet, ahol
idegennyelvû adatot akarunk megjeleníteni,
bekérni vagy feldolgozni.Milyen nyelveket támogat az I18N?Az I18N és L10N nem korlátozódik a &os;
tudására. Jelenleg a világban
beszélt legelterjedtebb nyelvek mindegyikét
használhatjuk bennük. Csak hogy
néhányat említsünk
közülük: kínai, német,
japán, koreai, francia, orosz, vietnámi és
még sok más.A honosítás használataAz I18N minden adottságával együtt
független a &os;-tõl, egy egyezményes rendszer.
Mindenkit bátorítunk arra, hogy segítse a
&os;-t ennek az egyezménynek a
betartásában.nyelvi
beállításokA honosítás beállításai
három fõbb részre tagolhatóak: a nyelv
kódja, az ország kódja és a
kódolás. A nyelvi beállítások
nevei is ezekbõl állnak össze, az alábbi
séma szerint:NyelviKód_OrszágKód.KódolásA nyelv és az ország kódjanyelvi kódokországkódokHa a &os; (vagy bármilyen más, az I18N-t
ismerõ) rendszert honosítani akarunk az adott
nyelvre, akkor a felhasználónak ismernie kell az
adott országra és nyelvre vonatkozó
kódokat (az országkód fogja elárulni
az alkalmazásnak, hogy a nyelv melyik
változatát használja).
Ezenkívül a böngészõk, SMTP/POP
szerverek és webszerverek stb. is ennek alapján
fognak döntéseket hozni. Íme
néhány nyelv/ország kódja:Nyelv/ország kódjaLeírásen_USAngol - Egyesült Államokru_RUOrosz - Oroszországzh_TWHagyományos kínai - TajvanKódolásokkódolásokASCIIBizonyos nyelvek 8 bites, széles vagy több
byte-os, nem ASCII kódolású karaktereket
használnak, melyekrõl a &man.multibyte.3; man
oldalán olvashatunk részletesebben. Ezeket
régebbi alkalmazások egyáltalán nem
ismerik fel, és hibásan
vezérlõkaraktereknek tulajdonítják.
Az újabbak általában már felismerik
a 8 bites karaktereket. A felhasználóknak az
alkalmazásokat a széles vagy a több byte-os
karakterek használatához vagy újra kell
fordítaniuk, vagy pedig megfelelõen be kell
állítaniuk, az
implementációtól függõen. A
széles vagy több byte-os karakterek
beolvasásához és
feldolgozásához a &os;
Portgyûjtemény nyelvenként tartalmaz
különféle programokat. A konkrét
részletek megértéséhez olvassuk el
az érintett &os; portok I18N
dokumentációját.Vagyis a felhasználóknak át kell
nézniük az alkalmazáshoz tartozó
dokumentációt, mivel ebbõl tudhatják
meg, hogyan állítsák be ezeket
megfelelõen vagy milyen értékeket adjanak
át a configure/Makefile/fordító
hármasnak.Amiket esetleg érdemes lehet ezzel kapcsolatban
észben tartanunk:A nyelvfüggõ egyszerû karakteres
készletek (lásd &man.multibyte.3;),
például ISO8859-1, ISO8859-15, KOI8-R,
CP437.A széles vagy több byte-os
kódolások, például az EUC,
Big5.A karakterkészletek jelenleg elérhetõ
listáját meg tudjuk tekinteni az IANA
adatbázisában.A &os; helyettük X11-kompatibilis nyelvi
kódolásokat használ.I18N alkalmazásokA &os; port- és csomagrendszerében az I18N
alkalmazások a könnyebb felismerhetõség
érdekében a nevükben tartalmazzák az
I18N megnevezést. Nem minden esetben
támogatják a szükséges nyelvet.A nyelvi beállítások
megadásaÁltalában elegendõ annyi, hogy a
kívánt nyelvi beállítás
nevét exportáljuk az általunk
használt parancsértelmezõ LANG
környezeti változójába. Ez
megtehetõ a felhasználói
könyvtárunkban található
~/.login_conf, vagy a
felhasználói parancsértelmezõ
indító állományában
(~/.profile,
~/.bashrc, ~/.cshrc).
Nem szükséges a nyelvi
beállítások részleteit, mint
például az LC_CTYPE,
LC_CTIME változókat, megadni. A
pontosabb részleteket a &os; adott nyelvre
vonatkozó dokumentációjában
találjuk meg.A következõ két környezeti
változót kell megadnunk az említett
konfigurációs állományokban:POSIXA LANG változót a &posix;
&man.setlocale.3; családjánakMIMEA MM_CHARSET változót az
alkalmazás MIME
karakterkészletéhezEz magában foglalja a felhasználói
parancsértelmezõ, az adott alkalmazás
és az X11 beállítását.A nyelvi beállítások
megadásának módszereinyelvi
beállításokbejelentkezési
osztályKét módszer létezik a nyelvi
beállítások megadására,
ezen kettõrõl fogunk a továbbiakban
beszélni. Az elsõ (és egyben
ajánlott) ezek közül a bejelentkezési
osztályban levõ környezeti
változók beállítása, a
második pedig környezeti változók
hozzáadása a parancsértelmezõ
rendszerszintû indító
állományához.Beállítás a bejelentkezési
osztályokkalEzzel a módszerrel a nyelvi
beállítás nevéhez és a
MIME karakterkészlethez kötõdõ
környezeti változókat az összes
létezõ parancsértelmezõ
számára csak egyszer kell megadnunk ahelyett,
hogy külön mindegyikük
indítóállományában
szerepeltetnénk. A felhasználó a saját részét
maga is elvégezheti, míg a rendszer szintjén
adminisztrátori jogosultságokat
igényel.Felhasználói szintû
beállításÍme példa gyanánt a
felhasználó könyvtárában
egy egyszerû .login_conf
állomány, amiben mind a két
változót Latin-1 kódolásra
állítottuk:me:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:hagyományos
kínaiBIG-5
kódolásEbben a .login_conf
példában a változókat BIG-5
kódolású hagyomános
kínai nyelvre állítjuk.
Észrevehetjük, hogy itt sokkal több
változó
beállítására van
szükségünk, mivel egyes szoftverek nem
kezelik megfelelõen a nyelvi
beállításokat kínai,
japán és koreai nyelvek
esetén.# Azok a felhasználók, akik nem kívánnak tajvani pénz- vagy idõ formátumot
# használni, egyenként írják át a változókat
me:\
:lang=zh_TW.Big5:\
:setenv=LC_ALL=zh_TW.Big:\
:setenv=LC_COLLATE=zh_TW.Big5:\
:setenv=LC_CTYPE=zh_TW.Big5:\
:setenv=LC_MESSAGES=zh_TW.Big5:\
:setenv=LC_MONETARY=zh_TW.Big5:\
:setenv=LC_NUMERIC=zh_TW.Big5:\
:setenv=LC_TIME=zh_TW.Big5:\
:charset=big5:\
:xmodifiers="@im=gcin": # a gcin beállítása XIM szerverkéntA többit lásd a Rendszergazdai szintû
beállítások
résznél és a &man.login.conf.5; man
oldalon.Rendszergazdai szintû
beállításEllenõrizzük, hogy a
felhasználó
/etc/login.conf
állományban szereplõ
bejelentkezési osztálya a megfelelõ
nyelvet állítja be.
Gyõzõdjünk meg róla, hogy az
alábbi beállítások helyet
kapnak az /etc/login.conf
állományban:nyelv_neve:hozzáférés_megnevezése:\
:charset=MIME_karakterkészlet:\
:lang=nyelvi_beállítás_neve:\
:tc=default:Folytassuk tovább az elõbbi Latin-1-es
példánk szerint:nemet:Nemet felhasznalok hozzaferesei:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:Mielõtt megváltoztatnánk a
felhasználók bejelentkezési
osztályait, adjuk ki a következõ
parancsot:&prompt.root; cap_mkdb /etc/login.confEzzel a /etc/login.conf új
tartalma láthatóvá válik a
rendszer számára.A bejelentkezési
osztály megváltoztatása a
&man.vipw.8; programmalvipwA vipw segédprogramot
új felhasználók
hozzáadására használjuk,
aminek eredményeképpen egy ehhez
hasonló bejegyzést tudunk
létrehozni:felhasznalo:jelszo:1111:11:nyelv:0:0:Felhasznalo neve:/home/felhasznalo:/bin/shA bejelentkezési
osztály megváltoztatása az
&man.adduser.8;-reladduserbejelentkezési
osztályAz adduser-rel az alábbiak
szerint tudunk új felhasználókat
felvenni a rendszerbe:Adjuk hozzá a defaultclass =
nyelv sort az
/etc/adduser.conf-hoz. Ne
felejtsük el, hogy ezután minden olyan
felhasználónál a
default bejelentkezési
osztályt meg kell adni, akik nem ezt a nyelvet
használják.Egy másik megoldás lehet, hogy a
&man.adduser.8; használata során minden
felhasználó esetén
külön megadjuk a nyelvet azEnter login class: default []: rész megjelenésekor.Vagy használhatjuk az alábbit az
egyes eltérõ nyelvû
felhasználók
hozzáadásánál:&prompt.root; adduser -class nyelvA bejelentkezési
osztály megváltoztatása a
&man.pw.8;-velpwAmennyiben a &man.pw.8;-t használjuk új
felhasználók
hozzáadására, így
érdemes meghívnunk:&prompt.root; pw useradd felhasználó_neve -L nyelvBeállítás a
parancsértelmezõ indító
állományávalEzt a módszert nem javasoljuk, mivel
parancsértelmezõnként
eltérõ beállítást
kíván. Használjuk helyette a bejelentkezési
osztályokkal megvalósított
módszert.MIMEnyelvi
beállításA nyelvi beállítás nevének
és a MIME karakterkészlet
beállításához egyszerûen
csak adjuk meg a lenti /etc/profile
és/vagy /etc/csh.login
parancsértelmezõ indító
állományokban bemutatott környezeti
változót. Továbbra is a német
nyelvet használjuk a példánkban:Az /etc/profile
esetén:LANG=de_DE.ISO8859-1; export LANGMM_CHARSET=ISO-8859-1; export MM_CHARSETVagy a /etc/csh.login
esetén:setenv LANG de_DE.ISO8859-1setenv MM_CHARSET ISO-8859-1Úgy is megoldhatjuk ezt a feladatot, ha fenti
utasításokat a
/usr/share/skel/dot.profile
(hasonló a fentebb említett
/etc/profile állományhoz)
vagy /usr/share/skel/dot.login
(hasonló a fentebb említett
/etc/csh.login
állományhoz) esetén hajtjuk
végre.X11 esetén:Adjuk meg a $HOME/.xinitrc
állományban:LANG=de_DE.ISO8859-1; export LANGVagy:setenv LANG de_DE.ISO8859-1Attól függõen, milyen
parancsértelmezõt használunk (lásd
fentebb).A konzol beállításaAz összes egyszerû karakteres készlet
esetén a kérdéses nyelvhez megfelelõ
konzolos betûtípust az
/etc/rc.conf állományban
tudjuk beállítani:font8x16=betûtípus_neve
font8x14=betûtípus_neve
font8x8=betûtípus_neveItt a betûtípus_neve
az .fnt kiterjesztés
elhagyásával a
/usr/share/syscons/fonts
könyvtárban található
állományok nevébõl adható
meg.sysinstallbillentyûkiosztásbetûkiosztás
- Mindezek mellett állítsuk be a megfelelõ
- billentyû- és betûkiosztást is a
- sysinstall (vagy
- /stand/sysinstall a &os; 5.2-nél
- régebbi változataiban)
+ Ha szükséges állítsuk még
+ be a megfelelõ billentyû- és
+ betûkiosztást is a sysinstall
segítségével. Ahogy sikerült
elindítanunk a sysinstallt,
válasszuk a Configure
(Beállítások) pontot, majd a
Console (Konzol)-t! Vagy ehelyett
beírhatjuk az alábbi sorokat a
/etc/rc.conf
állományba:scrnmap=betûkiosztás_neve
keymap=billentyûkiosztás_neve
keychange="funkcióbillentyû_sorszáma szekvencia"Itt a
betûkiosztás_neve a
/usr/share/syscons/scrnmaps
könyvtárban található
állományok nevébõl
származtatható az .scm
kiterjesztés elhagyásával. A
betûkiosztásokat általában a 9 bites
karaktermátrixszal rendelkezõ VGA
megjelenítõk problémáinak
megoldására lehet használni, mivel
így az eredetileg 8 bittel ábrázolt
betûket ki lehet tolni az ilyen típusú
kártyák pszeudografikus
területérõl.Ha aktiváltuk a moused
egérkezelõ démont az
/etc/rc.conf állományban az
alábbi sor megadásával:moused_enable="YES"akkor a következõ bekezdésben rá is
térhetünk az egérmutató adatainak
vizsgálatára.mousedA &man.syscons.4; meghajtóban található
egérmutató alapértelmezés szerint a
0xd0 - 0xd3 karaktereket foglalja el a
karakterkészletben. Ha a nyelv ezeket használja,
arrébb kell költöztetnünk ezt az
egérmutató által elfoglalt sávot. A
&os;-ben az /etc/rc.conf
állományon keresztül érhetjük
el:mousechar_start=3A
billentyûkiosztás_neve a
/usr/share/syscons/keymaps
könyvtárból, a .kbd
kiterjesztés elhagyásával keletkezik. Ha
nem vagyunk benne biztosak, melyik kiosztást is kellene
használnunk, a &man.kbdmap.1;
segítségével a rendszer
újraindítása nélkül
kipróbálhatjuk a rendelkezésre
álló billentyûkiosztásokat.A keychange használatára
többnyire a funkcióbillentyûk adott
termináltípushoz egyeztetéséhez van
szükség, mert a funkcióbillentyûk
szekvenciái nem adhatóak meg a
billentyûkiosztásban.Ezeken felül érdemes megbizonyosodnunk
róla, hogy a /etc/ttys
állományban jól állítjuk be a
terminál típusát minden
ttyv* bejegyzés esetén. Az
aktuálisan elõre beállított
kapcsolatok a következõk:KarakterkészletTermináltípusISO8859-1 vagy ISO8859-15cons25l1ISO8859-2cons25l2ISO8859-7cons25l7KOI8-Rcons25rKOI8-Ucons25uCP437 (alapértelmezett VGA)cons25US-ASCIIcons25wA széles és több byte-os karaktereket
használó nyelvek esetén használjuk a
/usr/ports/nyelv
könyvtárban megfelelõ &os; portot. Egyes
portok konzolosként jelennek meg, miközben a
rendszer soros virtuális terminálként
látja ezeket, ezért fenn kell tartanunk
elegendõ virtuális terminált mind az X11,
mind pedig pszeudo-soros konzol számára. Itt
látható a konzolon más nyelvet
használó alkalmazások részleges
listája:NyelvHelyHagyományos kínai (BIG-5)chinese/big5conJapánjapanese/kon2-16dot vagy
japanese/mule-freewnnKoreaikorean/hanAz X11 beállításaHabár az X11 nem része a &os; projektnek,
megemlítünk vele kapcsolatban néhány
hasznos információt a &os;
felhasználók számára is. Még
több részletet a &xorg; honlapjáról
vagy az általunk használt X11 szerver
dokumentációjából tudhatunk
meg.Az ~/.Xresources
állományban további I18N
beállításokat finomíthatunk
alkalmazásonként (például
betûtípusok, menük stb.).Betûtípusok
megjelenítéseX11 True Type betûtípus
szerverTelepítsük fel az
&xorg; (x11-servers/xorg-server) vagy az
&xfree86; (x11-servers/XFree86-4-Server)
szerverek valamelyikét, majd telepítsük a
nyelvhez tartozó &truetype; betûtípusokat.
Ezután a megfelelõ nyelvi
beállítása megadása
révén már látni fogjuk a
kiválasztott nyelven megjelenõ menüket
és egyéb szövegeket.Idegennyelvû karakterek beviteleX11 Input Method (XIM)Az X11 beviteli módszerének (X11 Input
Method, XIM) protokollja egy új szabvány az
összes X11 klienshez. Minden X11 alkalmazást
olyan XIM-kliensként kell elkészíteni,
amelyek a bemenõ adatokat az XIM beviteli
szerverektõl kapják.
Különbözõ XIM szerverek
érhetõek el az eltérõ
nyelvekhez.Nyomtatók beállításaEgyes egyszerû karakteres készletek
általában hardveresen beépítve
megtalálhatóak a nyomtatókban. A
széles és több byte-os
karakterkészletek azonban külön
beállítást igényelnek, amire az
apsfilter használatát
javasoljuk. A megfelelõ nyelvhez szabott
eszközökkel át is lehet konvertálni
&postscript; vagy PDF formátumba a nyomtatni
kívánt dokumentumot.A rendszermag és az
állományrendszerekA &os; gyors állományrendszere (Fast File
System, FFS) szabályosan kezeli a 8 bites karaktereket,
tehát tetszõleges egyszerû karakteres
készlet (lásd &man.multibyte.3;)
használható vele, viszont a karakterkészlet
nevét nem tárolja el az
állományrendszerben. Emiatt a neveket nyersen
kezeli, semmit sem tud a kódolásukról. Az
FFS hivatalosan még nem támogat semmilyen fajta
széles vagy több byte-os karakterkészletet.
Léteznek azonban független javítások
az FFS-hez, amelyek lehetõvé teszik ilyen
széles vagy több byte-os karakterek
használatát. Ezek csak átmeneti és
nem hordozható megoldások, olyan
módosítások, amelyekrõl úgy
döntöttünk, nem vesszük fel ezeket a
forrásfába. Az érintett nyelvek honlapjain
elérhetjük ezeket a javításokat
és többet megtudhatunk róluk.DOSUnicodeA &os; &ms-dos; állományrendszere
konfigurálható úgy, hogy képes
legyen konvertálni az &ms-dos; Unicode és a
kiválasztott &os;
állományrendszerének
karakterkészlete között. Errõl
bõvebben a &man.mount.msdosfs.8; man oldalon
olvashatunk.I18N programok fordításaSzámos &os; port rendelkezik I18N
támogatással. Ezek egy részének
nevében szerepel az -I18N jelzés. Az ilyen
és sok más hasonló program
beépítetten ismeri az I18N-t, így nem
igényelnek külön
beállításokat.MySQLNéhány alkalmazás azonban, mint
például a MySQL,
esetén az adott karakterkészletnek megfelelõ
módon kell beállítani a
Makefile állományt. Ezt
általában magában a
Makefile állományban tudjuk
megtenni, vagy pedig a configure
megfelelõ paraméterezésével.A &os; honosítása adott nyelvekreAndreyChernovEredetileg írta: Az orosz nyelv (KOI8-R kódolás)honosításoroszA KOI8-R kódolásról bõvebben a
KOI8-R oldalán (orosz
hálózati karakterkészlet)
tájékozódhatunk.A nyelvi beállítások
megadásaÍrjuk a következõ sorokat a
~/.login_conf
állományunkba:me:Az en hozzaferesem:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:Valamint lásd a fejezet korábbi
részeiben említett példákat a nyelvi
beállítások
megadására.A konzol beállításaTegyük hozzá a következõ sort az
/etc/rc.conf
állományunkhoz:mousechar_start=3Illetve használjuk az
/etc/rc.conf
állományban még a következõ
beállításokat is:keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"A /etc/ttys
állományban szereplõ mindegyik
ttyv* bejegyzésnél adjuk
meg termináltípusnak a
cons25r-t.Valamint lásd a fejezet korábbi
részében bemutatott példákat a
konzol
beállítására.A nyomtatás
beállításanyomtatókMivel a legtöbb nyomtató hardveresen
tartalmazza a CP866 kódlapot az orosz karakterek
támogatásához, használnunk kell
egy kimeneti szûrõt a KOI8-R
kódolású karakterek CP866
kódolásúra
konvertálásához. Egy ilyen
szûrõ alapértelmezés szerint
telepítésre kerül a
/usr/libexec/lpr/ru/koi2alt
állományba. Az orosz nyomtatóhoz
tartozó bejegyzés valahogy így néz
ki az /etc/printcap
állományban:lp|Orosz helyi sornyomtato:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:A bõvebben magyarázathoz lásd a
&man.printcap.5; man oldalt.Az &ms-dos; állományrendszere és az
orosz állománynevekA most következõ példa &man.fstab.5;
bejegyzés azt mutatja meg, hogy lehet bekapcsolni az
orosz állománynevek
támogatását a csatlakoztatandó
&ms-dos; állományrendszereken:/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0Az kapcsolóval
kiválasztjuk a használni kívánt
nyelvi beállítás nevét, és
a kapcsolóval megadjuk a karakterek
átváltásához szükséges
táblázatot. A
kapcsoló használata során
mindenképpen csatlakoztassuk a
/usr állományrendszert
még az &ms-dos; partíció elõtt,
mivel az átváltáshoz használt
táblázatok a
/usr/libdata/msdosfs
könyvtárban találhatóak meg! A
részleteket a &man.mount.msdosfs.8; man oldalon
találhatjuk meg.Az X11 beállításaAdjuk meg elõször a leírtak szerint a
nem X-es nyelvi
beállításokat.Ha &xorg;-ot
használunk, telepítsük a x11-fonts/xorg-fonts-cyrillic
csomagot.Ellenõrizzük a
/etc/X11/xorg.conf
állományban a "Files"
szakaszt. Az alábbi sort mindegyik más
FontPath bejegyzés
elõtt kell
szerepeltetnünk:FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"A portok között találhatunk
még további cirill
betûtípusokat.Az orosz billentyûzet életre
keltéséhez írjuk be a
következõket az xorg.conf
állomány "Keyboard"
szakaszába:Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:toggle"Ellenõrizzük, hogy a
XkbDisable ki van kapcsolva (ki van
kommentezve) ebben a szakaszban.A grp:toggle
beállítás esetén az
orosz/latin (RUS/LAT) átkapcsolás gombja a
jobb Alt lesz, míg a
grp:ctrl_shift_toggle
beállításnál a CtrlShift.
A grp:caps_toggle esetén az
orosz/latin váltás a
CapsLock billentyûvel
történik. Ilyenkor (de csak latin
módban) a megszokott CapsLock
funkció továbbra is elérhetõ a
ShiftCapsLock
kombinációval. A
grp:caps_toggle valamiért nem
mûködik az
&xorg;ban.Ha van &windows; billentyûnk a
billentyûzeten és azt tapasztaljuk, hogy egyes
nem-alfabetikus billentyûk rosszul kerülnek
kiosztásra orosz módban, adjuk hozzá
a következõ sort az
xorg.conf
állományhoz:Option "XkbVariant" ",winkeys"Az orosz XKB billentyûzet egyes nem
honosított alkalmazások esetén nem
mûködik.A kis mértékben honosított
alkalmazások esetén javasolt meghívni a
XtSetLanuageProc(NULL, NULL, NULL);
függvényt valahol a program
elején.Az X11 alkalmazások
honosításához további
útmutatásokat a KOI8-R X Window-ra
címû leírásban
találhatunk.Hagyományos kínai honosítás
tajvaniak számárahonosításhagyományos kínaiA &os;-Taiwan projekt készített a &os;-hez egy
kínainak szóló hogyant, amely
elérhetõ a
címen és számos kínai portot
használ. A &os; kínai hogyan
jelenlegi szerkesztõje Shen Chuan-Hsing
(statue@freebsd.sinica.edu.tw).Chuan-Hsing Shen
(statue@freebsd.sinica.edu.tw) létrehozta
a
Kínai &os; gyûjteményt (Chinese &os;
Collection, CFC) a &os;-Taiwan
zh-L10N-tut munkáját
felhasználva. A hozzátartozó csomagok
és szkriptek elérhetõek a
címen.Honosítás német (és minden
más ISO 8859-1 kódolású)
nyelvrehonosításnémetSlaven Rezic (eserte@cs.tu-berlin.de)
készített egy írást, amely
elmagyarázza, hogyan használjunk német
nemzeti karaktereket a &os; alatt. Ez a leírás
németül készült és a
címen érhetõ el.Honosítás görög nyelvrehonosításgörögNikos Kokkalis nickkokkalis@gmail.com egy
teljes cikket írt a &os; görög nyelvi
támogatásáról. Ez
elérhetõ a &os; hivatalos görög
nyelvû dokumentációjában, a
címen. Felhívjuk a figyelmet, hogy az
csak görög nyelven
érhetõ el.Honosítás japán és koreai
nyelvekrehonosításjapánhonosításkoreaiA japán honosításhoz lásd , a koreaihoz pedig
lásd .Idegennyelvû &os; dokumentációNéhány &os; felhasználó
lefordította a &os;
dokumentációjának egyes részeit
más nyelvekre is. Munkájuk elérhetõ a
fõoldalon
található linkeken keresztül vagy a
/usr/share/doc
könyvtárban.
diff --git a/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml
index 952c980e1c..45178cf011 100644
--- a/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml
@@ -1,2169 +1,2168 @@
Alkalmazások telepítése: csomagok
és portokÁttekintésportokcsomagokA &os; rendszereszközök gazdag
gyûjteményével érkezik az alaprendszer
részeként. Azonban a külsõ
alkalmazások telepítéséhez rengeteg
teendõt kell elvégeznünk. A feladat
elvégzésére ezért a &os; két,
egymást kiegészítõ
technológiát kínál fel: a &os;
Portgyûjteményt (telepítés
forráskódból) és a csomagokat
(telepítés elõre elkészített
bináris csomagokból). Mind a két
módszerrel fel tudjuk telepíteni a kedvenc
alkalmazásunk legújabb verzióját
lokálisan vagy egyenesen a
hálózatról.A fejezet elolvasása során
megismerjük:hogyan telepítsünk külsõ
fejlesztésû bináris
szoftvercsomagokat;hogyan fordítsunk le a forrásukból
külsõ fejlesztésû szoftvereket a
Portgyûjtemény
segítségével;hogyan távolítsunk el korábban
már telepített csomagokat és
portokat;hogyan bíráljuk felül a
Portgyûjtemény által használt
alapértelmezett értékeket;hogyan keressük meg a megfelelõ
szoftvercsomagokat;hogyan frissítsük a telepített
alkalmazásokat.Az alkalmazások telepítésének
összefoglalásaHa korábban már használtunk &unix;
rendszereket, valószínûleg ismerjük a
külsõ alkalmazások
telepítésének jellemezõ
menetét:Töltsük le a szoftvert, amelyet vagy
forráskód vagy pedig bináris
formátumban érhetünk el.Bontsuk ki az alkalmazás letöltött
változatát (ez általában a
&man.compress.1;, &man.gzip.1; vagy a &man.bzip2.1;
által tömörített tar
állomány).Keressük meg dokumentációt
(többnyire az INSTALL vagy a
README állományban
található, vagy a doc/
alkönyvtárban) és olvassuk el benne, hogyan
tudjuk telepíteni a szoftvert.Ha a szoftver forrását
töltöttük le, fordítsuk le.
Elképzelhetõ, hogy ennek során
szerkesztenünk kell a Makefile
állományt vagy lefuttatnunk a
configure szkriptet, illetve más
lépéseket is el kell
végeznünk.Próbáljuk a ki szoftvert, majd
telepítsük.Ez annak a forgatókönyve, amikor minden hiba
nélkül lezajlik. Megeshet azonban, ha olyan szoftvert
telepítünk, amelyet nem kifejezetten a &os;-hez
terveztek, akkor javítanunk kell a
forráskódban a szoftver megfelelõ
mûködéséhez.Ha sikerül mûködésre bírni,
folytathatjuk &os;-n a szoftver telepítését a
megszokott módon. Habár a &os; erre
a célra két lehetõséget is
felkínál, amivel rengeteg
erõfeszítéstõl megkímélhet
minket: ezek a csomagok és a portok. Az írás
pillanatában közel &os.numports; külsõ
alkalmazás érhetõ el ilyen
formában.Egy adott alkalmazás esetén a
hozzátartozó &os;-s csomag mindössze egyetlen
letöltendõ állományt takar. A csomag
tartalmazza az alkalmazás
telepítéséhez szükséges
összes parancs elõre lefordított
változtatát, ugyanígy magát a
dokumentációt is. A letöltött csomagokat
a &os; csomagkezelõ parancsaival vehetjük
használatba: ezek a &man.pkg.add.1;, &man.pkg.delete.1;,
&man.pkg.info.1; és így tovább. Az új
alkalmazások telepítése ennek
köszönhetõen egyetlen paranccsal
elvégezhetõ.Egy alkalmazás &os;-s portja mögött
lényegében állományok
gyûjteménye áll, amelyek abban
segítenek, hogy automatikusan tudjunk telepíteni a
forráskód
felhasználásával.Ne felejtsük el, hogy normális esetben
számos lépcsõt végig kell járnunk
egy program sajátkezû
lefordításához (letöltés,
kitömörítés, javítgatás,
fordítás, telepítés). A portot
alkotó állományok tartalmazzák az
összes olyan szükséges információt,
amelyek átengedik ezt a feladatot a rendszernek. Kiadunk
néhány egyszerû parancsot és az
alkalmazás magától letöltõdik,
kitömörítõdik, módosítja a
forráskódját, lefordul és
települ.Valójában a portrendszer
használható olyan csomagok
létrehozására is, amelyeket
késõbb a pkg_add és
többi hozzá hasonló, hamarosan
részletesebben is bemutatandó csomagkezelõ
paranccsal is kezelni tudunk.A csomagok és a portok egyaránt képesek
függõségeket kezelni.
Tegyük fel, hogy egy olyan alkalmazást akarunk
telepíteni, amely egy adott
függvénykönyvtár
meglététõl függ a rendszeren. Az
alkalmazás és a könyvtár is
elérhetõ &os; portként és
csomagként. Akár a pkg_add
parancsot, akár a portrendszert használjuk az
alkalmazás hozzáadására, mind a
kettõ észre fogja venni, hogy a szükséges
könyvtárt még nem telepítettük,
ezért elõször azt fogja automatikusan
telepíteni.Tudván, hogy a két említett
megoldás szinte teljesen egyenértékû,
felmerülhet a kérdés: a &os; mégis
miért rendelkezik mindkettõvel? A csomagoknak
és a portoknak is megvannak a maguk elõnyei, és
hogy a kettõ közül melyiket használjuk, csak
az egyéni ízlésünkön
múlik.A csomagok használatának elõnyeiEgy csomag általában kisebb, mint az
alkalmazás forráskódját
tartalmazó tömörített tar
állomány.A csomagokat nem kell fordítani. Nagyobb
alkalmazások, mint például a
Mozilla,
KDE vagy
GNOME esetén ez
kulcsfontosságú lehet, fõleg abban az
esetben, ha a rendszerünk ehhez nem eléggé
gyors.A csomagok használata nem várja el
tõlünk, hogy behatóbban ismerjük
miként is kell &os;-n szoftvereket
lefordítani.A portok használatának elõnyeiA csomagokat általános esetben igen
óvatos beállításokkal
készítik el, hiszen a lehetõ legtöbb
rendszeren mûködõképesnek kell
lenniük. Ha viszont portból
telepítünk, nyugodtan hangolhatjuk úgy a
beállításokat, hogy
(például) a &pentium; 4 vagy az Athlon
processzoroknak kedvezõ kódot hozzanak
létre.Bizonyos alkalmazások fordítás
idején állítandó
beállításokkal rendelkeznek arról,
hogy mire lesznek képesek és mire nem.
Például az Apache
beépített konfigurációs
opciók széles kelléktárával
rendelkezik. Amikor viszont portból hozzuk
létre, nem kell elfogadnunk ezek alapértelmezett
értékeit, hanem a saját
igényeinknek megfelelõen
átállíthatjuk ezeket.Egyes esetekben több különféle
beállítást tükrözõ csomag
is létezhet ugyanahhoz az alkalmazáshoz.
Például a Ghostscript
elérhetõ ghostscript
és ghostscript-nox11
csomagként is attól függõen, hogy
telepítettük-e az X11 szervert. Ez
természetesen egy meglehetõsen durva
kijátszása a csomagrendszernek, és
gyorsan lehetetlenné is válik a
használata, ha az adott alkalmazás
egy-két fordítási idejû
beállításnál többel
rendelkezik.Néhány szoftver licencelése tiltja a
bináris terjesztést. Ezért ezek a
szoftverek kizárólag csak
forráskód formájában
továbbíthatóak.Néhányan nem bíznak meg a
bináris verziókban. Ha látjuk a
forráskódot is, akkor (elméletben)
át tudjuk nézni, és mi magunk is
megkereshetjük a benne lappangó
hibákat.Ha vannak saját javításaink, csak a
forráskód birtokában tudjuk ezeket
felhasználni.Sokan szeretik, ha egyszerûen csak ott
van a szoftverek forráskódja. Ha
éppen unatkoznak, beléjük tudnak
nézni, ötleteket és kódot tudnak
belõlük meríteni (persze csak akkor, ha ezt a
licenc megengedi), vagy tovább tudják ezeket
fejleszteni, orvosolni tudják a hibáikat
stb.A portok frissítésérõl a &a.ports;
és a &a.ports-bugs; valamelyikérõl
szerezhetünk naprakész
információkat.Mielõtt bármelyik alkalmazást is
telepítenénk, érdemes meglátogatnunk
az oldalt, ahol a
hozzátartozó ismert biztonsági
problémákról olvashatunk.Telepíthetjük a ports-mgmt/portaudit programot is,
amely automatikusan ellenõrzi a telepített
alkalmazások ismert sebezhetõségeit. Ez az
ellenõrzés egyébként megejthetõ
minden port lefordítása elõtt is. Ezalatt a
portaudit -F -a parancs
kiadásával ellenõrizhetjük utólag
a telepített csomagokat.A fejezet fennmaradó részében
megmutatjuk, hogyan használjuk &os;-ben a csomagokat
és portokat külsõ alkalmazások
telepítésére és
karbantartására.A számunkra szükséges alkalmazások
felkutatásaMielõtt telepítenénk bármilyen
alkalmazást, tudnunk kell, hogyan is nevezik.A &os;-hez elérhetõ alkalmazások
listája folyamatosan növekszik. Szerencsére
számos módja van annak, hogy
utánajárjunk a keresett szoftvernek:A &os; honlapján találhatunk egy
rendszeresen frissülõ listát az összes
elérhetõ alkalmazásról, a http://www.FreeBSD.org/ports/
címen. Itt a portok különbözõ
kategóriákba sorolva találhatóak
meg, ahol név szerint megkereshetjük az
alkalmazást (amennyiben ismerjük), vagy
végigböngészhetjük az adott
kategóriában elérhetõ
alkalmazásokat is.FreshPortsDan Langlille a címen
karbantartja a FreshPorts nevû oldalt. Ezen az oldalon
folyamatosan nyomon lehet követni a
Portgyûjteményben megtalálható
alkalmazások változásait,
lehetõvé téve, hogy egy vagy több
portot is figyeljünk, vagy e-mailt
küldjünk a
frissítésükrõl.FreshMeatAmennyiben nem ismerjük a keresett alkalmazás
nevét, próbáljuk meg felkutatni a
FreshMeaten ()
vagy hozzá hasonló oldalakon, majd
nézzük a &os; honlapján, hogy az adott
alkalmazást portolták-e már a
rendszerre.Ha pontosan ismerjük a port nevét, és
csak a kategóriáját kellene
megkeresnünk, használjuk a &man.whereis.1;
parancsot. Egyszerûen csak adjuk ki a whereis
név parancsot,
ahol az név a
telepítendõ program neve. Ha sikerült
megtalálni, részletes információt
kapunk arról, hogy hol található,
valahogy így:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofA fenti példában megtudhatjuk, hogy az
lsof parancs a
/usr/ports/sysutils/lsof
könyvtárban található.Vagy egy egyszerû &man.echo.1; paranccsal is
megkereshetjük a portfában a portokat. Mint
például:&prompt.root; echo /usr/ports/*/*lsof*
/usr/ports/sysutils/lsofEz a módszer a /usr/ports/distfiles
könyvtárba letöltött összes
illeszkedõ állományt is
kilistázza.Egy másik lehetõség egy adott port
megtalálására, ha a
Portgyûjtemény beépített
keresési mechanizmusát használjuk. Ennek
használatához a /usr/ports
könyvtárban kell lennünk. Miután
beléptünk ide, futtassuk le a make
search
name=programnév
parancsot, ahol a programnév
a keresendõ program neve. Például, ha az
lsof programot keressük:&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps: A keresés eredményében
leginkább a Path: kezdetû sorra kell
odafigyelnünk, mivel ez árulja el, hol is
találhatjuk meg a portot. Az itt szereplõ
többi információ nem szükséges
a port telepítéséhez, ezért
azokkal itt most nem foglalkozunk.Mélyebb keresésekhez használhatjuk a
make search
key=szöveg parancsot
is, ahol a szöveg a
keresendõ szöveg(részlet) lesz. Ezt a
rendszer keresni fogja a portok neveiben,
megjegyzésekben, leírásokban és
függõségekben. Amikor nem ismerjük a
keresett program nevét, ez olyan portok
keresésére alkalmas, amelyek egy adott
témához kapcsolódnak.A fenti esetek mindegyikében a keresés nem
különbözteti meg a kis- és
nagybetûket. Tehát a LSOF
keresése ugyanazt az eredményt adja, mint az
lsof esetén.ChernLeeÍrta: A csomagrendszer használata&os; alatt több különbözõ
módon tudunk csomagokat használni:A sysinstall
használatán keresztül a futó
rendszeren tudjuk megnézni a telepített
csomagokat, tudunk vele csomagokat telepíteni vagy
törölni. Ezzel részletesebben a foglalkozik.A szakasz további részében
ismertetett egyéb parancssoros csomagkezelõ
segédprogramok.Csomagok telepítésecsomagoktelepítésepkg_addA &man.pkg.add.1; segédprogram
segítségével telepíthetünk
&os;-hez készült szoftvercsomagokat lokálisan
vagy a hálózaton levõ egyik szerveren
megtalálható
állományokból:Csomagok letöltése manuálisan
és telepítése lokálisan&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>exit
&prompt.root; pkg_add lsof-4.56.4.tgzHa nincsenek egyáltalán helyben csomagjaink
(például egy &os; CD-készletben), akkor a
legjobban úgy járunk, ha a használjuk a
&man.pkg.add.1; kapcsolóját.
Ennek hatására a segédprogram
önmagától meghatározza a
szükséges állományformátumot
és verziót, majd FTP-n keresztül letölti
és telepíti a csomagot.pkg_add&prompt.root; pkg_add -r lsofAz iménti példában a program
mindenféle további beavatkozás
nélkül letölti a megfelelõ csomagot
és felteszi. Ha a központi helyett egy másik
szervert szeretnénk használni, felül kell
bírálnunk az alapértelmezett
beállításokat és igényeinknek
megfelelõen be kell állítanunk a
PACKAGESITE környezeti változó
értékét. A &man.pkg.add.1; a &man.fetch.3;
programot használja az állományok
letöltésére, amely pedig számos
egyéb környezeti változót is figyel,
mint például az FTP_PASSIVE_MODE,
az FTP_PROXY és az
FTP_PASSWORD. Ha tûzfal mögött
vagyunk, ezek közül néhányat biztosan be
kell majd állítanunk, vagy FTP/HTTP proxyt kell
használnunk. A &man.fetch.3; man oldalán
megtaláljuk ezen változók teljes
felsorolását. Figyeljük meg, hogy az
lsof-4.56.4 helyett csak
lsof-ot adtunk meg. Amikor ugyanis
kérjük a csomag letöltését is,
nem szabad verziószámot megadnunk. A
&man.pkg.add.1; mindig az alkalmazás legfrissebb
verzióját fogja letöltetni.Ha a &os.current; vagy &os.stable; verziókat
használjuk, a &man.pkg.add.1; mindig az
alkalmazás elérhetõ legfrissebb
verzióját fogja letölteni. Ha azonban
valamelyik -RELEASE verziót használjuk, a
csomagnak az adott kiadáshoz készült
verzióját fogja leszedni. Ezt a
mûködési módot a
PACKAGESITE változó
felülírásával viszont meg tudjuk
változtatni. Például ha a
&os; 5.4-RELEASE változatával dolgozunk, a
&man.pkg.add.1; alapértelmezés szerint a
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/
címrõl fogja letölteni a csomagokat. Ha mi
viszont a &os; 5-STABLE csomagok
letöltését akarjuk elérni,
állítsuk az PACKAGESITE
értékét a
ftp://ftp.freebsd.org/pub/FreeBSD/i386/packages-5-stable/Latest/
címre.A csomagok .tgz és
.tbz formátumokban kerülnek
terjesztésre. Ezek az
címen, vagy pedig a &os; CD-ken találhatóak
meg. A 4 CD-bõl álló készlet (illetve
a PowerPak stb.) minden CD-jén találhatunk
csomagokat a packages/
könyvtárban. A csomagokat tároló
könyvtár struktúrája hasonló a
/usr/ports könyvtárban
kialakított könyvtárfához. Minden
kategóriának saját könyvtára
van, és minden csomag megtalálható az
All (összes)
kategóriában.A csomagrendszer könyvtárszerkezete tehát
megegyezik a portok szétosztásával,
ezáltal így képesek egymással
összedolgozni a teljes csomag/port rendszer
megformálásában.A csomagok kezelésecsomagokkezelésA &man.pkg.info.1; egy olyan segédprogram, amellyel
készíteni lehet egy listát a
telepített csomagokról, és emellett
még más egyéb információkat
tudhatunk meg róluk.pkg_info&prompt.root; pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...A &man.pkg.version.1; összefoglalja az összes
telepített csomag verzióját.
Ezenkívül össze is hasonlítja a csomagok
verzióját a portfában
található aktuális
verziókéval.pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...A második oszlopban látható jelek
utalnak a telepített verzió a helyi
portfában található
verzióéhoz viszonyított
korára.JelJelentés=A telepített csomag verziója megegyzik
a helyi portfában található
verziójával.<A telepített verzió a portfában
levõnél régebbi.>A telepített verzió újabb, mint
a portfában található. (A helyi
portfa valószínûleg nem lett
frissítve.)?A telepített csomag nem
található a portok között. (Ez
akkor történhet meg, amikor
például egy portot
eltávolítottak a
Portgyûjteménybõl vagy
átnevezték.)*A csomagnak több verziója is jelen
van.!A telepített csomag szerepel az indexben, de a
pkg_version valamiért nem volt
képes összehasonlítani a
verziószámát az indexben levõ
bejegyzéssel.Csomagok törlésepkg_deletecsomagoktörlésEgy korábban már telepített csomag
eltávolításához használjuk a
&man.pkg.delete.1; segédprogramot.&prompt.root; pkg_delete xchat-1.7.1A &man.pkg.delete.1; használatánál
szükség van a csomag teljes nevének és
verziószámának megadására. A
fenti parancs tehát nem mûködik, ha csak az
xchat-et adjuk meg az
xchat-1.7.1 helyett. A
telepített csomag verzióját azonban
könnyedén kitalálhatjuk a &man.pkg.version.1;
alkalmazásával. Esetleg egyszerûen
dzsókerkaraktereket is használhatunk:&prompt.root; pkg_delete xchat\*Ebben az esetben az összes xchat-tel
kezdõdõ csomagot letörli.EgyebekA csomagokra vonatkozó összes
információ a /var/db/pkg
könyvtárban található. Az egyes
csomagok leírása és hozzájuk
telepített állományok listája az
ezen a könyvtáron belül elhelyezkedõ
állományokban tárolódik.A Portgyûjtemény használataA most következõ szakaszokban megismerhetjük
azokat az alapvetõ utasításokat, amelyekkel a
Portgyûjteményen keresztül tudunk programokat
telepíteni és eltávolítani. Az ehhez
használható make targetek
és környezeti változók
részletesebb leírását a &man.ports.7;
man oldalán lelhetjük meg.A Portgyûjtemény beszerzéseMielõtt bármelyik portot is tudnánk
telepíteni, elsõként magát a
Portgyûjteményt kell megszereznünk — ez
lényegében a /usr/ports
könyvtárban megtalálható
Makefile állományok,
javítások és leírások
gyûjteménye.A &os; telepítése közben a
sysinstall rákérdez a
Portgyûjtemény telepítésére is.
Ha erre nemet válaszoltunk volna, a portok
gyûjteményét az alábbi módokon
szerezhetjük be:A CVSup használatávalA CVSup protokoll
használatával viszonylag gyorsan el tudjuk
érni és naprakészen tudjuk tartani a
Portgyûjtemény egy példányát.
A CVSup használatát
alaposabban a A CVSup
használata címû
függelékben ismerhetjük meg.A &os; 6.2 változatától kezdve az
alaprendszerben a CVSup
protokollt a csup
valósítja meg. A &os; korábbi
változatának használói ezt a
programot a net/csup
porton vagy csomagon keresztül tudják
telepíteni.Gondoskodjunk róla, hogy a /usr/ports üres legyen a
csup elsõ futtatása
elõtt! Ha más forrásból raktuk ide
a Portgyûjteményt, a
csup nem fogja lenyesegetni az
azóta eltávolított
javításokat.Futtassuk a csup programot:&prompt.root; csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfileItt írjuk át a
cvsup.FreeBSD.org
címét a hozzánk legközelebb
levõ CVSup szerver
címére. Az összes elérhetõ
tükörszerver címét a CVSup
tükrözések () címû részben
olvashatjuk.Ha például el akarjuk kerülni a
CVSup szerver
megadását a parancssorban, akkor
mindenképpen a ports-supfile
állományból érdemes
készíteni egy saját
verziót.Ebben az esetben root
felhasználóként másoljuk a
/usr/share/examples/cvsup/ports-supfile
állományt egy új helyre,
például a /root
könyvtárba vagy a saját
felhasználói
könyvtárunkba.Szerkesszük át a
ports-supfile
állományt.Írjuk át a
CHANGE_THIS.FreeBSD.org
értéket a hozzánk
legközelebb található
CVSup szerverére. A
CVSup
tükrözések () címû
részben megtaláljuk az összes ilyen
tükörszervert.És most indítsuk el a
csup parancsot az alábbi
módon:&prompt.root; csup -L 2 /root/ports-supfileA &man.csup.1; parancs késõbbi futása
során már letölti és
érvényesíti az észlelt
változtatásokat a saját
Portgyûjteményünkben, de a
telepített portokat viszont nem fogja
újrafordítani.A Portsnap használatávalA Portsnap egy másik
módszert képvisel a Portgyûjtemény
terjesztésére, a lehetõségeinek
részletesebb megismeréséhez
tekintsük át A Portsnap
használata címû szakaszt.Töltsük le a Portgyûjtemény
tömörített pillanatképét a
/var/db/portsnap
könyvtárba. Ha akarjuk, ezután a
lépés után már
lekapcsolódhatunk az internetrõl.&prompt.root; portsnap fetchHa még csak elõször futtatjuk a
Portsnapet, bontsuk ki az
imént letöltött állapotot a
/usr/ports
könyvtárba:&prompt.root; portsnap extractHa viszont már korábban is létezett
a /usr/ports
könyvtárunk és most csak
frissítjük, akkor helyette ezt a parancsot adjuk
ki:&prompt.root; portsnap updateA sysinstall
használatávalEbben az esetben a sysinstall
nevû programmal telepítjük a
Portgyûjteményt valamilyen
telepítõeszközrõl. Ilyenkor azonban a
kiadás dátumának megfelelõ,
valószínûlég régebbi
változat kerül fel. Ha rendelkezünk
internet-hozzáféréssel, akkor
inkább az elõbb tárgyalt módszerek
valamelyikét alkalmazzuk.root
felhasználóként adjuk ki a
- sysinstall (vagy a &os; 5.2 elõtti
- verzióban a /stand/sysinstall)
- parancsot, ahogy itt is láthatjuk:
+ sysinstall parancsot, ahogy itt is
+ láthatjuk:
&prompt.root; sysinstallMenjünk le és álljunk meg a
Configure
(Beállítások), menüpontnál,
és nyomjunk Enter
billentyût.Menjünk le és keressük meg a
Distributions
(Terjesztések) menüponot, majd nyomjunk meg az
Enter billentyût.Menjünk le, válasszuk ki a
ports elemet a
Szóköz
megnyomásával.Menjünk fel az Exit
(Kilépés) ponthoz, nyomjunk meg az
Enter billentyût.Válasszuk ki a telepítéshez
használni kívánt eszközt, mint
például CD, FTP stb.Menjünk fel az Exit
(Kilépés) menüpontig, majd nyomjunk meg
az Enter billentyût.Végezetül lépjünk ki a
sysinstall programból,
aminhez nyomjunk meg az X
billentyût.Portok telepítéseportoktelepítésA váz fogalma az elsõ, amit a
Portgyûjteménnyel kapcsolatban tisztázni
kell. Dióhéjban összefoglalva, egy port
váza azon állományok legszûkebb
halmaza, amelyek elárulják a &os;
számára, hogyan fordítsuk le hibamentesen
és hogyan telepítsük az adott programot.
Ehhez minden port vázában
megtalálható:Egy Makefile nevû
állomány. Ez tartalmazza azokat a
különbözõ utasításokat,
amelyek megmondják, hogyan kell lefordítani
és hova kell telepíteni a rendszerünkben
az adott alkalmazást.Egy distinfo nevû
állomány. Ebben található
információ a port
lefordításához szükséges
állományok
letöltésérõl, valamint a
letöltött állományok
ellenõrzéséhez szükséges (az
&man.md5.1; és &man.sha256.1; programokkal
számolt) ellenõrzõösszegek.Egy files alkönyvtár.
Itt találhatjuk meg azokat a
javításokat, amelyek
alkalmazásával le tudjuk fordítani a
programot &os;-n is. Ezek a javítások
többnyire bizonyos állományok
módosításaira vonatkozó
apró állományok
formájában jelennek meg.
Természetüknél fogva szöveges
formátumúak, és általában
olyanok szerepelnek bennük, hogy
Töröld a 10. sort vagy
Változtasd meg a 26. sort erre: ....
Ezeket a javításokat eredetileg patcheknek
(foltoknak) nevezik, vagy másképp diffeknek
(eltéréseknek) is, mivel a &man.diff.1;
program segítségével hozzák
ezeket létre.Ez a könyvtár tartalmazhat további
állományokat is portok
elkészítéséhez.Egy pkg-descr nevû
állomány. Ez a program részletesebb,
gyakran többsoros bemutatása.Egy pkg-plist nevû
állomány. Itt találjuk meg a port
által telepítendõ összes
állományt. Ez egyben közli a
portrendszerrel is, hogy az eltávolítás
során mely állományokat kell majd
törölnie.Egyes portokban szereplhetnek még egyéb
állományok is, mint például a
pkg-message. Ezeket az
állományokat a portrendszer különleges
helyzetek kezelésére tartogatja. Ha még
többet kívánunk megtudni ezekrõl az
állományokról, vagy magukról a
portokról általánosságban, lapozzuk
fel a &os;
porterek kézikönyvét.A port ugyan tartalmazza a forráskód
lefordításához szükséges
utasításokat, de konkrétan a
forráskódot viszont nem. Ezt egy CD-rõl vagy
az internetrõl tudjuk megszerezni. A
forráskód általában a szerzõje
által kedvelt formában jelenik meg: ez gyakran egy
gzip-pel tömörített tar állomány,
de lehet tömörítve mással is, vagy
éppen lehet tömörítetlen. A program
forráskódját, legyen akármilyen
formában is, nevezik distfile-nak
(terjesztési állománynak). A &os; portok
telepítésének két
módszerét tárjuk fel a
következõkben.A portok telepítéséhez
root felhasználóként
kell bejelentkeznünk.Mielõtt telepítenénk bármelyik
portot is, ajánlott frissíteni a
Portgyûjteményünket és
ellenõriznünk az adott portot a címen
található biztonsági
adatbázisban.Az újonnan telepítendõ
alkalmazások biztonsági
sebezhetõségeinek ellenõrzését
automatikussá is tehetjük a
portaudit
használatával. Ez a segédeszköz is
a Portgyûjteményben található
(ports-mgmt/portaudit).
Érdemes minden port telepítése elõtt
letöltenünk a legfrissebb sebezhetõségi
adatbázist a portaudit -F parancs
kiadásával. Mellesleg az adatbázis
rendszeres frissítése és ez a
biztonsági felülvizsgálat a
naponként elvégzendõ biztonsági
ellenõrzések közt is megjelenik.
Ezekrõl részletesebben a &man.portaudit.1;
és &man.periodic.8; man oldalakon olvashatunk.A Portgyûjtemény feltételezi, hogy
mûködõ
internet-hozzáféréssel rendelkezünk.
Amennyiben ez nem így lenne, a terjesztési
állományokat, forráskódokat
saját magunknak kell bemásolnunk a
/usr/ports/distfiles
könyvtárba.A kezdéshez lépjünk be a
telepítendõ port
könyvtárába:&prompt.root; cd /usr/ports/sysutils/lsofMiután beléptünk az
lsof könyvtárába,
láthatjuk a port vázát. A
következõ lépés a fordítás
avagy a port buildelése
(elkészítése). Ezt egy szimpla
make parancs kiadásával
kezdeményezhetjük. Miután megtettük,
valami ilyesmit kell tapasztalnunk:&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===> Extracting for lsof-4.57
...
[ide jön a kitömörítés kimenete]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[ide jön a configure szkript kimenete]
...
===> Building for lsof-4.57
...
[ide jön a fordítás kimenete]
...
&prompt.root;A fordítás befejeztével visszakapjunk a
parancssort. A soron következõ lépés a
port telepítése lesz. Ehhez mindössze
egyetlen szóval kell kiegészítenünk a
make parancs meghívását:
ez a szó pedig az install
(telepít) lesz.&prompt.root; make install
===> Installing for lsof-4.57
...
[a telepítés kimenete kimarad]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Miután ismét visszakaptuk a parancssort,
már futtatni is tudjuk a frissen telepített
alkalmazásunkat. Mivel az lsof
programnak tovább jogosultságokra is
szüksége van, egy errõl szóló
biztonsági figyelmeztetést is láthatunk. A
portok létrehozása és
telepítése során érdemes
figyelnünk az ehhez hasonló
figyelmeztetésekre.A telepítés befejeztével nem árt
törölnünk a fordításhoz
felhasznált alkönyvtárat (work) is. Ezzel
nemcsak a drága lemezterületet spóroljuk meg,
hanem megelõzzük a port késõbbi
frissítése során felmerülõ
esetleges problémákat is.&prompt.root; make clean
===> Cleaning for lsof-4.57
&prompt.root;Az eljárásból két
lépést meg is tudunk takarítani, ha
egyszerûen csak a make install
clean parancsot adjuk ki az elõbb
három lépésben tagolt
make, make
install és
make clean
parancsok helyett.Bizonyos parancsértelmezõk a
PATH környezeti változóban
felsorolt könyvtárakban található
parancsokat gyorsítótárban
tárolják, ezzel felgyorsítva a
hozzájuk tartozó végrehajtható
állományok keresését. Ha
történetesen ilyen parancsértelmezõt
használnánk, az új portok
telepítése után
szükségünk lehet a rehash
parancs kiadására, mivel enélkül nem
tudjuk elérni a frissen telepített parancsokat.
Ezt a parancsot például a
tcsh és a hozzá
hasonló parancsértelmezõkben
találhatjuk meg, az sh és
rokonainál pedig a hash -r ennek a
megfelelõje. A pontos információkat
errõl a témáról a
parancsértelmezõnk
dokumentációjában lelhetjük
meg.Némely külsõ DVD termék, mint
például a &os; Malltól
megrendelhetõ &os; Toolkit, tartalmazhatnak
terjesztési állományokat. Ezek
remekül használhatóak a
Portgyûjteménnyel. Ehhez csatlakoztatnunk kell a
DVD-t a /cdrom könyvtárba.
Ettõl eltérõ csatlakozási pontok
használata esetén ne felejtsük el
átállítani a CD_MOUNTPTS
változót sem a make
számára. Ekkor a fordításhoz
szükséges állományokat úgy
fogja kezelni a rendszer, mintha a merevlemezünkön
lennének.Vigyázzunk arra, hogy néhány portot
nem lehet CD-n terjeszteni. Ez részben azért
lehet, mert a szükséges állományok
letöltéséhez, illetve újbóli
terjesztéséhez ki kell tölteni valamilyen
regisztrációs nyomtatványt, vagy pedig
egyéb okok miatt. Tehát ha olyan portot akarunk
telepíteni, ami nincs rajta a CD-n, mindenképpen
rendelkeznünk kell internetkapcsolattal.A portrendszer a &man.fetch.1; segédprogramot
használja az állományok
letöltésére, amely figyelembevesz
különféle környezeti
változókat, ilyenek többek közt az
FTP_PASSIVE_MODE, FTP_PROXY
és az FTP_PASSWORD. Ha tûzfal
mögött vagyunk, szükségünk lehet ezek
némelyikének helyes
beállítására, vagy FTP/HTTP proxyt
kell használnunk. A &man.fetch.3; man oldala tartalmazza
ezen változók teljes
listáját.A make fetch
azon felhasználók számára
nyújt segítséget, akik nem csatlakoznak
minden esetben a hálózatra. Egyszerûen csak
futtassuk le a könyvtárszerkezet
legtetejérõl (/usr/ports) ezt a
parancsot és a szükséges
állományok letöltõdnek nekünk. A
parancs mûködik az alsóbb szinteken is,
például a /usr/ports/net
könyvtárban. Azonban legyünk tekintettel arra,
hogy ha egy port függ más portoktól vagy
függvénykönyvtáraktól, ez a
parancs nem fogja letölteni a
hozzájuk tartozó állományokat.
Ilyenkor a fetch helyett
használjuk a fetch-recursive
targetet.Ha a make parancsot egy felsõbb
szinten futtatjuk, akkor ezzel létre tudjuk hozni az
összes vagy csak kategóriánként az
összes portot, hasonlóan az elõbb
említett make
fetch módszerhez.
Ez azonban veszélyes, mivel egyes portok
kizárják mások használatát.
Emellett elõfordulhat az is, hogy bizonyos portok
ugyanazon a néven telepítenek több,
tartalmukban különbözõ
állományt.Nagyon ritkán adódhat, hogy a
felhasználónak nem a
MASTER_SITES által mutatott
helyekrõl kell beszereznie a szükséges
állományokat (innen töltõdnek ugyanis
le). A MASTER_SITES
beállítást az alábbi paranccsal
bírálhatjuk felül:&prompt.root; cd /usr/ports/könyvtár
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchEbben a példában a
MASTER_SITES értékét a
ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/
címre változtattuk meg.A portok némelyike lehetõvé teszi
(esetleg meg is követeli), hogy engedélyezzük
vagy letiltsuk a készülõ program bizonyos
elemeit hatékonysági, biztonsági vagy
egyéb testreszabási irányelvek
mentén. Ilyen többek közt a www/mozilla, a security/gpgme és a mail/sylpheed-claws. Ha
elérhetõek ilyen beállítási
lehetõségek, arról a rendszer egy
üzenetben tájékoztat minket.Az alapértelmezett könyvtárak
felülbírálásaNéha hasznos (vagy kötelezõ) lehet
eltérõ munka- és
célkönyvtárak alkalmazása. A
WRKDIRPREFIX és a
PREFIX változókkal ezek
alapértelmezéseit tudjuk megváltoztatni.
Például a&prompt.root; make WRKDIRPREFIX=/usr/home/example/ports installparancs a portot a
/usr/home/example/ports
könyvtárban fogja lefordítani és az
eredményét a /usr/local
könyvtárba telepíti. A&prompt.root; make PREFIX=/usr/home/example/local installparancs hatására a port a
/usr/ports könyvtárban
készül el és a
/usr/home/example/local
könyvtárba települ.Természetesen a&prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local installparancs ötvözi az elõbbi kettõt
(amelyet most túlságosan is hosszú lenne
kiírni, de vélhetõen sejthetõ
belõle az alapötlet).Lehetõség van ezen változókat a
saját környezetünkben is
beállítani. Ha erre lenne
szükségünk, nézzünk utána
az ezzel kapcsolatos teendõnek a
parancsértelmezõnk man oldalán.Az imake
használatárólBizonyos portok az (X Window System
részeként megjelenõ)
imake segédprogramra
támaszkodnak, ahol viszont nem mûködik a
PREFIX
átállítása és
mindenképpen a /usr/X11R6
könyvtárba akar telepíteni. Ehhez
hasonlóan egyes Perl portok figyelmen kívül
hagyják a PREFIX
változót és közvetlenül a Perl
fájába kerülnek. Az ilyen portok
esetén nagyon nehéz vagy szinte lehetetlen
betartatni a PREFIX
használatát.A portok újrakonfigurálásaEgyes portok lefordítása elõtt
megjelenik egy ncurses alapú menü, ahol ki tudunk
választani bizonyos fordítási
beállításokat. Gyakran elõfordul,
hogy a port lefordítása után a
felhasználók szeretnék újra
elõhozni ezt a menüt és megadni vagy kivenni
bizonyos beállításokat. Erre több
mód is kínálkozik. Egyik ilyen
lehetõség az, ha belépünk a port
könyvtárába és kiadjuk a
make config
parancsot, amivel lényegében ismét
elõcsaljuk a beállításokat
összefoglaló menüt. Másik ilyen
lehetõség a make
showconfig
alkalmazása, amivel a porthoz tartozó
összes beállítást tudjuk egyszerre
megjeleníteni. Ezek mellett még
használható a make
rmconfig parancs is, amivel
törölni tudjuk az összes eddigi
beállítást és így
újrakezdhetjük a port
konfigurációját. Ezek és a
többi ilyen opció a &man.ports.7; man oldalon
kerül bõvebb kifejtésre.A portok eltávolításaportokeltávolításMost már tudjuk, miként lehet portokat
telepíteni, azonban valószínûleg
még az is érdekelhet minket, hogy miként
kell ezeket eltávolítani abban az esetben, ha
például késõbb meggondolnánk
magunkat velük kapcsolatban. A korábban
telepített példaportot fogjuk
eltávolítani (a figyelmetlenek
kedvéért megemlítjük, hogy ez az
lsof volt). A portok
eltávolítása teljesen egybevág a
csomagokéval (errõl a csomagokról szóló
részben beszéltünk), mivel ekkor is
használhatjuk a &man.pkg.delete.1; parancsot:&prompt.root; pkg_delete lsof-4.57A portok frissítéseportokfrissítésElõször is a &man.pkg.version.1; parancs
felhasználásával listázzuk ki azokat
a portokat, amik felett már eljárt az idõ
és a Portgyûjteményben
található belõlük újabb
verzió:&prompt.root; pkg_version -vA /usr/ports/UPDATING
állományMiután frissítettük a
Portgyûjteményünket, de még
mielõtt megpróbálnánk
akármelyik portot is frissíteni, érdemes
egy pillantást vetnünk a
/usr/ports/UPDATING
állományra. Itt megtalálhatóak
azok a problémák és a hozzájuk
tartozó lépések, amelyekkel a
felhasználóknak a portok
frissítése során szembe kell
nézniük, beleértve az
állományformátumok, a
konfigurációs állományok
helyének megváltozását vagy
egyéb olyan módosításokat, amik a
korábbi verziókkal
összeférhetetlenséget
szülhetnek.Amennyiben az UPDATING
állomány tartalma ellentmondana az itt
olvasottakkal, mindig az UPDATING
állományban leírtak az
irányadóak.Portok frissítése a
portupgrade
használatávalportupgradeA portupgrade nevû
segédprogramot a portok egyszerûbb
frissítésére találták ki,
és a ports-mgmt/portupgrade portban
található meg. A make
install clean paranccsal
bármelyik más porthoz hasonlóan
telepíthetjük:&prompt.root; cd /usr/ports/ports-mgmt/portupgrade
&prompt.root; make install cleanA pkgdb -F paranccsal
fésültessük át a telepített
portok listáját, és javítsuk az
általa jelentett ellentmondásokat.
Érdemes rendszeresen elvégezni ezt,
lehetõleg minden frissítés
elõtt.Miután kiadtuk a portupgrade -a
parancsot, a portupgrade
nekilát frissíteni az összes elavult portot
a rendszerünkben. Ha minden egyes
frissítést külön meg szeretnénk
erõsíteni, használjuk a
kapcsolót is.&prompt.root; portupgrade -aiHa nem akarjuk az összes portot frissíteni,
csupán egy bizonyos alkalmazásét,
használjuk a portupgrade
pkgname
paraméterezést. A
kapcsoló megadásával a
portupgrade elõször
frissíti az adott alkalmazás
függõségeit.&prompt.root; portupgrade -R firefoxHa a mûvelet során csomagokat
kívánunk használni portok helyett, adjuk
meg a kapcsolót. Ennek
révén a portupgrade
megkeresi a csomagokat a PKG_PATH
környezeti változóban felsorolt
könyvtárakban vagy ha itt nem találja,
letölti ezeket egy távoli szerverrõl.
Amennyiben a csomagokat sem helyben, sem pedig a távoli
szerveren nem találja, a
portupgrade helyettük portokat
fog használni. Ilyenkor a portok
használatát a
kapcsoló beállításával
lehet elkerülni:&prompt.root; portupgrade -PP gnome2Csak a terjesztési állományok (vagy a
esetén csomagok)
letöltéséhez használjuk a
kapcsolót. Mindezekrõl
részletesebben a &man.portupgrade.1; man oldalon
olvashatunk.Portok frissítése a
Portmanager
használatávalportmanagerA Portmanager egy másik
hasznos segédprogram a portok könnyû
frissítéséhez. A ports-mgmt/portmanager porton
keresztül érhetõ el:&prompt.root; cd /usr/ports/ports-mgmt/portmanager
&prompt.root; make install cleanHasználatával az összes
telepített port egyetlen paranccsal
frissíthetõ:&prompt.root; portmanager -uHa a Portmanager minden egyes
lépését külön meg
kívánjuk erõsíteni, akkor a
kapcsolókat se felejtsük el
megadni. A Portmanager emellett
új portok telepítésére is
használható. Eltérõen a
make install clean parancsban
megszokottaktól, a kiválasztott port összes
függõségét még a
fordítás és a telepítés
elõtt fogja frissíteni.&prompt.root; portmanager x11/gnome2Ha bármilyen gondot tapasztalnánk a
kiválasztott port függõségeit
illetõen, a Portmanagert
felkérhetjük az összes
függõség helyes sorrendben
történõ
újrafordítására. Amikor
befejezte, a problémás portot is újra
létrehozza.&prompt.root; portmanager graphics/gimp -fBõvebb információkért
lásd &man.portmanager.1;.Portok frissítése a
Portmaster
használatávalportmasterA Portmaster szintén a
portok frissítésére alkalmas
segédprogram. A Portmaster
esetében a hangsúly az
alaprendszerben is megtalálható
eszközök használatán van (tehát
nem függ semmilyen más porttól) és a
/var/db/pkg/
könyvtárban található
információk alapján dönti el, hogy
milyen portokat kell frissítenie. A ports-mgmt/portmaster portból
érhetõ el:&prompt.root; cd /usr/ports/ports-mgmt/portmaster
&prompt.root; make install cleanA Portmaster a portokat az
alábbi négy kategória
valamelyikébe sorolja be:Gyökér (root) portok (nem függenek
semmitõl, semmi sem függ tõlük)Törzs (trunk) portok (nem függenek
semmitõl, de mások függenek
tõlük)Ág (branch) portok (vannak
függõségeik és mások is
függenek tõlük)Levél (leaf) portok (vannak
függõségeik, de semmi sem függ
tõlük)A következõ paranccsal le tudjuk kérni az
összes telepített portot és az
kapcsolóval
frissítéseket keresni hozzájuk:&prompt.root; portmaster -L
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache-2.2.3
===>>> New version available: apache-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports
===>>> 137 total installed ports
===>>> 83 have new versions available
Az összes telepített port egyetlen
egyszerû paranccsal frissíthetõ:&prompt.root; portmaster -aA Portmaster
alapértelmezés szerint minden egyes
törlendõ korábbi portról
biztonsági másolatot készít.
Amikor az új változat telepítése
sikeresen lezajlott, akkor a
Portmaster ezt a másolatot
megsemmisíti. A
paraméterrel azonban megkérhetjük, hogy
ne törölje le a biztonsági mentést.
Az megadásával a
Portmaster interaktív
módban indul el, és minden port
frissítése elõtt a
felhasználó
megerõsítését fogja
kérni.Amennyiben valamilyen hiba lép fel a
frissítés folyamán, az
opció megadásával
kérhetjük az összes port
frissítését és
újrafordítását is:&prompt.root; portmaster -afA Portmaster
használatával új portokat is fel tudunk
telepíteni a rendszerre úgy, hogy azok
függõségeit is igyekszik frissíteni a
lefordításuk elõtt:&prompt.root; portmaster shells/bashA további részleteket a &man.portmaster.8;
man oldalon találjuk.A portok tárigényeportoktárigényA Portgyûjtemény idõvel egyre több
helyet fog elfoglalni a merevlemezünkön.
Miután sikeresen létrehoztunk és
telepítettünk egy szoftvert a
hozzátartozó portból, érdemes mindig
eltakarítanunk magunk után a work könyvtárban menet
közben keletkezett átmeneti
állományokat a make
clean parancs
használatával. Az egész
Portgyûjteményt egyetlen mozdulattal ezzel a
paranccsal tudjuk végigsepregetni:&prompt.root; portsclean -CAz idõ elõrehaladtával a distfiles könyvtárban
is rengeteg régi forrás tud felhalmazódni.
Ezeket eltávolíthatjuk kézzel, vagy az
alábbi parancs segítségével
törölhetjük az összes olyan
terjesztési állományt, amelyekre már
egyetlen port sem hivatkozik:&prompt.root; portsclean -DVagy törölhetjük az összes olyan
terjesztési állományt, amelyre egyetlen
pillanatnyilag feltelepített port sem hivatkozik a
rendszerünkben:&prompt.root; portsclean -DDA portsclean segédprogram a
portupgrade programcsomag
része.Ne felejtsük el eltávolítani azokat a
portokat, amikre már nincs szükségünk a
továbbiakban. Ebben a feladatban egy jól
használható segédeszköz lehet a
segítségünkre, a ports-mgmt/pkg_cutleaves port.Telepítés utáni teendõkAz új alkalmazás feltelepítése
után minden bizonnyal szeretnénk elolvasni a
hozzá társított dokumentációt,
az egyedi beállításainknak megfelelõen
módosítani a konfigurációs
állományokat, engedélyezni a
rendszerindítás során
történõ automatikus
indítását (ha démonról lenne
szó) és így tovább.Az egyes alkalmazások
beállításához elvégzendõ
lépések nyilvánvalóan
egyedenként eltérõek. Azonban tudunk
szolgálni néhány általános
tanáccsal válaszként az ilyenkor
felmerülõ Na és akkor most mi
legyen? kérdésre:Kérdezzük meg a &man.pkg.info.1;
programtól, milyen állományok és
hova kerültek fel a telepítés során.
Például, ha a SzuperCsomag 1.0.0-át
raktunk fel, akkor a&prompt.root; pkg_info -L SzuperCsomag-1.0.0 | lessparancs kilistázza az összes
állományt, amit a csomagból felraktunk.
Ezek közül leginkább a
man/ könyvtárban
levõekre figyeljünk, mivel ezek lesznek az
alkalmazás man oldalai. Ehhez hasonlóan a
etc/ könyvtárban a
konfigurációs állományok és
a doc/ könyvtárban pedig a
nagyobb lélegzetvételû
dokumentációk foglalnak helyet.Ha nem emlékszünk pontosan rá, hogy az
alkalmazások melyik verzióját is
telepítettük, a&prompt.root; pkg_info | grep -i SzuperCsomagalakú parancs megkeresi az összes olyan
csomagot, aminek a nevében szerepel a
SzuperCsomag
szövegrészlet. A fenti példában
természetesen igény szerint változtassuk
meg a SzuperCsomag szöveget a
tényleges csomag nevére.Ahogy sikerült megtalálnunk az
alkalmazáshoz tartozó man oldalakat, lapozzuk
fel ezeket a &man.man.1; segítségével.
Ugyanígy nézzük át a
mellékelt minta konfigurációs
állományokat és az összes
elérhetõ dokumentációt.Ha az alkalmazásnak van saját honlapja,
kutassunk ott is információk után,
olvassuk el a gyakran ismételt kérdéseket
és így tovább. Ha nem tudnánk
pontosan a honlap címét, a&prompt.root; pkg_info SzuperCsomag-1.0.0kimenetébõl könnyen
elõkeríthetõ. Itt egy
WWW: kezdetû sort kell keresnünk
(már amennyiben létezik), amit az
alkalmazás honlapjának címe kell
kövessen.A rendszerrel együtt indítandó portok
(ilyenek többek közt az internetes
szolgáltatások), általában a
/usr/local/etc/rc.d
könyvtárba rakják a saját
indítószkriptjüket. Érdemes
leellenõrizni ezt a szkriptet és az
igényeinknek megfelelõen módosítani,
átnevezni. A Szolgáltatások
indítása címû szakaszban ezt
részleteiben is megismerhetjük.Teendõ a sérült portokkalHa véletlenül ráakadnánk egy olyan
portra, ami nem mûködik megfelelõen,
nagyjából a következõket tudjuk
tenni:Derítsük ki a Hibajelentések
adatbázisából, hogy
készül-e már javítás az adott
porthoz. Ha igen, akkor annak befejezése után
már képesek leszünk
használni.Kérjük meg a port
karbantartóját, hogy segítsen. A
karbantartó elérhetõségének
felderítéséhez gépeljük be a
make maintainer
parancsot, vagy keressük meg a
Makefile állományban a
karbantartó e-mail címét. Ne
felejtsük el neki megemlíteni a levélben a
port nevét és verzióját (vagyis
mindenképpen küldjük el a
$FreeBSD: sort a
Makefile
állományból) és a parancs
kiadásától a hiba
felbukkanásáig tartó kimenetet.Némely portokat nem
egyedülálló személyek tartanak
karban, hanem egy
levelezési lista. A legtöbbjük
neve, ha nem is mindé, nagyjából
ilyen alakú: freebsd-listanév@FreeBSD.org.
Egy ilyen jellegû kérdés
megfogalmazása során ezt is vegyük
figyelembe!Kifejezetten a ports@FreeBSD.org
karbantartóval rendelkezõ portoknak nincs
rendes gazdája. A hozzájuk
kapcsolódó javítások és
mindenféle segítség, ötlet
errõl a levelezési listáról
érkeznek. Ilyen esetekben számítunk
az önkéntes segítõkre!Ha nem kapunk semmilyen választ, a hiba
bejelentésére használhatjuk a
&man.send-pr.1; programot is (errõl bõvebben
lásd a &os;-s
hibajelentések írása
címû cikket).Javítsuk meg mi magunk! A porterek
kézikönyve részletesen taglalja a
portok belsõ
felépítését, így onnan
elindulva akár magunktól is meg tudunk
javítani egy esetlegesen sérült portot,
vagy be is küldhetjük a sajátunkat!Töltsük le a porthoz tartozó csomagot a
hozzánk legközelebb levõ FTP oldalról.
A központi csomaggyûjtemény a
ftp.FreeBSD.org címen, a
packages
nevû könyvtárban
található, de mielõtt ide
fordulnánk, nézzük meg a hozzánk
legközelebb
levõ tükörszervert is! Ha egy csomagot
így telepítünk, akkor több
eséllyel fog mûködni és
ráadásul még jóval gyorsabb is. A
csomag telepítésére használjuk a
&man.pkg.add.1; programot.
diff --git a/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml
index 966db14a30..9f7a8e5394 100644
--- a/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml
@@ -1,2535 +1,2427 @@
KenTomAz X.Org X11 szerveréhez igazította:
MarcFonvieilleAz X Window SystemÁttekintésA &os; az X11-en keresztül nyújt a
felhasználók számára hatékony
grafikus felhasználói felületet. Az X11 az X
Window System szabadon elérhetõ változata,
melyet az &xorg; és az
&xfree86; egyaránt
implementál (valamint más egyéb
programcsomagok is, amelyeket itt viszont nem tárgyalunk).
A &os; verziói a &os; 5.2.1-RELEASE kiadással
bezárólag a The &xfree86; Project, Inc.
által kiadott X11 szervert, az
&xfree86;-ot tartalmazzák
alapértelmezés szerint. A &os; 5.3-RELEASE
kiadástól kezdve az X11 alapértelmezett
és hivatalos változata az
&xorg;, melyet az X.Org
alapítvány a &os;-éhez nagyon hasonló
licenc alatt fejleszt. A &os;-hez kereskedelmi X szerverek is
elérhetõek.Ebben a fejezetben az X11 telepítését
és beállítását járjuk
végig, miközben a hangsúlyt az
&xorg; &xorg.version;
kiadására helyezzük. Az
&xfree86; (vagyis a &os; olyan
régebbi változata, ahol az
&xfree86; az alapértelmezett X11
rendszer) vagy az &xorg; korábbi
kiadásainak beállításával
kapcsolatban mindig találhatunk információkat
a &os; kézikönyv címen
található archivált
változataiban.Az X11 által támogatott
megjelenítõkrõl bõvebben az &xorg; honlapján
olvashatunk.A fejezet elolvasása során
megismerjük:az X Window System különbözõ
alkotóelemeit, és hogy ezek miként
mûködnek együtt;hogyan telepítsük és
állítsuk be az X11-et;hogyan telepítsük és használjuk
a különféle ablakkezelõket;hogyan használjunk &truetype;
betûtípusokat az X11-ben;hogyan állítsuk be rendszerünkön a
grafikus bejelentkezést
(XDM).A fejezet elolvasásához ajánlott:külsõ programok
telepítésének ismerete ().Az X áttekintéseAz X használata elsõre megdöbbentõ lehet
azok számára, akik olyan más grafikus
környezetekben járatosak, mint például a
µsoft.windows; vagy a &macos;.Míg az X minden komponensének részleteit
és azok kapcsolatát nem szükséges
megérteni a használatukhoz, néhány
alapvetõ ismeret velük kapcsolatban
elõsegíti kiaknázni az X
erõsségeit.Miért X?Az X ugyan nem az elsõ &unix;-ra íródott
ablakozó rendszer, de fajtáját tekintve a
legnépszerûbb. Az X eredeti fejlesztõcsapata
az X elõtt egy másik ablakozó rendszeren
dolgozott, aminek a neve W (mint
Window, azaz ablak) volt. Az X pedig az arab
ábécében pontosan ezt a betût
követi.Az X-et hívhatjuk X-nek, X
Window System-nek, és még sok más
néven. Elõfordulhat azonban, hogy az X
Windows elnevezés sértõ lehet egyes
emberek számára. Errõl többet a
&man.X.7; man oldalon tudhatunk meg többet.Az X kliens-szerver modelljeAz X-et már az elejétõl kezdve
hálózatközpontúnak tervezték,
és ezért az ún.
kliens-szerver modellt használja.Az X modelljében az X szerver egy
olyan számítógépen fut, amelyhez
billentyûzetet, monitort és egeret csatlakoztattunk.
A szerver feladatai között találjuk a
megjelenítés
irányítását az egérrõl
és a billentyûzetrõl, valamint a többi
bemeneti és kimeneti eszközrõl
érkezõ adatok felfeldolgozását
és így tovább (például a
digitális táblák is
használhatóak beviteli eszközként,
illetve egy projektor is lehet megjelenítõ).
Mindegyik X alkalmazás (mint például az
XTerm vagy a
&netscape;) egy kliens. A kliens
üzeneteket küld a szervernek, például
Kérlek, rajzolj egy ablakot ezekre a
koordinátákra, és a szerver pedig
olyan üzeneteket küld, mint például
A felhasználó az OK gombra
kattintott.Az otthoni vagy a kisebb irodai környezetben az X
szerver és az X kliensek általában
ugyanazon a számítógépen futnak.
Emellett azonban nagyon is lehetséges, hogy az X szerver
egy kevésbé erõs gépen fusson,
miközben az X alkalmazások (a kliensek) az
irodát kiszolgáló erõsebb és
drágább gépen fussanak. Egy ilyen
konfigurációban az X kliensei és szerverei
közti kommunikáció a hálózaton
keresztül zajlik.Jegyezzük meg, hogy az X szerver az a
számítógép, ahol a monitor és
a billentyûzet található, az X kliensek pedig
azok a programok, amelyek az ablakokat jelenítik
meg.A protokollban semmi sem várja el, hogy a kliens
és a szerver ugyanazon az operációs
rendszeren vagy éppen ugyanolyan típusú
számítógépen fusson. Ezért
akár µsoft.windows;-on vagy &apple; &macos;-en is
indíthatunk X szervert, és számos
különbözõ szabad valamint kereskedelmi
alkalmazás képes pontosan erre.Az ablakkezelõAz X kialakításának
filozófiája leginkább a &unix;
kialakításának
filozófiájához hasonlítható,
vagyis eszközöket, ne
szabályokat. Ez tehát azt jelenti, hogy
az X nem köti meg miként oldjuk meg vele a
feladatokat. Helyette különféle
eszközeket ad a felhasználó kezébe,
és onnantól a saját felelõssége
eldönteni, hogyan használja ki ezeket.Ez a filozófia az X-ben egészen addig terjed,
hogy nem rögzíti, hogyan nézzenek ki a
képernyõn megjelenõ ablakok, miként kell
ezeket mozgatni az egérrel, milyen billentyûk
lenyomásával közlekedhetünk az ablakok
között (ami a µsoft.windows; esetén az
AltTab), hogyan
nézzen ki az ablakok címsora, a
bezárás funkciónak legyen-e rajtuk gombja
és így tovább.Ehelyett az X az összes ezzel járó
felelõsséget átadja az
ablakkezelõ (window manager)
részére. Tucatnyi ilyen ablakkezelõt
találhatunk az X-hez:
AfterStep,
Blackbox,
ctwm,
Enlightement,
fvwm,
Sawfish,
twm, Window
Maker és még sok más. Ezen
ablakkezelõk mindegyike más és más
kinézetet és hangulatot kínál fel:
némelyikük támogatja a
virtuális munkaasztalok (virtual desktop)
létrehozását; néhányuk pedig
megengedi, hogy mi magunk állítsuk be az asztal
irányításához használt
gombkombinációkat; köztük
találhatunk olyat is, amelynek van Start
gombja vagy ehhez hasonló eszköze; némelyek
közülük ismerik a
témákat, aminek révén
a kinézetük és hangulatuk teljesen
megváltoztatható. Az említett
ablakkezelõk és társaik a
Portgyûjtemény x11-wm
kategóriájában érhetõek
el.Ráadásul a KDE
és a GNOME
munkakörnyezetek mindegyikének van saját
integrált ablakkezelõje.Az egyes ablakkezelõk mellesleg eltérõ
beállítási módszerrel rendelkeznek.
Némelyikük kézzel
összeállított konfigurációs
állományt vár, mások pedig
külön grafikus eszközöket tartalmaznak erre
a feladatra is. Az egyikük (a
Sawfish) konfigurációs
állományát például a Lisp
programozási nyelv egyik dialektuásban kell
megírni.Az irányítás
átadásaAz ablakkezelõ másik fontos feladata
lekezelni, hogy az egérrel miként tudjuk
átadni az ablakok között az
irányítást, vagyis a fókuszt
(focus policy). Minden ablakkezelõ rendszerben el kell
tudnunk valahogy dönteni, hogy a beérkezõ
billentyûleütések melyik ablakhoz
vándoroljanak, valamint az ilyen értelemben
aktív ablakot valamilyen módon jeleznünk is
kell.Ennek egyik ismert módszere a fókusz
kattintásra megoldás, amely modellt a
µsoft.windows; rendszerekben találhatjuk meg. Itt
az ablakok akkor válnak aktívvá, amikor
rájuk kattintunk az egérrel.Az X viszont nem kötelezi el magát egyik
vezérlésátadási módszer
mellett sem, helyette az ablakkezelõ fogja majd
eldönteni, melyik ablak birtokolja a fókuszt az
adott pillanatban. A különbözõ
ablakkezelõk különbözõ
fókuszvezérlési technikákat
ismernek. Mindegyikük ismeri a kattintásos
fókuszt, azonban a többségük emellett
még sok más megoldást is
felkínál.A legnépszerûbb
fókuszvezérlési elvek:A fókusz az egeret követi
(focus-follows-mouse)Az egérmutató alatt
található ablak kapja meg fókuszt.
Az érintett ablaknak nem kell
feltétlenül az összes többi felett
elhelyezkednie. Ilyenkor a fókuszt
egyszerûen úgy vihetjük át egy
másik ablakra, ha rámutatunk az
egérrel, amihez még kattintanunk sem
kell.Hanyag fókusz (sloppy-focus)Ez az elv az elõbbi apró
kibõvítése. Amikor a fókusz
az egérmutatót követi, és az
egeret a leghátsó ablakra (vagy a
háttérre) visszük, akkor
valójában egyik ablak sem birtokolja az
irányítást, ezért a
leütött billentyûk elvesznek. A hanyag
fókusz használatával azonban az
irányítás csak abban az esetben
kerül át máshová, amikor egy
másik ablakba lépünk be, nem pedig
akkor, amikor a jelenlegibõl lépünk
ki.Fókusz kattintásra
(click-to-focus)Az aktív ablakot egy
egérkattintással választjuk ki.
Ilyenkor a kiválasztott ablak
felemelkedhet és a többi
elõtt jelenhet meg. Ezt követõen az
összes irányítás ebbe az
ablakba vándorol, még abban az esetben is,
amikor egy másik ablakra visszük az
egérmutatót.Sok ablakkezelõ ismer ezekbõl
különbözõ variációikat,
valamint rajtuk kívül más egyéb
vezérlési elvet is. Ezzel kapcsolatban az adott
ablakkezelõ dokumentációjából
deríthetünk ki a legtöbbet.WidgetekAz X megközelítése, vagyis az
eszközök és nem a szabályok
felsorakoztatása, kiterjed az egyes
alkalmazásokban látható
különféle widgetekre is.A widget (window gadget, vagyis widget, de
magyarul sok helyen a mütyürke)
elnevezést azokra a felhasználói
felületen megjelenõ elemekre használjuk,
amelyekkel valamilyen módon kapcsolatba
léphetünk: kattinthatunk rájuk,
piszkálhatjuk ezeket. Ilyenek többek
közt a gombok, jelölõnégyzetek,
rádiógombok, ikonok, listák és a
többi. A µsoft.windows; nyelvén ezeket
vezérlõknek (control)
nevezzük.A µsoft.windows; és az &apple; &macos; ezen a
téren nagyon merev. Az alkalmazások
fejlesztõinek gondoskodniuk kell róla, hogy a
programjaik az elterjedt kinézetet és
kialakítást kövessék. Az X viszont
nem várja az egységes
vezérlõeszközök vagy grafikai
stílus használatát.Ennek eredményeképpen az X cseppet sem
kívánja meg az alkalmazásoktól, hogy
közös kinézetben vagy viselkedésben
osztozzanak. Természetesen léteznek
népszerû eszközrendszerek és azoknak
számos variációja is kialakult,
beleértve az MIT Athenaját, a
&motif;ot (amirõl a
µsoft.windows; eszközeit is mintázták,
az összes ferde élet és a három
szürkeárnyalatot), az
OpenLookot és
társaikat.Napjaink X alkalmazásai a
KDE fejlesztéséhez
használt Qt, esetleg a
GNOME-hoz használt GTK+
könyvtárból származó,
korszerû kinézetû widgeteket tartalmaznak.
Ebbõl a szempontból megfigyelhetõ egyfajta
tendencia a grafikus &unix;-alkalmazások
felépítésében, ami minden bizonnyal
megkönnyíti a kezdõ felhasználók
tájékozódását.Az X11 telepítéseAz X11 &os;-n alapértelmezett
implementációja az
&xorg;. Az
&xorg; az X.Org
alapítvány által kiadott, az X Window
Systemet megvalósító nyílt
forráskódú X szerver. Az
&xorg; az
&xfree86; 4.4RC2 és X11R6.6
kódja alapján készült. A &os;
Portgyûjteményében jelenleg az
&xorg; &xorg.version; változata
érhetõ el.Az &xorg;-ot a
Portgyûjteménybõl így tudjuk
lefordítani, majd telepíteni:&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install cleanAz egész &xorg;
lefordításához legalább 4 GB
szabad helyre van szükségünk.Az X11-et természetesen telepíthetjük
közvetlenül csomagok segítségével
is. A &man.pkg.add.1; használatával
telepíthetõ bináris csomagok is
elérhetõek az X11-hez. Amikor a &man.pkg.add.1;
programra bízzuk a csomag letöltését, ne
adjunk meg verziószámot, a &man.pkg.add.1; ugyanis
mindig automatikusan az alkalmazás legfrissebb
verzióját tölti le.Az &xorg; csomagjának
letöltéséhez és
telepítéséhez egyszerûen csak ennyit
írjunk be:&prompt.root; pkg_add -r xorgA fentebb megadott példák a teljes X11
rendszert telepíteni fogják, beleértve a
szervereket, klienseket, betûtípusokat stb. Az X11
egyes részeihez külön találhatunk
csomagokat és portokat.A fejezet további részében szót
ejtünk az X11, valamint egy irodai használatra
alkalmas munkakörnyezet
beállításáról.ChristopherShunwayÍrta: Az X11 beállítása&xorg;X11Mielõtt nekilátnánkAz X11 beállítása elõtt a
célrendszer következõ adataira lesz
szükségünk:A monitor jellemzõiA videokártya
chipkészleteA videokártya
memóriájának méretefüggõleges frissítési
frekvenciavízszintes frissítési
frekvenciaAz X11 a monitor jellemzõibõl
állapítja meg, hogy milyen felbontásban
és frissítési frekvenciával
mûködtesse azt. Ezek általában a
monitorhoz tartozó dokumentációból
vagy a gyártó honlapjáról
deríthetõek ki. Igazából két
értékre van szükségünk: a
függõleges és a vízszintes
frissítési frekvenciára.A videokártya chipkészlete határozza
meg, hogy az X11 melyik meghajtóján keresztül
kommunikál a grafikus hardverrel. Ez a legtöbb
chipkészlet esetén magától
megállapítható, de ennek ellenére
mégis jó tisztában lenni ezzel arra az
esetre, ha az automatikus felismerés mégsem
mûködne.A grafikus kártya memóriájának
mérete határozza meg a rendszer által
kihasználható felbontást és
színmélységet. Ezt fontos tudunk ahhoz,
hogy ismerjük a rendszerünk korlátait.Az X11 beállításaAz &xorg; 7.3-as
változatában gyakran mindenféle
konfigurációs állomány
használata nélkül egyszerûen csak adjuk
ki a következõ parancsot:&prompt.user; startxA &xorg; 7.4
verziójától kezdõdõen a
számítógépünkhöz
csatlakoztatott egerek és billentyûzetek
HAL segítségével
automatikusan felismerhetõek. Ennek megfelelõen a
x11/xorg port
függõségeként telepítõdni
fognak a sysutils/hal
és devel/dbus portok,
viszont az /etc/rc.conf
állományban a következõ sorok
hozzáadásával külön
engedélyeznünk kell még ezeket:hald_enable="YES"
dbus_enable="YES"Ezeket a szolgáltatásokat még az
&xorg;
beállítása elõtt el kell
indítanunk (a parancssorból manuálisan vagy
a rendszer újraindításával).Bizonyos hardvereszközök esetén az
automatikus felismerés még nem mûködik
megbízhatóan vagy nem jól
állítja be az értékeket. Ilyen
esetekben kézzel kell megadnunk a szükséges
beállításokat.A különbözõ munkakörnyezetek,
mint például a GNOME, a
KDE vagy éppen az
Xfce általában
tartalmaznak olyan segédprogramokat, amelyekkel a
felhasználó könnyedén be tudja
állítani a megjelenítés
paramétereit, többek közt a
képernyõ felbontását. Tehát
ha az alapértelmezések nem megfelelõek,
viszont használni akarunk majd valamilyen
munkakörnyezetet is, akkor egyszerûen csak
telepítsük az adott környezetet és a
hozzátartozó eszközön keresztül
állítsuk be a
megjelenítést.Az X11 beállítása egy
többlépcsõs folyamat. Elsõ
lépésünk egy alap konfigurációs
állomány összeállítása
lesz. Rendszeradminisztrátorként adjuk ki az
alábbi parancsot:&prompt.root; Xorg -configureEnnek segítségével az X11
xorg.conf.new néven
létrehozza a konfigurációs
állomány vázát a
/root könyvtárban (akár
a &man.su.1; parancsot használjuk, akár
közvetlenül így jelentkezünk be, az
így örökölt rendszeradminisztrátori
szerepkör maga után vonja a $HOME
könyvtár
átállítását is). Az X11
megpróbálja megkeresni a célrendszerben
elérhetõ grafikus eszközöket, és
létrehozni egy olyan konfigurációs
állományt, amely az észlelt
eszközökhöz tartozó meghajtókat
tölti be.A következõ lépésünk legyen az
imént létrehozott beállítás
kipróbálása, amin keresztül
ellenõrizhetjük, hogy az
&xorg; tényleg képes
mûködni a célrendszer grafikus
eszközén. Az &xorg; 7.3
és azt megelõzõ változataiban ezt
így tehetjük meg:&prompt.root; Xorg -config xorg.conf.newA &xorg; 7.4 és
késõbbi változataiban a próba
eredménye egy fekete képernyõ lesz, amely
meglehetõsen megnehezítheti az X11 helyes
mûködésének
megállapítását. A
kapcsoló
használatával azonban továbbra is
elérhetjük a korábbi verziókban
megszokott viselkedési módot:&prompt.root; Xorg -config xorg.conf.new -retroHa ezután a képernyõn egy
fekete-fehér rácsot látunk egy X
alakú egérmutatóval a közepén,
akkor jó a beállítás. A
próbát úgy szakíthatjuk meg, ha
elõször a CtrlAltFn
billentyûk együttes lenyomásával
átváltunk valamelyik virtuális konzolra
(például az F1 esetén az
elsõre), majd megnyomjuk a CtrlC
gombokat.Az &xorg; korábbi
változataiban a 7.3 verzióig
bezárólag a CtrlAltBackspace
billentyûkombinációval tudjuk
leállítani a mûködését.
Amennyiben erre továbbra is szükségünk
lenne, a 7.4 és késõbbi
változatokban ezt úgy tudjuk
engedélyezni, ha a begépeljük a
következõ parancsot egy X
terminálablakban:&prompt.user; setxkbmap -option terminate:ctrl_alt_bkspEgy másik lehetséges megoldás, ha a
billenytûzet beállításához
létrehozunk a /usr/local/etc/hal/fdi/policy
könyvtárban egy konfigurációs
állományt x11-input.fdi
néven a hald
számára. Ebben az állományban a
következõknek kell szerepelnie:<?xml version="1.0" encoding="ISO-8859-2"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge>
</match>
</deviceinfo>A hald a
számítógép
újraindításával fogja majd
beolvasni ezt az állományt.Ilyenkor az xorg.conf.new
állomány ServerLayout vagy
ServerFlags szekciójához
vegyük még hozzá az alábbi
sort:Option "DontZap" "off"Ha az egér még nem mûködne,
mindenképpen be kell állítanunk a
továbblépés elõtt. Ezzel
kapcsolatban a &os; telepítésérõl
szóló fejezetben levõ t ajánljuk elolvasásra.
Fontos megemlíteni, hogy az
&xorg; 7.4
változatától kezdõdõen az
xorg.confInputDevice
szekcióit az eszközök automatikusan
észlelt beállításai
felülbírálják. A régebbi
változatok viselkedését úgy tudjuk
visszanyerni, ha a ServerLayout és
ServerFlags szekciók
valamelyikéhez hozzáadjuk az alábbi
sort:Option "AutoAddDevices" "false"Ezt követõen a beviteli eszközök a
lehetséges beállítási opciók
(például a billentyûzet-kiosztás
váltása) mentén a korábbiakban
megszokott módon konfigurálhatóak.Ahogy arról korábban szó esett, a 7.4
verziótól kezdõdõen a
hald magától
érzékelni fogja a
számítógépre csatlakoztatott
billentyûzetet. Elõfordulhat, hogy a
billentyûzet típusa vagy éppen
kiosztása nem lesz megfelelõ. Ennek
beállítására többnyire a
népszerûbb munkakörnyezetek, mint
például a GNOME,
KDE vagy
Xfce tartalmaznak külön
segédprogramot. A &man.setxkbmap.1; vagy a
hald konfigurációs
szabályával azonban akár
közvetlenül is meg tudjuk változtatni a
billentyûzhez társított
tulajdonságokat.Például ha egy 102 gombos
billentyûzetet szeretnénk használni francia
kiosztással, akkor ehhez a /usr/local/etc/hal/fdi/policy
könyvtárban kell létrehoznunk egy
x11-input.fdi nevû
állományt a hald
részére. Ebben az állományban
szerepeljenek az alábbi sorok:<?xml version="1.0" encoding="ISO-8859-2"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.x11_options.XkbModel" type="string">pc102</merge>
<merge key="input.x11_options.XkbLayout" type="string">fr</merge>
</device>
</deviceinfo>Ha létezik már ilyen
állományunk, akkor a billentyûzet
megfelelõ beállításához
egyszerûen csak másoljuk ki a fenti sorokat
és adjuk hozzá.Indítsuk újra a
számítógépet, hogy a
hald beolvassa az
állományt.Ugyanezt egy X terminálból is
kényelmesen el tudjuk végezni:&prompt.user; setxkbmap -model pc102 -layout frA paraméterként megadható
billentyûzettípusokat és -kiosztásokat
a /usr/local/share/X11/xkb/rules/base.lst
állományban találhatjuk meg.Az X11
finomhangolásaEzután az ízlésünknek
megfelelõen hangoljuk be az
xorg.conf.new állományt,
nyissuk meg egy szövegszerkesztõben,
például az &man.emacs.1;-ben vagy az
&man.ee.1;-ben. Elsõként adjuk meg a
célrendszerhez csatlakoztatott monitor
frekvenciájára vonatkozó adatokat. Ezek
általában a függõleges és a
vízszintes frissítés értékei,
melyeket az xorg.conf.new
állomány "Monitor"
szakaszában (Section) kell feltüntetni:Section "Monitor"
Identifier "Monitor0"
VendorName "A monitor gyártója"
ModelName "A monitor típusa"
HorizSync 30-107
VertRefresh 48-120
EndSectionA konfigurációs
állományból valószínûleg
csak a HorizSync és
VertRefresh kulcsszavak fognak
hiányozni. Amennyiben ez tényleg így
lenne, a megfelelõ vízszintes
frissítés értékét a
HorizSync kulcsszó után, a
hozzátartozó függõleges
frissítés értékét pedig a
VertRefresh kulcsszó után kell
hozzátennünk a szakaszhoz. Az iménti
példában már megadtuk a célrendszer
monitorának frissítési
értékeit.Az X megengedi, hogy DPMS (Energy Star)
energiagazdálkodási szabványt ismerõ
monitorok lehetõséget is kihasználjuk. A
&man.xset.1; program vezérli a monitorok ki- és
bekapcsolását, és
segítségével készenléti vagy
energiatakarékos üzemmódba tudjuk helyezni
azokat. Ha engedélyezni kívánjuk a
monitorunk DPMS lehetõségeit, egyszerûen csak
tegyük hozzá az alábbi sort a monitorunkat
leíró szakaszhoz:
Option "DPMS"xorg.confHa már a xorg.conf.new
konfigurációs állomány
szerkesztésével vagyunk elfoglalva,
válasszuk ki számunkra kedvezõ
alapértelmezett felbontást és
színmélységet is. Ezt a
"Screen" (Képernyõ) nevû
szakaszban tehetjük meg:Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSectionA DefaultDepth kulcsszó
után adjuk meg a rendszer alapértelmezett
színmélységét. Ezt
késõbb az &man.Xorg.1;
paraméterével bírálhatjuk felül
a parancssorból. A Modes
kulcsszó után jelennek meg azok a
felbontások, amelyekben az adott
színmélység elérhetõ. Itt csak
olyan VESA szabványú módok jelenhetnek meg,
amelyet a célrendszer grafikus eszköze is
támogat. A fenti példában az
alapértelmezett színmélység
képpontonként huszonnégy bit, és
ebben a színmélységben az elfogadott
felbontás 1024-szer 768 pixel.Végezetül mentsük el a szerkesztett
konfigurációs állományt és
próbáljuk ki a korábban leírt
módszer szerint.A hibakeresés során maguk az X11
naplóállományai is hasznos eszköznek
bizonyulhatnak, mivel ezek minden olyan eszközrõl
tartalmaznak információt, amelyekhez az X11
szervernek sikerült csatlakoznia. Az
&xorg; naplóit a
/var/log/Xorg.0.log elnevezést
követõ állományokban találjuk
meg. A konkrét naplók nevei
Xorg.0.log-tól
Xorg.8.log-ig és így
tovább terjedhetnek.Ha minden a legnagyobb rendben haladt eddig, a
konfigurációs állományt el kell
tennünk egy olyan központi helyre, ahol az
&man.Xorg.1; képes lesz majd megtalálni. Ez a
hely általában az
/etc/X11/xorg.conf vagy a
/usr/local/etc/X11/xorg.conf.&prompt.root; cp xorg.conf.new /etc/X11/xorg.confAz X11 beállítását ezzel
befejeztük. Az &xorg;
innentõl elindítható a &man.startx.1;
segédprogram vagy az &man.xdm.1;
használatával.Témák idõsebbeknek és
haladóknakAz i810 grafikus chipkészlet
beállításaIntel i810 grafikus
chipkészletAz &intel; i810 integrált
chipkészletének meghajtásához
szükségünk lesz az
agpart nevû AGP
programozási felületre az X11-ben. Errõl az
&man.agp.4; meghajtó man oldalán olvashatuk
többet.Ennek segítségével ezt a hardvert is
a többi grafikus kártyához hasonlóan
állíthatjuk be. Vegyük figyelmbe azonban,
hogy az &man.agp.4; meghajtót beépítve
nem tartalmazó rendszermaggal futó rendszerekben
a &man.kldload.8; paranccsal utólag már nem
tudjuk betölteni! Ezt a meghajtót már a
rendszerindítás során be kell tudnunk
tölteni: vagy a rendszermagba fordítjuk, vagy
pedig a /boot/loader.conf
állományban hivatkozunk rá.Widescreen Flat Panel monitorok használatawidescreen flat panel
beállításaEbben a részben feltételezünk
némi tapasztalatot a beállítások
terén. Amennyiben a szabványos
konfigurációs eszközök
csõdöt mondtak a beállítás
során, magukból a
naplóállományokból is
kinyerhetünk elegendõ információt
ahhoz, hogy mûködésre bírjuk
rendszerünket. Ehhez mindenképpen legyen
kéznél egy szövegszerkesztõ!A jelenlegi szélesvásznú (WSXGA,
WSXGA+, WUXGA, WXGA, WXGA+ és társai)
formátumok a 16:10-es és 10:9-es
képarányokat ismerik, amik néha gondot
okozhatnak. Például a 16:10-es
képarány felbontásai:2560x16001920x12001680x10501440x9001280x800Bizonyos szempontból egyszerûen csak a fenti
felbontások valamelyikét kell felvenni a
"Screen" szakasz Mode
sorába, valahogy így: Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1680x1050"
EndSubSection
EndSectionAz &xorg; elég
intelligens ahhoz, hogy a szélesvásznú
megjelenítéssel kapcsolatos
információkat lekérje a monitor I2C/DDC
adatai közül, ezért meg tudja
állapítani, hogy az eszköz milyen
frissítési frekvenciákat és
felbontásokat bír el.Ha az alábbi ModeLine
értékek nem szerepelnének a
meghajtókban, akkor velük kapcsolatban egy kicsit
súgnunk kell az &xorg;-nak.
A /var/log/Xorg.0.log
átrágásával elegendõ
információt tudunk gyûjteni ahhoz, hogy
manuálisan vegyünk fel használható
ModeLine értékeket. Nem kell
mást tennünk, mint ehhez hasonló sorokat
keresnünk:(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHzEzeket nevezik EDID-adatoknak (Extended display
identification data, vagyis bõvített
megjelenítési azonosító
adatoknak). Belõlük a megfelelõ
ModeLine sor létrehozása
csupán annyiból áll, hogy a
számértékeket a megfelelõ sorrendbe
tesszük:ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>Ezáltal a példában látott
"Monitor" szakasz
ModeLine sora így fog
kinézni:Section "Monitor"
Identifier "Monitor1"
VendorName "Bigname"
ModelName "BestModel"
ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option "DPMS"
EndSectionMiután végrehajtottuk ezeket az
egyszerû beállítási
lépéseket, az X most már
valószínûleg el fog indulni az új
szélesvásznú monitorunkon.MurrayStokelyÍrta: Betûtípusok használata az X11-benType1 betûtípusokAz X11-hez tartozó alap betûtípusok nem
mondhatóak kifejezetten ideálisnak
például egy átlagos asztali
kiadványszerkesztõ alkalmazás
számára. A nagyobb méretû
bemutatókon a betûi szögletesen és
idétlenül néznek ki, a
&netscape;ben megjelenõ kisebb
betûk pedig szinte teljességgel olvashatatlanok.
Viszont manapság már rengeteg szabad, nagyon
jó minõségû és könnyen
használható Type1 (&postscript;)
betûtípus érhetõ el az X11-hez.
Például az URW
betûtípus-gyûjtemény (x11-fonts/urwfonts) a
szabványos Type1 betûtípusok (Times Roman, Helvetice, Palatino és még sok
más) jó minõségû
változatait tartalmazza. A Freefonts nevû
gyûjtemény (x11-fonts/freefonts) is tartalmaz sok
más betûtípust, de a legtöbbjüket
inkább csak a Gimpben
és a hozzá hasonló grafikai
alkalmazásokban tudjuk használni, illetve
nincsenek is még kellõ mértékben
befejezve a hétköznapi munkákhoz. Ezeken
felül az X11 minimális ügyeskedéssel
beállítható a &truetype;
betûtípusok használatára is.
Errõl részleteket a &man.X.7; man oldalon, illetve a
&truetype;
betûtípusokról szóló
szakaszban olvashatunk.A Portgyûjteménybõl az imént
említett Type1 betûtípusokat az alábbi
parancsok segítségével
telepíthetjük:&prompt.root; cd /usr/ports/x11-fonts/urwfonts
&prompt.root; make install cleanUgyanígy járjunk el a freefont és a
többi gyûjtemény esetén is. Az X
szerver akkor fogja észlelni ezeket a
betûtípusokat, ha hozzáadjuk a
következõ sort a konfigurációs
állományához
(/etc/X11/xorg.conf):FontPath "/usr/local/lib/X11/fonts/URW/"Vagy megtehetjük mindezt az X futtatása
során is:&prompt.user; xset fp+ /usr/local/lib/X11/fonts/URW
&prompt.user; xset fp rehashEz utóbbi beállítás viszont el
fog veszni az X leállításával,
hacsak nem vesszük hozzá a
indítószkriptjéhez (ez az
~/.xinitrc a startx
használata esetén, illetve az
~/.xsession, amikor egy
XDM-szerû grafikus
bejelentkezést használunk). Ezek mellett
használhatjuk a
/usr/local/etc/fonts/local.conf
állományt is: errõl az élsimítással
foglalkozó szakaszban szólunk
részletesebben.&truetype; betûtípusokTrueType
betûtípusokbetûtípusokTrueTypeAz &xorg; beépített
támogatást tartalmaz a &truetype;
betûtípusok rendereléséhez.
Két különbözõ modul
valósítja meg ezt a feladatot. Ebben
példában a freetype nevû modult
használjuk, mivel sokkal jobban illeszkedik a többi
betûrenderelõhöz. A freetype modul
használatához mindössze az
/etc/X11/xorg.conf állomány
"Module" szakaszába kell
beírnunk a következõ sort:Load "freetype"Most pedig hozzunk létre egy könyvtárat a
&truetype; betûtípusok számára (ez
legyen például a
/usr/local/lib/X11/fonts/TrueType), majd
másoljuk az összes &truetype;
betûtípusunkat ide. Vigyázzunk rá,
hogy &macintosh;-ról &truetype; betûtípusok
közvetlenül nem hozhatóak át, az X11
számára &unix;/&ms-dos;/&windows;
formátumban kell lenniük. Miután
sikerült átmásolnunk az
állományokat ebbe a könyvtárba,
használjuk a ttmkfdir
parancsot a fonts.dir
állomány létrehozására,
aminek révén az X betûrenderelõje tudnia
fogja, hogy új állományokat
telepítettünk. A ttmkfdirx11-fonts/ttmkfdir
néven elérhetõ a &os;
Portgyûjteményébõl.&prompt.root; cd /usr/local/lib/X11/fonts/TrueType
&prompt.root; ttmkfdir -o fonts.dirEzután adjuk hozzá a &truetype;
könyvtárat a betûtípusok
könyvtáraihoz. Itt is a Type1 betûtípusoknál
leírtak szerint kell eljárnunk, vagyis
használjunk a&prompt.user; xset fp+ /usr/local/lib/X11/fonts/TrueType
&prompt.user; xset fp rehashparancsot, vagy adjunk hozzá a
xorg.conf állományhoz egy
további FontPath sort.Ezzel végeztünk is. Innentõl kezdve a
&netscape;,
Gimp, a
&staroffice; és mindegyik X
alkalmazás fel fogja ismerni a frissen telepített
&truetype; betûtípusokat. A nagyon kicsi betûk
(egy honlap megtekintése során,
nagyfelbontásban) és a nagyon nagy betûk (a
&staroffice; használatakor)
most már sokkal jobban fognak mutatni.Joe MarcusClarkeFrissítette: A betûk élsimításaélsimított
betûkbetûkélsimított
- Az X11-ben az &xfree86; 4.0.2-es
- változata óta érhetõ el az
- élsimítás, azonban az
- &xfree86; 4.3.0-at
- megelõzõen a betûk
- beállítása meglehetõsen
- körülményes volt. Az
- &xfree86; 4.3.0-as
- verziójával kezdõdõen az X11
+ Az X11
által használt, a
/usr/local/lib/X11/fonts/ és a
~/.fonts/ könyvtárakban
található összes betûtípus
élsimítása automatikusan
elérhetõ az Xft-re felkészített
- alkalmazások számára. Nem mindegyik
- alkalmazás használja ki az Xft-t, de sokan kaptak
- hozzá támogatást. Ilyen
- Xft-alkalmazások a (KDE
- fejlesztéséhez használt) Qt 2.3 és
- késõbbi változatai, a
- (GNOME fejlesztéséhez
- használt) GTK+ 2.0 és késõbbi
- változatai, valamint a Mozilla
- 1.2 és késõbbi változatai.
+ alkalmazások számára. A mostanság
+ megjelenõ legtöbb alkalmazás, mint
+ például a KDE, GNOME és Firefox, ismeri az
+ Xft-t.A betûtípusok
élsimításának be- és
kikapcsolásához, valamint
élsimítási jellemzõinek
beállításához hozzuk létre
(vagy ha már létezne, módosítsuk) a
/usr/local/etc/fonts/local.conf
állományt. Az Xft betûrendszer számos
kifinomult lehetõsége hangolható ezzel az
állománnyal, amelyekbõl ebben a szakaszban
csupán rövidke ízelítõt fogunk
adni. A pontosabb részletekrõl a &man.fonts-conf.5;
man oldalon tájékozódhatunk.XMLAz állománynak XML formátumúnak
kell lennie. Különösen ügyeljünk a
kis- és nagybetûkre, illetve
gyõzödjünk meg mindig róla, hogy
lezártuk-e az összes taget. Az
állomány a szokásos XML-fejléccel
kezdõdik, amelyet egy DOCTYPE definíció
követ, majd a <fontconfig>
tag:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
Ahogy azt már korábban is
említettük, a
/usr/local/lib/X11/fonts és a
~/.fonts/ könyvtárakban
található összes betûtípus
élsimítása elérhetõ az Xft-re
felkészített alkalmazások
számára. Amennyiben ezeken túl még
további könyvtárakat is fel
kívánunk venni, írjuk bele a
/usr/local/etc/fonts/local.conf
állományba, nagyjából ilyen
alakban:<dir>/az/en/betu/tipusaim</dir>Az új betûtípusok, de
legfõképpen az új betûtípusokat
tartalmazó könyvtárak
hozzáadása után a betûkkel kapcsolatos
gyorsítótárak
frissítéséhez mindenképpen javasolt
lefuttatni az alábbi parancsot:&prompt.root; fc-cache -fAz élsimítás hatására a
betûk kontúrjai egy kissé elmosódnak,
aminek köszönhetõen a nagyon kis
méretû szövegek sokkal
olvashatóbbá válnak és eltûnnek
a nagy méretû betûkrõl a
lépcsõk, azonban a normál
méretû betûknél megfájdulhat
tõle a szemünk. A 14 pontnál kisebb
méretû betûk esetén az alábbi
sorok hozzáadásával tudjuk kikapcsolni az
élsimítást: <match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>betûktérközBizonyos egyenszélességû (monospaced)
betûtípusok élsimítása
esetén a betûk távolsága nem
megfelelõ. Ez leginkább a
KDE használata esetén
merül fel. Ezt a problémát úgy is
orvosolhatjuk, ha az ilyen betûtípusok
térközét kézzel 100-ra
állítjuk. Ehhez írjuk be a
következõ sorokat: <match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>(ezzel lefedjük összes rögzített
méretû (fixed) betûtípust
"mono"-ként), majd vegyük
hozzá ezt is: <match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match> Egyes betûtípusoknál, mint
például a Helveticánál, gondok
akadhatnak az élsimítással. Ez
általában egy függõlegesen
kettévágottnak látszó betû
képében jelenik meg. De ami a legrosszabb, hogy
- emiatt némely alkalmazás, mint
- például a Mozilla
- képes összeomlani. Ennek
- elkerülésére tegyük hozzá
- még az alábbi sorokat a
+ emiatt némely alkalmazás képes
+ összeomlani. Ennek elkerülésére
+ tegyük hozzá még az alábbi sorokat a
local.conf
állományhoz: <match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match> Miután befejeztük a
local.conf szerkesztését,
ellenõrizzük, hogy szerepel-e az
állomány végén a
</fontconfig> tag. Ha ugyanis nem
zárjuk le rendesen, akkor a változtatásaink
érvénytelenné válnak.
- Az X11-hez tartozó alap betûtípus nem
- éppen mutatós élsimított
- alakjában. Erre a célra sokkal jobb alap
- betûtípusok is találhatóak a x11-fonts/bitstream-vera portban. Ha
- még nem létezne
- /usr/local/etc/fonts/local.conf
- állományunk, akkor ezt a port létrehozza.
- Ellenkezõ esetben a port készít egy
- /usr/local/etc/fonts/local.conf-vera
- nevû állományt. Fésüljük
- össze ennek az állománynak a tartalmát
- a /usr/local/etc/fonts/local.conf
- tartalmával, és a Bitstream
- betûtípusok maguktól felváltják
- az X11 alapértelmezett talpas (serif), talpatlan (sans
- serif) és egyenszélességû (monospaced)
- betûtípusait.
-
Végezetül a felhasználók is
megadhatják a saját
beállításaikat a saját
.fonts.conf állományuk
segítségével. Ehhez nem kell mást
tenni, mindössze létrehozni egy
~/.fonts.conf
XML-állományt.LCD képernyõbetûkLCD képernyõMég egy utolsó ötlet: LCD
képernyõk esetén szükségünk
lehet az ún. sub-pixel sampling
(részképpont mintavételezési)
technikára. Ezzel lényegében a
(vízszintesen elválasztott) vörös,
zöld és kék összetevõket
külön-külön kezeljük a
horizontális felbontás
javítására. Bámulatos
eredményeket lehet elérni a
segítségével! A
bekapcsolásához a következõ sorokat kell
beszúrnunk valahova a local.conf
állományba:
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
A megjelenítõ fajtájától
függõen lehet, hogy az rgb
értéket bgr-re,
vrgb-re vagy vbgr-re
kell cserélnünk. Próbálgassuk
és kiderül, hogy melyikkel mûködik
jobban.
-
-
- Mozilla
- az élsimítás
- kikapcsolása
-
-
- Az élsimítás hatása az X
- következõ indításakor fog
- látszódni. Azonban a programoknak tudniuk is kell
- élni az általa felkínált
- elõnyökkel. A Qt pillanatnyilag képes erre,
- ezért az összes KDE-elem
- ki tudja használni a betûtípusok
- élsimítását. A GTK+ és a
- GNOME is használja az
- élsimítást a Font cappleten
- keresztül (errõl bõvebben ld. a t). A
- Mozilla 1.2 és
- késõbbi változatai már
- alapértelmezés szerint használják az
- élsimítást. Ennek
- kikapcsolásához a
- Mozillat a
- -DWITHOUT_XFT kapcsolóval
- fordítsuk újra.
-
SethKingsleyÍrta: Az X bejelentkeztetõ képernyõjeÖsszefoglalásX Display ManagerAz X bejelentkeztetõ képernyõje (az X
Display Manager vagy röviden csak
XDM) az X Window System egyik
kiegészítõ eleme, melyet a
bejelentkezések lebonyolítására
használunk. Számtalan helyzetben hasznosnak
bizonyulhat, beleértve a legkisebb X
terminálokat és a legnagyobb
hálózati szervereket is. Mivel az X Window System
független hálózattól és
protokolltól, a hálózaton
összekapcsolt, X klienseket és szervereket
futtató különbözõ
számítógépek széles
kombinációja elõfordulhat. Az
XDM egy grafikus felületen
keresztül segít választani az
elérhetõ szerverek között, valamint a
felhasználók, például
felhasználónév és jelszón
keresztüli, hitelesítésében.Az XDM tulajdonképpen a
felhasználó számára ugyanazokat a
funkciókat nyújtja, mint a &man.getty.8; program
(errõl bõvebben lásd ). Tehát: belépteti a
felhasználót a szerverre, ahova csatlakozott,
illetve elindítja helyette a hozzátartozó
munkamenet kezelõjét (ami általában
egy X-es ablakkezelõ). Az XDM
megvárja ennek a programnak a
befejezõdését, ami egyben jelzi
számára, hogy a felhasználó
elvégezte a dolgát, és kilépteti a
szerverrõl. Ezután az
XDM újra várakozni kezd
a következõ felhasználóra, miközben
a bejelentkezéshez és a szerver
kiválasztásához szükséges
képernyõket jeleníti meg.Az XDM használataA XDM használatához
elõször telepítenünk kell rendszerünkre
a x11/xdm portot (mivel az
&xorg; újabb változatai
ezt alapértelmezés szerint már nem
telepítik). Ezt követõen az
XDM démon a
/usr/local/bin/xdm helyen
található meg. A programot
root felhasználóként
bármikor tudjuk futtatni, és ez veszi
kezelésbe a helyi gépen futó X szervert.
Amennyiben az XDM-et a
számítógép minden egyes
indulása során el akarjuk indítani,
egyszerûen csak adjuk hozzá a megfelelõ
bejegyzést az /etc/ttys
állományhoz. Ennek a formai
szabályairól és
használatáról bõvebben lásd
. Az
/etc/ttys alapértelmezett
változatában az XDM
démont ebben a formában találjuk meg a
virtuális terminálok között:ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secureEz a bejegyzés alapból nem aktív. Az
engedélyezéséhez írjuk át az
ötödik mezõben szereplõ
off (kikapcsolva) értéket
on (bekapcsolvá)-ra, majd
indítsuk újra az &man.init.8; programot a ban leírtak szerint. Az elsõ
mezõben találhatjuk a program által kezelt
terminált, ez jelen esetünkben a
ttyv8. Ennek megfelelõen az
XDM a 9. virtuális
terminálon kezdi meg a futását.Az XDM beállításaAz XDM
beállításait tartalmazó
könyvtár a
/usr/local/lib/X11/xdm. Itt
találhatjuk meg azokat az állományokat,
amelyek megváltoztatásával
befolyásolhatjuk az XDM
megjelenését és viselkedését.
Általában a következõ
állományok bukkannak fel ezen a helyen:ÁllományLeírásXaccessA kliens hitelesítésének
szabályrendszere.XresourcesAz X erõforrásainak
alapértelmezett értékei.XserversAz ismert távoli és helyi X
szerverek listája.XsessionA bejelentkezések során
lefutó alapértelmezett szkript.Xsetup_*A bejelentkezõ felület
indítása elõtt
indítandó alkalmazásokkal
kapcsolatos szkript.xdm-configA gépen futó összes X szerver
globális
beállításai.xdm-errorsA szerver által jelentett
hibák.xdm-pidA jelenleg futó XDM-hez tartozó
azonosító.Ebben a könyvtárban találunk még
néhány olyan programot és szkriptet,
amelyekkel be tudjuk állítani a munkaasztalunkat
az XDM futása alatt. Ezen
állományok céljait egyenként
ismertetni fogjuk. A
felépítésükrõl és
használatukról az &man.xdm.1; man oldala
árul el többet.Az alapértelmezett beállítás egy
téglalap alakú bejelentkezõ ablak, aminek
tetején nagy betûkkel a gép neve
olvasható, valamint alatta a Login:
(felhasználói név) és
Password: (jelszó) mezõk
várnak kitöltésre. Ez egy remek
kiindulási alap az
XDM-képernyõ
kinézetének
megváltoztatásához.XaccessAz XDM-mel szabályozott
X szerverek által használt protokoll az X
Display Manager Connection Protocol (XDMCP). Ez az
állomány tartalmazza a távoli
számítógépekrõl
érkezõ XDMCP-kapcsolatok
vezérlésére vonatkozó
szabályokat. Ezt a rendszer általában
figyelmen kívül hagyja, hacsak az
xdm-config állományban be
nem állítottuk a távoli
számítógépek
csatlakoztathatóságát.
Alapértelmezés szerint viszont semmilyen klienst
nem enged csatlakozni.XresourcesEz tartalmazza a szerverválasztó és
bejelentkezõ képernyõ
alapértelmezéseit.
Segítségével a bejelentkeztetést
végzõ program kinézetét
változtathatjuk meg. Formátuma hasonló
az X11 dokumentációjában leírt
app-defaults állományhoz.XserversA szerverválasztó által
felkínálandó távoli X szerverek
felsorolását tartalmazza.XsessionA felhasználó bejelentkezése
után ez az XDM-szkript fog
lefutni. Általában minden
felhasználóhoz tartozik egy saját
~/.xsession szkript, ami ezt
felülbírálja.Xsetup_*Ezek fognak automatikusan lefutni a
szerverválasztó vagy bejelentkeztetõ
felületek megjelenése elõtt. Minden
általunk használt X szerverhez tartozik egy
ilyen szkript, amelyek neve Xsetup_-al
kezdõdik és a helyi X szerver
sorszámával folytatódik
(például Xsetup_0). Ezek a
szkriptek általában egy-két programot,
mint például az xconsole,
indítanak el a háttérben.xdm-configAz app-defaults nevû
állományéhoz hasonló alakban
tartalmaz beállításokat a program
által kezelt minden egyes X szerverhez.xdm-errorsEbben található meg az
XDM által futtatni
próbált X szerverek kimenete. Itt
érdemes hibaüzenetek után kutatni, ha az
XDM által indított X
szerver valamiért megállna. Ezek az
üzenetek egyébként a
felhasználó
~/.xsession-errors
állományába is
beíródnak.Hálózati X szerver futtatásaAz X szerverünkhöz csak akkor tudnak
kívülrõl más felhasználók
is kapcsolódni, ha átírjuk a
hozzáférésre vonatkozó
szabályokat és engedélyezzük rajta a
kapcsolódást. Az alapértelmezett
szabályok nagyon óvatosak. Ha tehát
engedélyezni akarjuk a kívülrõl
érkezõ kapcsolódásokat, akkor ahhoz
elõször az xdm-config
állományból vegyük ki az alábbi
sort:! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0Ezután indítsuk újra az
XDM-et. Ne felejtsük el, hogy
az app-defaults állományokban a
megjegyzések !
(felkiáltó)jellel kezdõdnek, nem pedig a
megszokott # (kettõskereszt)tel. A
fentieknél természetesen szigorúbb
hozzáférési szabályok is
szükségesek lehetnek — ezzel kapcsolatban
nézzük meg Xaccess
állományban szereplõ példákat,
illetve lapozzuk fel az &man.xdm.1; man oldalt.Az XDM helyettAz alapértelmezett XDM
feladatát számos más program is
képes ellátni. Ezek közül az egyik a
kdm (a KDE
része), amire ebben a fejezetben még vissza fogunk
térni. A kdm
különféle vizuális effekteket és
egyéb kozmetikázást ígér,
valamint lehetõvé teszi a felhasználók
számára, hogy a bejelentkezés elõtt
kiválaszthassák a használni
kívánt ablakkezelõt.ValentinoVaschettoÍrta: MunkakörnyezetekEbben a szakaszban a &os;-n futó X-hez
elérhetõ különbözõ
munkakörnyezetekrõl (desktop environment) lesz
szó. Maga a munkakörnyezet
elnevezés sok mindenre utalhat egy mezei
ablakkezelõtõl kezdve az asztali alkalmazások
teljes garmadájáig, ahogy igaz ez a
KDE vagy a
GNOME esetében is.A GNOMERöviden a GNOME-rólGNOMEA GNOME egy
felhasználóbarát munkakörnyezet,
aminek segítségével a
felhasználók számára
gyerekjáték a
számítógép használata
és beállítása. A
GNOME-ban találhatunk egy
panelt (az alkalmazások indítására
és különféle állapotjelzõk
megjelenítéséhez), egy asztalt (ahova az
alkalmazások és az adatok kerülnek),
szabványos asztali eszközöket és
alkalmazásokat, valamint számos
konvenciót, aminek mentén az alkalmazások
könnyen együtt tudnak mûködni és
tartani egymással az összhangot. Más
operációs rendszerek vagy környezetek
ismerõi otthon érezhetik magukat ebben a
GNOME által nyújtott
vizuális környezetben. A &os; és a
GNOME kapcsolatáról
bõvebb információkat a &os; GNOME Projekt
honlapján találhatunk. Ezen az oldalon a
GNOME
telepítésérõl,
beállításáról és
karbantartásáról egy meglehetõsen
átfogó leírást olvashatunk.A GNOME telepítéseA programot könnyen fel tudjuk telepíteni
csomagból vagy a Portgyûjtemény
segítségével:A hálózatról a
GNOME csomagját
mindössze ennek a sornak a
beírásával fel tudjuk
telepíteni:&prompt.root; pkg_add -r gnome2A portfa felhasználásával pedig a
GNOME-ot így tudjuk
forrásból telepíteni:&prompt.root; cd /usr/ports/x11/gnome2
&prompt.root; make install cleanMiután a GNOME-ot
sikerült feltelepítenünk, meg kell mondanunk
az X szervernek, hogy az alapértelmezett
ablakkezelõ helyett a GNOME-ot
indítsa el.A GNOME-ot legkönnyebben a
GDM, vagyis a GNOME Display Manager
használatával indíthatjuk el. A
GDM a
GNOME részeként
települ (habár alapból nincs bekapcsolva),
és úgy tudjuk aktiválni, ha
/etc/rc.conf állományba
beírjuk a gdm_enable="YES" sort.
Újraindítás után a
GDM automatikusan elindul.Ha a GDM mellett az összes
GNOME szolgáltatást
is el akarjuk indítani, vegyük fel a
gnome_enable="YES" sort az
/etc/rc.conf
állományba.A GNOME-ot parancssorból
is elindíthatjuk, ha hozzá megfelelõen
beállítjuk az .xinitrc
nevû állományt. Ha már van egy
saját .xinitrc
állományunk, akkor nincs más
teendõnk, mint átírni az aktuális
ablakkezelõnket hívó sort a
/usr/local/bin/gnome-session sorra.
Ha nem csináltunk elõtte semmilyen
különleges dolgot az említett
konfigurációs állománnyal, akkor
elegendõ csak ennyit beírnunk:&prompt.user; echo "/usr/local/bin/gnome-session" > ~/.xinitrcEzt követõen írjuk be a
startx parancsot, és a
GNOME munkakörnyezete fog
elindulni.Ha az XDM-hoz hasonló
régebbi bejelentkeztetõ képernyõt
használunk, ez a módszer nem fog
mûködni. Helyette hozzunk létre egy
.xsession nevû futtatható
állományt, amely ezt a parancsot tartalmazza.
Ehhez nyissuk meg és cseréljük ki benne a
korábbi ablakkezelõnk
hívását a
/usr/local/bin/gnome-session
utasításra:&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "/usr/local/bin/gnome-session" >> ~/.xsession
&prompt.user; chmod +x ~/.xsessionMegcsinálhatjuk azt is, hogy a
bejelentkezéskor választható legyen az
ablakkezelõ. A
KDE-rõl bõvebben címû szakaszban
látni fogjuk, hogyan tudjuk ezt a a
KDE bejelentkeztetõ
képernyõje, a kdm
esetén beállítani.
-
-
-
-
- Élsimított betûtípusok a
- GNOME-mal
-
-
- GNOME
- élsimított betûk
-
-
- Az X11 a RENDER
- kiterjesztésén keresztül ismeri az
- élsimítást. A
- (GNOME által
- használt) GTK+ 2.0 és késõbbi
- változatai is képesek ezt a
- lehetõséget kihasználni. Az
- élsimítás beállítása
- a ban olvasható. Így
- tehát a GNOME legfrissebb
- verzióiban már használhatjuk az
- élsimítást. Ehhez menjünk az
- Applications
- Desktop Preferences
- Font (a magyar
- változatban ez az
- AlkalmazásokA
- munkaasztal beállításai
- Betûk)
- menübe, majd válasszuk vagy a Best
- shapes (A legszebb
- betûforma), Best
- contrast (A legjobb
- kontraszt) vagy a Subpixel smoothing
- (LCDs) (Simítás a
- képponton belül (LCD))
- menüpontot. A GTK+-ot használó, de
- közvetlenül a GNOME-hoz
- nem tartozó alkalmazások esetén pedig
- állítsuk be a GDK_USE_XFT
- környezeti változót 1 a
- program indítása elõtt.
-
A KDEKDERöviden a KDE-rõlA KDE egy könnyen
használható modern munkakörnyezet.
Ízelítõül a
KDE felhasználók
számára felkínált
lehetõségei közül:Gyönyörû, korszerû
munkafelületAz asztal hálózaton keresztüli
transzparens kezeléseA KDE asztal és
alkalmazásainak használatában egy
beépített súgórendszer
segíti a kényelmes és
összefüggõ közlekedéstA KDE
alkalmazásainak összehangolt kinézete
és hangulataSzabványosított menük és
eszköztárak,
billentyû-hozzárendelések,
színsémák stb.Honosítás: a
KDE több, mint 40 nyelven
elérhetõKözpontosított, összehangolt,
párbeszédablak alapú
asztalbeállításSzámos hasznos
KDE-alkalmazásA KDE-hez egy
Konqueror nevû
böngészõ is tartozik, mely a többi
&unix;-os böngészõ komoly ellenfelének
bizonyul. A KDE-rõl többet
a KDE honlapján
olvashatunk. A KDE &os;-re
vonatkozó tudnivalóiról és a
hozzátartozó anyagokról a &os; KDE csapat
honlapján találhatunk
információkat.&os; alatt a KDE két
verziója érhetõ el: a harmadik
változat már régóta
használható, nagyon megbízható,
amely mellett viszont a következõ
generációt képviselõ negyedik
változat is megtalálható a
Portgyûjteményben. Akár egymás
mellé is telepíthetõek.A KDE telepítéseAhogy a GNOME és a
többi más munkakörnyezet esetében is,
maga a program könnyen telepíthetõ
csomagból vagy a Portgyûjtemény
segítségével is:A KDE3 csomagját
hálózaton keresztül így tudjuk
telepíteni:&prompt.root; pkg_add -r kdeA KDE4 csomagját pedig
hálózaton keresztül így tudjuk
telepíteni:&prompt.root; pkg_add -r kde4A &man.pkg.add.1; magától letölti az
alkalmazás legfrissebb verzióját.Ha a KDE3 környezetet
forrásból akarjuk telepíteni,
használjuk a portfát:&prompt.root; cd /usr/ports/x11/kde3
&prompt.root; make install cleanHa viszont a KDE4
környezetet akarjuk inkább a portfa
felhasználásával forrásból
telepíteni, akkor ezeket a parancsokat adjuk ki:&prompt.root; cd /usr/ports/x11/kde4
&prompt.root; make install cleanMiután a KDE-t sikeresen
telepítettük, tudatnunk kell az X szerverrel, hogy
az alapértelmezett ablakkezelõ helyett ezt
indítsa el. Ezt az .xinitrc
állomány
módosításával érhetjük
el.KDE3 esetén:&prompt.user; echo "exec startkde" > ~/.xinitrcKDE4 esetén:&prompt.user; echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrcMostantól pedig mindig
KDE lesz az asztalunk, amikor az X
Window Systemet elindítjuk a startx
paranccsal.Ha az XDM-et használjuk
bejelentkeztetõ képernyõként, a
beállítást némileg
máshogyan kell elvégeznünk. Ekkor az
iménti helyett az .xsession
állományt kell szerkesztenünk. A
kdm-re vonatkozó
utasítások a fejezet késõbbi
részében találhatóak meg.A KDE-rõl bõvebbenMost, miután telepítettük a
KDE-t a rendszerünkre, a dolgok
többsége felfedezhetõ a
különféle súgók
segítségével vagy egyszerûen a
menükre történõ kattintással. A
&windows;-hoz vagy &mac;-hez szokott felhasználók
itt most már egészen otthonosan érezhetik
magukat.A KDE-hez a legtöbb
segítséget a saját internetes
dokumentációjából nyerhetjük.
A KDE a saját
böngészõjét, a
Konquerort tartalmazza, valamint
tucatnyi ügyes alkalmazást és temérdek
mennyiségû dokumentációt. A szakasz
további részeiben ezért inkább olyan
problémákkal foglalkozunk, amelyek
megoldásai céltalan kóborlással
már nem fedezhetõek fel olyan
egyszerûen.A KDE bejelentkeztetõ képernyõjeKDEbejelentkeztetõ
képernyõEgy többfelhasználós rendszer
karbantartója minden bizonnyal szeretné
üdvözölni rendszere felhasználóit
egy grafikus bejelentkezõ képernyõn
keresztül. A korábbiakban erre a célra az
XDM-et javasoltuk. Azonban a
KDE erre ajánl egy
alternatívát, a
kdm-et, amely jóval
látványosabb és sokoldalúbb. Ez
különösen abban merül ki, hogy a
felhasználók (egy menün keresztül) ki
tudják választani a bejelentkezés
után használni kívánt
munkakörnyezetet (legyen az
KDE,
GNOME vagy bármi
más).A kdm
használatához az /etc/ttys
állományban található
ttyv8 bejegyzést kell némileg
átalakítanunk.KDE3 esetén:ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secureKDE4 esetén:ttyv8 "/usr/local/kde4/bin/kdm -nodaemon" xterm on secureAz XfceRöviden az Xfce-rõlAz Xfce a
GNOME által használt
GTK+-ra épülõ munkakörnyezet, amely
azonban sokkal könnyedebb és azoknak
készült, akik egy szimpla, hatékony,
mindazonáltal könnyen használható
és beállítható munkafelületre
vágynak. Látvány
szempontjából leginkább a kereskedelmi
rendszereken megtalálható
CDE-hez hasonlítható.
Íme az Xfce
néhány jellemzõje:Egyszerû, könnyen kezelhetõ
munkaasztalTökéletesen konfigurálható
egérrel, drag-and-droppal
(vonszolás) stb.A menükkel, kisalkalmazásokkal és
alkalmazásindítókkal tarkított
fõpanelje hasonló a
CDE paneljéhezBeépített ablak-,
állomány- és hangkezelõvel,
GNOME kompatibilitási
modullal és még sok minden mással
rendelkezikHasználhatunk témákat (mivel
GTK+-ra épül)Gyors, könnyû és hatékony:
ideális régebbi vagy lassabb, esetleg
kevés memóriával rendelkezõ
számítógépekhezAz Xfce-rõl
részletesebben az Xfce
honlapján olvashatunk.Az Xfce telepítéseAz Xfce-hez tartozik
bináris csomag (legalább is az
leírás készítésének
pillanatában). Ezt a következõ módon
tudjuk telepíteni:&prompt.root; pkg_add -r xfce4Vagy a portgyûjtemény
használatával forrásból is
felrakhatjuk:&prompt.root; cd /usr/ports/x11-wm/xfce4
&prompt.root; make install cleanEzután világosítsuk fel az X
szervert, hogy a következõ indulása
során mi már az
Xfce-t kívánjuk
használni. Ehhez csak ennyit kell tennünk:&prompt.user; echo "/usr/local/bin/startxfce4" > ~/.xinitrcÍgy az X következõ
indításakor már az
Xfce lesz a
munkakörnyezetünk. Ahogy azt már
korábban is jeleztük, az
XDM használata során
a GNOMEban leírtak
szerint létre kell hoznunk az
.xsession állományt,
azonban ezúttal a
/usr/local/bin/startxfce4 parancs
használatával. Vagy a kdm-rõl
szóló szakaszban tárgyaltak mentén
beállíthatjuk úgy a bejelentkeztetõ
képernyõt, hogy a bejelentkezés elõtt
válasszuk ki a munkakörnyezetet.