diff --git a/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml
index 601f3b9215..7056746807 100644
--- a/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml
@@ -1,7912 +1,7912 @@
Egyéb haladó hálózati
témákÁttekintésEbben a fejezetben számos komolyabb
hálózati témát fogunk
tárgyalni.A fejezet elolvasása során
megismerjük:az átjárók és az
útválasztás alapjait;hogyan állítsunk be &ieee; 802.11 és
&bluetooth; eszközöket;a &os; segítségével hogyan tudunk
két hálózatot összekötni
hálózati hidakon keresztül;hogyan indítsuk hálózatról egy
lemez nélküli gépet;hogyan állítsunk be hálózati
címfordítást;hogyan kapcsoljunk össze két
számítógépet PLIP
használatával;hogyan állítsuk be az IPv6
használatát egy &os;-s gépenhogyan állítsuk be az ATM
használatát;hogyan engedélyezzük és
használjuk a Közös címredundancia
protokollt &os;-ben.A fejezet elolvasásához ajánlott:az /etc/rc könyvtárban
található szkriptek
mûködésének ismerete;az alapvetõ hálózati fogalmak
ismerete;egy új &os; rendszermag
beállításának és
telepítésének ismerete ();a külsõ szoftverek
telepítésének ismerete ().CoranthGryphonKészítette: Átjárók és az
útválasztásútválasztásátjáróalhálózatEgy gép egy másikat úgy tud
megtalálni a hálózaton, ha erre
létezik egy olyan mechanizmus, amely leírja, hogyan
tudunk eljutni az egyiktõl a másikig. Ezt
hívjuk
útválasztásnak
(routing). Az útvonal (route) címek
egy párjaként adható meg, egy
céllal (destination) és egy
átjáróval (gateway). Ez a
páros mondja meg, hogy ha el akarjuk érni ezt a
célt, akkor ezen az
átjárón keresztül
kell továbbhaladnunk. A céloknak három
típusa lehet: egyéni gépek,
alhálózatok és az
alapértelmezett. Az
alapértelmezett útvonalat (default
route) abban az esetben alkalmazzuk, ha semelyik más
útvonal nem megfelelõ. Az alapértelmezett
útvonalakról a késõbbiekben még
beszélni fogunk. Három típusa van az
átjáróknak: egyéni gépek,
felületek (avagy linkek) és a hardveres
Ethernet címek (MAC-címek).PéldaAz útválasztás
különbözõ területeit a
következõ netstat parancs
alapján fogjuk bemutatni:&prompt.user; netstat -r
Routing tables
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGSc 37 418 ppp0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0alapértelmezett
útvonalAz elsõ két sorban az alapértelmezett
útvonalat (melyrõl részleteiben majd a következõ
szakaszban fogunk szólni) és a
localhost útvonalát
láthatjuk.loopback eszközA localhost címhez az
útválasztási táblázatban a
lo0 eszköz tartozik (a
Netif oszlopban), amelyet loopback
eszköznek is neveznek. Ez arra utasítja a
rendszert, hogy az ide küldött csomagokat ne a helyi
hálózaton küldje keresztül, hanem csak
ezen a belsõ felületen, mivel úgyis oda
jutnának vissza, ahonnan indultak.EthernetMAC-címA táblázatban a következõ sor egy
0:e0 kezdetû címet
tartalmaz. Ez egy hardveres Ethernet cím, más
néven MAC-cím. A &os; magától
képes beazonosítani tetszõleges gépet
(ebben a példában a test0
gépet) a helyi Ethernetes hálózaton
és felvenni hozzá egy útvonalat,
közvetlenül az ed0 Ethernetes
csatolófelületen keresztül. Ehhez a
típusú útvonalhoz tartozik még egy
lejárati idõ is (a Expire
oszlop), amely akkor kap szerepet, ha ennyi idõ
elteltével nem kapunk semmilyen hírt a
géprõl. Amikor ilyen történik, az
géphez eddig nyilvántartott útvonal
automatikusan törlõdik. Ezek a gépek a RIP
(útvonal-információs protokoll, Routing
Information Protocol) nevû mechanizmuson keresztül
azonosítódnak, mely a legrövidebb út
kiszámítása alapján határozza
meg a helyi gépekhez vezetõ útvonalat.alhálózatA &os; a helyi alhálózat (10.20.30.255 és example.com, az
alhálózathoz tartozó név)
esetében is felvesz útvonalakat. A
link#1 megnevezés a gépben
található elsõ Ethernet-kártyát
jelöli. Megfigyelhetjük, hogy rajta kívül
nincs is több felülete.Mindegyik csoport (a helyi hálózati
gépek és a helyi alhálózatokatok)
útvonalait a routed nevû
démon tartja automatikusan karban. Ha ez nem fut, akkor
csak a statikusan definiált (vagyis az elõre
megadott) útvonalak fognak létezni.A host1 sor a saját
gépünkre vonatkozik, amelyet az Ethernet címe
szerint ismerünk. Mivel mi vagyunk küldõ
gép, a &os; tudni fogja, hogy ilyenkor az Ethernetes
felület helyett a loopback eszközt
(lo0) kell használnia.A két host2 sor arra mutat
példát, amikor az &man.ifconfig.8; paranccsal
álneveket hozunk létre (ennek konkrét okait
lásd az Ethernetrõl szóló
részben). A lo0 felület
neve után szereplõ =>
szimbólum azt jelzi, hogy ez nem csak egy loopback
felület (mivel a címe szintén a helyi
gépre mutat), hanem a felület egy másik neve.
Ilyen útvonalak csak az álneveket ismerõ
gépeknél jelennek meg. A helyi
hálózaton minden más gépnél
egyszerûen csak a link#1 jelenik meg az
ilyen útvonalak esetében.Az utolsó sor (a 224
céllal rendelkezõ alhálózat) a
multicastre (többesküldésre) szolgál,
amellyel majd egy másik szakaszban foglalkozunk.Végezetül az útvonalakhoz tartozó
különféle tulajdonságok a
Flags oszlopban láthatóak. Az
alábbi rövid táblázatban
összefoglaltunk közülük
néhányat:UUp: az útvonal aktívHHost: az útvonal egyetlen gépre
mutatGGateway: az adott cél felé ezen a
gépen keresztül küldjünk, amely
majd kitalálja, hogy merre küldje
továbbSStatic: ez az útvonal statikus, nem a
rendszer hozta létre automatikusanCClone: ebbõl az útvonalból
származtatunk új útvonalat azokhoz
a gépekhez, amelyekhez csatlakozunk. Ilyen
útvonalakat általában a helyi
hálózatokban találhatunkWWasCloned: azt jelzi, hogy ezt az útvonalat
egy helyi hálózatra mutató
(klón, avagy Clone típusú)
útvonal alapján hoztuk létre
automatikusanLLink: az útvonal Ethernetes hardverhez
kapcsolódikAlapértelmezett útvonalakalapértelmezett
útvonalAmikor a helyi rendszernek fel kell vennie a kapcsolatot egy
távoli géppel, ellenõrzi az
útválasztási táblázatban,
hogy létezik-e már hozzá valamilyen
útvonal. Ha a távoli gép egy olyan
alhálózatba esik, amelyet már el tudunk
érni (klónozott útvonalak), akkor a
rendszer megnézi, hogy a hozzátartozó
felületen képes-e kapcsolatot
létesíteni.Ha minden ismert útvonal csõdöt mond, akkor
a rendszerünknek marad még egy utolsó
esélye: az alapértelmezett
útvonal használata. Ez az útvonal egy
speciális átjáró útvonal
(ebbõl általában csak egyetlen egy
létezik a rendszerben) és tulajdonságai
között mindig szerepel a c. A
helyi hálózat gépei közül ez az
átjáró az legyen, amelyik
közvetlenül kapcsolódik a külsõ
világhoz (PPP összeköttetéssel, DSL,
kábelmodem, T1 vagy bármilyen más
hálózati felületen keresztül).Amikor pedig magát a külsõ világ
felé átjáróként
szolgáló gépet állítjuk be,
az alapértelmezett útvonal az
internet-szolgáltatónk által megadott
gép címe lesz.Vegyünk egy példát az
alapértelmezett útvonalakra. Egy tipikus
konfiguráció:
[Helyi2] <--ether--> [Helyi1] <--PPP--> [ Szolg. ] <--ether--> [T1-ÁJ]
A Helyi1 és Helyi2
gépek a hálózatunk tagjai. A
Helyi1 az internet-szolgáltatót
éri el egy betárcsázós PPP
kapcsolaton keresztül. A PPP szerver a külsõ
felületén keresztül a helyi
hálózaton pedig egy másik
átjáróhoz csatlakozik.Az egyes gépek alapértelmezett
útvonalai így alakulnak:GépAlapértelmezett
átjáróFelületHelyi2Helyi1EthernetHelyi1T1-ÁJPPPGyakran felmerül a kérdés, hogy
Miért (és hogy-hogy) a
T1-ÁJ a Helyi1
gép számára az alapértelmezett
átjáró és nem a
szolgáltató azon szervere, amelyhez
csatlakozott?Ne felejtsük el, hogy a PPP felület a
szolgáltató helyi hálózatában
a mi részünkre kap címet, és a itt az
összes többi géphez tartozó
útvonal automatikusan létrejön. Emiatt
már eleve el tudjuk érni a
T1-ÁJ gépet, ezért amikor
a szolgáltatón keresztül küldünk,
nincs szükségünk egy további
lépcsõre.Általában a X.X.X.1 címet szokták a
helyi hálózat
átjárójának kiosztani. Ezért
(az elõbbi példát
újrahasznosítva) ha a helyi
hálózatunkon a C osztályú 10.20.30 címtartományt
használjuk, és a szolgáltatónkhoz a
10.9.9 címtartomány
tartozik, akkor az alapértelmezett útvonalak a
következõk lesznek:GépAlapértelmezett útvonalHelyi2 (10.20.30.2)Helyi1 (10.20.30.1)Helyi1 (10.20.30.1, 10.9.9.30)T1-ÁJ (10.9.9.1)Az /etc/rc.conf
állományon keresztül könnyen meg tudjuk
adni az alapértelmezett útvonalat. A
példánkban a Helyi2 gép
/etc/rc.conf
állományába kell felvennünk a
következõ sort:defaultrouter="10.20.30.1"A &man.route.8; parancs használatával viszont
akár közvetlenül is megtehetjük
mindezt:&prompt.root; route add default 10.20.30.1A &man.route.8; man oldalon olvashatunk arról
bõvebben, hogy a hálózati
útválasztási táblázatokat
kézzel hogyan tudjuk módosítani.Kettõs hálózatú
gépekkettõs hálózatú
gépekEgy másik típusú
konfigurációról is szót kell
ejtenünk, ahol a gép egyszerre két
hálózatnak is tagja. Gyakorlatilag az
átjáróként üzemelõ
számítógépek (mint
például az, amelyik a fenti példában
PPP kapcsolattal csatlakozott) ilyen kettõs
hálózatú gépnek tekinthetõek.
Ez a kifejezés azonban igazából csak azokra
az esetekre illik, ahol a gép egyszerre két helyi
hálózatban is megjelenik.Az egyik esetben a gépben két Ethernet
kártya található, melyek mindegyike
birtokol egy-egy hálózati címet az egyes
alhálózatokon. De elõfordulhat az is, hogy a
gépünkben csupán egyetlen Ethernet
kártya van és az &man.ifconfig.8;
segítségével álneveket hoztunk
létre hozzá. Az elõbbi
általában két fizikailag
elkülönölõ Ethernet alapú
hálózat esetében történik,
míg az utóbbinál csak egyetlen fizikai
hálózati szegmensrõl van szó, amely
viszont logikailag két külön
alhálózatot tartalmaz.Akármelyiket is vesszük, az
útválasztási táblázatok
úgy jönnek létre, hogy bennük a
gép a másik alhálózat felé
átjáróként (bejövõ
útvonalként) lesz nyilvántartva. Ebben a
konfigurációban a gép a két
alhálózat között
útválasztóként fog
tevékenykedni, és gyakran valamelyik vagy
éppen mind a két irányba be kell
állítanunk valamilyen csomagszûrést
vagy tûzfalazást.Ha azt szeretnénk, hogy ez a gép a két
felület között továbbítson
csomagokat, akkor a &os;-ben külön engedélyezni
kell ezt a lehetõséget. A következõ
szakaszban ennek részleteit tárjuk fel.Az útválasztók
beállításaútválasztóA hálózati útválasztó nem
csinál mást, csak továbbküldi az egyik
felületén beérkezõ csomagokat egy
másik felületére. Az internetes
szabványok és a sokéves mérnöki
tapasztalat azonban nem engedik, hogy a &os; Projekt
alapértelmezés szerint is
elérhetõvé tegye ezt a &os; rendszerekben.
Ezt a lehetõséget az alábbi
változó YES
értékûre
állításával lehet
engedélyezni az &man.rc.conf.5;
állományban:
- gateway_enable=YES # Ez legyen YES, ha átjáróként akarunk üzemelni
+ gateway_enable="YES" # Ez legyen YES, ha átjáróként akarunk üzemelniEzzel lényegében a
net.inet.ip.forwarding &man.sysctl.8;
változó értékét
állítjuk 1-re. Ha
valamiért egy idõre szüneteltetni akarjuk a
csomagok továbbküldését, akkor
állítsuk a változó
értékét 0-ra.BGPRIPOSPFAz új útválasztónak nem
árt arról sem tudnia, hogy merre
továbbítsa a forgalmat. Ha elég
egyszerû a hálózatunk, akkor akár
statikus útvonalakat is használhatunk. A &os;
alapból tartalmazza a BSD-k esetén
szabványos &man.routed.8; útválasztó
démont, amely a RIP (v1 és v2) valamint az IRDP
megoldásokat ismeri. A BGP v4, OSPF v2 és a
többi fejlettebb útválasztási
protokoll a net/zebra
csomagban érhetõ el. Az ettõl bonyolultabb
hálózati útválasztási
feladatokhoz olyan kereskedelmi termékek is
elérhetõek, mint például a
&gated;.AlHoangÍrta: Statikus útvonalak
beállításaManuális konfigurációTegyük fel, hogy hálózatunk a
következõ:
INTERNET
| (10.0.0.1/24) alapértelmezett átjáró internet felé
|
|az xl0 felület
|10.0.0.10/24
+------+
| | A-utvalaszto
| | (FreeBSD átjáró)
+------+
| az xl1 felület
| 192.168.1.1/24
|
+--------------------------------+
1. belsõ hálózat | 192.168.1.2/24
|
+------+
| | B-utvalaszto
| |
+------+
| 192.168.2.1/24
|
2. belsõ hálózat
Ebben a forgatókönyvben az
A-utvalaszto a mi &os;-s gépünk,
amely az internet felé vezetõ
útválasztó szerepét
játssza. Számára az
alapértelmezett útvonal a 10.0.0.1, amelyen keresztül a
külsõ világot tudja elérni.
Feltételezzük, hogy a
B-utvalaszto nevû gépet
már eleve jól állítottuk be,
ezért tudja merre kell mennie. (A kép
alapján egyszerû: csak vegyünk fel egy
alapértelmezett útvonalat a
B-utvalaszto géphez, ahol így a
192.168.1.1 lesz az
átjáró.)Ha megnézzük most az
A-utvalaszto
útválasztási
táblázatát, akkor nagyjából
a következõket fogjuk látni:&prompt.user; netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
10.0.0/24 link#1 UC 0 0 xl0
192.168.1/24 link#2 UC 0 0 xl1Az A-utvalaszto
útválasztási táblázata
alapján jelen helyzetben nem lehet elérni a 2.
belsõ hálózatot. Nincs ugyanis olyan
útvonal, amely a 192.168.2.0/24 alhálózat
felé vezetne. Ezt például úgy
tudjuk megoldani, ha manuálisan felvesszük ezt az
útvonalat. Az alábbi paranccsal
hozzáadjuk a 2. belsõ hálózat
elérését az A-utvalaszto
útválasztási
táblázatához, ahol a 192.168.1.2 lesz a következõ
ugrási pont (next hop):&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Most már az A-utvalaszto
bármelyik gépet képes elérni a
192.168.2.0/24
hálózaton.Rögzített konfigurációA fenti példa tökéletesen
szemlélti a statikus útvonalak
felvételét egy mûködõ rendszeren.
Azonban ezzel az a gond, hogy az így megadott
útválasztási információ nem
marad meg a gép újraindítása
után. Ezért az elõbbihez hasonló
statikus útvonalakat inkább az
/etc/rc.conf állományban
rögzítsük:# A 2. belsõ hálózat elérését felvesszük statikus útvonalként
static_routes="belsohalo2"
route_belsohalo2="-net 192.168.2.0/24 192.168.1.2"A static_routes
konfigurációs változó
karakterláncok szóközzel tagolt
felsorolását tartalmazza. Mindegyik
karakterlánc egy útvonal neve. Az iménti
példában csak egyetlen ilyen név
szerepelt a static_routes
értékében, amely a
belsohalo2 volt. Utána
beírtunk még egy konfigurációs
változót is, amelynek a neve
route_belsohalo2.
Ide helyeztük a &man.route.8; parancsnak
átadandó beállítás
összes paraméterét. Ez pontosan olyan,
mintha a következõ parancsot adtuk volna ki:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Ezért kellett a "-net 192.168.2.0/24
192.168.1.2".Ahogy már korábban is
említettük, a static_routes
értékében több karakterláncot
is megadhatunk, aminek segítségével
egyszerre több statikus útvonalat is
létrehozhatunk. A következõ sorok arra
mutatnak példát, hogy a 192.168.0.0/24 és 192.168.1.0/24 hálózatok
számára miként állítsunk be
statikus útvonalakat a képzeletbeli
útválasztónkon:static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"Az útvonalak terjedéseútvonalterjedésAzt már tudjuk, hogyan adjuk meg a
külvilág felé vezetõ útvonalakat,
azonban arról még nem beszéltünk, hogy
kívülrõl miként találnak meg
bennünket.Annyit már megismertünk, hogy az
útválasztási táblázatokban
megadhatjuk a hálózaton azt a gépet,
amelyen keresztül az adott címtartomány (a
példában egy C osztályú
alhálózat) felé küldhetünk, amely
pedig továbbküldi a hozzá érkezõ
csomagokat.Amikor a csatlakozunk az
internet-szolgáltatónkhoz, a nála levõ
útválasztási táblázatok
úgy állítódnak be, hogy az
alhálózatunk felé igyekvõ adatok a
korábban létrejött PPP
összeköttetésen keresztül jutnak el
hozzánk. A világ többi részén
levõ rendszerek viszont honnan fogják tudni, hogy a
mi internet-szolgáltatónknak
küldjenek?Van egy rendszer (ez leginkább a névszerverek
elosztott információs adatbázisához
hasonlít), ami nyilvántartja a pillanatnyilag
kiosztott címtartományokat és megadja a
csatlakozási pontjukat az internet
gerinchálózatán. Ez a
gerinc tulajdonképpen olyan
fõvonalakból áll, amelyen keresztül a
világban az országok között mozog az
internet forgalma. A gerinchálózat mindegyik
gépe tárolja a központi
útválasztási táblázatok egy
másolatát, ami a forgalmat egy adott
hálózatról a megadott gerincbeli
hordozóra irányítja át, végig
az internet-szolgáltatók láncán
egészen addig, amíg az el nem éri a
hálózatunkat.A szolgáltatónk feladata, hogy a
gépünk felé leágazásként
(és így a felénk vezetõ
útként) beregisztálja magát a
gerinchálózat gépein. Ezt nevezik az
útvonal terjedésének.HibaelhárítástracerouteNéha gondok lehetnek az útvonal
terjedésével, és egyes gépek nem
képesek elérni minket. A &man.traceroute.8;
parancs mind közül talán az egyik leghasznosabb
ilyen helyzetekben, mivel ezzel fel tudjuk deríteni, hogy
az útválasztás hol akad meg. Ugyanilyen
jól hasznosítható azokban az esetekben,
amikor látszólag nem tudunk elérni egy
távoli gépet (tehát a &man.ping.8;
csõdöt mond).A &man.traceroute.8; parancsnak annak a távoli
gépnek a nevét kell megadnunk, amelyhez
csatlakozni akarunk. Futása közben
megjeleníti azokat az átjárókat,
amelyeken keresztül csatlakozni próbál,
akár sikerült elérni a
célgépet, akár a kapcsolat hiánya
miatt kudarcot vall.A parancs használatáról és
mûködésérõl részletesebb
információkat a &man.traceroute.8; man
oldalán találunk.Útválasztás multicast
eseténmulticast útválasztása rendszermag
beállításaiMROUTINGA &os; alapból támogatja mind a multicastet
használó alkalmazásokat, mind pedig a
multicasthez tartozó útválasztást.
Multicast esetében semmilyen speciális
beállítás nem szükségeltetik,
az ilyen alkalmazások egybõl el tudják
érni ezt a lehetõséget. A multicast
kérések
útválasztásához azonban be kell
építenünk némi
támogatást a rendszermagba:options MROUTINGEmellett még el kell indítanunk az
&man.mrouted.8; démont is, amelyhez az
/etc/mrouted.conf állományban
még be kell állítanunk tunneleket és
a DVMRP használatát. A
multicasthez tartozó további
beállításokat az &man.mrouted.8; man
oldalán találhatjuk.A &os; 7.0 megjelenésével a
&man.mrouted.8; démont kivették az
alaprendszerbõl. Azt a DVMRP
többesküldési protokollt
valósítja meg, amelyet a legtöbb
alkalmazásban mostanság már a &man.pim.4;
segítségével oldanak meg. Ennek
megfelelõen a hozzátartozó
multicast protokollt valósítja meg, amelyet a
legtöbb alkalmazásban mostanság már
a &man.pim.4; segítségével oldanak meg.
Ennek megfelelõen a hozzátartozó
&man.map-mbone.8; és &man.mrinfo.8;
segédprogramok is eltávolításra
kerültek. Ezek a programok attól a
kiadástól kezdõdõen a
Portgyûjtemény részeként
érhetõek el a net/mrouted portban.LoaderMarcFonvieilleMurrayStokelyVezeték nélküli
hálózatokvezeték nélküli
hálózatok802.11vezeték nélküli
hálózatokA vezeték nélküli
hálózatok alapjaiA legtöbb vezeték nélküli
hálózat az &ieee; 802.11 szabványon nyugszik.
Az alapvetõ vezeték nélküli
hálózatokban több olyan
állomást találhatunk, amelyek
egymással rádiójelek
szórásával kommunikálnak a
2,4 GHz vagy 5 GHz frekvenciatartományban (noha
ez a helyi viszonyoknak megfelelõen változhat,
és a 2,3 GHz, illetve a 4,9 GHz
tartományokban is lehetséges a
kommunikáció).A 802.11 szabványú hálózatok
kétféleképpen szervezõdnek.
Elõször is
infrastrukturálisan,
(infrastructural mode) ahol az egyik állomást
kinevezzük a központnak és a többi pedig
ehhez fog tartozni. Az ilyen hálózatokat BSS-nek
nevezzük és az imént említett
központ neve hozzáférési pont (Access
Point, AP) lesz. A BSS-ben az összes
kommunikáció a hozzáférési
pontokon keresztül halad még abban az esetben is,
amikor az egyik állomás egy másik
vezeték nélküli állomással
akarja felvenni a kapcsolatot. Az ilyen jellegû
hálózatok másik típusú
szervezõdési módjában nincsenek
kijelölt központok és a
kommunikáció az állomások
között közvetlenül zajlik. A
hálózat ezen formáját IBBS-nek
nevezzük, vagy ismeretebb nevén ad-hoc
hálózatnak (ad-hoc network).A 802.11 alapú hálózatok
elsõként a 2,4 GHz-es sávot
hódították meg, és az &ieee; 802.11
valamint 802.11b szabványokban rögzített
protokollokat használták. Ezekben a
specifikációkban megtalálhatjuk a
mûködési frekvenciát, a
közeghozzáférési réteg
jellemzõinek leírását,
beleértve a keretezést és az
átviteli sebességeket (a
kommunikáció ugyanis eltérõ
sebességekkel is történhet). A
késõbb kiadott 802.11a szabvány azt
specifikálja, hogy az 5 GHz-es tartományban
miként mûködjenek, ahol többek közt
megtalálhatjuk a különféle
jelkezelési mechanizmusokat és a nagyobb
átviteli sebességek használatát.
Ezt még a 802.11g szabvány követte, ami a
802.11b hálózatokkal kompatibilis módon
lehetõvé tette a 802.11a
jelkezelésének és átviteli
módszereinek használatát a 2,4 GHz-es
sávban.A 802.11 alapú hálózatok
mindenféle átviteli technikáitól
eltekintve többféle biztonsági
megoldással találkozhatunk. Az korai 802.11
dokumentumok egy nagyon egyszerû biztonsági
protokollt, a WEP-et említenek. Ez a protokoll a
hálózaton mozgó adatokat egy
rögzített és ismert osztott kulccsal
kódolja le az RC4 titkosítással. A
kommunikációhoz az összes
állomásnak elõre meg kell egyeznie ebben a
kulcsban. Errõl a sémáról
idõközben kiderült, hogy könnyen
feltörhetõ és manapság már csak
nagyon ritkán alkalmazzák, kivéve
talán csak a kóbor felhasználók
elijesztésére. A jelenleg érvényes
biztonsági elõírásokat az &ieee; 802.11i
specifikáció adja meg, amely új
kriptográfiai titkosításokat
definiál valamint egy további protokollt az
állomások azonosítására
és a kulcsok cseréjére. Emellett a
titkosításhoz használt kulcsok
idõszakosan frissülnek és külön
eszközök állnak rendelkezésre a
betörési kísérletek
észlelésére (és azok
elhárítására). A vezeték
nélküli hálózatok esetében
másik elterjedt titkosítási protokoll a
WPA. Ez igazából 802.11i elõdjének
tekinthetõ, amelyet egy ipari csoport definiált,
amíg a 802.11i minõsítés alatt
állt. A WPA ennek megfelelõen teljesíti a
802.11i szabvány elvárásainak egy
részét és kifejezetten a régi
hardverek számára készült. A WPA
mûködéséhez egyedül a TKIP
titkosításra van szükségünk,
amely az eredeti WEP titkosításból
származik. A 802.11i engedi a TKIP
használatát, de az adatok
kódolására egy erõsebb
titkosítás, az AES-CCM ismeretét is
igényli. (Az AES a WPA esetében nem kell, mivel a
régi eszközök esetében
túlságosan költségesnek
ítélték meg a
használatát.)A fenti szabványokon kívül a 802.11e a
másik fontos szabvány, amire tekintettel kell
lennünk. Ez írja le a 802.11
hálózatokon a multimédiás
alkalmazások közvetítéséhez,
mint például a videók valós
idejû lejátszásához vagy a VoIP (voice
over IP) megvalósításához
tartozó protokollokat. A 802.11i szabványhoz
hasonlóan a 802.11e is magában foglal egy
elõzetes specifikációt, amelyet WME
(késõbb pedig már WMM)-nek neveznek. Ezt
szintén egy ipari csoport definiálta a 802.11e
részeként, amivel a 802.11e végsõ
elfogadásáig tudják a
multimédiás igényeket kiszolgálni.
Amit a 802.11e és WME/WMM megoldásaival
kapcsolatban érdemes tudnunk: a QoS (Quality of Service)
protokoll és más egyéb fejlett
közeghozzáférési protokollok
segítségével a vezeték
nélküli hálózatokban
lehetõvé teszik a forgalom prioritás szerinti
ütemezését. Ezen protokollok megfelelõ
implementációjának
segítségével tehát a fontosabb
adatok nagy sebességû küldését
és áramoltatását vagyunk
képesek elérni.A &os; a 6.0 verzió óta ismeri a 802.11a,
802.11b és 802.11g szabványokon alapján
mûködõ hálózatokat. A WPA
és 802.11i biztonsági protokollok (a 11a, 11b
és 11g szabványok bármelyike esetén)
hasonlóképpen támogatottak, valamint a
WME/WMM protokollok mûködéséhez
szükséges QoS csak bizonyos vezeték
nélküli eszközök esetében.Kezdeti beállításokA rendszermag beállításaA vezeték nélküli
hálózatok használatához egy
vezeték nélküli hálózati
kártyára lesz szükségünk,
valamint a rendszermagban is be kell állítani
ehhez a megfelelõ támogatást. Ez
utóbbit több különbözõ modulra
szedték szét, és ezek közül
csak azokat kell beállítani, amelyeket
tényleg használni is fogunk.Elõször is tehát kell egy vezeték
nélküli eszköz. Az elterjedtebb
típusaik általában az Atheos által
gyártott alkatrészeket tartalmazzák. Az
ilyen fajtájú eszközöket az
&man.ath.4; meghajtó kezeli, melyet úgy tudunk a
rendszer indításakor betölteni, ha a
/boot/loader.conf
állományba felvesszük a következõ
sort:if_ath_load="YES"Az Atheos meghajtója három
különálló részre oszlik: maga a
meghajtó (&man.ath.4;), a hardveres réteg, ami a
chipfüggõ funkciókat kezeli (&man.ath.hal.4;)
és a keretek küldésével kapcsolatban
az átviteli sebesség
megválasztását lehetõvé
tevõ algoritmus (ez itt most az ath_rate_sample). Amikor
ezt a támogatást modulként
töltjük be, ezek a függõségek
automatikusan feloldódnak. Ha az Atheos
eszközök helyett valamelyik másikhoz
tartozó modult szeretnénk használni,
akkor például az Intersil Prism esetében
a &man.wi.4; meghajtót kell megadnunk:if_wi_load="YES"A leírás további részeiben
az &man.ath.4; eszközt fogjuk használni, minden
más esetben ennek a nevét kell csak
lecserélünk a példákban. A
rendszerben elérhetõ vezeték
nélküli meghajtók a &man.wlan.4; man
oldal elején találhatóak. Ha a
vezeték nélküli
eszközünkhöz nem létezik natív
&os;-s meghajtó, akkor az NDIS meghajtó
segítségével akár
közvetlenül a &windows;-os
meghajtóját is használhatjuk.Az eszközmeghajtó
beállításával együtt a 802.11
hálózatok támogatását is be
kell töltenünk a rendszermagba. Ez az &man.ath.4;
meghajtó esetében a legalább a
&man.wlan.4;, wlan_scan_ap és
wlan_scan_sta modulok
betöltését jelenti. A &man.wlan.4; modul a
vezetéknélküli eszköz
meghajtóprogramjával együtt
töltõdik be, míg a többi modult a
/boot/loader.conf állomány
használatával kell a
rendszerindítás során
betöltenünk:wlan_scan_ap_load="YES"
wlan_scan_sta_load="YES"A &os; 7.X
változataiban mind a wlan_scan_ap
és wlan_scan_sta modulokra
szükségünk van, más verziók
esetén nem kell megadnunk ezeket.Emellett még azokra a modulokra is
szükségünk van, amelyek a használni
kívánt biztonsági protokollokhoz
nyújtanak kriptográfiai
támogatást. Ezek hivatalosan a &man.wlan.4;
modul kérésére automatikusan
betöltõdnek, azonban itt most manuálisan
állítjuk be. Erre a célra a
következõ modulokat találjuk:
&man.wlan.wep.4;, &man.wlan.ccmp.4; és
&man.wlan.tkip.4;. A &man.wlan.ccmp.4; és
&man.wlan.tkip.4; meghajtók csak akkor fognak kelleni,
ha a WPA és/vagy a 802.11i biztonsági
protokollokat használjuk. Amennyiben a
hálózatunk teljesen nyitott (azaz nincs
titkosítás), akkor még a &man.wlan.wep.4;
támogatás sem kell. Ezeket a modulok úgy
lehet betölteni a
rendszerindításnál, ha felvesszük a
következõ sorokat a
/boot/loader.conf
állományba:wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"Miután ezt megcsináltuk, egyszerûen
csak indítsuk újra a gépünket. Ha
még nem akarjuk újraindítani a
gépet, akkor a &man.kldload.8; parancs
segítségével akár kézzel is
betölthetjük az elõbb felsorolt
modulokat.Ha nem akarunk modulokat használni, a
mûködéshez szükséges
meghajtókat a rendszermagba is be tudjuk
építeni a következõ sorok
megadásával a rendszermag
beállításait tartalmazó
állományban:device ath # Atheros IEEE 802.11 vezeték nélküli hálózati meghajtó
device ath_hal # az Atheros meghajtó hardveres rétege
device ath_rate_sample # SampleRate forgalomvezérlési algoritmus
device wlan # a 802.11 támogatása
options AH_SUPPORT_AR5416 # az AR5416 tx/rx leírók engedélyezése
device wlan_scan_ap # a 802.11 AP módú keresés
device wlan_scan_sta # a 802.11 STA módú keresés
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ásHozzátesszük, hogy a &os;
7.X változatában a
wlan_scan_ap és
wlan_scan_sta modulok megadása
egyaránt kötelezõ, más
verzióknál viszont nem.Az elõbbiek megadásával
fordítsuk újra és telepítsük
a rendszermagot, majd indítsuk újra a
számítógépünket.Miután a rendszerünk újra elindult, a
rendszer indítás során generált
üzenetei között találnunk kell
valamennyi információt a felismert
vezeték nélküli eszközökrõl.
Például:ath0: <Atheros 5212> mem 0xff9f0000-0xff9fffff irq 17 at device 2.0 on pci2
ath0: Ethernet address: 00:11:95:d5:43:62
ath0: mac 7.9 phy 4.5 radio 5.6Az infrastrukturális mûködési
módÁltalában az infrastrukturális avagy a
BBS mód használata a gyakori. Ebben a
mûködési módban adott
számú vezeték nélküli
hozzáférési pont csatlakozik a
hagyományos hálózatra. Mindegyik
vezeték nélküli hálózatnak
saját neve van, amit a hálózat
SSID-jének hívunk. A vezeték
nélküli kliensek ezekhez a vezeték
nélküli hozzáférési pontokhoz
kapcsolódnak.A &os;-s kliensek használataHogyan keressünk hozzáférési
pontokatA hálózatok kereséséhez az
ifconfig paranccsal tudunk nekifogni.
Egy ilyen kérés kiszolgálása
eltarthat néhány pillanatig, mivel ekkor a
rendszernek végig kell bóklásznia az
összes elérhetõ frekvenciát
és azokon hozzáférési pontok
után kutatni. Egyedül a
rendszeradminisztrátor kezdeményezheti ezeket
a kereséseket:&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
dlinkap 00:13:46:49:41:76 6 54M 29:3 100 EPS WPA WME
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS WPACsak jelzésû
felületen tudunk hálózatokat keresni.
További keresésekre már nincs
szükség a felület
állapotban tartásához.A keresés során keletkezõ
listában láthatjuk megtalált BBS vagy
IBBS fajtájú hálózatokat. A
hálózatok neve és
SSID-ja mellett még megjelenik egy
BSSID oszlop is, ahol a
hozzáférési pontok MAC-címe
szerepel. A CAPS oszlop az egyes
állomások tulajdonságait adja
meg:EExtended Service Set (ESS): az
állomás egy infrastrukturális
vagyis BBS hálózat része.IIBSS/ad-hoc hálózat: az
állomás egy ad-hoc hálózat
része.PPrivacy: a BBS-en belül minden keretet
titkosítani kell. Tehát a BSS arra
kötelezi az állomást, hogy WEP,
TKIP vagy AES-CCMP titkosítás
használatával kódolja a
hálózat tagjai között
közlekedõ kereteket.SShort Preamble: a hálózatban
rövid bevezetõjeleket használnak (a
802.11b High Rate/DSSS PHY
elõírásai szerint), ahol a
szokványos 128 bites
szinkronizációs mezõ hossza csak
56 bit.sShort Slot Time: a 802.11g hálózat
rövid slotidõt használ, mivel nem
találhatóak benne régi (802.11b
szabványú)
állomások.A jelenleg ismert hálózatok
listáját így tudjuk
lekérdezni:&prompt.root; ifconfig ath0 list scanEzt az információt maga az adapter
automatikusan, vagy a felhasználó tudja
frissíteni a
kérés kiadásával. Az elavult
adatok maguktól törlõdnek a
gyorsítótárból, így
idõvel a lista zsugorodni fog, hacsak nem keresünk
folyamatosan hálózatokat.Alapvetõ beállításokEbben a szakaszban arra mutatunk példákat,
hogy miként tudunk &os; alatt
titkosítás nélkül használni
egy vezeték nélküli
hálózati kártyát. Miután
elsajátítottuk az itt szereplõ
ismereteket, határozottan javasoljuk, hogy a
vezeték nélküli
hálózatunkat WPA
használatával állítsuk
be.A vezeték nélküli
hálózatok beállítása
három elemi lépésbõl
épül fel: a hozzáférési
pont kiválasztása, az állomásunk
hitelesítése és az IP-cím
beállítása. A következõkben
ezeket a lépéseket vitatjuk meg.A hozzáférési pont
kiválasztásaA legtöbb esetben hagyjuk, hogy a rendszer
válassza ki magának a
különbözõ heurisztikák
alapján a leginkább megfelelõ
hozzáférési pontot. Ez az
alapértelmezett tevékenység, amikor
aktiváljuk a felületet vagy valamilyen
más módon, például
az/etc/rc.conf
állományból hivatkozunk
rá:ifconfig_ath0="DHCP"Ha viszont több hozzáférési
pont közül mi magunk akarunk kiválasztani
egyet, akkor ezt az SSID megadásával
tehetjük meg:ifconfig_ath0="ssid saját_ssid DHCP"Amikor olyan környezetben vagyunk, ahol több
hozzáférési pontnak is megegyezik az
SSID-ja (gyakran így próbálják
egyszerûsíteni azt, hogy automatikusan
váltani lehessen köztük), akkor
szükségünk lehet ezt egy adott
eszközhöz hozzárendelni. Ebben az
esetben a hozzáférési pont
BSSID-ját is definiálni kell (és az
SSID-t akár el is hagyhatjuk):ifconfig_ath0="ssid saját_ssid bssid xx:xx:xx:xx:xx:xx DHCP"Más módokon is képesek vagyunk
szabályozni a hozzáférési
pontok megválasztását,
például a rendszerünk által
vizsgált frekvenciasávok
megadásával. Ez olyankor tud hasznos lenni,
ha többsávos vezeték
nélküli kártyánk van, és
az összes tartomány
végigpásztázása
túlságosan sok idõt venne el. Ezt a
mûvelet a paraméter
megadásával lehet egy konkrét
sávra leszûkíteni,
például aifconfig_ath0="mode 11g ssid saját_ssid DHCP"beállítás hatására
a kártya 802.11g módban fog üzemelni,
ami kizárólag csak 2,4 GHz-es
frekvenciákon használható, így
az 5 GHz-es csatornákat egyszerûen
figyelmen kívül hagyjuk. Ugyanezt a
paraméterrel is meg tudjuk
oldani, mivel így a mûködést egy
adott frekvenciára korlátozzuk, valamint a
paraméterrel, ahol a
pásztázandó csatornákat
sorolhatjuk fel. Ezekrõl a
paraméterekrõl részletesebb
leírást az &man.ifconfig.8; man oldalon
találhatunk.HitelesítésMiután sikeresen kiválasztottuk a
számunkra megfelelõ
hozzáférési pontot, az adatok
küldéséhez az
állomásunknak valamilyen módon
hitelesítenie kell magát. A
hitelesítés több módon
történhet. Erre a leggyakrabban alkalmazott
sémát nyílt
hitelesítésnek (open authentication)
nevezik, ahol a hálózathoz tetszõleges
állomás csatlakozhat és
kommunikálhat vele. Ezt a típusú
hitelesítést akkor érdemes
használni, amikor a vezeték
nélküli hálózatunkat
teszteljük. Más sémákban az
adatfolyam megindításához egy
titkosítási kézfogás
szükséges, vagy elõre megosztott kulcsok
esetleg jelszavak segítségével, vagy
bonyolultabb sémák esetében itt
még olyan különbözõ
háttérszolgáltatások is
megjelennek, mint például a RADIUS. A
legtöbb felhasználó a nyílt
hitelesítést használja, ami egyben az
alapértelmezés is. A másik
legelterjedtebb beállítás a WPA-PSK,
avagy WPA Personal, amelyrõl lentebb
még szólni fogunk.Ha &apple; &airport; Extreme Base Station
típusú hozzáférési
pontunk van, akkor az osztott kulcsú
hitelesítés mellett egy WEP kulcsot is be
állítanunk. Ezt az
/etc/rc.conf
állományban vagy a &man.wpa.supplicant.8;
programban tehetjük meg. Ha egyetlen &airport;
bázisállomásunk van, akkor az
elérést valahogy így tudjuk
beállítani:ifconfig_ath0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"Általánosságban véve
elmondhatjuk, hogy az osztott kulcsú
hitelesítést inkább
kerüljük el, mivel WEP kulcsok
használatára alapszik és
ráadásul olyan módon, hogy nagyon
könnyû feltörni. Ha már
mindenképpen a WEP mellett kell
döntenünk (például a
régebbi eszközökkel így tudunk
csak kompatibilisek maradni), akkor jobban
járunk, ha a nyílt
hitelesítéshez alkalmazzuk. A WEP
használatát érintõ
további információkat a ban
találjuk.IP-cím szerzése DHCP
használatávalMiután kiválasztottunk egy
hozzáférési pontot és
beállítottuk a hitelesítés
paramétereit, egy IP-cím is kelleni fog a
kommunikációhoz. Az esetek
túlnyomó részében DHCP-n
keresztül kapunk IP-címet a vezeték
nélküli kapcsolatunkhoz. Ezt úgy
érhetjük el, ha egyszerûen megnyitjuk az
/etc/rc.conf állományt
és az alábbihoz hasonló módon
felvesszük a DHCP
paramétert az eszközünk
beállításaihoz:ifconfig_ath0="DHCP"Így már készen is állunk a
vezeték nélküli felület
használatára:&prompt.root; /etc/rc.d/netif startAhogy a felület
mûködõképessé válik,
az ifconfig parancs
segítségével ellenõrizni is
tudjuk az ath0 felület
állapotát:&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps)
status: associated
ssid dlinkap channel 6 bssid 00:13:46:49:41:76
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100A status: associated azt jelenti,
hogy sikeresen csatlakoztunk egy vezeték
nélküli hálózathoz (jelen
esetben ez a dlinkap). A
bssid 00:13:46:49:41:76 rész a
hozzáférési pont
MAC-címét tartalmazza. Az
authmode pedig arról
számol be, hogy a kommunikáció nem
titkosított (OPEN).Statikus IP-címHa valami okból nem tudjuk az
IP-címünket DHCP szerveren keresztül
lekérni, beállíthatunk
rögzített IP-címet is. Ehhez nem kell
mást tennünk, mint a korábban
bemutatott DHCP kulcsszót
kicserélni egy konkrét címmel. A
hozzáférési ponthoz megadott
többi paramétert azonban
feltétlenül hagyjuk meg:ifconfig_ath0="ssid saját_ssid inet 192.168.1.100 netmask 255.255.255.0"WPAA WPA (Wi-Fi Protected Access, vagyis védett
wi-fi hozzáférés) a 802.11
szabványokban használatos biztonsági
protokoll, amelyet a WEP
gyengeségeinek és megfelelõ
hitelesítésének
ellensúlyozására dolgoztak ki. A WPA a
802.1X hitelesítési protokolljait
erõsíti és az adat
sértetlenségének
megõrzésére a WEP helyett több
titkosítási algoritmust is felhasznál.
A WPA által igényelt egyetlen
titkosítás a TKIP (Temporary Key Integrity
Protocol, vagyis az ideiglenes kulcs integritási
protokoll), amely a WEP által az integritás
ellenõrzésére és a
bejutások észlelésére és
azok reagálására szánt alap RC4
titkosítást bõvíti ki. A TKIP a
régebbi hardvereken csupán szoftveres
módosítással
mûködõképessé tehetõ. Ez
a kompromisszum a védelmet ugyan növeli, de
még mindig kevés a támadások
megfelelõ elhárításához. A
WPA a TKIP mellett tartalmazza még az AES-CCMP
titkosítást is, és ennek a
használata javasolt. Ezt a
specifikációt gyakran WPA2 (vagy RSN)
néven emlegetik.A WPA definiál hitelesítési
és titkosítási protokollokat. A
hitelesítés általában a
következõ két technika egyike
alapján történik: vagy 802.1X és
egy háttérszolgáltatás,
például a RADIUS
segítségével, vagy egy elõre
megosztott kulcsot alkalmazó minimális
kézfogással az állomás és
a hozzáférési pont között.
Az elõbbit gyakran WPA Enterprise-nak, míg az
utóbbit WPA Personalnak hívják. Mivel
a legtöbben nem állítanak be egy komplett
RADIUS alapú szervert a vezeték
nélküli hálózatukhoz, ezért
a WPA-PSK a WPA leginkább elterjedten használt
változata.A vezeték nélküli kapcsolat és
a hitelesítés (kulcs alapján vagy
szerverrel) vezérlését a
&man.wpa.supplicant.8; segédprogram végzi.
Ennek a programnak mûködéséhez egy
konfigurációs állományra van
szüksége, amely az
/etc/wpa_supplicant.conf néven
érhetõ el. Errõl az
állományról bõvebb
információt a &man.wpa.supplicant.conf.5; man
oldalán lelhetünk.WPA-PSKA WPA-PSK, más néven WPA-Personal, egy
adott jelszó alapján generált
elõre megosztott kulcssal (pre-shared key, PSK)
mûködik, amit a vezeték
nélküli hálózatokban
mesterkulcsént használnak. Ez azt jelenti,
hogy minden egyes vezeték nélküli
felhasználó ugyanazon a kulcson osztozik. A
WPA-PSK olyan kis méretû
hálózatok esetében megfelelõ,
ahol a hitelesítést elvégzõ
szerver használata nem lehetséges vagy nem
oldható meg.Mindig igyekezzünk erõs jelszavakat
használni, melyek kellõen hosszúak
és sokféle karaktert tartalmaznak,
és így nehezebben fejthetõek meg vagy
törhetõek fel.Elõször az
/etc/wpa_supplicant.conf
állományban állítsuk be az
SSID-t és a hálózatunkhoz
tartozó elõre megosztott kulcsot:network={
ssid="freebsdap"
psk="freebsdmall"
}Ezután az /etc/rc.conf
állományban jelezzük, hogy a
vezeték nélküli eszközt a WPA
segítségével állítjuk
be és az IP-címet a DHCP szervertõl
kérjük el:ifconfig_ath0="WPA DHCP"Innentõl már fel is tudjuk
éleszteni a felületet:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.0.1
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100Kézzel is megpróbálhatjuk
elindítani az elõbb
elkészített
/etc/wpa_supplicant.conf
állomány használatával:&prompt.root; wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz)
Associated with 00:11:95:c3:0d:ac
WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=TKIP GTK=TKIP]A következõ parancs a
dhclient indítása legyen,
amivel megszerezzük a DHCP szervertõl az
IP-címünket:&prompt.root; dhclient ath0
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/48Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100Ha az /etc/rc.conf
állományban szerepel a
ifconfig_ath0="DHCP" sor, akkor
egyáltalán nem szükséges a
dhclient parancs manuális
kiadása, mivel a dhclient
magától el fog indulni, miután a
wpa_supplicant egyeztette a
kulcsokat.Amikor a DHCP nem használható,
megadhatunk a statikus IP-címet is, miután a
wpa_supplicant sikeresen
lebonyolította a hitelesítést:&prompt.root; ifconfig ath0 inet 192.168.0.100 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100Ha egyáltalán nem használunk DHCP
szervert, akkor nekünk kell beállítani
az alapértelmezett átjárót
és a névszervert is:&prompt.root; route add default alapértelmezett_átjáró
&prompt.root; echo "nameserver névszerver" >> /etc/resolv.confWPA és EAP-TLSA másik mód, ahogy a WPA
használható, az a 802.1X
hitelesítési szerveren keresztül
történik, és ebben az esetben a WPA
neve WPA-Enterprise. Ez sokkal biztonságosabb a
WPA-Personal elõre kiosztott kulcsaival szemben. A
WPA-Enterprise az EAP (Extensible Authentication Protocol,
azaz Bõvíthetõ hitelesítési
protokoll) használatán alapszik.Az EAP önmaga nem végez
titkosítást, mivel úgy
alakították ki, hogy magát az EAP
protokollt kell egy titkosított járaton
keresztül bújtatni. Az EAP
hitelesítési módszereinek több
típusát is kidolgozták, melyek
közül a legismertebbek az EAP-TLS, EAP-TTLS
valamint a EAP-PEAP.Az EAP-TLS (EAP szállítási
rétegbeli védelemmel) a vezeték
nélküli világban egy nagyon jól
támogatott hitelesítési protokoll,
mivel ez volt az elsõ EAP módszer, amit a
Wi-fi
szövetség jóváhagyott.
Az EAP-TLS mûködéséhez
három tanúsítvány kell: egy
hitelesítõ hatóságtól
(Certificate Authority, CA), egy a
hitelesítést végzõ
szervertõl és egy a klienstõl. Ezzel az
EAP módszerrel mind a hitelesítõ
szerver, mind a vezeték nélküli kliens
külön képviselik a saját
tanúsítványaikat, és ezeket a
szervezetünket hitelesítõ
hatóság aláírása
alapján ellenõrzik.A korábbiaknak megfelelõen a
beállításokat szintén az
/etc/wpa_supplicant.conf
állományon keresztül
végezzük el:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TLS
identity="loader"
ca_cert="/etc/certs/cacert.pem"
client_cert="/etc/certs/clientcert.pem"
private_key="/etc/certs/clientkey.pem"
private_key_passwd="freebsdmallclient"
}Ez a mezõ adja meg a hálózat
nevét (SSID).Itt az RSN (&ieee; 802.11i), vagyis a WPA2
protokollt használjuk.A key_mgmt sor a
kulcskezelési protokollt adja meg. A mi
esetünkben ez a WPA lesz, EAP
hitelesítéssel:
WPA-EAP.Ebben a mezõben az EAP módszert
nevezzük meg a kapcsolathoz.Az identity mezõ az EAP
esetén használt azonosítót
tartalmazza.A ca_cert mezõ a
hitelesítõ hatóság
tanúsítványát
tároló állomány
elérési útvonalát adja
meg. Ezt a szerver
tanúsítványának
hitelesítéséhez
használjuk.A client_cert sor a kliens
tanúsítványát
tartalmazó állomány
elérési útvonalát adja
meg. Ennek a vezeték nélküli
hálózat minden egyes kliense
esetében egyedinek kell lennie.A private_key mezõ a
kliens tanúsítvánáynak
privát kulcsát tároló
állomány elérési
útját adja meg.A private_key_passwd mezõ
a privát kulcshoz tartozó jelmondatot
rögzíti.Az /etc/rc.conf
állományba vegyük fel a
következõ sort:ifconfig_ath0="WPA DHCP"A következõ lépés a
felület felébresztése lesz az
rc.d eszköz
segítségével:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100Természetesen, ahogy azt már az
elõbbiekben is megmutattuk, mindezt manuálisan
is el tudjuk végezni a
wpa_supplicant és az
ifconfig parancsok
segítségével.WPA és EAP-TTLSAz EAP-TLS használatakor mind a
hitelesítést végzõ szervernek
és kliensnek is kell
tanúsítvány, azonban az EAP-TTLS (
szállítási rétegbeli
védelem EAP tunnelen keresztül)
esetében a kliensnél ez elhagyható.
Ez a módszer nagyjából olyan, mint
amit a webes oldalak csinálnak, ahol a webszerverek
egy védett SSL tunnelt képeznek még
akkor is, amikor a látogatók nem
rendelkeznek kliens oldali
tanúsítvánnyal. Az EAP-TTLS egy
titkosított TLS tunnelen keresztül védi
le a hitelesítési adatok
forgalmát.Ezt ismét az
/etc/wpa_supplicant.conf
állományon keresztül tudjuk
beállítani:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TTLS
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase2="auth=MD5"
}Ebben a mezõben az EAP módszert
állítjuk be a kapcsolathoz.Az identity mezõ a
titkosított TLS tunnelen keresztül az EAP
hitelesítésnél felhasznált
azonosítót adja meg.A password tartalmazza az EAP
hitelesítésnél használt
jelmondatot.A ca_cert mezõ hivatkozik
a hitelesítõ hatóság
tanúsítványát
tartalmazó állományra. Ez az
állomány kell a szerver
tanúsítványának
ellenõrzéséhez.Ebben a mezõben a titkosított TLS
tunnelben használt hitelesítési
módszer nevezzük meg. Jelen
esetünkben ez az EAP MD5-Challenge
használatával. A belsõ
hitelesítés
fázisát gyakran csak
phase2-nak (2. fázisnak)
hívják.Mindezek mellett még a következõ sort
is vegyük fel az /etc/rc.conf
állományba:ifconfig_ath0="WPA DHCP"Ezután hozzuk mûködésbe a
felületet:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100WPA és EAP-PEAPA PEAP (Védett EAP) az EAP-TTLS egyik
alternatívájaként jött
létre. A PEAP módszernek két
változata van, melyek közül a
leggyakoribb a PEAPv0/EAP-MSCHAPv2. A
leírás további részében
a PEAP elnevezéssel erre az EAP módszerre
fogunk hivatkozni. A PEAP az EAP-TLS után a
leginkább alkalmazott szabvány, más
szóval, ha a hálózatunkban
többféle operációs rendszer is
megtalálható, akkor az EAP-TLS után
valószínûleg a PEAP lesz a
másik, amit mindegyik ismerni fog.A PEAP hasonló az EAP-TTLS-hez: szerver oldali
tanúsítványokkal hitelesíti a
klienseket és titkosított TLS tunnelt hoz
létre a kliens és a
hitelesítést végzõ szerver
között, amivel segíti megóvni a
hitelesítési információkat.
Biztonság szempontjából az EAP-TTLS
és a PEAP között az a
különbség, hogy a PEAP
hitelesítés a felhasználói
nevet titkosítatlanul küldi és csak a
jelszó megy át a titkosított TLS
tunnelen. Az EAP-TTLS egyaránt a TLS tunnelt
használja mind a felhasználói
név, mind a jelszó esetében.Az EAP-PEAP beállításait az
/etc/wpa_supplicant.conf
állományba kell felvenni:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=PEAP
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}Ebben a mezõben megadjuk, az EAP
módszert használjuk a
kapcsolathoz.Az identity mezõ az EAP
hitelesítés során a
titkosított TLS tunnelben
átküldött azonosítót
tartalmazza.A password mezõ az EAP
hitelesítés során használt
jelmondatot definiálja.A ca_cert mezõ a
hitelesítõ hatóság
tanúsítványát
tartalmazó állomány
elérési útját adja meg.
Ez az állomány kell a szerver
tanúsítványának
ellenõrzéséhez.Ez a mezõ a hitelesítés
elsõ fázisának (vagyis a TLS
tunnel) paramétereit tartalmazza. A
hitelesítést végzõ
szervertõl függõen a
hitelesítéshez meg kell adnunk bizonyos
címkéket. A legtöbb esetben a
címke a kliens oldali EAP
titkosítás lesz, amit a
peaplabel=0
használatával állítunk be.
A részleteket a &man.wpa.supplicant.conf.5; man
oldalon olvashatjuk.Ebben a mezõben a titkosított TLS
tunnelben alkalmazott hitelesítést
protokollt nevezzük meg. A PEAP esetében
ez az auth=MSCHAPV2 lesz.A következõket kell még
hozzátennünk az
/etc/rc.conf
állományhoz:ifconfig_ath0="WPA DHCP"Ezután már mûködésbe is
hozhatjuk a felületet:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100WEPA WEP (Wired Equivalent Privacy, azaz kábellel
egyenértékû titkosság) az eredeti
802.11 szabvány része. Nincs külön
hitelesítési mechanizmusa, csupán a
hozzáférés-vezérlés egy
gyenge formájával találkozhatunk benne,
amit azonban könnyen fel lehet törni.A WEP ifconfig parancs
használatán keresztül
állítható be:&prompt.root; ifconfig ath0 ssid saját_hálózat wepmode on weptxkey 3 wepkey 3:0x3456789012 \
inet 192.168.1.100 netmask 255.255.255.0A weptxkey utal arra, hogy a
küldés során WEP kulcsot
használunk. Itt most egy harmadik kulcsot
használtunk, amelynek egyeznie kell a
hozzáférési pont
beállításaival. Ha nem tudjuk
pontosan, hogy milyen kulcsot használ a
hozzáférési pont, akkor
próbálkozzunk az 1
érték (vagyis az elsõ kulcs)
megadásával.A wepkey után
következik a kiválasztott WEP kulcs.
index:kulcs alakban kell
megadni, és ha itt nem adunk meg indexet, akkor
azzal az 1 indexû kulcsot
állítjuk be. Úgyis
fogalmazhatnánk, hogy az indexet csak olyankor
kell megadni, amikor nem az elsõ kulcsot akarjuk
használni.A 0x3456789012
értéket a
hozzáférési pontnál
beállított kulcsra kell
beállítani.Ha érdekelnek minket a további
részletek, akkor bátran lapozzuk fel az
&man.ifconfig.8; parancs man oldalát.A wpa_supplicant
segédprogramot is bevonhatjuk a vezeték
nélküli felületek WEP alapú
használatába. A fenti példát a
következõ módon tudjuk leírni az
/etc/wpa_supplicant.conf
állományban:network={
ssid="sajat_halozat"
key_mgmt=NONE
wep_key3=3456789012
wep_tx_keyidx=3
}Majd:&prompt.root; wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz)
Associated with 00:13:46:49:41:76Az ad-hoc mûködési módAz IBSS vagy más néven ad-hoc módot
pont-pont típusú kapcsolatok
kialakítására tervezték.
Például, ha az A és a
B gépek között egy ad-hoc
típusú hálózatot akarunk
létesíteni, akkor egyszerûen csak ki kell
választanunk két IP-címet és egy
SSID-t.Így állítjuk be az A
gépet:&prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.1 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>)
status: associated
ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100Az adhoc paraméterrel utalunk
arra, hogy a felület most IBSS módban
mûködik.A B gépen ezután már
képesek vagyunk észlelni az A
gépet:&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 02:11:95:c3:0d:ac 2 54M 19:3 100 ISA kimenetben szereplõ I is
megerõsíti, hogy az A gépet
ad-hoc módban érjük el. Így
már csak a B gépet kell
beállítanunk egy másik
IP-címmel:&prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.2 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>)
status: associated
ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100Most már mind az A és
mind a B készen áll az adatok
cseréjére.&os; alapú hozzáférési
pontokA &os; képes hozzáférési
pontként (Access Point, AP) is üzemelni, így
nem kell külön hardveres
hozzáférési pontot
vásárolnunk vagy ad-hoc hálózatot
használnunk. Ez különösen akkor hasznos,
amikor a &os; gépet egy másik
hálózat (például az internet)
felé állítottuk be
átjárónak.Alapvetõ beállításokMielõtt nekiállnánk a &os;-s
gépünket hozzáférési pontnak
beállítani, egy olyan rendszermagra lesz
szükségünk, amely tartalmazza a
megfelelõ vezeték nélküli
támogatást a kártyánkhoz.
Emellett az alkalmazni kívánt biztonsági
protokollok támogatását is bele kell
építenünk. Ennek részleteit
lásd a ban.Jelenleg az NDIS meghajtón keresztül
használt &windows;-os meghajtók nem teszik
lehetõvé hozzáférési pontok
kialakítását. Egyedül a
vezeték nélküli eszközök
natív &os;-s meghajtói ismerik a
hozzáférési pont módot.Ahogy betöltöttük a vezeték
nélküli hálózatok
támogatását, egybõl ellenõrizni
is tudjuk, hogy a vezeték nélküli
eszközünk használható-e
hozzáférési pontként (avagy
hostap módban):&prompt.root; ifconfig ath0 list caps
ath0=783ed0f<WEP,TKIP,AES,AES_CCM,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,TKIPMIC,WPA1,WPA2,BURST,WME>A fenti kimenetben láthatjuk a
kártyánk tulajdonságait. A
HOSTAP szó arról
tanúskodik, hogy a vezeték nélküli
kártyánk képes
hozzáférési pontként viselkedni.
Mellette még a különféle
támogatott titkosítási módszerek
is láthatóak: WEP, TKIP, WPA2 stb. Ezekbõl
az információkból tudjuk
kideríteni, hogy a hozzáférési
pontunkon milyen titkosítási protokollokat
tudunk használni.A vezeték nélküli eszközünket
most már átállíthatjuk
hozzáférési pontnak, amihez megadunk
még egy SSID-t és egy IP-címet:&prompt.root; ifconfig ath0 ssid freebsdap mode 11g mediaopt hostap inet 192.168.0.1 netmask 255.255.255.0Az ifconfig parancs ismételt
használatával le is tudjuk kérdezni az
ath0 felület
állapotát:&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 38 bmiss 7 protmode CTS burst dtimperiod 1 bintval 100A hostap paraméterbõl
kiderül, hogy a felület
hozzáférési pont módban
van.Ha az /etc/rc.conf
állományban megadjuk a következõ sort,
akkor a felület beállítása a
rendszer indításakor magától
megtörténik:ifconfig_ath0="ssid freebsdap mode 11g mediaopt hostap inet 192.168.0.1 netmask 255.255.255.0"Hitelesítés vagy titkosítás
nélküli hozzáférési
pontokHabár a hozzáférési pontok
mûködtetése nem javasolt
hitelesítés vagy titkosítás
nélkül, ebben a módban könnyen meg
tudunk gyõzõdni a hozzáférési
pontunk használhatóságáról.
Ez a típusú konfiguráció
ezenkívül még fontos szerepet
játszik a klienseken felbukkanó hibák
kiszûrésében is.Miután sikerült az elõbbiekben
bemutatottak alapján beállítani a
hozzáférési pontunkat, egy másik
vezeték nélküli géprõl
rögtön meg is kezdhetjük a
keresését:&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 ESLáthatjuk, hogy a kliens megtalálta a
hozzáférési pontot és tudunk is
rá kapcsolódni:&prompt.root; ifconfig ath0 ssid freebsdap inet 192.168.0.2 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100WPA titkosítást használó
hozzáférési pontokEbben a szakaszban a &os;-s
hozzáférési pontunkat WPA
titkosítással állítjuk be. A WPA
és a WPA alapú kliensek
beállításának részleteit a
ban
találjuk.A WPA titkosítást használó
hozzáférési pontokon a
hostapd démon foglalkozik a
kliensek hitelesítésével és a
kulcsok kezelésével.A továbbiakban az összes
beállítást egy olyan &os;-s gépen
végezzük el, amely
hozzáférési pontként
mûködik. Ahogy sikerült
beállítanunk a hozzáférési
pont módot, az /etc/rc.conf
állományban a következõ sor
segítségével könnyen meg tudjuk
oldani, hogy az hostapd
démon a rendszerrel együtt magától
elinduljon:hostapd_enable="YES"Mielõtt megpróbálnánk
beállítani a hostapd
démont, ne felejtsük el elvégezni a ban említett
alapvetõ beállításokat sem.WPA-PSKA WPA-PSK használatát olyan kis
méretû hálózatok
számára szánják, ahol egy
külön hitelesítõ szervert
alkalmazása nem lehetséges vagy nem
kívánatos.A konfiguráció az
/etc/hostapd.conf
állományon keresztül
történik:interface=ath0
debug=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=freebsdap
wpa=1
wpa_passphrase=freebsdmall
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP TKIP Ebben a mezõben jelöljük ki a
hozzáférési pontként
használt vezeték nélküli
felületet.Ebben a mezõben adjuk meg a
hostapd futtatása
során keletkezõ üzenetek
részletességét. A
példában szereplõ
1 érték ennek a
legkisebb szintjét jelöli.A ctrl_interface mezõ
megadja a hostapd
által használt könyvtár
elérési útvonalát, amiben
azokat a tartományokhoz tartozó socketeket
tároljuk, amelyeken keresztül olyan
programokkal tudunk kommunikálni, mint
például a &man.hostapd.cli.8;. Itt az
alapértelmezett értéket
írtuk be.A ctrl_interface_group sor
beállítja azt a csoportot (ez jelen
esetben a wheel), amin
keresztül a vezérlõfelület
(control interface) állományaihoz
hozzá tudunk férni.Ebben a mezõben a hálózat
nevét állítjuk be.A wpa mezõvel
engedélyezzük a WPA
használatát és megadjuk, hogy
melyik WPA hitelesítési protokollt
alkalmazzuk. Az itt szereplõ 1
érték a WPA-PSK hitelesítés
állítja be a
hozzáférési pont
számára.A wpa_passphrase mezõ a WPA
hitelesítéshez szükséges ASCII
jelmondatot tartalmazza.Lehetõleg mindig erõs jelszavakat
használjunk, amelyek kellõen
hosszúak és sokféle karaktert
tartalmaznak, így nehezebben fejthetõek
meg vagy törhetõek fel.A wpa_key_mgmt sor a kulcsok
kezelésére használt protokollt
definiálja. Ez a mi esetünk most a
WPA-PSK.A wpa_pairwise mezõ a
hozzáférési pont által
elfogadott titkosítási algoritmusokat
határozza meg. A példában a TKIP
(WPA) és CCMP (WPA2) titkosítást is
támogatjuk. A CCMP titkosítás a
TKIP egyik alternatívája, és
lehetõség szerint használjuk ezt. A
TKIP csak olyan állomások esetében
javasolt, amelyek nem támogatják a CCMP
használatát.A következõ lépés a
hostapd
elindítása:&prompt.root /etc/rc.d/hostapd forcestart&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2290
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy MIXED deftxkey 2 TKIP 2:128-bit txpowmax 36 protmode CTS dtimperiod 1 bintval 100A hozzáférési pont mostantól
mûködik, innentõl a kliensek már
képesek csatlakozni hozzá, bõvebben
lásd a ban. A
hozzáférési ponthoz tartozó
állomásokat az ifconfig
ath0 list sta paranccsal
tudjuk listázni.WEP titkosítást használó
hozzáférési pontokA WEP titkosítást nem javasoljuk a
hozzáférési pontok esetében, mivel
nem tartalmaz semmilyen hitelesítési
mechanizmust és könnyen feltörhetõ.
Egyes régebbi vezeték nélküli
kártyák azonban csak a WEP által
nyújtott védelmet ismerik, ezért az
ilyenek csak olyan hozzáférési pontokhoz
tudnak csatlakozni, amelyek vagy nem használnank
hitelesítést és
titkosítást, vagy erre a WEP protokollt
használják.A vezeték nélküli eszközt
tegyük hozzáférési pont módba
és állítsuk be neki a megfelelõ
SSID-t és IP-címet:&prompt.root; ifconfig ath0 ssid freebsdap wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11g mediaopt hostap \
inet 192.168.0.1 netmask 255.255.255.0A weptxkey
beállítás után adjuk meg a
küldéshez használt WEP kulcsot. Itt a
harmadik kulcsot adtuk meg (vegyük észre, hogy
a kulcsok számozása az 1
értékkel kezdõdik). Ez a
paramétert az adatok tényleges
titkosításához kell megadni.A wepkey a kiválasztott WEP
kulcs beállítását jelöli,
aminek a formátuma
index:kulcs. Ha itt nem adunk
meg indexet, akkor automatikusan az elsõ kulcsot
állítjuk be. Ezért talán
mondanunk sem kell, hogy az indexet csak akkor kell
megadni, ha nem az elsõ kulcsot akarjuk
használni.A ath0 felület
állapotának megtekintéséhez adjuk
ki megint az ifconfig parancsot:&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit txpowmax 36 protmode CTS dtimperiod 1 bintval 100Egy másik vezeték nélküli
géprõl most már
megpróbálhatjuk megkeresni a
hozzáférési pontot:&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPSLáthatjuk, hogy a kliens megtalálta a
hozzáférési pontot, és a
megfelelõ paraméterekkel (kulcs stb.) képes
kapcsolódni hozzá a ban leírtak
szerint.HibaelhárításHa valamilyen gondunk lenne a vezeték
nélküli hálózatok
használatával, akad néhány
lépés, amivel esetleg fel tudjuk deríteni a
hiba okát.Ha nem látjuk a hozzáférési
pontot a pásztázás után,
ellenõrizzük, hogy a vezeték
nélküli eszközt véletlenül nem
korlátoztuk-e le bizonyos csatornákra.Ha nem tudunk csatlakozni a
hozzáférési ponthoz, akkor
egyeztessük vele az állomás egyes
paramétereit, beleértve a
hitelesítési sémát és a
biztonsági protokollokat. Minél jobban
egyszerûsítsük le a
konfigurációkat. Ha WPA vagy WEP
titkosítást használunk, akkor a
hozzáférési ponton
állítsunk be nyílt
hitelesítést és kapcsoljuk ki a
titkosítást, majd nézzük meg, hogy
így eljut-e hozzánk valamilyen
forgalom.Ahogy sikerült csatlakozunk a
hozzáférési ponthoz, a
biztonsági beállításokat olyan
egyszerû eszközökkel próbáljuk
meg diagnosztizálni, mint például a
&man.ping.8;.A wpa_supplicant
segédprogrammal tudunk nyomkövetést
végezni. A opció
megadásával indítsuk el
manuálisan és ellenõrizzük a
rendszernaplókat.Vannak alacsonyabb szintû nyomkövetési
lehetõségek is. A 802.11 protokollt
támogató rétegben is tudunk
engedélyezni nyomkövetési üzeneteket
a /usr/src/tools/tools/net80211
könyvtárban található
wlandebug program
segítségével. Például
a&prompt.root; wlandebug -i ath0 +scan+auth+debug+assoc
net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>paranccsal a hozzáférési pontok
kereséséhez és a 802.11 protokollon
belül a kapcsolat megszervezéséhez
szükséges kézfogásokhoz
kapcsolódó konzolüzeneteket tudjuk
engedélyezni.A 802.11 rétegben rengeteg hasznos
statisztikát találhatunk. Mindezeket a
wlanstats eszközzel tudjuk
kiíratni. Ezeknek a statisztikáknak a 802.11
réteg összes hibáját be kell
tudniuk azonosítaniuk. Vigyázzunk azonban,
mert az eszközmeghajtókban a 802.11 réteg
alatt rejlõ bizonyos hibák ilyenkor nem jelennek
meg. Az eszközfüggõ problémák
felderítésével kapcsolatban a
megfelelõ meghajtó
dokumentációját olvassuk
át.Amennyiben a fenti tanácsok mentén sem
sikerül orvosolnunk a hibát okát,
küldjünk egy hibajelentést és
mellékeljük hozzá a fentebb tárgyalt
eszközök által gyártott
kimeneteket.PavLucistnikÍrta: pav@FreeBSD.orgBluetoothBluetoothBevezetésA Bluetooth egy olyan vezeték nélküli
technológia, amellyel a 2,4 GHz-es
frekvenciatartományban tudunk személyi
hálózatokat létrehozni 10 méteren
belül. Az ilyen típusú
hálózatok általában alkalmi
jelleggel keletkeznek különféle
hordozható eszközök, mint például
mobiltelefonok, kézi
számítógépek és laptopok
között. Eltérõen más
népszerû vezeték nélküli
technológiáktól, például a
wi-fitõl, a Bluetooth magasabb szintû
szolgáltási profilokat is felajánl:
FTP-szerû állományszervereket, az
állományok áttolását, hang
átküldését, soros vonali
emulációt és még sok minden
mást.A &os;-ben megvalósított Bluetooth
protokollkészlet a Netgraph rendszerre
építkezik (lásd &man.netgraph.4;). A
Bluetooth alapú USB-s hardverzárak széles
körét támogatja az &man.ng.ubt.4;
meghajtó. A Broadcom BCM2033 chipre
épített Bluetooth eszközöket az
&man.ubtbcmfw.4; és az &man.ng.ubt.4; meghajtók
támogatják. A 3Com Bluetooth PC Card 3CRWB60-A
eszközt az &man.ng.bt3c.4; meghajtó
támogatja. A soros és UART alapú Bluetooth
eszközöket a &man.sio.4;, &man.ng.h4.4; és
&man.hcseriald.8; ismeri. Ebben a szakaszban a Bluetooth
alapú USB-s hardverzárak használatát
mutatjuk be.Az eszköz csatlakoztatásaAlapértelmezés szerint a Bluetooth
eszközmeghajtók modulként
érhetõek el. Az eszköz csatlakoztatása
elõtt a megfelelõ meghajtót be kell
töltenünk a rendszermagba:&prompt.root; kldload ng_ubtHa a Bluetooth eszköz már a rendszer
indításakor is jelen van, akkor a modult az
/boot/loader.conf állományon
keresztül is betölthetjük:ng_ubt_load="YES"Dugjuk be az USB-s hardverzárunkat. Az
alábbihoz hasonló kimenet fog keletkezni a
konzolon (vagy a rendszernaplóban):ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
wMaxPacketSize=49, nframes=6, buffer size=294Az /etc/rc.d/bluetooth szkript fogja
végezni a Bluetooth használatához
szükséges protokollkészlet
elindítását és
leállítását. Jó ötlet
leállítani az eszköz
eltávolítása elõtt, de ha elhagyjuk,
(általában) nem okoz végzetes hibát.
Az indításkor a következõ kimenetet
kapjuk:&prompt.root; /etc/rc.d/bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a
Features: 0xff 0xff 0xf 00 00 00 00 00
<3-Slot> <5-Slot> <Encryption> <Slot offset>
<Timing accuracy> <Switch> <Hold mode> <Sniff mode>
<Park mode> <RSSI> <Channel quality> <SCO link>
<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
<Paging scheme> <Power control> <Transparent SCO data>
Max. ACL packet size: 192 bytes
Number of ACL packets: 8
Max. SCO packet size: 64 bytes
Number of SCO packets: 8HCIHost Controller Interface (HCI)A Host Controller Interface (HCI) egy parancsfelületet
nyújt a mûködési sáv
vezérlõjéhez (baseband controller) és
az összeköttetések kezelõjéhez
(link manager), valamint hozzáférést a
hardverállapot és -vezérlõ
regiszterekhez. Ez a felület egy egységes
módszert szolgáltat a Bluetooth
mûködési sávjához tartozó
tulajdonságok eléréséhez. Az
eszközön üzemelõ HCI réteg a
Bluetooth hardverben található HCI firmware-rel
vált adatokat és parancsokat. A Host Controller
Transport Layer (vagyis a fizikai busz) meghajtója mind a
két HCI réteget és a kettejük
közti információcserét is
elérhetõvé teszi.Az egyes Bluetooth eszközökhöz
létrejön egy-egy hci
típusú Netgraph-beli csomópont. Ez a HCI
csomópont általában a Bluetooth
eszközmeghajtó csomópontjához
(lefelé) és az L2CAP csomóponthoz
(felfelé) csatlakozik. Az összes HCI mûveletet
a HCI csomóponton kell elvégezni és nem az
eszközmeghajtóhoz tartozón. A HCI
csomópont alapértelmezett neve a
devicehci. Ezekrõl többet az
&man.ng.hci.4; man oldalán tudhatunk meg.Az egyik legáltalánosabb feladat a Bluetooth
eszközök esetében a közelben levõ
további eszközök felderítése.
Ezt a mûveletet
tudakozódásnak
(inquiry) nevezik. A tudakozódást
és az összes többi HCI-hez
kapcsolódó mûveletet a &man.hccontrol.8;
segédprogrammal tudjuk elvégezni. A lentebb
látható példa azt mutatja meg, hogyan
tudunk Bluetooth eszközöket keresni egy adott
távolságon belül. Az elérhetõ
eszközök listáját néhány
másodpercen alatt megkapjuk. A távoli azonban
eszközök csak akkor fognak válaszolni, ha
felderíthetõ
(discoverable) módban vannak.&prompt.user; hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:80:37:29:19:a4
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 52:02:04
Clock offset: 0x78ef
Inquiry complete. Status: No error [00]A BD_ADDR a Bluetooth eszköz egyedi
címe, hasonló a hálózati
kártyák MAC-címéhez. Erre a
címre lesz szükség ahhoz, hogy a
továbbiakban kommunikálni tudjunk az
eszközzel. Emberek számára
értelmezhetõ nevet is hozzá tudunk rendelni a
BD_ADDR címhez. Az
/etc/bluetooth/hosts állomány
tartalmazza a Bluetooth eszközökre vonatkozó
információkat. A következõ
példában azt láthatjuk, hogyan tudunk
beszédesebb nevet adni egy távoli
eszköznek:&prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
BD_ADDR: 00:80:37:29:19:a4
Name: Pav T39-eseAmikor tudakozódni kezdünk a távoli
Bluetooth eszközök jelenléte felõl, a
gépünket sajat.gep.nev (ubt0)
néven fogják látni. Ez a helyi
eszközhöz rendelt név bármikor
megváltoztatható.A Bluetooth rendszer lehetõség ad pont-pont
(természetesen csak két Bluetooth egység
között) vagy pont-multipont típusú
kapcsolatok kiépítésére. A
pont-multipont kapcsolat esetén a kapcsolaton több
Bluetooth eszköz osztozik. A most következõ
példában megláthatjuk, hogyan kell az
aktív mûködési sávban
lekérdezni a helyi eszköz létrejött
kapcsolatait:&prompt.user; hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPENA kapcsolat azonosítója
(connection handle) akkor hasznos, amikor egy sávbeli
kapcsolatot akarunk lezárni. Ezt általában
nem kell kézzel megcsinálni. A rendszer
magától lezárja az inaktív
sávbeli kapcsolatokat.&prompt.root; hccontrol -n ubt0hci disconnect 41
Connection handle: 41
Reason: Connection terminated by local host [0x16]A hccontrol help paranccsal tudjuk
lekérdezni az elérhetõ HCI parancsokat. A
legtöbb HCI parancs végrehajtásához
nem kellenek rendszeradminisztrátori
jogosultságok.L2CAPLogical Link Control and Adaptation Protocol
(L2CAP)A Logical Link Control and Adaptation Protocol (L2CAP) a
kapcsolat-orientált és a kapcsolat
nélküli adatszolgáltatásokért
felelõs a felsõbb rétegek felé, valamit
támogatja a protokollok
többszörözését, a darabolást
és az összerakást. Az L2CAP a magasabb
szintû protokollok és az alkalmazások
számára egészen 64 kilobyte
méretig lehetõvé teszi az adatcsomagok
küldését és
fogadását.A L2CAP a csatorna (channel)
fogalmára építkezik. A csatorna egy
logikai kapcsolatot képvisel a mûködési
sávon belüli kapcsolat felett. Mindegyik
csatornához egyetlen protokoll kötõdik, egy a
többhöz alapon. Több csatorna is tarthozhat
ugyanahhoz a protokollhoz, de egy csatornán nem
használhatunk több protokollt. A csatornákon
keresztül érkezõ L2CAP csomagok ezután a
megfelelõ felsõbb rétegbeli protokollokhoz
kerülnek. Több csatorna osztozhat ugyanazon a
sávbeli kapcsolaton.Minden Bluetooth eszközhöz létrejön
egy l2cap típusú
Netgraph-csomópont. Az L2CAP csomópont
általában egy Bluetooth HCI csomóponthoz
(lefelé) és egy Bluetooth sockethez
(felfelé) kapcsolódik. Az L2CAP csomópont
alapértelmezett neve devicel2cap.
Errõl részletesebben az &man.ng.l2cap.4; man oldal
világosít fel minket.Ezen a szinten hasznos parancsnak bizonyulhat az
&man.l2ping.8;, amivel más eszközöket tudunk
pingelni. Elõfordulhat, hogy egyes Bluetooth
implementációk nem válaszolnak semmilyen
feléjük küldött adatra, így az
alábbi példában is szereplõ 0
bytes teljesen normális.&prompt.root; l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0Az &man.l2control.8; segédprogram
használható az L2CAP csomópontok
különbözõ mûveleteinek
kivitelezésére. Ebben a példában a
helyi eszközhöz tartozó logikai kapcsolatokat
(csatornák) és sávokat
kérdezzük le:&prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels:
Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections:
Remote BD_ADDR Handle Flags Pending State
00:07:e0:00:0b:ca 41 O 0 OPENMásik ugyanilyen diagnosztikai eszköz a
&man.btsockstat.1;. Ha a viselkedését
tekintjük, akkor leginkább a &man.netstat.1;
programra hasonlít, de a Bluetooth
hálózatban megjelenõ adatszerkezetekkel
dolgozik. Az alábbi példa az iménti
&man.l2control.8; parancs kimenetében szereplõ
logikai kapcsolatokat mutatja:&prompt.user; btsockstat
Active L2CAP sockets
PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
Active RFCOMM sessions
L2PCB PCB Flag MTU Out-Q DLCs State
c2afe900 c2b53380 1 127 0 Yes OPEN
Active RFCOMM sockets
PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPENRFCOMMAz RFCOMM protokollAz RFCOMM protokoll a soros portok
emulációját valósítja meg az
L2CAP protokollon keresztül. A protokoll az ETSI TS 07.10.
RFCOMM szabványán alapszik, és egy
egyszerû átviteli protokoll, amelyet a 9 tûs
RS-232 (EIATIA-232-E) soros portok
emulációjára készítettek fel.
Az RFCOMM protokoll legfeljebb 60 kapcsolat (RFCOMM csatorna)
párhuzamos használatát támogatja
két Bluetooth eszköz között.Az RFCOMM számára a teljes
kommunikációs útvonal két
különbözõ eszközön futó
alkalmazást (kommunikációs
végpontot) és köztük levõ
kommunikációs szegments foglalja magában.
Az RFCOMM az adott eszközön a soros portot
használó alkalmazások részére
készült. A kommunikációs szegmens az
egyik eszköztõl a másikig vezetõ Bluetooth
alapú összeköttetés (közvetlen
kapcsolat).Közvetlen kapcsolat esetén az RFCOMM csak az
eszközök közti kapcsolattal foglalkozik, valamint
hálózati kapcsolat esetén az eszköz
és a modem közti kapcsolattal. Az RFCOMM más
konfigurációkat is támogat,
például olyan modulokat, amelyek az egyik oldalon
a Bluetooth vezeték nélküli
technológián keresztül kommunikálnak,
míg a másik oldalon egy vonalas felületet
nyújtanak.A &os;-ben az RFCOMM protokollt Bluetooth foglalatok
rétegében valósították
meg.párosításAz eszközök
párosításaAlapértelmezés szerint a Bluetooth
kommunikáció nem hitelesítõdik
és bármelyik eszköz képes
bármelyik másikkal felvenni a kapcsolatot. Egy
Bluetooth eszköz (például egy mobiltelefon)
egy adott szolgáltatáshoz igényelhet
hitelesítést (például
betárcsázáshoz). A Bluetooth alapú
hitelesítés többnyire PIN
kódokkal történik. A PIN
kód egy legfeljebb 16 karakterbõl álló
ASCII karakterlánc. A felhasználóknak mind
a két eszközön ugyanazt a PIN kódot kell
megadniuk. Miután megadtuk a PIN kódot, az
eszközök létrehoznak hozzájuk egy
összekötettésbeli kulcsot
(link key). Ezután ezt a kulcsot vagy az
eszközökön tároljuk vagy pedig valamilyen
tartós tárolón. A következõ
alkalommal mind a két eszközt ezt a korábban
elkészített kulcsot fogja használni. Ezt
az eljárást nevezik
párosításnak
(pairing). Ha valamelyik eszköz elveszti az
össszeköttetés kulcsát, akkor a
párosítást meg kell
ismételni.A &man.hcsecd.8; démon felelõs az összes
Bluetooth alapú hitelesítési
kérés lekezeléséért. Az
alapértelmezett konfigurációs
állománya az
/etc/bluetooth/hcsecd.conf.
Például így tudjuk benne egy
mobiltelefonhoz megadni az 1234 PIN
kódot:device {
bdaddr 00:80:37:29:19:a4;
name "Pav T39-ese";
key nokey;
pin "1234";
}Semmilyen korlátozás nincs a PIN
kódokra (a méretüktõl eltekintve).
Egyes eszközökbe (például a Bluetooth
fejhallgatók) elõre rögzített PIN
kódot építettek bele. A
kapcsoló hatására a
&man.hcsecd.8; démont az elõtérben lehet
futtatni, így könnyebben láthatjuk mi
történik. A távoli eszközt
állítsuk be a párosítás
elfogadására és kezdeményezzünk
felé egy Bluetooth kapcsolatot. A távoli
eszköznek erre azt kell válaszolnia, hogy elfogadta
a párosítást, majd kérni fogja a PIN
kódot. Adjuk meg ugyanazt a PIN kódot, mint amit
a hcsecd.conf állományba is
beírtunk. Most már a gépünk és
a távoli eszköz párban vannak. A
párosítást a távoli
eszközrõl is kezdeményezhetjük.A &os; 5.5, 6.1 és újabb
változataiban az /etc/rc.conf
állományba a következõ sort kell
felvenni a hcsecd automatikus
indításához:hcsecd_enable="YES"Ez pedig a hcsecd démon
által generált kimenetre példa:hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4SDPService Discovery Protocol (SDP)A Service Discovery Protocol (SDP)
segítségével a kliens alkalmazások
képes felderíteni, hogy a szerver
alkalmazások részérõl milyen
szolgáltatások érhetõek el, valamint
ezek a szolgáltatások milyen
tulajdonságokkal rendelkeznek. A
szolgáltatások tulajdonsági
közé soroljuk többek között a
felajánlott szolgáltatás
típusát vagy osztályát, illetve a
szolgáltatás kihasználásához
szükséges mechanizmusra vagy protokollra
vonatkozó információkat.Az SDP az SDP szerver és az SDP kliens közti
kommunikációt foglalja magában. A szerver
karbantart egy listát azokról a
szolgáltatási rekordokról, amelyek a
szerverhez tartozó szolgáltatások
jellemzõit írják le. Mindegyik ilyen
szolgáltatási rekord egyetlen
szolgáltatás adatait tartalmazza. A kliensek egy
SDP kéréssel ezeket a szolgáltatási
rekordokat kérhetik el az SDP szervertõl.
Amennyiben a kliens, vagy a hozzátartozó
alkalmazás a szolgáltatás használata
mellett dönt, akkor a szolgáltatás
használatához a megfelelõ
szolgáltató felé nyitnia kell egy
külön kapcsolatot. Az SDP csak a
szolgáltatások és azok
tulajdonságainak felderítéséhez ad
segítséget, de semmilyen eszközt nem
tartalmaz a felhasználásukra.Általában az SDP kliensek
általában valamilyen számunkra kellõ
tulajdonság alapján keresnek
szolgáltatásokat. Ráadásul
adódhatnak olyan alkalmak is, amikor a
szolgáltatások elõzetes ismerete
nélkül szeretnénk felderíteni a
rendelkezésre álló
szolgáltatások típusait. A
felajánlott szolgáltatások ilyen
típusú feldolgozását nevezzük
böngészésnek
(browsing).Az &man.sdpd.8; Bluetooth SDP szerver és a
parancssoros &man.sdpcontrol.8; kliens az alap &os;
telepítés része. Az alábbi
példában egy SDP böngészési
kérést adunk ki:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1
Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)
Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0
és így tovább. Mindegyik
szolgáltatáshoz hozzátartozik a
tulajdonságok egy listája (például
RFCOMM csatorna). Lehetséges, hogy
szolgáltatástól függõen bizonyos
tulajdonságokat kell figyelnünk. Egyes Bluetooth
implementációk nem támogatják a
szolgáltatások
böngészését és ezért egy
üres listát adnak vissza. Ebben az esetben egy
konkrét szolgáltatásra tudunk
rákeresni. A következõ példában
az OBEX Object Push (OPUSH) szolgáltatást
keressük:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH&os; alatt az &man.sdpd.8; szerverrel tudunk
szolgáltatásokat felajánlani a Bluetooth
klienseknek. A &os; 5.5, 6.1 vagy késõbbi
változataiban ehhez a következõ sort kell
megadnunk az /etc/rc.conf
állományban:sdpd_enable="YES"Ezután az sdpd
démon így indítható el:&prompt.root; /etc/rc.d/sdpd startA távoli kliensek részére Bluetooth
szolgáltatásokat felajánlani
kívánó helyi szerver alkalmazásoknak
regisztrálniuk kell magukat a helyi SDP
démonnál. Például az egyik ilyen
alkalmazás az &man.rfcomm.pppd.8;, és
elindítása után regisztrálni fogja a
Bluetooth LAN szolgáltatást a helyi SDP
démonnál.A helyi SDP szerveren regisztrált
szolgáltatásokat a helyi vezérlési
csatornán keresztül egy browse
kéréssel tudjuk lekérdezni:&prompt.root; sdpcontrol -l browseA betárcsázós hálózati
és a PPP hálózati
hozzáférési (LAN) profilokA betárcsázós hálózati
(Dial-Up Networking, DUN) profil leggyakrabban a modemek
és mobiltelefonok között tûnik fel. Ez a
profil a következõ forgatókönyveket
dolgozza fel:A számítógépünkkel egy
mobiltelefont vagy modemet vezeték
nélküli modemként használunk,
amivel az internethez vagy más
hálózatokhoz csatlakozunk
betárcsázással.A számítógépünkkel egy
mobiltelefonon vagy modemen keresztül fogadunk
adathívásokat.A PPP hálózati
hozzáférési (LAN) profil a
következõ helyezetekben alkalmazható:LAN hozzáférés egyetlen Bluetooth
eszközhözLAN hozzáférés több Bluetooth
eszközhözKét gép összekötése (a
soros vonali kapcsolat emulációval PPP-n
keresztül)&os; alatt mind a két profilt a &man.ppp.8; és
az &man.rfcomm.pppd.8; valósítja meg — egy
olyan wrapper eszköz, amely az RFCOMM Bluetooth
kapcsolatokat a PPP számára is
értelmessé alakítja át.
Mielõtt még bármelyik profilt
elkezdenénk használni, egy új PPP
címkét kell létrehozni az
/etc/ppp/ppp.conf
állományban. Erre példát az
&man.rfcomm.pppd.8; man oldalon találhatunk.A következõ példában az
&man.rfcomm.pppd.8; programot fogjuk használni arra, hogy
egy RFCOMM típusú kapcsolatot nyissunk a
00:80:37:29:19:a4 címmel rendelkezõ távoli
Bluetooth eszköz felé. A tényleges RFCOMM
csatorna számát SDP-n keresztül a
távoli eszköztõl kapjuk. Az RFCOMM csatorna
kézzel is megadható, és ilyen esetekben az
&man.rfcomm.pppd.8; nem fog SDP kérést
küldeni. A &man.sdpcontrol.8; használatával
tudjuk lekérdezni a távoli eszközön
létrejött RFCOMM csatornát.&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialupA PPP hálózati elérés (LAN)
szolgáltatás beindításához
futni kell a &man.sdpd.8; szervernek. A helyi
hálózaton keresztül csatlakozó
kliensekhez létre kell hozni egy új
bejegyzést az /etc/ppp/ppp.conf
állományban. Az &man.rfcomm.pppd.8; man oldalon
találhatunk erre példákat.
Végezetül indítsuk el az RFCOMM PPP szervert
egy érvényes RFCOMM csatornaszámmal. Az
RFCOMM PPP szerver ekkor automatikusan regisztrálja a
Bluetooth LAN szolgáltatást a helyi SDP
démonnál. A következõ
példában megmutatjuk, hogyan lehet
elindítani egy RFCOMM PPP szervert:&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-serverOBEXAz OBEX Object Push (OPUSH) profilAz OBEX egy széles körben alkalmazott protokoll
a mobileszközök közti egyszerû
állományvitelre. Legfõképpen az
infravörös kommunikációban
alkalmazzák, ahol a laptopok vagy PDA-k közti
általános állományátvitelre
használják, illetve
névjegykártyák vagy
naptárbejegyzések
átküldésére mobiltelefonok
között és egyéb PIM alkalmazást
futtató eszközök esetében.Az OBEX szervert és klienst egy külsõ
csomag, az obexapp
valósítja meg, amelyet az comms/obexapp portból
érhetünk el.Az OBEX kliens használható objektumok
áttolására vagy
lehúzására az OBEX szerverhez. Ez az
objektum lehet például egy
névjegykártya vagy egy megbeszélt
találkozó. Az OBEX kliens SDP-n keresztül
tud magának RFCOMM csatornaszámot szerezni. Ezt
úgy tehetjük meg, ha a szolgáltatás
neve helyett egy RFCOMM csatorna számát adjuk meg.
A támogatott szolgáltatások: IrMC, FTRN
és OPUSH. Számként RFCOMM csatorna is
megadható. Az alábbi példában egy
OBEX munkamenetet láthatunk, ahol az eszköz
információs objektumát húzzuk le a
mobiltelefonról és egy új objektumot (egy
névjegykártyát) tolunk fel a telefon
könyvtárába.&prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get telecom/devinfo.txt devinfo-t39.txt
Success, response: OK, Success (0x20)
obex> put new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)Az OBEX objektumok tologatásának
támogatásához az &man.sdpd.8; szervernek
kell futnia. Továbbá a beérkezõ
objektumok tárolásához létre kell
hoznunk még egy könyvtárat is. Ez az
könyvtár alapértelmezés szerint a
/var/spool/obex. Végül
indítsuk el az OBEX szervert egy érvényes
RFCOMM csatorna számának
megadásával. Az OBEX szerver ezután
automatikusan regisztrálja az OBEX Object
Push nevû szolgáltatást a helyi SDP
démonnál. Ebben a példában
láthatjuk az OBEX szerver
indítását:&prompt.root; obexapp -s -C 10Soros vonali profil (SPP)A soros vonali profil (Serial Port Profile, SPP)
használatával RS232 (vagy ahhoz hasonló)
vonali adatátvitelt tudunk emulálni. Ez a profil
a régebben fejlesztett alkalmazásokkal
birkózik meg, és a Bluetooth
technológiával valódi kábel helyett
egy virtuális soros portot képez le.Az &man.rfcomm.sppd.1; segédprogram ezt a soros
vonali profilt valósítja meg. Így egy
pszeudo terminált tudunk virtuális soros
portként használni. Ha nem adunk meg RFCOMM
csatornát, akkor az &man.rfcomm.sppd.1; képes
SDP-n keresztül kérni egyet magának a
távoli eszköztõl. Ha ezt felül
kívánjuk bírálni, akkor a
parancssorban megadhatunk akár egy konkrét RFCOMM
csatornát is.&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
rfcomm_sppd[94692]: Starting on /dev/ttyp6...Miután csatlakoztunk, a pszeudo terminált
tudjuk soros portként használni:&prompt.root; cu -l ttyp6HibaelhárításNem tudunk csatlakozni a távoli
eszközzelEgyes Bluetooth eszközök nem
támogatják a szerepek cseréjét
(role switch). Alapértelmezés szerint amikor a
&os; elfogad egy új kapcsolatot,
megpróbál rajta szerepet cserélni
és mesterré válni. Azok az
eszközök, amelyek ezt nem támogatják,
nem lesznek képesek emiatt csatlakozni. Ez a
szerepváltás az új kapcsolatok
felépítése során zajlik le,
ezért egy távoli eszköztõl nem lehet
megtudni, hogy ismeri-e ezt a lehetõséget. A
helyi oldalon a következõ HCI opcióval lehet
kikapcsolni a szerepcserét:&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0Valami nem megy. Lehet látni valahogy, pontosan
mi is történik?Persze, igen. Egy külsõ csomag, a
hcidump
segítségével, amely a comms/hcidump portból
érhetõ el. A hcidump
segédprogram a &man.tcpdump.1; programhoz
hasonlítható. Ezzel lehet a Bluetooth csomagok
tartalmát megnézni a terminálon vagy
elmenteni ezeket egy állományba.AndrewThompsonÍrta: Hálózati hidakBevezetésIP-alhálózathálózati
hídGyakran hasznos lehet anélkül felosztani egy
fizikai hálózatot (például egy
Ethernet szegmenst) két külön
hálózati szegmensre, hogy külön
IP-alhálózatot kellene létrehozunk
és összekötnünk ezeket egy
útválasztóval. A két ilyen
módon kialakított hálózatot
összekötõ eszközt nevezzük
hálózati hídnak (bridge). A
legalább két hálózati
felülettel rendelkezõ &os; rendszerek képesek
hálózati híd szerepét
betölteni.A hálózati híd az eszközök
adatkapcsolati rétegben a hozzátartozó
felületein megjelenõ (vagyis Ethernet)
címének megtanulásával
mûködik. A két hálózat
között csak akkor közvetít forgalmat,
amikor a forrás és cél nem ugyanabban a
hálózatban található.A hálózati hidak bizonyos szempontból
lényegében nagyon kevés porttal
rendelkezõ Ethernet switch-ek.A hálózati hidak tipikus
alkalmazásaiNapjainkban akad néhány igen jellemzõ
szituáció, ahol szükség van a
hálózati hidak alkalmazására.Hálózatok
összekötéseA hálózati hidak alapvetõ feladata
két vagy több hálózati szegmens
összekötése. Az egyszerû
hálózati környezet
felállítása helyett több
okból is felmerülhet a hidak
létrehozása: kábelezési
megszorítások, tûzfalazás vagy
pszeudo hálózatok, például
virtuális gépek felületének
csatlakoztatása miatt. Egy híd
használatával ráadásul össze
tudunk kötni egy vezeték nélküli
hozzáférési pontként
üzemelõ felületet egy vezetékes
hálózattal.Szûrés vagy forgalomkorlátozás
tûzfallaltûzfalNATSokszor elõfordulhat, hogy
útválasztás vagy hálózati
címfordítás (NAT) nélkül
szeretnénk tûzfalat használni.Példaként képzeljünk el egy
olyan kis méretû céget, amely egy DSL vagy
ISDN vonalon kapcsolódik az
internet-szolgáltatójához. A
szolgáltatótól 13, mindenki által
használható IP-címet kaptak és a
hálózatukban 10 gép van. Ebben a
helyzetben egy útválasztást
végzõ tûzfal mûködtetése
nehézkessé válna az
alhálózatok problémái
miatt.útválasztóDSLISDNEgy hídként viselkedõ tûzfallal
azonban minden IP számozási probléma
nélkül egyszerûen be tudjuk dobni a
gépeket a DSL/ISDN útválasztó
mögé.A hálózat megcsapolásaEgy hálózati híddal úgy
kapcsolunk össze két hálózati
szegmenst, hogy közben meg tudjuk vizsgálni a
kettejük között mozgó Ethernet
kereteket. Ezt a híd felületen a &man.bpf.4;
valamint a &man.tcpdump.1; segítségével
tudjuk megoldani, vagy úgy, ha egy másik
felületen elküldjük az összes keret
másolatát (span, vagyis feszítõ
port).VPN az adatkapcsolati rétegbenA két Ethernet hálózatot egy IP
alapú összeköttetésen keresztül
is össze tudunk kötni, ha a
hálózatokat egy EtherIP járaton
keresztül kötjük össze híddal, vagy
egy OpenVPN-hez hasonló &man.tap.4; alapú
megoldással.Redundancia az adatkapcsolati rétegbenA hálózatokat több linken
keresztül kötjük össze és a
redundáns útvonalakat a feszítõfa
protokollal (Spanning Tree Protocol, STP). Az Ethernetes
hálózatok esetében a megfelelõ
mûködéshez a két eszköz
között csak egyetlen aktív útvonal
létezhet, így a feszítõfa protokoll
észleli a hurkokat és a redundáns
összeköttetéseket blokkolt állapotba
teszi. Amikor azonban az aktív linkek egyike
meghibásodik, akkor a protokoll
újraszámolja a fát és a
hálózati pontjai közti
konnektivitást megpróbálja
helyreállítani az addig blokkolt linkek
ismételt engedélyezésével.A rendszermag beállításaiEbben a szakaszban az &man.if.bridge.4;
hálózati híd implementációval
foglalkozunk, de a Netgraph segítségével is
tudunk hidakat építeni. Ez
utóbbiról az &man.ng.bridge.4; man oldalon
olvashatunk.Amikor létrehozunk egy hálózati hidat,
az &man.ifconfig.8; automatikusan betölti a
hozzátartozó meghajtót. Ha viszont a
rendszermag beállításait tartalmazó
állományba felvesszük a device
if_bridge sort, akkor akár be is
építhetjük a rendszermagba.A csomagszûrés minden olyan tûzfallal
használható, amely a &man.pfil.9; rendszerre
kapcsolódik. Maga a tûzfal is betölthetõ
modulként, vagy belefordítható a
rendszermagba.A hálózati híddal forgalmat is tudunk
szabályozni az &man.altq.4; vagy a &man.dummynet.4;
segítségével.A hálózati híd
engedélyezéseHálózati hidak felületek
klónozásával hozhatóak létre.
A híd létrehozásához
használjuk az &man.ifconfig.8; programot, és a
megfelelõ meghajtó automatikusan
betöltõdik, ha nem lenne még
elérhetõ a rendszermagban.&prompt.root; ifconfig bridge create
bridge0
&prompt.root; ifconfig bridge0
bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0Ekkor létrejön a hálózati
hídhoz tartozó felület és
véletlenszerûen generálódik
hozzá egy Ethernetes cím. A
maxaddr és a
timeout paraméterek vezérlik,
hogy a híd mennyi MAC-címet tartson meg a keretek
továbbításáért felelõs
táblázatban és mennyi másodperc
után töröljön automatikusan egy
bejegyzést a legutolsó használat
után. A többi paraméter a
feszítõfa mûködését
irányítja.Vegyük fel a hídhoz tartozó
hálózati tagfelületeket. A híd csak
akkor fog a tagfelületek között csomagokat
továbbküldeni, amikor a híd és a tagok
is up állapotban vannak:&prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 up
&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 upA híd most már átküldi az Ethernet
kereteket a fxp0 és
fxp1 felületek között.
Az iméntiekkel megegyezõ konfigurációt
az /etc/rc.conf állományban
így alakíthatjuk ki:cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"Ha a hídhoz IP-címet is rendelni akarunk,
akkor inkább magánál a hídnál
adjuk meg, ne a tagoknál. Ezt statikusan vagy DHCP
használatával is megtehetjük:&prompt.root; ifconfig bridge0 inet 192.168.0.1/24A hídhoz IPv6 címet is hozzá tudunk
rendelni.TûzfalazástûzfalakHa engedélyezzük a csomagszûrést, a
hídon áthaladó csomagok elõször a
küldõ felület érkezési
oldalára kerülnek, majd a hídra,
végül a megfelelõ irányban levõ
felület küldési oldalára.
Bármelyik fázis letiltható. Amikor a
csomagok áramlásának iránya fontos
számunkra, akkor jobban járunk, ha nem
magára a hídra, hanem csak a tagfelületekre
állítjuk be a tûzfalat.A híd számos módosítható
beállítással rendelkezik a nem-IP és
ARP csomagok átküldésére, valamint
arra, hogy az IPFW tûzfal adatkapcsolati réteg
szintjén mûködhessen. Az &man.if.bridge.4; man
oldal ennek részleteit tárja fel.FeszítõfákA híd meghajtója a gyors feszítõfa
protokollt (Rapid Spanning Tree Protocol, RSTP avagy 802.1w)
valósítja meg, ami visszafelé kompatibilis
a korábban említett feszítõfa
protokollal. A feszítõfákat a
hálózati topológiában
felbukkanó hurkok észlelésére
és eltávolítására
alkalmazzák. Az RSTP azonban a hagyományos
STP-nél valamivel gyorsabb konvergenciát
ígér, mivel itt a szomszédos switch-ek
kicserélik egymás között az adataikat,
és így újabb hurkok
létrehozása nélkül képesek
viszonylag gyorsan egyik állapotból
átváltani a másikba.Az alábbi táblázat a támogatott
mûködési módokat
láthatjuk:Operációs rendszerSTP módokAlapértelmezés&os; 5.4—&os; 6.2STPSTP&os; 6.3+RSTP vagy STPSTP&os; 7.0+RSTP vagy STPRSTPA tagfelületeken az stp paranccsal
tudjuk engedélyezni a feszítõfák
használatát. Az fxp0
és fxp1 felületeket
összekötõ hídfelület esetében
tehát így:&prompt.root; ifconfig bridge0 stp fxp0 stp fxp1
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether d6:cf:d5:a0:94:6d
id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 3 priority 128 path cost 200000 proto rstp
role designated state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role designated state forwardingLáthatjuk, hogy a híd a
feszítõfában megkapta a
00:01:02:4b:d4:50-es azonosítót
és a 32768-as prioritást.
Mivel root id értéke is
ugyanez, elmondhatjuk, hogy ez a fa gyökereként
funkcionáló híd.Ha a hálózaton már valahol
létezik egy másik híd:bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role root state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 5 priority 128 path cost 200000 proto rstp
role designated state forwardingA root id 00:01:02:4b:d4:50 priority 32768 ifcost
400000 port 4 sor mutatja, hogy a fa
gyökerét képezõ híd most a
00:01:02:4b:d4:50 azonosítóval
rendelkezik, és ezt a hidat 400000-res
költséggel éri el a port 4
(a 4. porton) keresztül, amely jelen esetben az
fxp0 felület.Komolyabb hidak építéseA forgalom áramlásának
átszerkesztéseA hidak támogatják az ún.
megfigyelési módot, ahol a csomagokat a
&man.bpf.4; feldolgozásuk után eldobja,
így nem folytatódik a feldolgozásuk vagy
nem haladnak tovább. Ennek
kihasználásával a két vagy
több felületen érkezõ adatokat egyetlen
&man.bpf.4; folyammá tudjuk alakítani. Ez olyan
hálózati csapok forgalmának
átszerkesztésében hasznos, ahol a
két különbözõ felületen
keresztül küldjük ki az RX/TX
(fogadás/küldés) jeleket.Az alábbi paranccsal tudjuk megoldani, hogy
négy felületrõl érkezõ adatot
legyünk képesek egyetlen folyamként
olvasni:&prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up
&prompt.root; tcpdump -i bridge0Feszítõ portokA hídhoz befutó Ethernet keretek
mindegyikérõl készül egy
másolat, ami egy megadott feszítõ porton
keresztül megy tovább. Hidanként
végtelen számú ilyen feszítõ
port létezhet, és ha egy felületet
feszítõ portnak adtunk meg, akkor
hagyományos portként már nem
használhatjuk. Ez leginkább akkor hasznos,
amikor passzívan akarjuk megfigyelni a híddal
rendelkezõ hálózatot a híd
valamelyik feszítõ portjára
csatlakozó géprõl.Küldessük az összes keretrõl egy
másolatot az fxp4
felületre:&prompt.root; ifconfig bridge0 span fxp4Privát felületekA privát felületek (private interface) csak
más privát felületek felé
küldenek tovább adatot. Így
feltétel nélkül tudjuk korlátozni a
forgalmat, és sem Ethernet keretek, sem pedig ARP nem
megy keresztül rajtuk. Ha viszont szelektíven
akarjuk korlátozni a forgalmat, akkor helyette
használjunk tûzfalat.Tapadós felületekHa a híd egyik tagfelületét
tapadósnak (sticky) adjuk meg, akkor a dinamikusan
megtanult címek bejegyzései a
gyorsítótárba kerülésük
után állandósulnak. A tapadós
bejegyzések soha nem évülnek el vagy
cserélõdnek le, még abban az esetben sem,
ha utána az adott címet egy másik
felületrõl látjuk. Így a
továbbításra vonatkozó
táblázatot nem kell elõre
feltöltenünk, és a híd egyik
oldalán meglátott kliensek nem képesek
átvándorolni egy másik
hálózati szegmensbe.Másik ilyen példa a tapadós
címek használatára az lehetne, amikor a
hidat VLAN-nal kombináljuk, és így egy
olyan útválasztót hozunk létre,
ahol az ügyfeleink az IP-címtartomány
pocséklása nélkül
zárhatóak el egymástól.
Tegyük fel, hogy az A-ugyfel a
vlan100, és a B-ugyfel a vlan101
felületen csatlakozik. A híd IP-címe
192.168.0.1, amely maga is egy
internet felé mutató
útválasztó.&prompt.root; ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101
&prompt.root; ifconfig bridge0 inet 192.168.0.1/24Mind a két kliens a 192.168.0.1 címet látja
alapértelmezett átjáróként,
és mivel a híd gyorsítótára
tapadós bejegyzéseket tartalmaz, a
MAC-címeik meghamisításával nem
tudják elcsípni a másikuk
forgalmát.A VLAN-ok közti bárminemû
kommunikációt privát felületek
létrehozásával akadályozzuk meg
(vagy egy tûzfallal):&prompt.root; ifconfig bridge0 private vlan100 private vlan101Ezzel a megoldással az ügyfeleinket teljesen
elszigeteljük egymástól úgy, hogy
közben az egész /24 címtartomány
külön alhálózatok
kialakítása nélkül
kiosztható.Címek korlátozásaKorlátozhatóak az egy felület
mögül küldeni képes egyedi
MAC-címek. Amikor ezen a határon felül
érkeznek ismeretlen feladótól csomagok,
egészen addig eldobjuk ezeket, amíg egy
korábban már regisztrált
bejegyzést a rendszer ki nem töröl vagy ki
nem veszünk a
gyorsítótárból.A következõ példában az
vlan100 felületen csatlakozó
A-ugyfel
számára korlátozzuk le 10-re az Ethernet
eszközök számát:&prompt.root; ifconfig bridge0 ifmaxaddr vlan100 10SNMP felügyeletA hidak és az STP paraméterei az alap &os;
rendszerben megtalálható SNMP démonnal
felügyelhetõek. A hídhoz exportált
felügyeleti információk (Management
Information Base, MIB) megfelelnek az IETF által
elõírt szabványoknak, így
akár tetszõleges SNMP kliens vagy bármilyen
más felügyeleti szoftver alkalmas az
olvasásukra.A hidat mûködtetõ gépen az
/etc/snmp.config
állományban engedélyezzük a
begemotSnmpdModulePath."bridge" =
"/usr/lib/snmp_bridge.so" sort és
indítsuk el a bsnmpd
démont. Itt még szükség lehet
más beállítások,
például a közösségek
nevének (community name) vagy a
hozzáférési listák (access list)
módosítására is. Ezzel
kapcsolatban a &man.bsnmpd.1; és az &man.snmp.bridge.3;
man oldalakat lapozzuk fel.A következõ példában a
Net-SNMP nevû szoftver
(net-mgmt/net-snmp) fogjuk
használni a híd elérésére,
de ugyanerre a net-mgmt/bsnmptools port is
alkalmas. Az SNMP klienst használó gépen
egészítsük ki az
$HOME/.snmp/snmp.conf
állományt a híd felügyeleti
információinak
importálásával az
Net-SNMP rendszerébe:mibdirs +/usr/share/snmp/mibs
mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIBAz IETF BRIDGE-MIB (RFC 4188)
használatán keresztül így tudjuk
elindítani egy híd
felügyeletét:&prompt.user; snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge
BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44
BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports
BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds
BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2
BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50
...
BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5)
BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1)
BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000
BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0
BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80
BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1
RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)A példában látszik, hogy a
dot1dStpTopChanges.0 értéke
kettõ, ami arra utal, hogy az STP híd
topológiája kétszer változott. A
topológia változása pedig azt jelenti,
hogy a hálózaton belül egy vagy több
link állapota megváltozott vagy egyszerûen
meghibásodott és ezért egy új
fát kellett számolni. A
dot1dStpTimeSinceTopologyChange.0
érték adja meg, hogy ez pontosan mikor is
történt.Több híd felületének
felügyeletéhez a belsõ BEGEMOT-BRIDGE-MIB
parancsot is használhatjuk:&prompt.user; snmpwalk -v 2c -c public bridge1.example.com
enterprises.fokus.begemot.begemotBridge
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge0" = STRING: bridge0
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge2" = STRING: bridge2
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge0" = STRING: e:ce:3b:5a:9e:13
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge2" = STRING: 12:5e:4d:74:d:fc
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge0" = INTEGER: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge2" = INTEGER: 1
...
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge0" = Timeticks: (116927) 0:19:29.27 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47.73 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge0" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge2" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge0" = Hex-STRING: 80 00 00 40 95 30 5E 31
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 00 50 8B B8 C6 A9Így tudjuk megadni, hogy a hidat
mib-2.dot1dBridge részfán
keresztül akarjuk megfigyelni:&prompt.user; snmpset -v 2c -c private bridge1.example.com
BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2AndrewThompsonÍrta: Linkek összefûzése és
hibatûréselaggfailoverfeclacploadbalanceroundrobinBevezetésA &man.lagg.4; felület lehetõvé teszi, hogy
több hálózati felületet egyetlen
virtuális felületként fûzzünk
össze, és ezzel egy hibatûrõ és
nagysebességû összeköttetést
alakítsunk ki.Mûködési módokfailoverCsak az elsõdlegesként kijelölt porton
keresztül fogad és küld adatokat. Amikor
ez az elsõdleges port elérhetetlenné
válik, a következõ aktív portot
fogja használni. Az elsõként felvett
felület válik automatikusan az elsõdleges
porttá, és az utána felvett összes
többit pedig csak hiba esetén
használjuk.&cisco; Fast ðerchannel;A &cisco; Fast ðerchannel; (FEC) technológia
támogatása. Ez egy statikus
beállítás, és nem egyezteti az
összefûzést a többiekkel vagy a linkek
felügyeletéhez nem vált kereteket. Ha a
switch támogatja az LACP használatát,
akkor inkább azt válasszuk.A FEC a kimenõ forgalmat a
fejlécekben szereplõ protokollok alapján
számolt hasítókóddal
próbálja szétosztani az aktív
portok között, és tetszõleges
aktív porton fogad beérkezõ adatokat. Az
említett hasítókódban egy
Ethernetes forrás- és célcím
szerepel, valamint ha elérhetõ, akkor egy VLAN
címke, illetve az IPv4/IPv6 forrás- és
célcím.LACPAz &ieee; 802.3ad Link Aggregation Control Protocol (LACP)
és a Marker Protcol támogatása. Az
LACP megpróbálja egyeztetni a többi
géppel az összefûzhetõ linkeket egy
vagy több csoportban (Link Aggregated Group, LAG).
Mindegyik ilyen csoportban ugyanolyan sebességû
portokat találunk, full-duplex
mûködési módban. A forgalmat
így a legnagyobb összsebességgel
rendelkezõ csoportban megtalálható portok
között osztja el, ami a legtöbb esetben az
összes portot magában foglaló csoport. A
fizikai konnektivitás megváltozása
esetén a linkek összefûzõdése
igen gyorsan alkalmazkodik az új
konfigurációhoz.Az LACP a kimenõ forgalmat az
aktív portok között osztja szét
fejlécekben szereplõ protokollok alapján
számolt hasítókóddal, és
bármelyik aktív portról fogad
bejövõ forgalmat. A
hasítókódban megtalálható
az Ethernetes forrás- és célcím,
valamint ha elérhetõ, akkor a VLAN címke,
illetve az IPv4/IPv6 forrás- és
célcímek.LoadbalanceEz a FEC mód másik
neve.Round-RobinA kimenõ forgalmat egy körkörös
(Round-Robin) elvû ütemezõvel osztja
szét az aktív portok között
és tetszõleges aktív portról fogad
bejövõ forgalmat. Ez a mûködési
mód megsérti az Ethernet keretek
rendezését és csak nagy
körültekintés mellett alkalmazzuk.PéldákLACP alapú összefûzés egy &cisco;
switch-cselEbben a példában egy &os;-s gép
két felületét kapcsoljuk össze
switch-csel egy egyszerû
terhelés-kiegyenlítéssel és
hibatûréssel beállított linken
keresztül. Mivel az Ethernet keretek sorrendje
döntõ fontosságú, ezért a
két állomás között egyazon
fizikai linken zajló forgalom maximális
sebességét az adott felület
kapacitása korlátozza. A küldési
algoritmus a lehetõ legtöbb információ
alapján próbálja egymástól
megkülönböztetni a forgalmakat és
elosztani ezeket a rendelkezésre álló
felületek között.A &cisco; switch-en vegyünk fel a
FastEthernet0/1 és
FastEthernet0/2
interfészeket az 1 csoportba
(channel group):interface FastEthernet0/1
channel-group 1 mode active
channel-protocol lacp
!
interface FastEthernet0/2
channel-group 1 mode active
channel-protocol lacpA &os;-s gépen pedig a
fxp0 és
fxp1 használatával
hozzunk létre a &man.lagg.4; interfészt:&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1Ellenõrizzük a felület
állapotát:&prompt.root; ifconfig lagg0A ACTIVE jelzésû, vagyis
aktív állapotú portok az
összefûzéshez kialakított csoport azon
tagjai, amelyeknél felépült a kapcsolat a
távoli switch felé és készen
állnak a küldésre és
fogadásra. Ha az &man.ifconfig.8; programtól
részletesebb kimenetet kérünk, akkor
láthatjuk a csoportok azonosítóit
is:lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
media: Ethernet autoselect
status: active
laggproto lacp
laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>A show lacp neighbor paranccsal
kérdezhetjük le a portok
állapotát:switch# show lacp neighbor
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Channel group 1 neighbors
Partner's information:
LACP port Oper Port Port
Port Flags Priority Dev ID Age Key Number State
Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D
Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3DRészletesebb kijelzést a show
lacp neighbor detail paranccsal kaphatunk.A hibatûrés
beállításaA hibatûrési mód arra alkalmas, hogy
amikor az elsõdleges porton elvesztjük a
kapcsolatot, helyette egy másodlagos interfész
használatára tudunk áttérni.
Hozzuk létre és állítsuk be a
lagg0 interfészt, ahol az
fxp0 legyen a
fõinterfész, az fxp1
pedig a tartalék interfész:&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1Az így létrejövõ interfész
nagyjából az alábbi lesz, ahol
eltérés a MAC-cím
és az eszköz neve:&prompt.root; ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
media: Ethernet autoselect
status: active
laggproto failover
laggport: fxp1 flags=0<>
laggport: fxp0 flags=5<MASTER,ACTIVE>A forgalom kezdetben az fxp0
felületen keresztül érkezik és
távozik. Ha az fxp0
felületen valamiért megszakadna a kapcsolat,
helyette az fxp1 lesz az
aktív link. Ha késõbb helyreáll a
kapcsolat az elsõdleges felületen, akkor újra
az lesz aktív link.Jean-FrançoisDockèsFrissítette: AlexDupreÁtdolgozta és javította:
Lemez nélküli mûködéslemez nélküli
munkaállomáslemez nélküli
mûködésA &os; képes hálózaton keresztül
elindulni és helyi lemez nélkül egy
NFS szerver által megosztott
állományrendszer csatlakoztatásával
mûködni. Ehhez a szabványos
konfigurációs állományok
módosításán kívül semmi
másra nincs szükségünk. Egy ilyen
rendszert viszonylag könnyû beállítani,
mivel az összes hozzávaló szinte készen
elérhetõ:Rögtön adott legalább két
módszer, ha a rendszermagot hálózaton
keresztül akarjuk betölteni:PXE: az &intel; által
fejlesztett Preboot eXecution Environment
(indítás elõtti
végrehajtási környezet)
nevû rendszer a hálózati
kártyákba vagy alaplapokba
épített ROM
segítségével teszi
lehetõvé az intelligens
rendszerindítást. A &man.pxeboot.8; man
oldalán olvashatunk errõl
részletesebben.Az Etherboot port
(net/etherboot) olyan
ROM-ba programozható kódot
készít, amellyel rendszermagokat tudunk
hálózaton keresztül betölteni. Ez
a kód egyaránt felhasználható
egy hálózati rendszerindító
PROM beégetéséhez, vagy
betölthetõ a helyi floppy (esetleg
merev)lemezrõl, illetve &ms-dos; rendszer
alól. Elég sok hálózati
kártya támogatja ezt a módot.Egy mintaszkript
(/usr/share/examples/diskless/clone_root)
is próbálja megkönnyíteni a
szerveren a munkaállomás
rendszerindító
állományrendszerének
létrehozását és
karbantartását. Ezt a szkriptet
valószínûleg némileg
módosítani kell, de így is sokat
segít az elindulásban.Az /etc könyvtárban
található szabványos
rendszerindításhoz használt
állományok, amelyekkel a lemez
nélküli indulást lehet detektálni
és segíteni.A lapozás, amennyiben szükséges,
NFS vagy helyi lemez
segítségével oldható meg.Számos módon állíthatunk be egy
lemez nélküli munkaállomást. Rengeteg
részbõl tevõdik össze, és ezek
legtöbbje remekül testreszabható az
igényeinknek. A továbbiakban egy teljes rendszer
összeállításának
lehetséges variációit ismertetjük,
különös hangsúlyt fektetünk arra, hogy
egyszerûek és a hagyományos &os;
indítószkriptekkel kompatibilisek maradjanak. A
bemutatandó rendszer a következõ
jellemzõkkel bír:A lemez nélküli munkaállomások
megosztott / és
/usr állományrendszereket
használnak.A rendszer indításához
használt gyökér
állományrendszer a szabvány &os;-s
gyökér (ez általában a
szerveré), ahol néhány
állományt felülírtunk a lemez
nélküli mûködéshez vagy
azért, mert egyszerûen az adott
munkaállomáshoz tartozik.A gyökér azon részeit, amelyeket
írhatóvá kívánunk tenni,
&man.md.4; alapú állományrendszerekkel
lapoljuk felül. Ilyenkor azonban bármilyen rajtuk
ejtett változtatás a rendszer
újraindításával elveszik.A rendszermagot vagy az
Etherboot vagy a
PXE használatával
küldessük át és töltsük be,
mivel egyes helyzetekben ezekre szükség
lesz.A bemutatott rendszer nem biztonságos.
Helyezzük a hálózatunk egy jól
védett részére, és a többi
gép ne tekintse megbízhatónak.A szakaszban szereplõ összes
információt a &os; 5.2.1-RELEASE
változatával teszteltük.HáttérinformációkA lemez nélküli munkaállomások
beállítása egyszerre adja magát
és könnyen is elvéthetõ. Az
elkövetett hibákat olykor számos okból
kifolyólag nehéz felismerni.
Például:A fordítási idõben megadott
beállítások mást
eredményeznek futási idõben.A hibaüzenetek gyakran titokzatosak vagy esetleg
teljesen el is maradnak.Ezért ha valamennyire tisztában vagyunk a
háttérben zajló folyamatokkal, akkor sokkal
több eséllyel leszünk képesek megoldani
a menet közben felmerülõ
problémákat.A rendszernek a sikeres felkapaszkodáshoz több
mûveletet is végre kell hajtania:A gépnek szüksége van olyan
induló paraméterekhez, mint
például az IP-cím, a
végrehajtható állomány neve, a
szerver neve, a gyökér elérési
útja. Ezeket a DHCP vagy a BOOTP
protokollok használatával adhatjuk meg. A
DHCP a BOOTP kompatibilis
kiterjesztése, ezért ugyanazokat a portokat
és alapvetõ csomagformátumot
alkalmazza.A rendszerüket kizárólag BOOTP
használatával is beállíthatjuk.
A &man.bootpd.8; szerver az alap &os; rendszer
része.A DHCP azonban rengeteg elõnnyel
rendelkezik a BOOTP protokollal szemben
(áttekinthetõbb konfigurációs
állományok, a PXE
használatának lehetõsége, illetve
sok minden más, ami nem csak a lemez
nélküli mûködéshez kellhet),
ezért itt alapvetõen egy DHCP alapú
konfigurációt mutatunk be, de ahol
megoldható, megemlítjük a &man.bootpd.8;
esetén alkalmas példákat is. A
mintaként szolgáló
konfiguráció az ISC
DHCP szoftvercsomagot használja (a
tesztszerverre ennek a 3.0.1.r12 verzióját
telepítetük fel).A gépnek egy vagy több programot kell a
saját memóriájába
áttöltenie. Erre vagy a TFTP
vagy pedig az NFS alkalmas. A
TFTP és az NFS
között sok helyen fordítási
idõben tudunk választani. Gyakori
hibaforrás a protokollhoz rosszul megadott
állománynevek használata: a
TFTP általában az
összes állományt a szerverrõl
egyetlen könyvtárból tölti
át, ezért arra számít, hogy a
neveiket ehhez viszonyítva adjuk meg. Az
NFS használata során
azonban abszolút elérési utakat kell
megadnunk.A rendszer indítását
lehetõvé tevõ közbensõ
programokat és a rendszermagot valahogy
inicializálni kell és elindítani. Ezen
a területen több fontos változat kapott
helyet:A PXE a &man.pxeboot.8;
kódját fogja betölteni, ez
lényegében a &os; betöltõ
harmadik fokozatának egy módosított
változata. A &man.loader.8; a
mûködéséhez
szükséges paramétereket a rendszer
indításakor kapja meg, majd a
vezérlés átadása elõtt
ezeket a rendszermag környezetében hagyja.
Ebben az esetben akár a
GENERIC rendszermag is
használható.Az Etherboot kevesebb
elõkészítéssel
közvetlenül magát a rendszermagot
tölti be. Ehhez azonban egy saját
rendszermagot kell építeni,
külön
beállításokkal.A PXE és az
Etherboot egyaránt
jól használható. Mivel azonban a
rendszermagok általában a &man.loader.8;
kódjára hagyják a munka legnagyobb
részét, ezért ahol lehetséges, a
PXE megoldását
érdemes alkalmazni.Tehát ha az alaplapi BIOS
és a hálózati kártya is
támogatja a PXE
használatát, akkor válasszunk
inkább azt.Végezetül a gépnek valamilyen
módon hozzá kell tudnia férnie az
állományrendszerekhez. Erre többnyire az
NFS jöhet szóba.A további részleket lásd a
&man.diskless.8; man oldalon.Beállítási
útmutatóBeállítás a ISC
DHCP használatávalDHCPlemez nélküli
mûködésAz ISC DHCP szervere
képes a BOOTP és DHCP
kéréseket is megválaszolni.Az ISC DHCP 3.0 nem az
alaprendszer része, ezért a
használatához elõször
telepítenünk kell a net/isc-dhcp30-server portot vagy a
neki megfelelõ csomagot.Ahogy feltelepítettük, le kell futtatnunk az
ISC DHCP
konfigurációs állományát
(ezt általában
/usr/local/etc/dhcpd.conf néven
találjuk meg). A most következõ,
megjegyzésekkel kiegészített
példában egy margaux
nevû gép az
Etherboot, valamint egy
corbieres nevû gép
PXE használatával akar
kapcsolódni:
default-lease-time 600;
max-lease-time 7200;
authoritative;
option domain-name "minta.com";
option domain-name-servers 192.168.4.1;
option routers 192.168.4.1;
subnet 192.168.4.0 netmask 255.255.255.0 {
use-host-decl-names on;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.4.255;
host margaux {
hardware ethernet 01:23:45:67:89:ab;
fixed-address margaux.minta.com;
next-server 192.168.4.4;
filename "/data/misc/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
}
host corbieres {
hardware ethernet 00:02:b3:27:62:df;
fixed-address corbieres.minta.com;
next-server 192.168.4.4;
filename "pxeboot";
option root-path "192.168.4.4:/data/misc/diskless";
}
}
Ez a beállítás arra
utasítja a dhcpd
démont, hogy a lemez nélküli
gép hálózati neveként a
host deklarációban
megadott értéket küldje el. Ezt
úgyis meg lehet csinálni, hogy
felvesszünk egy option host-name
margaux
részt a host
deklarációk közé.A next-server direktíva a
betöltõ vagy a rendszermag
betöltéséért felelõs
TFTP vagy NFS
szervert jelöli ki (alapértelmezés
szerint ez megegyezik a DHCP
szerverrel).A filename direktíva azt
az állományt adja meg, amelyet az
Etherboot vagy a
PXE a következõ
végrehajtási lépésben
betölt. Ezt a kiválasztott átviteli
módnak megfelelõen kell megadni. Az
Etherboot
lefordítható az NFS
vagy a TFTP
használatával is. A &os; port
alapból az NFS
támogatását tartalmazza. A
PXE a TFTP
protokollt használja, ezért itt
relatív állományneveket adunk meg
(ez persze a TFTP szerver
beállításaitól függ, de
általában ez a jellemzõ). Sõt,
a PXE a pxeboot
állományt tölti be, nem is a
rendszermagot. Léteznek további
érdekes lehetõségek is, mint
például a pxeboot
állomány betöltése a &os;
CD-jén található /boot
könyvtárból (mivel a &man.pxeboot.8;
a GENERIC rendszermagot
képes betölteni, ezért a
PXE használatával
akár egy távoli
CD-meghajtóról is indíthatjuk a
rendszert).A root-path opció a
rendszer indításához
használt gyökér
állományrendszert nevezi meg, amelyet
többnyire az NFS
jelölési módszere szerint kell
megadni. A PXE használata
során el lehet hagyni a gép
IP-címét egészen addig, amíg
nem engedélyezzük a rendszermagban a BOOTP
beállítást. Az
NFS szerver ekkor megegyzik a
TFTP szerverrel.Beállítás a BOOTP
használatávalBOOTPlemez nélküli
mûködésItt a bootpd (egyetlen
kliensre korlátozott)
beállítását láthatjuk.
Ezt az /etc/bootptab
állományba tegyük.Ne feledjük, hogy a BOOTP
használatához az
Etherboot portot a
NO_DHCP_SUPPORT
beállítással kell fordítanunk,
miközben a PXE esetében kell
a DHCP. Egyébként a
bootpd egyedüli
nyilvánvaló elõnye csupán annyi,
hogy az alaprendszer része.
.def100:\
:hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
:sm=255.255.255.0:\
:ds=192.168.4.1:\
:gw=192.168.4.1:\
:hd="/tftpboot":\
:bf="/kernel.diskless":\
:rp="192.168.4.4:/data/misc/diskless":
margaux:ha=0123456789ab:tc=.def100
A rendszer elõkészítése az
Etherboot
számáraEtherbootAz Etherboot
honlapján találhatunk egy
minden részletre kiterjedõ
dokumentációt (angolul), amely
elsõsorban ugyan a Linux típusú rendszerek
számára íródott, de ettõl
függetlenül még hasznos
információkat tartalmaz. A továbbiakban
csak annyit szeretnénk körvonalazni, hogy az
Etherboot miként
bírható mûködésre &os;
rendszerekkel.Elõször telepítenünk kell a
net/etherboot csomagot
vagy portot.Az Etherboot
beállítását (vagyis a
TFTP használatának
megadását az NFS helyett) az
Etherboot forrását
tartalmazó könyvtárban
található Config
állomány megfelelõ
átírásával tudjuk megtenni.Itt most floppyról fogjuk indítani a
rendszert. A többi módszerrel (PROM vagy &ms-dos;
program) kapcsolatban olvassuk el az
Etherboot
dokumentációját.A rendszerindító lemez
elkészítéséhez tegyünk egy
lemezt annak a gépnek a meghajtójába,
ahová az Etherboot
felkerült. Váltsunk az
Etherboot
könyvtárán belül az
src alkönyvtárba és
gépeljük be:
&prompt.root; gmake bin32/eszköztípus.fd0Az eszköztípus a
lemez nélküli munkaállomás Ethernet
kártyájától függ. Az
ugyanebben a könyvtárban található
NIC állományból
tudjuk kiolvasni, hogy az adott kártyához melyik
eszköztípus
tartozik.A rendszer indítása PXE
használatávalAlapértelmezés szerint a &man.pxeboot.8;
betöltõ a rendszermagot NFS-en
keresztül tölti be. Ha az
/etc/make.conf állományban
a LOADER_TFTP_SUPPORT
beállítást adjuk meg, akkor
TFTP támogatással is
lefordítható. Ezzel kapcsolatban a
/usr/share/examples/etc/make.conf
állományban található
megjegyzéseket érdemes elolvasnunk.A make.conf állományban
még további két másik hasznos
opciót is találhatunk a soros vonali konzollal
üzemelõ lemez nélküli gépek
számára: az egyik a
BOOT_PXELDR_PROBE_KEYBOARD, a másik
pedig a BOOT_PXELDR_ALWAYS_SERIAL.A gép indításakor úgy tudjuk
beüzemelni a PXE
használatát, ha a BIOS
beállításai között a
Boot from network opciót
választjuk ki, vagy a gép bekapcsolása
után lenyomjuk hozzá a megfelelõ
funkcióbillentyût.A TFTP és
NFS szerverek
beállításaTFTPlemez nélküli
mûködésNFSlemez nélküli
mûködésHa a PXE vagy az
Etherboot a TFTP
protokollt használja, akkor az
állományszerveren a
tftpd démont kell
elindítani:Készítsünk egy
könyvtárat, ahonnan majd a
tftpd küldi az
állományokat, például legyen
ez a /tftpboot.Vegyük fel a következõ sort az
/etc/inetd.conf
állományunkba:tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpbootA tapasztalat szerint egyes PXE
verziók a TFTP
TCP alapú
változatát használják.
Ebben az esetben vegyünk fel még egy
második sort is, ahol a dgram
udp részt stream
tcp-re cseréljük.Mondjuk meg az inetd
démonnak, hogy olvassa újra a
konfigurációs
állományát. Az alábbi parancs
megfelelõ mûködéséhez Az
sornak szerepelnie
kell az /etc/rc.conf
állományban:&prompt.root; /etc/rc.d/inetd restartA tftpboot könyvtárat
bárhova rakhatjuk a szerveren. Viszont az
inetd.conf és
dhcpd.conf állományokban
ezt ne felejtsük fel megadni.Minden esetben engedélyeznünk kell az
NFS használatát és
vele együtt exportálni az NFS
szerverrõl elérni kívánt
állományrendszereket.Az /etc/rc.conf
állományba tegyük bele a
következõt:nfs_server_enable="YES"Az /etc/exports
állományban a lemez nélküli
rendszereknek szánt
gyökérkönyvtárat tegyük
elérhetõvé (a példában
írjuk át a kötet csatlakozási
pontját és a margaux
corbieres helyére
állítsuk be a saját lemez
nélküli munkaállomásaink
neveit:/data/misc -alldirs -ro margaux corbieresKérjük meg a
mountd démont, hogy
olvassa újra a konfigurációs
állományát. Elõfordulhat
azonban, hogy ehhez elõször az
NFS szolgáltatást kell
engedélyezni az /etc/rc.conf
állományból és
újraindítani a gépet.&prompt.root; /etc/rc.d/mountd restartLemez nélküli rendszermag
fordításalemez nélküli
mûködésa rendszermag
beállításaiHa az Etherboot
használata mellett döntünk, akkor a lemez
nélküli kliensek számára a
rendszermagot a következõ
beállítások használatával
kell újrafordítani (a megszokottak
mellett):
options BOOTP # BOOTP-n keresztül kérünk IP-címet és hálózati nevet
options BOOTP_NFSROOT # a BOOTP-tõl kapott információk alapján csatoljuk a gyökeret NFS-en keresztül
Ezek mellett valószínûleg
szükségünk lesz a
BOOTP_NFSV3, BOOT_COMPAT
és BOOTP_WIRED_TO
beállítások megadására is
(lásd a NOTES
állományt).A beállítások nevei
régrõl származnak és némileg
félrevezetõek lehetnek, mivel
valójában semmit sem változtatnak a
rendszermagban levõ DHCP vagy a BOOTP
rutinok használatában (egyébként
meg lehet adni vagy az egyik vagy a másik protokoll
kizárólágos használatát
is).Fordítsuk le a rendszermagot (lásd ), és másoljuk a
dhcpd.conf állományban
megadott helyre.Amikor a PXE protokollt
használjuk, a rendszermagot nem fontos az
imént felsorolt paraméterekkel
fordítanunk (habár ajánlatos). Az
engedélyezésükkel több
DHCP kérés keletkezik a
rendszermag elindulása közben, ezért
kisebb a kockázata annak, hogy a &man.pxeboot.8;
által bizonyos esetekben megszerzett és az
új értékek között valamilyen
ellentmondás jön létre. A
használatuk egyik elõnye, hogy így
mellékhatásként a
hálózati nevünket is megkapjuk.
Ellenkezõ esetben erre is találnunk kellene
valamilyen módot, például fenntartani
egy-egy rc.conf állományt
minden kliensen.Az Etherboot csak akkor lesz
képes betölteni a rendszermagot, ha device
hinteket is beépítünk. Ezt a
következõ beállítással tudjuk
megoldani (errõl bõvebben lásd a
NOTES állomány
megjegyzéseit):hints "GENERIC.hints"A rendszerindító
állományrendszer
elõkészítéserendszerindító
állományrendszerlemez nélküli
mûködésA dhcpd.conf állomány
root-path
beállításának megfelelõen
hozzunk létre a rendszer
indítására alkalmas gyökér
állományrendszert.Az állományrendszer
feltöltése a make world
paranccsalEzzel a módszerrel a DESTDIR
könyvtárba pillanatok alatt telepíteni
tudunk egy teljes szûz rendszert (és nem csak a
rendszerindító
állományrendszert). Ehhez mindössze csak
annyit kell tenni, hogy lefuttatjuk a következõ
szkriptet:#!/bin/sh
export DESTDIR=/data/misc/diskless
mkdir -p ${DESTDIR}
cd /usr/src; make buildworld && make buildkernel
cd /usr/src/etc; make distributionMiután végzett, már csak a
DESTDIR könyvtárban
található /etc/rc.conf
és /etc/fstab
állományokat kell az igényeinkhez
igazítani.A lapozóterület
beállításaAmennyiben szükséges, a szerveren
található lapozóállományt
NFS-en keresztül el tudjuk
érni.Lapozás NFS-selA rendszermag maga nem támogatja az
NFS alapú lapozás
engedélyezését a rendszer
indításakor. A
lapozóállományt ezért a
rendszerindító szkripteken keresztül
aktiváljuk, amelyekben csatlakoztatunk egy
írható állományrendszert, ahol
létrehozzuk és engedélyezzük a
lapozóállományt. Tetszõleges
méretû lapozóállományt
például így tudunk
készíteni:&prompt.root; dd if=/dev/zero of=/a/lapozóállomány/helye bs=1k count=1 oseek=100000Az engedélyezéséhez pedig a
következõ sort kell felvenni az
rc.conf
állományba:swapfile=/a/lapozóállomány/helyeEgyéb problémákÍrásvédett
/usr használatalemez nélküli
mûködésírásvédett /usrHa a lemez nélküli
munkaállomáson X szervert akarunk futtatni,
akkor az XDM
konfigurációs állományait
kicsit módosítanunk kell, mert
alapértelmezés szerint a
/usr könyvtárban hozza
létre a naplókat.Nem &os;-s szerver használataAmikor a rendszer indításához
használt állományrendszert nem egy &os;
alapú számítógépen
tároljuk, akkor elõször ezt egy &os;-s
gépen kell elkészíteni, majd a
tar vagy cpio
segítségével átmásolni a
megfelelõ helyre.Ilyen helyzetekben gyakran gondok adódhatnak
olyan speciális állományokkal, mint
például amelyek a /dev
könyvtárban találhatóak, mivel a
fõ- és aleszközazonosítók
tárolására szánt méret
különbözhet. Ezt úgy oldhatjuk meg,
ha exportálunk egy könyvtárat a nem &os;
alapú szerveren, ezt csatlakoztatjuk a &os;-s
gépen, majd a &man.devfs.5;
segítségével a
eszközleírókat a
felhasználó számára
észrevétlen módon foglaljuk le.ISDNISDNAz ISDN technológiai és hardveres
hátterérõl sokat megtudhatunk Dan Kegel
ISDN-rõl szóló oldalán
(angolul).Az ISDN használatát röviden így
foglalhatnánk össze:Ha Európában élünk, akkor minden
bizonnyal az ISDN kártyákkal foglalkozó
szakaszt érdemes elolvasnunk.Ha elsõsorban betárcsázós
ISDN-nel szeretnénk csatlakozni az internetre egy
internet-szolgáltatón keresztül, akkor a
terminál adaptereket tárgyaló szakaszt
nézzük meg. A szolgáltatók
váltásakor ezzel jár a legtöbb
rugalmasság és a legkevesebb
probléma.Ha két helyi hálózat
összekötésére használjuk, vagy
az internethez egy bérelt ISDN vonalon keresztül
kapcsolódunk, akkor egy önálló
útválasztó vagy hálózati
híd beállításában
érdemes gondolkodnunk.A költség fontos szerepet játszik az
elfogadható megoldás
kiválasztásában. A most következõ
lehetõségeket a legolcsóbbtól indulva
kezdjük el felsorolni egészen a
legdrágábbig.HellmuthMichaelisKészítette: ISDN kártyákISDNkártyákA &os;-ben megtalálható ISDN
implementáció csak a DSS1/Q.931 (más
néven Euro-ISDN) szabvány szerint gyártott
passzív kártyákat támogatja. Ismer
azonban egyes olyan aktív kártyákat is,
amelyeknél a firmware további más
jelkezelési protokollokat is támogat. Ilyen
többek közt az elsõként támogatott
Primary Rate (PRI) ISDN kártya.Az isdn4bsd szoftver
segítségével kapcsolódni tudunk
más ISDN útválasztókhoz IP-n
keresztül a nyers HDLC felett, vagy szinkron PPP
használatával. Mindezeket a rendszermagban
található PPP-re vagy az
isppp-re építkezik.&os; alatt egyre több PC-s ISDN kártyához
készül el a támogatás, és a
visszajelzések azt mutatják, hogy
Európában és a világ minden
részén sikerrel használják
ezeket.A passzív ISDN kártyák közül
is leginkább az Infineon (korábban Siemens)
gyártmányú ISAC/HSCX/IPAC ISDN
chipkészletek támogatottak, de a Cologne chippel
rendelkezõ (de csak ISA buszos) ISDN kártyák,
a Winbond W6692 chipes PCI buszos kártyák,
és a Tiger300/320/ISAC chipkészletek egyes
változatai, valamint néhány
gyártófüggõ chipkészlettel
rendelkezõ kártya, mint például az AVM
Fritz!Card PCI V.1.0 és az AVM Fritz!Card PnP is
remekül mûködik.Jelenleg a következõ aktív ISDN
kártyákat támogatja a rendszer: AVM B1 (ISA
és PCI) BRI kártyák és az AVM T1 PCI
PRI kártyák.Az isdn4bsd
dokumentációját a rendszerünkön
belül a /usr/share/examples/isdn/
könyvtárban találhatjuk meg, vagy
közvetlenül az isdn4bsd
honlapján, ahol több hivatkozást is
találunk tippekre, hibajegyzékekre és
bõségesebb dokumentációra,
például az isdn4bsd saját
kézikönyvére.Ha szeretnénk egy másik ISDN protokoll
támogatásának
kifejlesztésében résztvenni, vagy egy
jelenleg még nem támogatott ISDN
kártyát használhatóvá tenni,
esetleg valamilyen más módon segíteni az
isdn4bsd ügyét,
vegyük fel a kapcsolatot &a.hm; fejlesztõvel.Az isdn4bsd
telepítésével,
beállításával és
hibaelhárításával kapcsolatos
kérdéseinket a &a.isdn.name; levelezési
listán tehetjük fel.ISDN terminál adapterekAz ISDN számára olyanok a terminál
adapterek, mint a hagyományos telefonvonalak
számára a modemek.modemA legtöbb terminál adapter a Hayes-modemek
szabványos AT parancskészletét
használja, és könnyen be lehet iktatni egy
modem helyett.A terminál adapterek alapvetõen ugyanúgy
mûködnek, mint a modemek, kivéve, hogy egy
átlagos modemnél jóval nagyobb
adatátviteli sebességre képesek.
Ezért a PPP kapcsolatunkat
pontosan ugyanúgy kell beállítani, mint a
modemek esetében. Ne felejtsük a soros pont
sebességét a maximális
értékre állítani.PPPA terminál adapterek használatának
egyik legnagyobb elõnye, hogy
segítségükkel dinamikus PPP-n keresztül
tudunk az internet-szolgáltatónkhoz
kapcsolódni. Mivel az IP-címtartomány
egyre inkább szûkösebb, a legtöbb
szolgáltató nem szívesen oszt ki
bárkinek is statikus IP-címet. A legtöbb
önálló útválasztó
azonban nem képes alkalmazkodni az IP-címek
dinamikus kiosztásához.A terminál adapter az elérhetõ
lehetõségeket és a kapcsolat
stabilitását tekintve teljesen a PPP
démontól függ. Emiatt egy &os;-s
gépet könnyû modemrõl
átállítani az ISDN
használatára, ha már egyszer
beállítottuk a PPP démont. Ezzel
együtt azonban a PPP használata során
tapasztalt problémák ugyanúgy ismét
felmerülnek.Ha a maximális stabilitásra van
szükségünk, akkor a rendszermag PPP beállítását
használjuk, és ne a felhasználói PPP
megoldást.A &os; hivatalosan az alábbi terminál
adaptereket ismeri:Motorola BitSurfer és
Bitsurfer ProAdtranValószínûleg a többi terminál
adapterrel is képes együttmûködni, mivel a
terminál adapterek gyártói
általában igyekeznek a termékeiket a
szabványos modemes AT parancskészletével
kompatibilissá tenni.Az igazi probléma a külsõ terminál
adapterekkel adódik, mivel, akárcsak a modemek
esetében, egy nagyon jó soros
kártyát igényelnek.A soros eszközök
mûködésének részleteit valamint
az aszinkron és szinkron soros portok közti
különbségeket a &os; soros
hardverekrõl szóló cikkében
olvashatjuk.A terminál adaptereken keresztül
elérhetõ sebességet a PC-kben
található szabványos (aszinkron) soros port
115,2 Kb/mp-re korlátozza, még
128 Kb/mp-es adatátvitelû kapcsolatok
esetében is. Az ISDN által nyújtott
128 Kb/mp kihasználásához a
terminál adaptert egy szinkron soros
kártyával kell összekötnünk.Ne higyjük, hogy egy belsõ terminál adapter
megvásárlásával
megmenekülünk ettõl a gondtól. A
belsõ terminál adapterekbe egyszerûen csak egy
sima szabványos PC-s soros portot építettek
bele. Mindössze egy soros kábelt és egy
konnektort takarítunk meg velük.A terminál adapterhez csatlakozó szinkron
kártyák legalább olyan gyorsak, mint egy
önálló útválasztó,
és egy egyszerû 386-osra épülõ &os;
rendszerrel talán még rugalmasabban is
kezelhetõek.A terminál adapter plusz szinkron kártya
kontra önálló útválasztó
kérdése már
hitkérdéssé fajult, amirõl igen sokat
vitatkoztak szerte a levelezési listákon. A
teljes okfejtés elolvasásához az archívum
böngészését javasoljuk.Önálló ISDN hálózati hidak
és útválasztókISDNönálló hálózati
hidak és útválasztókAz ISDN hidak vagy útválasztók nem
egészen a &os; vagy operációs rendszerek
területéhez tartoznak. Az
útválasztás és a
hálózatok hidak alapjainak a
számítógépes
hálózatokról szóló
szakirodalomban járhatunk utána.Ebben a szakaszban a hálózati híd
és az útválasztó
kifejezéseket egymás
szinonímájaként fogjuk
használni.Ahogy az olcsóbb ISDN
útválasztók és hidak árai
egyre jobban csökkennek, ezért egyre inkább
népszerûbbé válnak. Az ISDN
útválasztó egy apró doboz, amelyet
közvetlenül a helyi Ethernet
hálózatunkra tudunk csatlakoztatni, és a
többi útválasztóhoz vagy hídhoz
kapcsolódik. A benne található szoftverrel
képes kommunikálni a PPP vagy más
egyéb népszerû protokollokon
keresztül.Az útválasztó egy szabványos
terminál adapternél sokkal nagyobb
adatátvitelt tesz lehetõvé, mivel a teljes
szinkron ISDN kapcsolatot képes
kihasználni.Az ISDN útválasztókkal és
hidakkal kapcsolatban az egyik legnagyobb
problémát a különbözõ
gyártók közti eltérések
jelenthetik. Ha egy szolgáltatóhoz akarunk ezen a
módon csatlakozni, akkor érdemes elõzetesen
egyeztetni az igényeinket velük.Ha két helyi hálózati szegmenst akarunk
összekapcsolni, mint például az otthoni
és az irodai hálózatot, akkor ez a
megoldás jár a legkevesebb karbantartási
költséggel. Mivel ekkor mi magunk
vásároljuk a kapcsolat mind a két
oldalára a felszerelést, biztosak lehetünk
benne, hogy az így létrehozott
összekötettés mûködni fog.Például, ha egy otthon vagy a vállalat
egy fiókjánál levõ gépet
akarjuk összekötni az igazgatóság
hálózatával, akkor a következõ
felállást érdemes
követnünk:Egy otthoni vagy egy fiókbeli
hálózat10 Base 2A hálózat busz
topológiájú és 10 Base 2
Ethernetet használ (thinnet). Ha
szükséges, akkor az
útválasztót egy AUI/10BT
adó-vevõvel csatlakoztassuk a
hálózati kábelre.---Sun munkaállomás
|
---&os;
|
---Windows 95
|
az önálló útválasztó
|
ISDN BRI vonal10 Base 2 EthernetHa az otthoni vagy fiókbeli
számítógép az egyedüli, akkor
egy keresztkötésû sodrott érpár
kábellel akár közvetlenül is
csatlakozhatunk az útválasztóhoz.Az igazgatósági iroda vagy egy másik
helyi hálózat10 Base TA hálózat csillag
topológiájú, és 10 Base T Ethernet
kábelezésû (sodrott
érpár). -------Novell szerver
| H |
| ---Sun
| |
| U ---&os;
| |
| ---Windows 95
| B |
|___---az önálló útválasztó
|
ISDN BRI vonalAz ISDN hálózat
felépítéseA legtöbb útválasztó/híd
elõnye, hogy egyszerre 2
egymástól független PPP
kapcsolatot tudunk felépíteni velük 2
egymástól független géppel. Ezt a
legtöbb terminál adapter nem támogatja,
kivéve azok a (általában drága)
típusok, amelyek két soros porttal rendelkeznek.
Ezt ne tévesszük össze a csatornák
nyalábolásával, az MPP-vel és a
többivel.Ez nagyon hasznos lehet például olyan
esetekben, amikor van egy dedikált ISDN kapcsolatunk az
irodában, amelyet ugyan szeretnénk megcsapolni, de
nem szeretnénk a másik ISDN vonalat is elrabolni.
Az irodában levõ A útválasztó
képes a dedikált B csatornájú
kapcsolaton (64 Kb/mp) keresztül elérni az
internetet, miközben a másik B csatornát
ettõl független adatkapcsolatra használja. A
második B csatorna így használható
betárcsázásra,
kitárcsázásra vagy a másik B
csatornával együtt dinamikus
nyalábolásra (MPP stb.) a nagyobb
sávszélesség elérése
érdekében.IPX/SPXAz Ethernetes híd nem IP alapú forgalmat is
képes továbbítani, ezért rajta
keresztül akár IPX vagy SPX és más
egyéb protokollokat is használni tudunk.ChernLeeÍrta: Hálózati
címfordításÁttekintésnatdA &os; hálózati
címfordításért felelõs
démonprogramja, a &man.natd.8; (Network Address
Translation daemon), a beérkezõ nyers IP csomagokat
dolgozza fel, és a helyi gépek
forráscímét kicserélve
visszailleszti ezeket a csomagokat a kimenõ folyamba. A
&man.natd.8; mindezt úgy teszi a forrás
IP-címekkel és portokkal, hogy amikor az adat
visszaérkezik, akkor képes lesz megmondani a
csomag eredeti küldõjét és
visszaküldeni neki a választ.internet-kapcsolat
megosztásaNATA hálózati címfordítást
általában az internet-kapcsolatok
megosztásánál alkalmazzuk.A hálózat
felépítéseAz IPv4 világában egyre jobban fogyó
IP-címek és az egyre növekvõ
számú, nagysebességre vágyó,
például kábeles vagy DSL-es
fogyasztók miatt az igény is egyre nagyobb az
internet-kapcsolatok megosztására. Ha több
számítógéppel szeretnénk
egyetlen kapcsolaton és egy IP-címen
keresztül kapcsolódni az internetre, akkor ehhez a
&man.natd.8; tökéletes
választás.Az esetek többségében a
felhasználók egy kábeles vagy DSL vonalra
csatlakoznak, melyhez egyetlen IP-cím tartozik, és
ezen a gépen keresztül szeretnék
elérni az internetet a helyi hálózaton
levõ többi géprõl.Ezt úgy tudjuk elérni, ha az internethez
kapcsolódó &os;-s gépet
átjárónak állítjuk be. Ebben
az átjáróban legalább két
hálózati felületnek kell léteznie
— az egyikkel az internetes
útválasztóhoz, a másikkal pedig a
helyi hálózathoz kapcsolódik. A belsõ
hálózaton levõ gépek egy hub vagy egy
switch segítségével csatlakoznak
egymáshoz.Több módon is el tudjuk érni a
belsõ hálózatról az internetet egy
&os;-s átjárón keresztül. Ebben a
példában most csak olyan
átjárókkal foglalkozunk, amelyekben
legalább két hálózati
kártya található. _______ __________ ________
| | | | | |
| Hub |-----| B kliens |-----| Útvál. |----- Internet
|_______| |__________| |________|
|
____|_____
| |
| A kliens |
|__________|A hálózat felosztásaEgy ehhez hasonló beállítás igen
gyakori a megosztott internet-kapcsolatok esetében. A
helyi hálózat egyik gépe csatlakozik az
internetre. A többi gép ezen az
átjárón keresztül
éri el az internetet.rendszerbetöltõbeállításaA rendszerbetöltõ
beállításaA &man.natd.8; mûködéséhez
szükséges címfordítási
támogatást a GENERIC
típusú rendszermagok nem tartalmazzák,
viszont a /boot/loader.conf megfelelõ
paraméterezésével a rendszer
betöltése közben ezt hozzá tudjuk
adni:ipfw_load="YES"
ipdivert_load="YES"Valamint a net.inet.ip.fw.default_to_accept
változót állítsuk az 1 értékre.net.inet.ip.fw.default_to_accept="1"Ez utóbbi beállítást
leginkább a tûzfal és a
címfordítást végzõ
átjáró
próbálgatásakor érdemes
alkalmazni. Ilyenkor ugyanis az &man.ipfw.8;
alapértelmezett módon az allow ip from
any to any (minden forgalom engedélyezett)
szabályt követi, és nem pedig a
kevésbé barátságos deny
ip from any to any (minden forgalom tiltott)
szabályt. A rendszer
újraindításakor így valamivel
nehezebb lesz kizárnunk magunkat a szabályok
megadása során.rendszermagbeállításaA rendszermag beállításaAmikor viszont nincs lehetõségünk modulok
használatára, vagy szeretnénk minden
igényelt funkciót beépíteni a
rendszermagba, akkor a rendszermag
beállításait tartalmazó
állományban a következõket kell
megadnunk:options IPFIREWALL
options IPDIVERTA fentiek mellett még ezeket a
lehetõségeket tudjuk választani:options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSEA rendszerindítás
beállításaA tûzfal és a hálózati
címfordítás
beindításához a következõknek
kell az /etc/rc.conf
állományban lennie:gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags="" A gépet átjárónak
állítja be. Hatása megegyezik a
sysctl net.inet.ip.forwarding=1 parancs
kiadásával.A rendszer indításakor engedélyezi
az /etc/rc.firewall
állományban szereplõ
tûzfalszabályok
használatát.Egy olyan elõre definiált tûzfalat ad
meg, amely alapból mindent beenged. Az
/etc/rc.firewall
állományban találhatjuk a többi
típust.Megadja, hogy melyik felületen
továbbítsunk csomagokat az internet
felé (ez a felület csatlakozik az
internetre).Itt szerepel minden további paraméter,
amelyet még az indításkor át
kell adnunk a &man.natd.8; démonnak.Amikor megadjuk ezeket a beállításokat
az /etc/rc.conf állományban,
pontosan ugyanaz történik, mintha a natd
-interface fxp0 parancsot adtunk volna ki a rendszer
indításakor. Ez tehát manuálisan is
elindítható.Ha túlságosan sok paramétert akarunk
egyszerre beállítani &man.natd.8;
használatához, akkor akár egy
külön konfigurációs
állományt is megadhatunk. Ebben az esetben a
konfigurációs állományt a
következõ módon kell megjelölni az
/etc/rc.conf
állományban:natd_flags="-f /etc/natd.conf"Ekkor a /etc/natd.conf
állomány fogja tartalmazni a
beállításokat, soronként egyet.
Például a következõ szakaszban ez lesz
a tartalma:redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80A konfigurációs
állományról és az
opció használatával
kapcsolatban olvassuk el a &man.natd.8; man
oldalát.A helyi hálózaton mindegyik gépnek az
RFC 1918
által megadott privát IP-címterekbõl
származó címet kell használnia,
és az alapértelmezett
átjárónak mindenhol a
natd démont futtató
gép IP-címét kell megadni.Például a belsõ hálózaton
található A és
B kliensek IP-címei rendre 192.168.0.2 és 192.168.0.3, míg a &man.natd.8;
démont futtató gép belsõ címe
192.168.0.1. Az
A és a B kliens
alapértelmezett átjáróját a
natd gépre, vagyis a 192.168.0.1 címre kell
beállítanunk. A natd
gép külsõ, avagy internetes felülete
semmilyen további módosítást nem
igényel a &man.natd.8;
mûködéséhez.A portok átirányításaA &man.natd.8; alkalmazásának
hátránya, hogy a belsõ
hálózatra csatlakozó kliensek az
internetrõl nem érhetõek el. Tehát a
helyi hálózat kliensei képesek
elérni a külvilágot, de az visszafelé
már nem igaz. Ez akkor jelent igazából
problémát, ha az egyik belsõ kliensen
szolgáltatásokat akarunk futtatni. A
probléma egyik egyszerû megoldása, ha a
natd használatával az
internet felõl egyszerûen
átirányítunk bizonyos portokat a
megfelelõ belsõ kliensre.Például tegyük fel, hogy az
A kliens egy IRC szervert, míg a
B kliens egy webszervert futtat. Ez akkor fog
mûködni, ha a szolgáltatásokhoz
tartozó 6667 (IRC) és 80 (web) portokat
átirányítjuk a hozzájuk
tartozó gépek felé.Ehhez a &man.natd.8; démonnak a
paramétert kell
átadni. A pontos felírás így
néz ki: -redirect_port protokollcélIP:célPORT[-célPORT]
[külsõIP:]külsõPORT[-külsõPORT]
[távoliIP[:távoliPORT[-távoliPORT]]]A fenti példában tehát ezt kell
megadnunk: -redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80Így az egyes külsõ tcp
portokat átirányítjuk a belsõ
hálózat gépei felé.A paraméternek
akár egész porttartományokat is
megadhatunk. Például a tcp
192.168.0.2:2000-3000 2000-3000
megadásával az összes 2000-tõl 3000-ig
terjedõ port csatlakozását
leképezzük az A kliens 2000
és 3000 közti portjaira.Ezek a beállítások a &man.natd.8;
közvetlen futtatásakor adhatóak meg, esetleg
az /etc/rc.conf állományban
az natd_flags="" opció keresztül,
vagy egy külön konfigurációs
állományban.A többi beállítási
lehetõséget a &man.natd.8; man oldalán
ismerhetjük meg.A címek
átirányításacímátirányításA címek átirányítása
abban az esetben hasznos, amikor több IP-cím
áll rendelkezésünkre, de ezek egy
géphez tartoznak. Ilyenkor az &man.natd.8; képes
a belsõ hálózat egyes gépeihez
saját külsõ IP-címet rendelni. A
&man.natd.8; a belsõ hálózat kliensei
által küldött csomagokban kicseréli a
címüket a megfelelõ külsõ
IP-címmel, illetve az ezekre a címekre
érkezõ forgalmat továbbítja a
megfelelõ belsõ kliens irányába. Ezt a
megoldást statikus hálózati
címfordításnak is nevezzük.
Például a 128.1.1.2
és a 128.1.1.3
IP-címek a natd démont
futtató átjáróhoz tartoznak. A
128.1.1.1 cím
használható a natd
alapú átjáró külsõ
IP-címeként, miközben a 128.1.1.2 és a 128.1.1.3 címeket a belsõ
hálózaton elérhetõ A
és B kliensek felé
közvetítjük.A felírása
tehát a következõ:-redirect_address helyiIPpublikusIPhelyiIPA helyi hálózaton
található kliens saját
IP-címe.publikusIPA klienshez tartozó megfelelõ
külsõ IP-cím.Az iménti példában a pontos
paraméterek ezek lesznek:-redirect_address 192.168.0.2 128.1.1.2
-redirect_address 192.168.0.3 128.1.1.3A opcióhoz
hasonlóan ez is megadható az
/etc/rc.conf állományban az
natd_flags=""
beállításon keresztül vagy egy
külön konfigurációs
állományban. A címek
átirányításával nincs
szüksége a portok
átirányítására, mivel az
adott IP-címhez tartozó összes forgalmat
átirányítjuk.A natd démont
futtató gépen a külsõ IP-címeket
aktiválni kell és a külsõ
felületéhez kell rendelni. A &man.rc.conf.5; man
oldalon járhatunk utána, hogy mindezt hogyan is
tudjuk megcsinálni.Párhuzamos vonali IP (PLIP)PLIPpárhuzamos vonali IPPLIPA párhuzamos vonali IP (Parallel Line IP, PLIP) a
TCP/IP protokoll használatát valósítja
meg párhuzamos porton keresztül. Olyan gépek
számára lehet hasznos, amelyekben nincs
hálózati kártya, vagy esetleg
laptopoknál. Ebben a szakaszban a következõket
tárgyaljuk:Párhuzamos (laplink) kábel
készítéseKét számítógép
összekapcsolása a PLIP
segítségévelPárhuzamos kábel
készítésePárhuzamos kábelt a legtöbb
számítástechnikai boltban tudunk
vásárolni. Ha mégsem tudnánk sehol
sem beszerezni, vagy egyszerûen tudni szeretnénk,
hogyan lehet ilyet készíteni, akkor az
alábbi táblázatban láthatjuk, hogy
miként tudunk egy hétköznapi
nyomtatókábelt átalakítani a
céljainkra.
A PLIP beállításaElõször is szereznünk kell valahonnan egy
laplink kábelt. Ha ez megvan, akkor mind a két
gépen ellenõrizzük, hogy a rendszermag
tartalmazza az &man.lpt.4; meghajtót:&prompt.root; grep lp /var/run/dmesg.boot
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven portA párhuzamos portnak megszakítással
vezéreltnek kell lennie (interrupt driven),
és az /boot/device.hints
állományban szerepelnie kell
nagyjából a következõ soroknak:hint.ppc.0.at="isa"
hint.ppc.0.irq="7"Ezután nézzük meg, hogy a rendszermag
beállításait tartalmazó
állományban megjelenik-e a device
plip sor, vagy a plip.ko modul
betöltõdött-e. Akármelyik is
történt, a párhuzamos hálózati
felület most már a rendelkezésünkre
áll, és az &man.ifconfig.8; paranccsal ezt meg is
tudjuk nézni:&prompt.root; ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500A laplink kábelt csatlakoztassuk mind a két
számítógéphez.Mind a két a hálózati felület
paramétereit root
felhasználóként hangoljuk be.
Például, ha az
egyikgép
nevû gépet akarjuk a
másikgép
nevû géphez csatlakoztatni:egyikgép <-----> másikgép
IP-cím 10.0.0.1 10.0.0.2Az
egyikgép
felületét így állítsuk be:&prompt.root; ifconfig plip0 10.0.0.1 10.0.0.2A
másikgép
felületét így állítsuk be:&prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1Ezt követõen már egy mûködõ
kapcsolatnak kell felépülnie. Az egyéb
részletek kapcsán az &man.lp.4; és az
&man.lpt.4; man oldalait nézzük át.Ezt a két gépet vegyük fel az
/etc/hosts állományba
is:127.0.0.1 localhost.saját.tartomány localhost
10.0.0.1 egyikgép.saját.tartomány egyikgép
10.0.0.2 másikgép.saját.tartományA kapcsolat
mûködõképességérõl
úgy tudunk meggyõzõdni, ha az egyik
géprõl megpróbáljuk pingelni a
másikat. Például az
egyikgép
esetében:&prompt.root; ifconfig plip0
plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
&prompt.root; netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
másikgépegyikgép UH 0 0 plip0
&prompt.root; ping -c 4 másikgép
PING másikgép (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- másikgép ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 msAaronKaplanEredetileg írta: TomRhodesÁtszervezte és
kiegészítette: BradDavisTovább bõvítette: Az IPv6Az IPv6 (másik néven az IPng, vagy a az
internet következõ generációs
protokollja, IP next generation) a
jól ismert IP protokoll (avagy az IPv4)
új változata. Hasonlóan a jelenleg
mûködõ összes többi BSD rendszerhez, a
&os; is tartalmazza a KAME IPv6 referencia
implementációt. Ezért ha ezzel
szeretnénk kísérletezni, akkor ehhez a &os;
minden eszköz biztosít számunkra. Ez a szakasz
az IPv6 beállítását és
használatát mutatja be.Az 1990-es évek elején az IPv4-es
címterek rohamos mértékû
kimerülését figyelték meg. Az internet
jelenlegi bõvülési üteme mellett két
nagyobb aggodalomnak adott okot:A címek elfogyása. Napjainkban efelõl
egyre kevesebb a kétség, mivel az RFC 1918
által megfogalmazott privát címterek
(10.0.0.0/8, 172.16.0.0/12, és 192.168.0.0/16), valamint a
hálózati címfordítás
(Network Address Translation, NAT)
használata igen elterjedt.Az útválasztási
táblázatok méretének
növekedése. Ez még manapság is
aggasztó.Az IPv6 ezeket és még más egyéb
problémákat a következõ módon
igyekszik megoldani:A 128 bites címtér használata.
Más szóval, elméletben összesen
340 282 366 920 938 463 463 374 607 431 768 211 456
darab címet képes kiosztani. Ez azt jelenti,
hogy bolygónk minden egyes
négyzetméterére
megközelítõleg 6,67 * 10^27 IPv6
típusú cím jut.Az útválasztók a saját
táblázataikban csak a hálózatok
összevont címeit tárolják el,
ezáltal egy átlagos
útválasztási táblázatban
található bejegyzések száma 8192
alá csökken.Az IPv6 emellett még rengeteg más
elõnyös lehetõséget is
kínál:A címek automatikus beállítása
(lásd RFC 2462)Anycast (bárkiküldés, vagyis egy
a sokból)Kötelezõ (mandatory) multicastIPsec (IP szintû védelem)Egyszerûsített fejlécMobil IPIPv6-IPv4 közti
átjárhatóságHa mindezekrõl többet szeretnénk megtudni,
akkor erre érdemes továbblépnünk:Az IPv6 áttekintése a playground.sun.com
honlaponKAME.netAz IPv6 címek háttereAz IPv6 címeknek több típusa
létezik: a unicast (egyesküldés), az anycast
(bárkiküldés) és a multicast
(többesküldés).A unicasthez használt címek jól ismert
címek. Az így elküldött csomag pontosan
ahhoz a felülethez érkezik meg, amelyhez az adott
cím tartozik.Az anycasthez használt címek
felírásukban tökéletesen megegyeznek a
unicast esetével, de valójában
felületek egy csoportját címezik. Az
anycastre beállított címekre
küldött csomagok mindig a(z
útválasztó szerinti) legközelebb
levõ felülethez érkeznek meg. Az anycastet az
útválasztók számára
találták ki.A multicasthez használt címek felületek
egy csoportját nevezik meg. A multicast címekre
érkezõ csomagokat a csoport minden egyes tagja
megkapja.Az IPv4 esetében az
üzenetszórásra szánt
(általában az xxx.xxx.xxx.255
formátumú) címeket az IPv6
esetében multicast címekkel fejezzük
ki.
Fenntartott IPv6 címekIPv6 címAz elõtag hossza (bitekben)LeírásMegjegyzés::128 bitnem specifikáltVö. a 0.0.0.0
címmel az IPv4 esetében.::1128 bitsaját címVö. a 127.0.0.1 címmel az IPv4
esetében.::00:xx:xx:xx:xx96 bitIPv4 beágyazásaAz alsó 32 bit egy IPv4
formátumú cím. Ezt IPv4
kompatibilis IPv6 címnek is
nevezik.::ff:xx:xx:xx:xx96 bitIPv4-re leképzett IPv6 címekAz alsó 32 bit egy IPv4 címet
jelöl. Olyan gépeknél
használatos, amelyek nem támogatják
az IPv6 protokollt.fe80:: - feb::10 bithelyi összeköttetésVö. az IPv4 loopback címeivel.fec0:: - fef::10 bithelyi címff::8 bitmulticast001 (2-es alapú)3 bitglobális unicastAz összes globális unicast címet
ebbõl a tartományból osztjuk ki. Az
elsõ 3 bit
értéke001.
Az IPv6 címek olvasásaAz IPv6 címek kanonikus formája így
ábrázolható: x:x:x:x:x:x:x:x, ahol mindegyik
x egy 16 bites hexadecimális
érték. Például: FEBC:A574:382B:23C1:AA49:4592:4EFE:9982.Gyakran a címek hosszú nullákból
álló sorozatokat tartalmaznak, ezért
mindegyik ilyen sorozatot rövidíteni tudjuk a
:: jelöléssel. Rajtuk
kívül még az egyes hexadecimális
csoportokban a bevezetõ nullák is
elhagyhatóak. Például az fe80::1 cím kanonikus
formája: fe80:0000:0000:0000:0000:0000:0000:0001.A harmadik forma szerint az utolsó 32 bites
részt írjuk fel a megszokott (decimális)
IPv4 stílusú pontozással, ahol tehát
a . választja el a tagokat. Így
például a 2002::10.0.0.1 felírás a
2002:0000:0000:0000:0000:0000:0a00:0001
kanonikus (hexadecimális)
ábrázolásnak feleltethetõ meg, ami
pedig egyszerûen 2002::a00:1 alakban is
megadható.Mostanra már minden bizonnyal a kedves olvasó
érteni fogja a következõt:&prompt.root; ifconfigrl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
ether 00:00:21:03:08:e1
media: Ethernet autoselect (100baseTX )
status: activeA fe80::200:21ff:fe03:8e1%rl0 cím
az automatikusan beállított helyi
összeköttetés címe. Ez az automatikus
beállítás részeként a
MAC-címbõl jött létre.Az IPv6 címek szerkezetérõl
további részleteket az RFC 3513-ban
találunk.KapcsolódásJelenleg négy módon tudunk más IPv6-os
géphez és hálózathoz
csatlakozni:Kérjünk a hálózati
elérésünkért felelõs
illetékesektõl IPv6 alapú
hálózatot. A részletek
tekintetében vegyük fel a kapcsolatot az
internet-szolgáltatónkkal.A SixXS a
világ minden táján kínál
végpontokkal rendelkezõ tunneleket.Egy 6-ból-4 (RFC 3068)
típusú tunnellel.Ha betárcsázós kapcsolatunk van,
akkor használjuk a net/freenet6 portot.A nevek feloldása az IPv6
világábanIPv6 alatt régebben két típusa volt a
nevek feloldásáért felelõs
rekordoknak. Az IETF az A6 rekordokat idõközben
elavultnak nyilvánította. Ezért
manapság már az AAAA rekordok tekinthetõek
szabványosnak.Az AAAA rekordok használata magától
értetõdik. A hálózati
nevükhöz az alábbi módon tudunk IPv6
címet rendelni az elsõdleges zónát
leíró állományban:SAJÁTNÉV AAAA SAJÁTIPv6CÍMHa nem rendelkezünk saját
névfeloldási zónával, akkor erre
kérjük meg a névfeloldást
végzõ szolgáltatónkat. A
bind jelenlegi változatai (8.3
és 9), valamint a dns/djbdns (IPv6
támogatására vonatkozó
javítással) támogatják az AAAA
rekordokat.Az /etc/rc.conf szükséges
módosításaiAz IPv6 kliensek beállításaiEzek a beállítások egy helyi
hálózaton levõ gépre vonatkoznak,
nem pedig egy útválasztóra. Az
&man.rtsol.8; az alábbi megadásával fogja
automatikusan beállítani a felületeinket a
rendszer indításakor:ipv6_enable="YES"Ha az fxp0 felülethez
statikusan akarunk IP-címet rendelni,
például a
2001:471:1f11:251:290:27ff:fee0:2093 címet,
akkor ehhez a következõt kell megadni:ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"Az /etc/rc.conf
állományban az alapértelmezett
átjárót a következõ
módon tudjuk a 2001:471:1f11:251::1 címre
beállítani:ipv6_defaultrouter="2001:471:1f11:251::1"Az IPv6 útválasztók és
átjárók
beállításaItt most a tunnelt biztosító
szolgáltató által mutatott irányt
követjük, és olyan formára
alakítjuk, amely megmarad az
újraindítás után is. A rendszer
indításakor az /etc/rc.conf
állományban valami ilyesmit kell megadni a
járat
visszaállításához:Soroljuk fel a beállítandó
általános tunnel alapú felületeket,
ilyen lehet például a
gif0:gif_interfaces="gif0"A felületnek állítsunk be egy helyi
végpontot a
SAJÁT_IPv4_CÍM
megadásával, valamint egy távoli
végpontot a
TÁVOLI_IPv4_CÍM
megadásával:gifconfig_gif0="SAJÁT_IPv4_CÍM TÁVOLI_IPv4_CÍM"Az IPv6 tunnelünk végpontjához kapott
cím aktiválásához az
alábbit kell még megadnunk:ipv6_ifconfig_gif0="SAJÁT_KAPOTT_IPv6_TUNNEL_VÉGPONTJÁNAK_CÍME"Ezután már csak az alapértelmezett
útvonalat kell beállítani az IPv6
számára. Ez az IPv6 járat másik
oldala:ipv6_defaultrouter="SAJÁT_IPv6_TÁVOLI_TUNNEL_VÉGPONTJÁNAK_CÍME"Az IPv6 tunnel beállításaiAmennyiben a szerver IPv6 alapú forgalmat
közvetít a hálózatunk és a
világ között, az
/etc/rc.conf állományba a
következõt kell felvennünk:ipv6_gateway_enable="YES"Az útválasztók kihirdetése
és automatikus konfigurációjaEbben a szakaszban az &man.rtadvd.8;
beállításával fogjuk az
alapértelmezett IPv6 útvonalat kihirdetni.Az &man.rtadvd.8; engedélyezéséhez az
alábbi sort kell betennünk az
/etc/rc.conf
állományba:rtadvd_enable="YES"Emellett még fontos megadnunk azt a felületet,
ahol az IPv6 útválasztó
kérelmezését végezzük. Ha erre
a feladatra például az
fxp0 felületet választjuk,
akkor errõl az &man.rtadvd.8; így
értesíthetõ:rtadvd_interfaces="fxp0"Most pedig készítenünk kell hozzá
egy konfigurációt is, vagyis az
/etc/rtadvd.conf állományt.
Íme erre egy példa:fxp0:\
:addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:Az fxp0 felületet
természetesen cseréljük ki a
sajátunkkal.Ezután a 2001:471:1f11:246:: címre
helyére írjuk be a saját kiosztásunk
elõtagját.Egy egész /64
alhálózat esetén nem is kell többet
megadni. Minden más helyezetben az elõtag
hosszára prefixlen# vonatkozó
értéket is be kell még
állítanunk.HartiBrandtKészítette: Az Aszinkron adatátviteli mód (ATM)A klasszikus IP-címek
beállítása ATM felett
(állandó)A klasszikus IP ATM felett (Classical IP over ATM,
CLIP) a legegyszerûbb módszer az
IP-címek használatára az Aszinkron
adatátviteli móddal (Asynchronous Transfer Mode,
ATM) együtt. Kapcsolt és állandó
kapcsolatok (Switched Virtual Channel, SVC és Permanent
Virtual Channel, PVC) esetén egyaránt
megfelelõ. Ebben a szakaszban ez utóbbival fogunk
foglalkozni.A teljesen hálószerû
konfigurációkA CLIP
beállítását állandó
csatornákon például úgy tudjuk
megoldani, ha az összes gépet külön
ezekre a célokra szánt állandó
csatornákkal összekapcsoljuk egymással. Ez
az egyszerû megoldás azonban nagyobb
számú gép esetében már nem
eléggé hatékony. A következõ
példában csupán négy gépet
kötünk hálózatba, melyik mindegyike
egy ATM
kártyával csatlakozik az ATM
hálózatra. Ehhez elsõként
tervezzük meg az IP-címek kiosztását
és a gépek közti ATM kapcsolatokat.
A példában ez az alábbiak szerint
alakul:GépIP-címA-gep192.168.173.1B-gep192.168.173.2C-gep192.168.173.3D-gep192.168.173.4A teljes hálózat
felépítéséhez minden egyes
pár között egy-egy ATM kapcsolatra lesz
szükségünk:GépekVPI.VCI párA-gep -
B-gep0.100A-gep -
C-gep0.101A-gep -
D-gep0.102B-gep -
C-gep0.103B-gep -
D-gep0.104C-gep -
D-gep0.105A kapcsolatok egyes végein szereplõ VPI
és VCI értékek természetesen
eltérhetnek, de ezeket mi most az
egyszerûség kedvéért egyenlõnek
tekintettük. A következõ
lépésben minden gépen
állítsuk be az ATM felület:A-gep&prompt.root; ifconfig hatm0 192.168.173.1 up
B-gep&prompt.root; ifconfig hatm0 192.168.173.2 up
C-gep&prompt.root; ifconfig hatm0 192.168.173.3 up
D-gep&prompt.root; ifconfig hatm0 192.168.173.4 upHa feltételezzük, hogy minden gépen a
hatm0 az ATM felület neve. Most
pedig az A-gep-en állítsuk be
az állandó csatornákat. (Itt most
feltesszük, hogy az ATM switch-eken mindezt már
elvégeztük. A switch
kézikönyvében errõl
részletesebb leírást is
találhatunk.)A-gep&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
A-gep&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
A-gep&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr
B-gep&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
B-gep&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
B-gep&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr
C-gep&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
C-gep&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
C-gep&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr
D-gep&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
D-gep&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
D-gep&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubrTermészetesen nem csak UBR
használható, hanem minden más olyan
forgalmazási beállítás, amit az
ATM kártyáink ismernek. Itt most a forgalmi
beállítás nevét a
hozzátartozó konkrét paraméterek
követik. Az &man.atmconfig.8; segédprogram
használatához így kérhetünk
segítséget:&prompt.root; atmconfig help natm addOlvassuk el az &man.atmconfig.8; man
oldalát.Ugyanez a beállítás az
/etc/rc.conf állomány
használatával is elvégezhetõ. Az
A-gep esetében mindez így
nézne ki:network_interfaces="lo0 hatm0"
ifconfig_hatm0="inet 192.168.173.1 up"
natm_static_routes="B-gep C-gep D-gep"
route_B-gep="192.168.173.2 hatm0 0 100 llc/snap ubr"
route_C-gep="192.168.173.3 hatm0 0 101 llc/snap ubr"
route_D-gep="192.168.173.4 hatm0 0 102 llc/snap ubr"A CLIP útvonalak pillanatnyi
állapota így kérdezhetõ le:A-gep&prompt.root; atmconfig natm showTomRhodesÍrta: A Közös cím redundancia protokoll
(CARP)CARPKözös cím redundancia
protokollA Közös cím redundancia protokoll (Common
Address Redundancy Protocol, avagy CARP)
segítségével több gép
képes egyazon IP-címen osztozni.
Bizonyos konfigurációkban ez a terhelés
elosztására
(terhelés-kiegyenlítésre) vagy a
rendelkezésre állás
növelésére (hibatûrésre)
alkalmazható. A benne szereplõ gépek
akár eltérõ IP-címmel
is rendelkezhetnek, ahogy azt majd a példában is
láthatjuk.A CARP támogatásának
engedélyezéséhez a &os; rendszermagját
a következõ beállítással kell
újrafordítanunk:device carpA CARP által biztosított
lehetõségek ezután már
elérhetõek, és számos
sysctl változón keresztül
állíthatóak:VáltozóLeírásnet.inet.carp.allowA beérkezõ CARP
csomagok elfogadása. Alapértelmezés
szerint engedélyezett.net.inet.carp.preemptEzzel a beállítással az adott
gépen az összes CARP
felület leáll, ha közülük
bármelyik is
mûködésképtelenné
válik. Alapértelmezés szerint
tiltott.net.inet.carp.logA 0 értékkel
kikapcsoljuk a naplózást. Az
1 értékkel a rossz
CARP csomagok
naplózását engedélyezzük.
Az ettõl nagyobb értékek esetén
pedig a CARP felületek
változásait naplózzuk. Az
alapértelmezett értéke az
1.net.inet.carp.arpbalanceAz ARP protokoll
segítségével próbálja
meg a helyi hálózati forgalmat
mentesíteni a terheléstõl.
Alapértelmezés szerint tiltott.net.inet.carp.suppress_preemptEz a változó
írásvédett, és a
megszakítás elnyomásának
állapotát mutatja. A
megszakítás elnyomható, ha a
felület egyik linkje nem mûködik. A
0 érték arra utal, hogy a
megszakítást nem nyomták el. Minden
probléma növeli ennek a
változónak az
értékét.A CARP eszközök maguk az
ifconfig paranccsal
készíthetõek el:&prompt.root; ifconfig carp0 createEgy valós környezetben az ilyen felületeknek
egy VHID néven ismert egyedi
azonosítóval kell rendelkezniük. Ez a
VHID vagy más néven a
virtuális gépazonosító (azaz Virtual
Host Identification) fogja a gépünket a
hálózat többi elemétõl
megkülönböztetni.A CARP felhasználása a rendelkezésre
állás javításábanA CARP használatának egyik
módja, ahogy arra már korábban is utaltunk,
a szerverek rendelkezésre állásának
feljavítása. Ebben a példában
három géppel fogunk hibatûrést
biztosítani, melyik mindegyike egyedi
IP-címmel rendelkezik és
ugyanazt a webes tartalmat szolgáltatják. A
gépeket egy Round Robin rendszerû
(körbejáró) névfeloldással
együtt használjuk. A tartalék
gépünknek lesz még további két
CARP felülete, külön a szerver
IP-címeihez tartozó egyes webes
tartalmakhoz. Amikor valami meghibásodik, a
tartalék szerver átveszi a meghibásodott
gép IP-címét. Ilyenkor
a hiba teljesen észrevétlen marad a
felhasználók számára. A
tartalék szerveren a többi szerverrel egyezõ
tartalomnak és szolgáltatásoknak kell
megjelennie, hogy bármikor át tudja
tõlük venni a forgalmat.A hálózati neveiktõl és a
virtuális azonosítóiktól eltekintve
a két gépet ugyanúgy kell
beállítani. Ebben a példában a
gépeket most az a-gep.minta.org
és b-gep.minta.org nevekkel
láttuk el. Elõször is a
CARP
beállításához el kell
helyeznünk a megfelelõ hivatkozásokat az
rc.conf állományban. Az
a-gep.minta.org esetében az
rc.conf állomány a
következõ sorokat tartalmazza:hostname="a-gep.minta.org"
ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass 192.168.1.50/24"Miközben a b-gep.minta.org az
rc.conf állományában
ezeket adjuk meg:hostname="b-gep.minta.org"
ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"Nagyon fontos, hogy az ifconfig parancs
pass paraméterével megadott
jelszavak megegyezzenek. A carp
eszközök csak a megfelelõ jelszót
birtokló gépeket fogadják el. A
virtuális gépazonosítónak azonban
minden esetben el kell térnie.A harmadik, szolgaltato.minta.org
címmel rendelkezõ gépet fogjuk
felkészíteni az elõbbi gépek
meghibásodására felkészíteni.
Ennek a gépnek két carp
eszközre lesz szüksége, melyek az egyes
gépeket kezelik. Az ehhez illeszkedõ sorok valahogy
így fognak kinézni az rc.conf
állományban:hostname="szolgaltato.minta.org"
ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"Két carp eszköz
használatával a
szolgaltato.minta.org képes
észlelni és átvenni bármelyik olyan
gép IP-címét, amely nem
válaszol.Az alap &os; rendszermag használata esetén
elõfordulhat, hogy a
megszakítás (a preemption
opció) engedélyezett. Amennyiben így
lenne, a szolgaltato.minta.org nem fogja
minden esetben fogja rendesen visszaadni az
IP-címet az eredeti
tulajdonosának. Ilyenkor a rendszergazdának
kell ezt manuálisan megtennie. Tehát a
következõ parancsot kell kiadnia a
szolgaltato.minta.org gépen:&prompt.root; ifconfig carp0 down && ifconfig carp0 upEzt az adott géphez tartozó
carp felülettel kell
megcsinálni.Innentõl a CARP már teljesen
engedélyezhetõ és készen áll a
tesztelésre. A teszteléshez vagy a
hálózati rendszert kell
újraindítani, vagy a gépeket.További információkat a &man.carp.4;
man oldalán találhatunk.
diff --git a/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml
index a7d61fab53..92fc320e58 100644
--- a/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml
@@ -1,3767 +1,3767 @@
ChrisShumwayÁtdolgozta: A UNIX alapjaiÁttekintésEz a fejezet a &os; operációs rendszer
alapvetõ funkcióit és parancsait mutatja be.
Az itt tárgyalásra kerülõ anyag nagy
része érvényes bármelyik más
&unix;-szerû operációs rendszer esetén
is. Ezért, ha már ismerjük az
említésre kerülõ ismereteket, minden
további gond nélkül átugorhatjuk ezt a
fejezetet. Azonban ha még teljesen ismeretlen
számunkra a &os;, minden bizonnyal ez lesz az, amit
alaposan át kell majd olvasnunk.A fejezet elolvasása során
megismerjük:az ún. virtuális konzolok
használatát &os; alatt;hogyan mûködnek együtt a &unix;
állományokra vonatkozó engedélyei
a &os; saját
kiegészítéseivel;egy &os; állományrendszer
alapértelmezett
kialakítását;a &os; lemezszervezését;hogyan csatlakoztassunk és válasszunk le
állományrendszereket;mik azok a folyamatok, démonok és
jelzések;mik azok a parancsértelmezõk, és
miként tudjuk megváltoztatni az
alapértelmezett bejelentkezési
környezetünket;hogyan használjuk az alapvetõ
szövegszerkesztõket;mik az eszközök és az
eszközleírók;&os; alatt milyen bináris formátumokat
használhatunk;szükség esetén hogyan olvassuk el a
megfelelõ man oldalakat.Virtuális konzolok és terminálokvirtuális konzolokterminálokA &os; számos módon használható.
Ezek közül az egyik az, ha parancsokat
gépelünk be a szöveges terminálon.
Így érhetõ el egyszerûen a &unix;
operációs rendszer rugalmasságának
és erejének jelentõs része. Ebben a
szakaszban megtudhatjuk, mik azok a
terminálok és konzolok
és miként tudjuk ezeket &os; alatt
használni.A konzolkonzolHa nem állítottuk volna be, hogy a &os;
indulása során automatikusan induljon el a
grafikus felület is, akkor a rendszer egy bejelentkezõ
képernyõt fog mutatni közvetlenül a
rendszerindítás befejezõdése
után. Ekkor valami ilyesmit kell majd
látnunk:Additional ABI support:.
Local package initialization:.
Additional TCP options:.
Fri Sep 20 13:01:06 EEST 2002
FreeBSD/i386 (pc3.example.org) (ttyv0)
login:Egyes rendszereken ugyan némileg eltérhetnek
az üzenetek, de hasonlót kell látnunk.
Minket most az utolsó két sor érdekel. Az
utolsó elõtti sorban ez olvasható:FreeBSD/i386 (pc3.example.org) (ttyv0)Ez a sor arról értesít minket, hogy a
rendszerünk éppen most indult el: egy
&os; konzolt látunk, amely egy &intel; x86
architektúrájú processzoron fut
Erre utal pontosan az i386
jelzés. Még abban az esetben is a
i386 kiírást fogjuk
látni, hogy ha a &os;-t konkrétan nem is az
&intel; 386-os processzorán futtatjuk. Itt ugyanis
nem a processzorunk típusát, hanem annak
architektúráját
láthatjuk.. A gépünk neve (mivel minden &unix;-os
gép rendelkezik egy névvel)
pc3.example.org, és ennek a
rendszerkonzolját látjuk most éppen
— a ttyv0
terminált.Végezetül az utolsó sor mindig:login:Ez az a rész, ahova a &os;-be
történõ bejelentkezéshez meg kell adnunk
a felhasználói nevünket (user
name). A következõ szakaszban errõl
olvashatunk.Bejelentkezés a &os;-beA &os; egy többfelhasználós,
többfeladatos rendszer. Így hívják
hivatalosan azokat a rendszereket, amelyeket többen tudnak
használni és egyetlen
számítógépen egyszerre rengeteg
programot képesek futtatni.Minden többfelhasználós rendszernek
valamilyen módon meg kell tudnia
különböztetnie egy
felhasználóját a
többitõl. A &os;-ben (és minden más
&unix;-szerû operációs rendszerben) ezt
úgy érik el, hogy a programok futtatása
elõtt minden felhasználónak be kell
jelentkeznie a rendszerbe. Minden
felhasználó rendelkezik egy egyedi névvel
(ez a felhasználói név)
és ehhez egy titkos kulcssal (ez a
jelszó). A &os; a programok
futtatásához ezt a kettõt fogja
elkérni a felhasználótól.rendszerindító szkriptekEgybõl miután a &os; elindult és
befejezte a rendszerindításhoz használt
szkriptjeinek lefuttatását
A rendszerindító szkriptek olyan
programok, amelyek a &os; indulása során
maguktól lefutnak. Legfontosabb feladatuk
elvégezni a többi program
futtatásához szükséges
beállításokat, valamint
elindítani a háttérben
futtatandó, hasznos munkát végzõ
szolgáltatásokat., ez a kijelzés (vagy más néven
prompt) fog megjelenni és kér egy
érvényes felhasználói
nevet:login:A példa kedvéért most tegyük fel,
hogy a felhasználói nevünk
pgj. Az iménti prompthoz
írjuk be, hogy pgj és nyomjuk
le az Enter billentyût. Ezt
követõen meg kell jelennie egy másik promptnak
is, amely egy jelszót (password)
kér:login: pgj
Password:Most pedig gépeljük be pgj
jelszavát és nyomjunk után egy
Enter billentyût. Vigyázzunk, hogy
a jelszót nem látjuk a
beírás során! Emiatt most ne
aggódjunk. Ezzel kapcsolatban elegendõ csak annyit
tudni, hogy mindez biztonsági
megfontolásokból történik.Amennyiben jól adtuk meg a jelszavunkat, sikeresen
bejelentkezünk a &os; rendszerébe és
készen állunk az összes elérhetõ
parancs kipróbálására.Bejelentkezés után a MOTD
(message of the day) vagy más néven a nap
üzenete jelenik meg, amelyet a parancssor
követ (egy #, $ vagy
% jel). Innen tudhatjuk meg, hogy
sikerült bejelentkeznünk.Több konzol használataA &unix; parancsokat egy konzolon is szépen ki tudjuk
adni, de a &os; egyszerre ugyebár több programot is
tud futtatni. A parancsok megadásához viszont
egyetlen konzol használata elég nagy
pazarlás lenne, hiszen egy olyan operációs
rendszer mint a &os;, tucatnyi programot képes futtatni
egy idõben. Ebben az esetben jelenthetnek számunkra
segítséget a virtuális
konzolok.A &os; beállítható úgy, hogy
sok-sok különféle virtuális konzolt
ajánljon fel számunkra. A virtuális
konzolok között a billentyûzeten a megfelelõ
gombok lenyomásával tudunk váltani.
Mindegyik konzolnak megvan a saját kimeneti
csatornája, és a virtuális konzolok
közti váltás folyamán a &os;
gondoskodik a billentyûzetrõl érkezõ
bemenet valamint a monitorra irányított kimenet
megfelelõ kezelésérõl.A konzolok közti váltásra a &os;
külön billentyûkombinációkat tart
fenn
A &os; konzol- és
billentyûzetmeghajtóinak teljes, pusztán
mûszaki és precíz leírása a
&man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; és
&man.kbdcontrol.1; man oldalakon olvasható. Itt most
nem bocsátkozunk részletekbe, azonban a
téma iránt érdeklõdõ
olvasóknak mindig érdemes fellapozniuk a
kapcsolódó man oldalakat, ahol
megtalálhatják az említett
eszközök részletesebb és bõvebb
leírását.. A &os;-ben a különbözõ
virtuális konzolok közti váltásra az
AltF1,
AltF2
billentyûket, a
AltF8
billentyûkombinációval
bezárólag használhatjuk.A konzolok közti váltogatás során
a &os; ügyel a képernyõ tartalmának
elmentésére és
visszaállítására. Ennek
eredményeképpen úgy
látszik, mintha több
virtuális képernyõn és
billentyûzeten adnánk parancsokat a &os;-nek.Az /etc/ttys
állományA &os; alapértelmezés szerint nyolc
virtuális konzollal indul. Ez azonban nem egy elõre
rögzített érték, hiszen
könnyedén testreszabhatjuk úgy a
telepített rendszerünket, hogy több vagy
esetleg kevesebb virtuális konzollal induljon el. A
virtuális konzolok száma és azok pontos
beállítása az
/etc/ttys állományon
keresztül adható meg.A &os; virtuális konzoljait tehát az
/etc/ttys állomány
megfelelõ módosításával tudjuk
behangolni. Itt minden egyes olyan sor, amely nem
megjegyzés (vagyis azok a sorok, amelyek nem a
# karakterrel kezdõdnek), tartalmazza az
egyes terminálok vagy virtuális konzolok
beállításait. Az állomány a
&os; telepítésében szereplõ,
alapértelmezett változata kilenc virtuális
konzol konfigurációját tartalmazza, amelyek
közül nyolc aktív. Ezek a
ttyv résszel kezdõdõ
sorok:# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureAz állományban található
oszlopok kimerítõ magyarázatát illetve
a virtuális konzolok
beállításához
használható kapcsolókat a &man.ttys.5; man
oldalon olvashatjuk.Az egyfelhasználós mód
konzoljaAz egyfelhasználós mód
részletes leírása a ban található. Fontos
tudni, hogy amikor a &os;-t egyfelhasználós
módban futtatjuk, csupán egyetlen konzolunk van,
és a virtuális konzolok nem érhetõek
el. Egyébként az egyfelhasználós
mód erre vonatkozó
beállításai is megtalálhatóak
az /etc/ttys állományban.
Ehhez keressük meg a console
kezdetû sort:# name getty type status comments
#
# Ha a konzolt "insecure" (nem biztonságos) típusúnak választjuk meg,
# akkor a használatához az egyfelhasználós mód aktivilásá elõtt a rendszer
# kérni fogja a rendszeradminisztrátori jelszót.
onsole none unknown off secureA console felett látható
megjegyzés jelzi, hogy át tudjuk írni
ebben a sorban a secure
(biztonságos) értékû
paramétert insecure (nem
biztonságos) értékûre. Ilyenkor,
hogy ha a &os; egyfelhasználós módban
indul, kérni fogja a root
felhasználó (a rendszeradminisztrátor)
jelszavát.Vigyázzunk, amikor ezt az
értéket insecure-ra
állítjuk! Ha ugyanis
véletlenül elfeledkeznénk a
root jelszaváról, akkor
azzal az egyfelhasználós mód
használata is veszélybe kerülhet.
Habár ettõl függetlenül is
lehetséges, azokra számára mégis
nehéz helyzetnek bizonyulhat, akik nem mozognak
elég otthonosan a &os; rendszerindítási
folyamatának és a
hozzákapcsolódó programok
ismeretében.A videomód váltása konzolbanA &os; konzol alapértelmezett videomódja
átállítható 1024x768-ra,
1280x1024-re, vagy bármilyen olyan más
méretre, amit a videokártyánk
és monitorunk képes megjeleníteni. Az
eltérõ videomódok használatához
elõször újra kell fordítanunk a
rendszermagunkat az alábbi két
beállítás
hozzáadásával:options VESA
options SC_PIXEL_MODEMiután a rendszermagot sikeresen
újrafordítottuk a fenti
beállításokkal, a &man.vidcontrol.1;
segédprogrammal tudjuk megállapítani, hogy
a hardverünk milyen videomódokat enged
használni. Az összes támogatott
videomódot a következõképpen tudjuk
lekérdezni:&prompt.root; vidcontrol -i modeA parancs eredményeképpen tehát
megkapjuk a hardverünk által ismert
videomódokat. Ezek közül tudjuk
kiválasztani valamelyikõjüket és
root felhasználóként a
&man.vidcontrol.1; segítségével
beállítani:&prompt.root; vidcontrol MODE_279Ha az új videomód megfelel számunkra,
akkor ezt a beállítást az
/etc/rc.conf állományon
keresztül véglegesíthetjük is:allscreens_flags="MODE_279"EngedélyekUNIXA &os;, mivel a BSD &unix; egyik közvetlen
leszármazottja, számos &unix;-os alapötletre
épül. Ezek közül az elsõ és
talán a leginkább kihangsúlyozott, hogy a
&os; egy többfelhasználós
operációs rendszer. Egy olyan rendszer, amely
egyszerre több, egymástól független
feladattal foglalkozó felhasználót
képes kiszolgálni. A rendszer felelõs a
hardveres eszközök, a különféle
perifériák, a memória és a processzor
idejének minden egyes felhasználó
számára szabályos és pártatlan
megosztásáért és a feléjük
irányuló kérések
szervezéséért.Mivel a rendszer több felhasználót is
képes támogatni, az általa kezelt
erõforrások rendelkeznek engedélyek egy adott
halmazával, amelyek eldöntik ki tudja ezeket olvasni,
írni és végrehajtani. Az engedélyek
háromszor három bit formájában
jelennek meg, amelyek közül az elsõ bitcsoport az
állomány tulajdonosára, a második az
állomány csoportjára, végül az
utolsó pedig a mindenki másra vonatkozó
engedélyeket tárolja.engedélyekállományok
engedélyeiÉrtékEngedélyKönyvtárlistában0Nem olvasható, nem írható, nem
hajtható végre---1Nem olvasható, nem írható,
végrehajtható--x2Nem olvasható, írható, nem
hajtható végre-w-3Nem olvasható, írható,
végrehajtható-wx4Olvasható, nem írható, nem
hajtható végrer--5Olvasható, nem írható,
végrehajthatór-x6Olvasható, írható, nem
hajtható végrerw-7Olvasható, írható,
végrehajthatórwxlskönyvtárakA &man.ls.1; kapcsolójának
segítségével megnézhetjük a
könyvtárak tartalmának részletes
listáját, amiben megjelennek az
állományok tulajdonosaira, csoportjára
és a mindenki másra vonatkozó
engedélyek is. Például ezt láthatjuk,
ha kiadjuk az ls -l parancsot egy
tetszõleges könyvtárban:&prompt.user; ls -l
total 530
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 egyik
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 masik
-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 e-mail.txt
...A példabeli ls -l parancs
kimenetének elsõ oszlopa így bomlik fel:-rw-r--r--Az elsõ (legbaloldalibb) karakter mondja meg, hogy ez egy
hagyományos állomány, könyvtár,
speciális karakteres eszköz, socket vagy
bármilyen más különleges
pszeudoállomány. Ebben az esetben a
- jelzi, hogy egy hagyományos
állományról van szó. A
következõ három karakter, ami ebben a
példában az rw-, adja meg az
állomány tulajdonosának engedélyeit.
Az ezután következõ három karakter, a
r-- mutatja az állomány
csoportjának engedélyeit. Az utolsó
három karakter, vagyis itt a r-- adja
meg a többiek engedélyeit. A kötõjel arra
utal, hogy az adott engedélyû
tevékenység nem engedélyezett. Tehát
ennél az állománynál az
engedélyek a következõek: a tulajdonosa tudja
olvasni és írni, a csoportja csak olvasni tudja,
ugyanígy bárki más. A fenti
táblázatnak megfelelõen az
állomány engedélyének kódja
644 lesz, ahol az egyes számjegyek
jelentik az állomány engedélyeinek
három elemét.Ez mind szép és jó, de vajon a rendszer
milyen módon kezeli az állományok
engedélyeit? A &os; a legtöbb hardveres eszközt
állománynak tekinti, amelyeket a programok meg
tudnak nyitni, tudnak róluk olvasni és adatokat
tudnak kiírni rájuk pontosan úgy, mint
bármilyen más állomány esetén.
Ezeket a speciális állományokat a
/dev könyvtárban
találjuk.A könyvtárakat is
állományokként kezeli, ezért azok is
rendelkeznek olvasási, írási és
végrehajtási engedélyekkel. Azonban a
könyvtárak végrehajtását
engedélyezõ bit némileg más
jelentéssel bír, mint az állományok
esetén. Amikor ugyanis egy könyvtárat
végrehajthatónak jelölünk meg, az arra fog
utalni, hogy bele tudunk lépni, vagyis hogy ki tudjuk
rá adni a
könyvtárváltás (cd,
change directory) parancsát. Ez továbbá arra
is utal, hogy az ismert nevû állományokhoz
hozzá tudunk férni (természetesen az egyes
állományok engedélyeinek
megfelelõen).A könyvtárak tartalmát ennek
megfelelõen viszont csak úgy láthatjuk, ha
olvasási engedéllyel rendelkezünk a
könyvtárra, míg egy általunk ismert
állomány törléséhez a
tartalmazó könyvtárhoz kell írási
és végrehajtási
engedélyekkel rendelkeznünk.Ezeken kívül még léteznek
további engedélyek is, de ezeket csak olyan
különleges esetekben használják, mint
például a
felhasználóváltó programok (setuid
program) vagy a ragadós könyvtárak (sticky
directory) létrehozása. Az állományok
engedélyeinek behatóbb megismeréséhez
és beállításához
mindenképpen nézzük át a &man.chmod.1;
man oldalt.TomRhodesÍrta: Szimbolikus engedélyekengedélyekszimbolikusA szimbolikus engedélyek (gyakran csak szimbolikus
kifejezések) az állományok és
könyvtárak engedélyeinek megadása
során a számok helyett karaktereket
használnak. A szimbolikus kifejezések (ki)
(hogyan) (milyen engedélyt) alakúak, ahol az
alábbi értékek adhatóak meg:ElemBetûJelentése(ki)utulajdonos(ki)gcsoport tulajdonos(ki)oegyéb(ki)amindenki (a világ)(hogyan)+engedély megadása(hogyan)-engedély visszavonása(hogyan)=engedély explicit
beállítása(milyen engedély)rolvasás(milyen engedély)wírás(milyen engedély)xvégrehajtás(milyen engedély)tragadós (sticky bit)(milyen engedély)sUID vagy GID állításaEzek az értékek a &man.chmod.1; paranccsal az
eddigiekhez hasonló módon
használhatóak, csak itt betûket kell
megadnunk. Például az alábbi paranccsal
akadályozhatjuk meg, hogy a tulajdonosán
kívül bárki hozzáférhessen az
ÁLLOMÁNY nevû
állományhoz:&prompt.user; chmod go= ÁLLOMÁNYAmennyiben egy állománnyal kapcsolatban
több változtatást is el
kívánunk végezni, össze tudjuk ezeket
fûzni egy vesszõkkel elhatárolt
felsorolásban:&prompt.user; chmod go-w,a+x ÁLLOMÁNYTomRhodesÍrta: A &os; állományjelzõiA korábban tárgyalt engedélyek mellett
még a &os; ismeri az ún.
állományjelzõk (file flags)
beállítását is. Ezek a
jelzõbitek egy további biztonsági és
irányítási szintet nyújtanak az
állományok felett, viszont a
könyvtárakra nem vonatkoznak.Ezek az állományjelzõk az
állományok felett további
vezérlést adnak a kezünkbe, aminek
révén gondoskodhatunk róla, hogy
akár mgé a root
felhasználó (a rendszer adminisztrátora) se
legyen képes állományokat
eltávolítani vagy módosítani.Az állományjelzõk értékei
egy egyszerû felületen keresztül, a
&man.chflags.1; segédprogrammal
változtathatóak meg. Például a
következõ paranccsal állíthatjuk a
rendszer törölhetetlen (undeletable)
jelzését az allomany1
állományon:&prompt.root; chflags sunlink allomany1A törölhetetlen jelzés
eltávolításához egyszerûen csak
írjuk be az elõzõ parancsot úgy, hogy a
sunlink paraméter elejére
még beszúrunk egy no
szövegrészt. Így:&prompt.root; chflags nosunlink allomany1Az állományokra éppen
érvényes jelzéseket az &man.ls.1; parancs
kapcsolójának
segítségével jeleníthetjük
meg:&prompt.root; ls -lo file1Ennek megfelelõen az eredménynek valahogy
így kellene kinéznie:-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 allomany1Sok jelzés csak a root
felhasználón keresztül vehetõ fel vagy
távolítható el. Más esetekben
viszont az állomány tulajdonosa
állíthatja ezeket. A rendszergazdáknak
javasoljuk, hogy ezzel kapcsolatban a &man.chflags.1; és
&man.chflags.2; man oldalakat tanulmányozzák
át.TomRhodesKészítette: A setuid, setgid és sticky engedélyekA korábban említett engedélyeken
kívül létezik még további
három, amelyekkel minden rendszergazdának illik
tisztában lennie. Ezek név szerint a
setuid, setgid és
sticky típusú
engedélyek.Ezek a beállítások bizonyos &unix;
mûveletek esetén nagyon fontosak, mivel az
átlagos felhasználók számára
általában el nem érhetõ
funkciók használatát
támogatják. A
megértésükhöz elsõként a
felhasználók valódi és
effektív azonosítója közti
különbségeket kell tisztáznunk.A valódi azonosító
tulajdonképpen az a felhasználói
azonosító, amellyel a programot indítjuk el
vagy futás elõtt birtokoljuk. A program
futása közben azonban az effektív
felhasználói azonosítóval fut.
Például a &man.passwd.1; segédprogram a
jelszavát megváltoztatni
kívánó felhasználó
valódi azonosítójával indul,
miközben a jelszavakat tároló
adatbázis elérésékor már a
root felhasználó
effektív azonosítójával fut.
Ezáltal a privilegiumokkal nem rendelkezõ
felhasználók is meg tudják
anélkül változtatni a jelszavaikat, hogy a
Permission Denied hibaüzenettel
találkoznának.A &man.mount.8; nosuid
beállításával azonban az ilyen
típusú binárisok minden
különösebb jel nélkül
csõdöt fognak mondani. Mellesleg a &man.mount.8;
man oldala szerint ez az opció nem is teljesen
megbízható, mivel nosuid
wrapperek segítségével meg lehet
kerülni.Ahogy azt az alábbi példa is
szemlélteti, a setuid engedélyt a többi
elé egy négyes (4)
beszúrásával tudjuk
beállítani:&prompt.root; chmod 4755 suidexample.shA
suidexample.sh
állomány engedélyei ezt követõen
már így fognak megjelenni:-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.shMost már jól látható, hogy az
állomány tulajdonosához tartozó
engedélyek között a
végrehajthatóságot szabályozó
bit lecserélõdött egy s
bitre. Ennek köszönhetõen a
passwd parancshoz hasonló módon
kibõvített engedélyekkel leszünk
képesek futtatni programokat.Két terminál megnyitásával
mindezt valós idõben is megvizsgálhatjuk. Az
egyiken indítsuk el normál
felhasználóként a passwd
programot. Miközben a program várakozik az
új jelszó megadására, a másik
terminálon kérdezzük le a programhoz
tartozó felhasználói
információkat.Tehát az egyik terminálon a
következõt látjuk:&prompt.user; passwd
Changing local password for trhodes
Old Password:Eközben pedig a másikon:&prompt.root; ps aux | grep passwd
trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd
root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwdA passwd parancsot egyszerû
felhasználóként adtunk ki, azonban
jól látható valójában a
root felhasználó
azonosítójával fut.A setgid a setuid
engedélyhez hasonlóan mûködik,
egyedül annyiban tér el, hogy a csoportra
vonatkozó beállításokat
módosítja. Amikor egy alkalmazást vagy
segédprogramot ilyen engedéllyel futtatunk, akkor
az adott programot birtokló csoport engedélyeit
kapjuk meg.Úgy tudjuk állományokon
beállítani a setgid
típusú engedélyt, ha az iménti
példához hasonlóan a
chmod parancs hívásakor
még egy kettest (2) írunk az engedélyek
elé:&prompt.root; chmod 2755 sgidexample.shAz így beállított engedélyek az
elõbbihöz hasonló módon
szemlélhetõek meg, azonban ebben az esetben a
csoporthoz tartozó engedélyeknél jelenik
meg az s bit:-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.shAz elõbb tárgyalt példákkal
kapcsolatban fontos megemlítenünk, hogy habár
a szkriptek is végrehajtható
állományok, nem fognak a valóditól
eltérõ effektív felhasználói
azonosítóval futni. Ennek oka abban
keresendõ, hogy a parancssori szkriptek nem
hívhatják a &man.setuid.2;
rendszerhívást.Ez a két speciális engedély (a
setuid és a setgid) a
programhoz tartozó engedélyek
kiterjesztésével csökkentheti
rendszerünk biztonságát. Ezzel szemben
viszont a harmadik bemutatandó speciális
engedély rendszerünk védelmének
erõsítésére szolgál: ez az
ún. sticky bit.Ha a sticky típusú
engedélyt könyvtárra adjuk meg, akkor a benne
levõ állományok törlését
kizárólag azok tulajdonosainak engedi. Ezzel az
engedéllyel lényegében a /tmp könyvtárhoz
hasonló nyilvános, bárki által
elérhetõ könyvtárakban
akadályozhatjuk meg az állományok idegen
felhasználók általi
törlését. Az engedély
beállításához egy egyest (1) kell a
többi elé fûznünk, mint
például:&prompt.root; chmod 1777 /tmpMost már az ls parancs
segítségével láthatjuk ennek a
hatását:&prompt.root; ls -al / | grep tmp
drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmpA sticky bit a
beállítások végén
felbukkanó t révén
azonosítható be.A könyvtárak elrendezésekönyvtárhierarchiaA &os; könyvtárszerkezetének ismerete
alapvetõ jelentõségû a rendszer
egészének megértésének
szempontjából. Ezen belül is a legfontosabb a
gyökérkönyvtár, a /. Ez az
elsõ könyvtár, amelyet a rendszer a
rendszerindítás során csatlakoztat és
a többfelhasználós mód
elõkészítéséhez
elegendhetlenül szükséges alaprendszert
tartalmazza. A gyökérkönyvtár emellett
csatlakozási pontokat szolgáltat a
többfelhasználós mûködésre
váltás során csatlakoztatandó
további állományrendszerek
számára.A csatlakozási pont egy olyan könyvtár,
ahová a szülõ állományrendszeren
(ami gyakran maga a gyökér
állományrendszer) belül további
állományrendszereket tudunk beoltani. Errõl
bõvebben a ban olvashatunk.
A szabványos csatlakozási pontok:
/usr, /var,
/tmp, /mnt és
/cdrom. Ezekre a könyvtárakra
általában az /etc/fstab
állományban találunk hivatkozásokat.
Az /etc/fstab állomány a
rendszer számára a különbözõ
állományrendszerek és a hozzájuk
tartozó csatlakozási pontok
táblázatát tartalmazza. Az
/etc/fstab állományban
szereplõ legtöbb állományrendszer a
rendszerindítás során automatikusan
csatlakoztatásra kerül az &man.rc.8; szkriptbõl,
hacsak nem tartalmazzák a
beállítást. Ennek részleteit a ban találhatjuk meg.Az állományrendszerek
hierarchiájának teljes leírását
a &man.hier.7; man oldalon olvashatjuk. Mi egyelõre most
megelégszünk a leggyakrabban megjelenõ
könyvtárak rövid
áttekintésével.KönyvtárMi található itt/Az állományrendszer
gyökere./bin/Az egy- és
többfelhasználós környezetekben
is egyaránt alapvetõ
felhasználói
segédprogramok./boot/Az operációs rendszer
indítása során használt
programok és konfigurációs
állományok./boot/defaults/A rendszerindítás
alapértelmezett konfigurációs
állományai. Lásd
&man.loader.conf.5;/dev/Eszközleírók, lásd
&man.intro.4;./etc/Rendszerkonfigurációs
állományok és szkriptek./etc/defaults/Az alapértelmezett
rendszerkonfigurációs
állományok, lásd
&man.rc.8;./etc/mail/A &man.sendmail.8; programhoz hasonló
levélküldõ rendszerek
konfigurációs
állományai./etc/namedb/A named program
konfigurációs állományai,
lásd &man.named.8;./etc/periodic/A &man.cron.8; által naponta, hetente
és havonta lefuttatandó szkriptek,
lásd &man.periodic.8;./etc/ppp/A ppp program
konfigurációs állományai,
lásd &man.ppp.8;./mnt/Egy üres könyvtár, amelyet a
rendszergazdák általában ideiglenes
csatlakozási pontként
használnak./proc/A futó programokat tartalmazó
állományrendszer, lásd
&man.procfs.5;, illetve &man.mount.procfs.8;./rescue/Statikusan linkelt programok vészhelyzet
esetére, lásd &man.rescue.8;./root/A root
felhasználó könyvtára./sbin/Az egy- és
többfelhasználós környezetekben
fontos rendszerprogramok és
rendszerfelügyeleti eszközök./tmp/Átmeneti állományok. A
/tmp
könyvtár tartalma általában
NEM marad meg az újraindítás
után. Erre a célra gyakran
memóriában létrehozott
állományrendszert szoktak csatlakoztatni a
/tmp
könyvtárba. Ez utóbbit az
&man.rc.conf.5; tmpmfs-re vonatkozó
változóinak
beállításával lehet
automatikussá tenni (vagy a
/etc/fstab megfelelõ
módosításával, lásd
&man.mdmfs.8;)./usr/A felhasználói programok és
alkalmazások többsége./usr/bin/Általános segédprogramok,
programozási eszközök és
alkalmazások./usr/include/Szabványos C
include-állományok./usr/lib/Függvénykönyvtárak./usr/libdata/Egyéb hasznos
adatállományok./usr/libexec/(Más programok által használt)
Rendszerdémonok és
rendszereszközök./usr/local/A helyi rendszeren telepített programok,
függvénykönyvtárak stb. A &os;
portrendszere is ezt használja
alapértelmezés szerint. A
/usr/local könyvtáron
belül a &man.hier.7; man oldalon
található /usr
könyvtár általános
felépítése használatos. Ez
alól kivételt képez a man
alkönyvtár, amely közvetlenül a
/usr/local alatt
található, nem pedig a
/usr/local/share
könyvtáron belül, valamint a portok
dokumentációja a
share/doc/port
könyvtárban található./usr/obj/A /usr/src
könyvtárfában található
források fordítása során
keletkezõ architektúrafüggõ
objektumok./usr/ports
+ class="directory">/usr/ports/
A &os; Portgyûjtemény
(választható)./usr/sbin/(A felhasználók által
használt) Rendszerdémonok és
rendszereszközök./usr/share/Architektúrafüggõ
állományok./usr/src/BSD és/vagy helyi források./usr/X11R6/Az X11R6 rendszer programjai,
függvénykönyvtárai stb.
(választható)/var/Különféle napló,
átmeneti, ideiglenes és pufferben
tárolt állományok. A
memóriában létrehozott
állományrendszereket is olykor a /var
könyvtárban találjuk. Ezt az
&man.rc.conf.5; állományban
található varmfs-változók
beállításával tehetjük
automatikussá (vagy a
/etc/fstab megfelelõ
módosításával, lásd
&man.mdmfs.8;)./var/log/Mindenféle rendszernaplók./var/mail/A felhasználók postafiókjait
tároló állományok./var/spool/A nyomtatók és a levelezés
puffereléséhez használt
könyvtárak./var/tmp/Átmeneti állományok. Az itt
található állományok
általában megmaradnak a
következõ rendszerindítás
alkalmával is, hacsak a /var nem egy
memóriában létezõ
állományrendszer.
- /var/yp
+ /var/ypA NIS állományai.A lemezek szervezéseAz állománynév a legkisebb
szervezési egység, amin keresztül a &os;
képes megtalálni az állományokat. Az
állományok neveiben a kis- és nagybetût
megkülönböztetjük, tehát a
readme.txt és a
README.TXT elnevezés két
különbözõ állományra utal. A
&os; nem az állományok kiterjesztése (ami a
konkrét példánkban a
.txt volt) alapján dönti el, hogy
az adott állomány vajon program, dokumentum vagy
valamilyen más fajtájú adat.Az állományok könyvtárakban
tárolódnak. Egy könyvtár lehet
akár üres (nincs benne egyetlen állomány
sem), vagy többszáz állományt is
tartalmazhat. Egy könyvtár ráadásul
további könyvtárakat is tárolhat,
és így az egymásban elhelyezkedõ
könyvtárak segítségével
könyvtárak egy hierarchiáját tudjuk
felépíteni. Ezzel sokkalta könnyebben
szervezhetõvé válnak az adataink.Az állományokat és
könyvtárakat úgy tudunk elérni, ha
megadjuk az állomány vagy a könyvtárt
tároló könyvtár nevét, amit egy
perjel, a / követ, valamint így
összefûzve az eléréshez
szükséges további könyvtárak
felsorolása. Tehát, ha van egy
ize nevû könyvtárunk,
amelyben található egy mize
könyvtár, amelyen belül pedig egy
readme.txt, akkor ennek az
állománynak a teljes neve, vagy
másképpen szólva az
elérési útjaize/mize/readme.txt lesz.A könyvtárak és az állományok
egy állományrendszerben tárolódnak.
Minden állományrendszer pontosan egy
könyvtárat tartalmaz a legfelsõ szintjén,
amelyet az adott állományrendszer
gyökérkönyvtárának
nevezünk. Ez a gyökérkönyvtár
tartalmazhat aztán további
könyvtárakat.Eddig még valószínûleg minden nagyon
hasonló a más operációs rendszerekben
tapasztalható fogalmakhoz. Azonban adónak
különbségek: például az &ms-dos; a
\ jellel választja el az
állományok és könyvtárak neveit,
miközben a &macos; erre a : jelet
használja.A &os; az elérési utakban sem betûkkel, sem
pedig semmilyen más névvel nem jelöli meg a
meghajtókat. Tehát a &os;-ben nem írhatjuk,
hogy a c:/ize/mize/readme.txt.Helyette az egyik állományrendszert
kijelölik gyökér
állományrendszernek. A
gyökér állományrendszer
gyökérkönyvtárára hivatkoznak
késõbb /
könyvtárként. Ezután minden más
állományrendszert a gyökér
állományrendszerhez
csatlakoztatunk. Ennek
értelmében nem számít, hogy a mennyi
lemezünk is van a &os; rendszerünkben, hiszen minden
könyvtár egyazon lemez részeként jelenik
meg.Tegyük fel, hogy van három
állományrendszerünk, hívjuk ezeket
A-nak, B-nek és
C-nek. Minden állományrendszer
rendelkezik egy gyökérkönyvtárral, amely
két további könyvtárat tartalmaz:
A1-et és A2-t
(és ennek megfelelõen a többi
B1-et és B2-t,
valamint C1 és
C2-t).Nevezzük A-t a gyökér
állományrendszernek. Ha a könyvtár
tartalmának megjelenítéséhez most
kiadnánk az ls parancsot, két
alkönyvtárat látnánk, az
A1-et és A2-t. A
létrejött könyvtárfa valahogy így
nézne ki: /
|
+--- A1
|
`--- A2Egy állományrendszert csak egy másik
állományrendszer valamelyik
könyvtárába tudunk csatlakoztatni.
Ezért most tételezzük fel, hogy a
B állományrendszert az
A1 könyvtárba csatlakoztatjuk.
Ezután a B
gyökérkönyvtára átveszi a
A1 helyét az
állományrendszerben, és ennek
megfelelõen megjelennek a B
könyvtárai is: /
|
+--- A1
| |
| +--- B1
| |
| `--- B2
|
`--- A2A B1 vagy B2
könyvtárakban található
állományok bármelyike innentõl kezdve a
/A1/B1, illetve a /A1/B2
elérési utakon érhetõek el. Az
A1 könyvtárban
található állományok erre az
idõre rejtve maradnak. Akkor fognak újra felbukkanni,
ha a B állományrendszert
leválasztjuk az A
állományrendszerrõl.Ha a B állományrendszert az
A2 könyvtárba
csatlakoztatnánk, az iménti ábra
nagyjából így nézne ki: /
|
+--- A1
|
`--- A2
|
+--- B1
|
`--- B2és ennek megfelelõen az elõbb tárgyalt
elérési utak /A2/B1 és
/A2/B2 lennének.Az állományrendszerek egymáshoz is
csatlakoztathatóak. A példát ennek
megfelelõen úgy is folytathatjuk, hogy a
C állományrendszert
csatlakoztatjuk B
állományrendszerben található
B1 könyvtárhoz. Ennek
eredménye a következõ elrendezés
lesz: /
|
+--- A1
|
`--- A2
|
+--- B1
| |
| +--- C1
| |
| `--- C2
|
`--- B2Vagy a C állományrendszer az
A1 könyvtáron keresztül
csatlakoztatható akár közvetlenül az
A állományrendszerhez is: /
|
+--- A1
| |
| +--- C1
| |
| `--- C2
|
`--- A2
|
+--- B1
|
`--- B2Az &ms-dos; operációs rendszert ismerõk
számára ez hasonló lehet a
join parancshoz (habár teljesen nem
egyezik meg vele).Általában azonban ezzel nem kell
törõdnünk, hiszen többnyire csak a &os;
telepítése során hozunk létre
állományrendszereket és választjuk meg
a csatlakozási pontjukat. A késõbbiekben
legfeljebb ez akkor kerül elõ ismét, amikor
újabb lemezeket adunk hozzá a rendszerhez.Teljességgel megengedhetõ, hogy elhagyjuk a
többit és csak egyetlen óriási
gyökérállományrendszert
használjunk. Ennek viszont megvannak a maga
hátrányai és az egyetlen elõnye.Több állományrendszer
használatának elõnyeiA különbözõ
állományrendszereknek
különbözõ
csatlakoztatási
beállításai (mount options)
lehetnek. Például, ha kellõen
elõvigyázatosak akarunk lenni, a
gyökérállományrendszer
írásvédett módon is
csatlakoztatható, aminek köszönhetõen
lehetetlenné válik a rendszer
számára fontos állományok
véletlen törlése vagy
felülírása. Ha
elkülönítjük a
felhasználók számára
írható állományrendszereket
(például a /home
könyvtárakat) a többi
állományrendszertõl, lehetõvé
válik számunkra, hogy
nosuid
beállítással csatlakoztassuk ezeket. Ez
a beállítás megakadályozza, hogy
ezekben a
suid/guid
bitekkel rendelkezõ végrehajtható
állományok használhatóak legyenek,
ezáltal növeli a rendszer
biztonságosságát.A &os; az állományrendszer
használatától függõen
magától határoz a benne
található állományok
optimális kiosztását illetõen.
Így tehát a gyakorta módosított,
kisebb állományokat tartalmazó
állományrendszerek esetén teljes
más technikákat alkalmaz, mint
például a nagyobb, kevésbé
változó állományok esetén.
Azonban egyetlen állományrendszer
használatával ez a gyorsítási
módszer odavész.Noha a &os; állományrendszerei nagyon
jól tûrik a hirtelen
áramkimaradásokat, egy döntõ ponton
bekövetkezõ váratlan leállás
továbbra is kárt okozhat a szerkezetükben.
Ha azonban több állományrendszerre osztjuk
a tárolandó adatainkat, sokkal
valószínûbbé válik, hogy egy
ilyen eset után a rendszerünk talpra tud
állni, és szükség esetén
nekünk is könnyebb lesz a biztonsági
mentéseinkbõl helyreállítani a
sérült állományokat.Egyetlen állományrendszer
használatának elõnyeiAz állományrendszerek mérete
rögzített. Miután a &os;
telepítése során létrehoztunk
egy adott méretû
állományrendszert, elõfordulhat, hogy
késõbb szükségünk lesz a
méretének növelésére.
Ilyenkor nehezen kerülhetjük el az ilyenkor
szokásos teendõket: biztonsági
mentés készítése, az új
méretnek megfelelõ
állományrendszer létrehozása,
majd ezután a lementett adataink
visszaállítása.A &os;-ben azonban megtalálható a
&man.growfs.8; parancs, amelynek
segítségével az
állományrendszerek mérete
használat közben növelhetõ,
és ezzel megszûnik a méretre
vonatkozó korlátozás.Az állományrendszerek partíciókban
tárolódnak. A &os; &unix;-os eredete miatt azonban
ez a kifejezés nem a hétköznapi
partíció jelentését
takarja (mint például egy &ms-dos;
partíció). Minden partíciót egy
betû azonosít a-tól
h-ig. Mindegyik partíció csak
egyetlen állományrendszert tartalmazhat, aminek
révén az állományrendszereket vagy az
állományrendszerek hierarchiájában
található csatlakozási pontjukkal vagy pedig
az ezeket tartalmazó partíció
betûjével azonosíthatjuk.A &os; ezeken felül külön lemezterülen
tárolja a
lapozóállományt (swap
space). A lapozóállományt használja a
&os; virtuális memória
(virtual memory) megvalósításához.
Ennek köszönhetõen a
számítógép képes úgy
viselkedni, mintha jóval több memóriával
rendelkezne, mint valójában. Így, amikor a
&os; kifogy a memóriából, egyszerûen
kirakja a memóriából a
lapozóállományba az éppen nem
használt adatokat, majd amikor ismét
szüksége lesz rájuk, visszatölti ezeket
(és ilyenkor megint kirak valami mást).Némely partícióhoz kötõdnek
bizonyos megszokások.PartícióMegszokásaÁltalában ez tartalmazza a
gyökér
állományrendszert.bÁltalában ez tartalmazza a
lapozóállományt.cMérete általában a
tartalmazó slice méretével egyezik
meg. Ennek köszönhetõen a
segédprogramok (például egy
hibás szektorokat keresõ program) a
c partíción
keresztül képesek akár az egész
slice-al dolgozni. Normális esetben ezen a
partíción nem hozunk létre
állományrendszert.dA d partícióhoz
egykoron kapcsolódott különleges
jelentés, azonban mostanra ez már
megszûnt, és a d egy
teljesen átlagos partíciónak
tekinthetõ.Minden állományrendszert tartalmazó
partíciót a &os; egy ún.
slice-ban tárol. A &os;
számára a slice elnevezés utal mindarra, amit
általában partíciónak neveznek,
és ismét megemlítjük, mindez a &unix;-os
eredet miatt. A slice-okat 1-tõl 4-ig
sorszámozzák.slice-okpartíciókveszélyesen dedikáltA slice-ok sorszáma 1-tõl indulva az
eszközök neve után egy s
betûvel elválasztva következik. Így
tehát a da0s1
jelentése az elsõ slice lesz az elsõ
SCSI-meghajtón. Lemezenként négy fizikai
slice hozható létre, de ezeken belül
tetszõleges típusú logikai slice-ok
helyezhetõek el. Ezen további slice-ok
sorszámozása 5-tõl kezdõdik, így
ennek megfelelõen a ad0s5
lesz az elsõ IDE-lemezen található elsõ
kiterjesztett slice. Ezeket az eszközöket
foglalják el a különbözõ
állományrendszerek.A slice-ok, a veszélyesen
dedikált (Dangerously Dedicated) fizikai
meghajtók, és minden más olyan
meghajtó, amely
partíciókat tartalmaz,
a-tól h-ig
jelölõdnek. Ez a betû az eszköz neve
után következik, így ennek megfelelõen a
da0a lesz az elsõ
da meghajtó a, vagyis a
veszélyesen dedikált
partíciója. Az
ad1s3e lesz a második
IDE-lemezmeghajtón a harmadik slice-ban szereplõ
ötödik partíció.Végezetül, a rendszerben minden lemezt
azonosítunk. A lemez neve a típusára
utaló kóddal kezdõdik, amely után
aztán egy sorszám jelzi, hogy melyik lemezrõl
is van szó. Azonban eltérõen a
slice-okétól, a lemezek sorszámozása
0-tól indul. Az általánosan elterjedt
kódolások a ban
találhatóak.Amikor hivatkozunk egy partícióra, a &os;
elvárja tõlünk, hogy nevezzük meg az adott
partíciót tartalmazó slice-ot és
lemezt is. Emiatt egy partícióra mindig úgy
hivatkozunk, hogy elõször megadjuk a tartalmazó
lemez nevét, ettõl s-sel
elválasztva a tartalmazó slice
sorszámát, majd ezt a partíció
betûjelével zárjuk. Erre
példákat a ban láthatunk.Az érhetõség kedvéért a bemutatja egy lemez
kiosztásának fogalmi sablonját.A &os; telepítéséhez elõször be
kell állítani a lemezen található
slice-okat, majd létrehozni benne a &os;-hez
használni kívánt partíciókat,
kialakítani rajtuk az állományrendszereket
(vagy a lapozóállományt) és
eldönteni, melyik állományrendszert
kívánjuk csatlakoztatni.
Példák lemezek, slice-ok és
partíciók neveireNévJelentésad0s1aAz elsõ IDE lemezen (ad0)
levõ elsõ slice (s1)
elsõ partíciója
(a).da1s2eA második SCSI-lemzen
(da1) levõ második slice
(s2) ötödik
partíciója (e).Egy lemez kialakításának
sablonjaAz ábrán a rendszerhez csatlakoztatott elsõ
IDE-lemez látható a &os;
szemszögébõl. Tegyük fel, hogy ez a lemez
4 GB méretû és két,
egyenként 2 GB méretû slice-ot (avagy
&ms-dos; partíciót) tartalmaz. Az elsõ slice
egy &ms-dos; formátumú lemezt foglal
magában, a C: meghajtót,
illetve a második slice egy telepített &os;-t
tartalmaz. Ebben a példában a &os; három
adatot és egy lapozóállományt
tároló partícióval
rendelkezik.A három partíció mindegyikén
találhatunk egy-egy állományrendszert. Az
a partíció lesz a
gyökér állományrendszer, az
e lesz a rendszerünkben a
/var és az f
pedig a /usr könyvtár..-----------------. --.
| | |
| DOS / Windows | |
: : > Elsõ slice, ad0s1
: : |
| | |
:=================: ==: --.
| | | a partíció, / |
| | > ad0s2a néven hivatkozzuk |
| | | |
:-----------------: ==: |
| | | b partíció, lapozóállomány |
| | > ad0s2b néven hivatkozzuk |
| | | |
:-----------------: ==: | c partíció, nincs
| | | e partíció, /var > állományrendszer, az egész
| | > ad0s2e néven hivatkozzuk | &os; slice,
| | | | ad0s2c
:-----------------: ==: |
| | | |
: : | f partíció, /usr |
: : > ad0s2f néven hivatkozzuk |
: : | |
| | | |
| | --' |
`-----------------' --'Állományrendszerek csatlakoztatása
és leválasztásaAz állományrendszereket legkönnyebben
egy-egy faként tudjuk magunk elõtt elképzelni,
amelyek a / könyvtárból
nõnek ki. A /dev,
/usr és mellettük szereplõ,
hozzájuk hasonló összes többi
könyvtár csupán egy-egy ág, amelyeknek
saját ágaik is lehetnek, mint például
a /usr/local és így
tovább.gyökér
állományrendszerKülönféle okainak vannak annak, hogy egyes
könyvtárakat különálló
állományrendszereken tárolunk. A
/var könyvtár tartalmazza a
log/, spool/
könyvtárakat és különféle
átmeneti állományokat, azonban az ilyen
állományok könnyen megszaporodhatnak és
megtölthetik az állományrendszert. Mivel a
gyökér állományrendszert nem
tanácsos elárasztani mindenféle
állománnyal, ezért gyakran a hasznunkra
válthat, ha a /var
könyvtárat leválasztjuk a
/ könyvtárból.Másik gyakori ok, ami az imént említett
fa egyes ágainak különbözõ
állományrendszereken történõ
tárolását indokolja, hogy ezek gyakran
más fizikai vagy virtuális lemezeken,
például a rendszerhez csatlakoztatott Hálózati
állományrendszereken vagy éppen
CD-meghajtókon találhatóak.Az fstab
állományállományrendszerekcsatlakoztatás az fstab
állománnyalA rendszerindítás
folyamata során az /etc/fstab
állományban felsorolt
állományrendszerek maguktól kerülnek
csatlakoztatásra (kivéve amikor a
beállítással
szerepelnek).Az /etc/fstab állományban
található sorok az alábbi
szerkezetûek:eszköz/csatlakozási-ponttípusbeállításokmentésigyakellszámeszközA ban leírtak
szerint megnevezett (létezõ)
eszköz.csatlakozási-pontEgy (létezõ) könyvtár, ahova
az állományrendszer csatlakozik.típusAz állományrendszer &man.mount.8;
parancs szerint ismert típusa. A &os;
alapértelmezett állományrendszere az
ufs.beállításokAz írható-olvasható
állományrendszerek esetén
, az írásvédettek
esetén pedig , amelyet
igény szerint további
beállítások követhetnek. A
rendszerindítás során automatikusan
nem csatlakoztatandó
állományrendszerek esetén gyakran
alkalmazott beállítás itt még
a . Egyéb
lehetõségeket a &man.mount.8; man oldalon
láthatunk.mentésigyakEzt általában a &man.dump.8; parancs
használja a menteni szükséges
állományrendszerek
megállapításához. Amennyiben
hiányzik ez a mezõ, az automatikusan a nulla
értéket jelöli.ellszámMegadja, hogy mely állományrendszereket
kell ellenõrizni. A nullás
pass értékkel
rendelkezõ állományrendszerek nem
kerülnek ellenõrzésre. A
gyökér állományrendszer (melyet
minden más elõtt kell ellenõrizni)
passno értéke egy,
míg az összes többi
állományrendszer passno
értéke általában egytõl
különbözõ. Ha egynél több
állományrendszer is ugyanazt a
passno értéket kapta,
akkor az &man.fsck.8; a lehetõségei szerint
megpróbálja ezeket egyszerre
ellenõrizni.Az /etc/fstab
felépítésérõl és a benne
használható
beállításokról bõvebben a
&man.fstab.5; man oldalon olvashatunk.A mount parancsállományrendszerekcsatlakoztatásAz állományrendszerek tényleges
csatlakoztatására avagy
mountolására a &man.mount.8;
parancs használható.Legegyszerûbb formája:&prompt.root; mount eszközcsatlakozási-pontAhogy a &man.mount.8; man oldalán is olvashatjuk, itt
rengeteg opció is megadható, de ezek
közül a leggyakoribbak:Csatlakoztatási opciókCsatlakoztatja az /etc/fstab
állományban felsorolt összes
állományrendszert, kivéve azokat,
amelyek a noauto
beállítást tartalmazzák, vagy
kizártuk a kapcsolóval,
esetleg korábban már csatlakoztattuk.A tényleges csatlakoztatás
elvégzése nélkül
végrehajt minden mást. Ez az opció
leginkább opcióval
együtt használható annak
megállapítására, hogy a
&man.mount.8; valójában mit is akar
csinálni.Egy nem tiszta állományrendszer
csatlakoztatásának
kényszerítése (veszélyes!)
vagy egy korábban már csatlakoztatott
állományrendszer írható
állapotának
felfüggesztése.Az állományrendszer
írásvédett csatlakoztatása.
Megegyezik a opciónál
megadható (vagy a &os;
5.2-nél régebbi verziója
esetén a )
beállítás
használatával.típusAz adott állományrendszer az adott
típusnak megfelelõen csatlakoztatja, vagy az
használata esetén csak
az adott típusú
állományrendszereket.Az ufs az
állományrendszerek alapértelmezett
típusa.Frissíti az állományrendszerre
vonatkozó csatlakoztatási
beállításokat.Részletesebb kijelzés.Az állományrendszer
csatlakoztatása írásra és
olvasásra.Az opció után
vesszõvel elválasztott
beállításokat adhatunk meg, többek
közt az alábbiakat:noexecAz állományrendszeren
található állományok
végrehajtásának tiltása. Ez
egy nagyon hasznos biztonsági
beállítás.nosuidAz állományrendszeren nem
használhatóak a felhasználó-
(setuid) vagy csoportváltásra (setgid)
vonatkozó engedélyek. Nagyon hasznos
biztonsági beállítás.Az umount parancsállományrendszerekleválasztásAz &man.umount.8; parancs paraméterként egy
csatlakozási pontot, egy eszköznevet vagy a
, illetve az
opciókat várja.A leválasztás
kényszerítéséhez mindegyik alakban
szerepelhet az opció, valamint a
részletesebb kijelzést a
opcióval kapcsolhatjuk be. Azonban szeretnénk
mindenkit figyelmeztetni, hogy a
használata alapvetõen nem ajánlott. Az
erõszakkal leválasztott
állományrendszerek összeomlaszthatják
a számítógépet vagy kárt
okozhatnak az állományrendszereken
található adatokban.Az és
opciók használatosak az összes
csatlakoztatott állományrendszer
leválasztására, amelyek típusait a
opció megadása után
sorolhatunk fel. Fontos különbség azonban,
hogy az opció a gyökér
állományrendszert nem próbálja meg
leválasztani.FolyamatokA &os; egy többfeladatos operációs
rendszer. Ez azt jelenti, hogy képes
látszólag egyszerre több programot is futtatni.
Az így egyszerre futó programokat egyenként
folyamatoknak (process) nevezzük.
Minden kiadott parancsunk elindít legalább egy ilyen
folyamatot, és a rendszerünk mozgásban
tartásához bizonyos rendszerszintû folyamatok
állandóan futnak a háttérben.Minden folyamatot egy
folyamatazonosítónak (process
ID vagy PID) nevezett szám
azonosít egyértelmûen, és az
állományokhoz hasonlóan, minden folyamatnak
van tulajdonosa és csoportja is. A tulajdonos és a
csoport ismeretében állapítja meg a rendszer,
hogy az adott folyamat a korábban említett
engedélyek szerint milyen állományokhoz
és eszközökhöz férhet hozzá.
Ezenkívül a legtöbb folyamatnak van még
egy szülõfolyamata is. A szülõfolyamat az a
folyamat, amely az adott folyamatot elindította.
Például amikor parancsokat adunk egy
parancsértelmezõn keresztül, akkor maga a
parancsértelmezõ is egy ilyen folyamat lesz
ugyanúgy, ahogy a benne kiadott parancsok által
elindított programok. Ennek megfelelõen az így
létrehozott összes folyamat szülõje maga a
parancsértelmezõ folyamata lesz. Az említettek
alól egyik kivétel az &man.init.8; nevû
speciális folyamat. Az init lesz a
rendszerben mindig az elsõ folyamat, ezért a PID-je is
mindig 1. Az init programot a &os;
indulásakor a rendszermag fogja automatikusan
elindítani.A rendszerben futó programok
vizsgálatához két, különösen
hasznos parancsot találhatunk: ezek a &man.ps.1; és
a &man.top.1;. A ps parancs használatos
a pillanatnyilag futó programok statikus
listájának megjelenítésére.
Ebben olvashatjuk a futó programok
azonosítóit, mennyi memóriát
használnak éppen, milyen paranccsal
indították ezeket stb. A top
parancs mutatja az összes aktívan futó
programot, majd néhány másodpercenként
automatikusan frissíti ezt a listát, aminek
révén folyamatosan láthatjuk, miként
viselkednek a futó programok.A ps alapértelmezés szerint
csupán az általunk futtatott programokat mutatja.
Például:&prompt.user; ps
PID TT STAT TIME COMMAND
298 p0 Ss 0:01.10 tcsh
7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
72210 p0 R+ 0:00.00 ps
390 p1 Is 0:01.14 tcsh
7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
6688 p3 IWs 0:00.00 tcsh
10735 p4 IWs 0:00.00 tcsh
20256 p5 IWs 0:00.00 tcsh
262 v0 IWs 0:00.00 -tcsh (tcsh)
270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
285 v0 S 0:38.45 /usr/X11R6/bin/sawfishAhogy az a fenti példában is látszik, a
&man.ps.1; kimenete oszlopokra tagolható. Ezek
közül a PID tartalmazza a
korábban már ismertetett
folyamatazonosítókat. Az azonosítók
1-tõl indulva egészen 99999-ig
sorszámozódhatnak, illetve ha kifutnánk
belõlük, akkor a számozás kezdõdik
elölrõl (azonban a használatban levõ
azonosítók sosem kerülnek újra
kiosztásra). A TT oszlopban
láthatjuk azt a terminált, amelyen az adott program
éppen fut, de ezt pillanatnyilag akár nyugodtan
figyelmen kívül is hagyhatjuk. A
STAT oszlopban a program
állapotát kapjuk meg, de szintén
átugorható. A TIME a program
processzoron eltöltött idejét mutatja — ez
általában nem arra utal, hogy mennyi ideje fut maga
a program, hiszen a legtöbb programnak meglehetõsen
sokat kell várakoznia egyáltalán mielõtt
a processzorra lenne szüksége. Végezetül
a COMMAND oszlopban olvashatjuk azt a
parancsot, amellyel a programot elindították.A &man.ps.1; számos különféle
beállítást ismer az általa
megjelenített információk
megválasztásához. Az egyik ilyen
leghasznosabb beállítás az
auxww: az
segítségével az összes futó
programot láthatjuk, nem csak a sajátjainkat; az
megadásával
láthatóvá válik a folyamat
tulajdonosának a felhasználói neve, valamint
a memóriahasználata is; az
megmutatja a démon (avagy háttér)folyamatok
adatait is és a hatására
pedig a &man.ps.1; az összes folyamathoz a teljes parancssort
kiírja, még akkor is, ha nem férne ki a
képernyõre.A &man.top.1; kimenete is hasonló. Ha
elindítjuk, általában ezt
láthatjuk:&prompt.user; top
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
47 processes: 1 running, 46 sleeping
CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
...A kimenet két részre osztható. A
fejlécben (vagyis az elsõ öt sorban)
látható az utoljára futtatott program
azonosítója (PID), a rendszer átlagos
terhelése (load average, amellyel mérjük, hogy
a rendszerünk mennyire lefoglalt), a rendszer
indítása óta eltelt idõ (up mint uptime)
és a jelenlegi idõ. A fejlécben még
megtalálhatjuk azt is, mennyi program fut (esetünkben
ez most 47), mennyi memóriát és
lapozóállományt használnak és
mennyi idõt tölt a rendszer a processzor
különbözõ állapotaiban.A fejléc alatt a &man.ps.1; kimenetéhez
hasonló módon oszlopokba rendezve találhatjuk
meg a folyamatok adatait: az azonosítóikat, a
tulajdonosaik nevét, a felhasznált
processzoridõt, a futtatott parancsot. A &man.top.1;
alapértelmezés szerint mutatja a futó
programok által használt memória
mennyiségét is: ez további két
oszlopra oszlik, ahol az egyikben a teljes
memóriafoglalást (SIZE), a másikban pedig az
jelen pillanatban aktívan használt
memóriát (RES) láthatjuk. A
példában látható is, hogy a
&netscape; (navigator-linu)
alkalmazásnak majdnem 30 MB-nyi
memóriára van szüksége, de ebbõl
aktívan csak 9 MB-ot használ.A &man.top.1; a kijelzést minden második
másodpercben magától frissíti, de ez
az kapcsolóval
állítható.Démonok, jelzések és a futó
programok leállításaAmikor elindítunk egy szövegszerkesztõt, nem
sok gondunk akad az irányításával,
könnyen utasíthatjuk az állományok
betöltésére és így tovább.
Mindezt azért tehetjük meg, mert a
szövegszerkesztõ erre lehetõséget
biztosít és mivel a szövegszerkesztõ egy
terminálhoz kapcsolódik.
Egyes programok azonban nem úgy lettek kialakítva,
hogy állandóan a felhasználó
utasításaira támaszkodjanak, ezért az
elsõ adandó alkalommal lekapcsolódnak a
terminálról. Például egy webszerver
egész nap csak webes kéréseket
válaszol meg, és általában semmi
szüksége nincs a felhasználók
utasításaira. A szerverek között
leveleket közvetítõ programok is ugyanezen
osztályba tartoznak.Ezeket a programokat
démononoknak hívjuk. A
démonok a görög mitológiában
jelentek meg: sem a jót, sem pedig a gonoszt nem
képviselték, egyszerû apró
szellemecskék voltak, akik az emberiség javát
szolgálták, pontosan úgy, ahogy ma teszik azt
a különféle web- és levelezõ
szerverek. Ezért is ábrázolták
sokáig a BSD kabalafiguráját is egy
tornacipõs, vasvillás vidám
démonként.A démonként futó programok nevéhez
a hagyományok szerint hozzá szokták
fûzni a d betût. A
BIND a Berkeley Internet Name Domain
(névfeloldó) szolgáltatása, azonban a
hozzátartozó program neve named,
az Apache webszerver programját
httpd-nek nevezik, a sornyomtató
kezeléséért felelõs démon pedig
az lpd és így tovább. Ez
csupán egy hagyomány, megszokás, nem pedig
egy kõbe vésett szabály: például
a Sendmail levelezõ
démonának neve sendmail és
nem pedig maild.Néha azért szükségünk lehet
arra, hogy felvegyük valahogy a kapcsolatot a
démonként futó programokkal is. Ennek egyik
lehetséges módja a
jelzésések (signal)
küldése (de alapvetõen bármilyen
futó programnak küldhetünk). Több
különféle jelzés küldhetõ
— egyeseknek közülük
megkülönböztetett jelentése van,
másokat magukat az alkalmazások értelmeznek,
amelyrõl a dokumentációjukban
tájékozódhatunk. A &man.kill.1; vagy
&man.kill.2; paranccsal más tulajdonában levõ
futó programoknak nem tudunk jelzéseket
küldeni, ami alól egyedüli kivétel a
root felhasználó.Bizonyos esetekben a &os; maga is küld néha
jelzéseket. Amikor egy alkalmazást rosszul
programoznak le és megpróbál egy
számára tiltott memóriaterülethez
hozzáférni, a &os; küld neki egy
Segmentation Violation
(SIGSEGV, szegmentálási hiba)
jelzést. Ha egy alkalmazás az &man.alarm.3;
rendszerhíváson keresztül kér egy adott
idõ utáni bekövetkezõ
értesítést, akkor kap errõl egy Alarm
(SIGALRM) jelzést és így
tovább.A folyamatok leállítására
két jelzés használható: a
SIGTERM (befejeztetés) és a
SIGKILL (leállítás). A
SIGTERM a folyamatok
leállításának illedelmes módja,
mivel ekkor a futó program képes
elkapni ezt a jelzést és
észrevenni, hogy le akarjuk állítani.
Ilyenkor a leállítás elõtt
lehetõsége van szabályosan lezárni a
naplóit és általánosságban
véve befejezni mindent, amit éppen csinál.
Elõfordulhat azonban, hogy a folyamatok figyelmen
kívül hagyják a SIGTERM
jelzést, ha például éppen egy
félbeszakíthatatlan feladat közepén
tartanak.A SIGKILL jelzést azonban egyetlen
futó program sem hagyhatja figyelmen kívül. Ez
lenne a Nem érdekel, mivel foglalkozol, azonnal
hagyd abba! jelzés. Amikor
SIGKILL jelzést küldünk egy
folyamatnak, a &os; leállítja a folyamatot ott
és ahol tart
Ez azért nem teljesen igaz. Van
néhány olyan tevékenység, ami nem
szakítható meg. Ilyen például az,
amikor a program egy másik
számítógépen
található állományt
próbál olvasni, miközben valamilyen ok
(kikapcsolás, hálózati hiba)
folytán elveszti vele a kapcsolatot. Ekkor a program
futása megszakíthatatlan. Majd
amikor a program feladja a próbálkozást
(általában két perc után), akkor
következik be a tényleges
leállítása..További használható jelzések:
SIGHUP, SIGUSR1 és
SIGUSR2. Ezek általános
célú jelzések, amelyeket az
alkalmazások eltérõ módokon kezelnek
le.Tegyük fel, hogy megváltoztattuk a
webszerverünk beállításait
tartalmazó állományt — valamilyen
módon szeretnénk tudatni a szerverrel, hogy olvassa
be újra a beállításait. Ezt
megtehetjük úgy, hogy leállítjuk
és újraindítjuk a httpd
démont, de ezzel kiesést okozhatunk a szerver
mûködésében, amit viszont nem
engedhetünk meg. A legtöbb démont úgy
készítették el, hogy a
SIGHUP jelzés hatására
olvassa be újra a beállításait
tartalmazó állományt. Így a
httpd leállítása és
újraindítása helyett egyszerûen
elegendõ egy SIGHUP jelzés
küldése. Mivel azonban ez nem
szabványosított, a különbözõ
démonok ezt a jelzést
többféleképpen is értelmezhetik.
Ezért a használata elõtt ennek
mindenképpen járjunk utána a
kérdéses démon
dokumentációjában.A jelzéseket a &man.kill.1; paranccsal tudjuk
elküldeni, ahogy ezt a következõ
példában is láthatjuk.Jelzés küldése egy futó
programnakEbben a példában megmutatjuk, hogyan lehet
jelzést küldeni az &man.inetd.8; démonnak.
Az inetd a beállításait
az /etc/inetd.conf
állományban tárolja, és az
inetd a SIGHUP
jelzés hatására képes
újraolvasni ezt.Keressük meg annak a folyamatnak az
azonosítóját, amelynek a jelzést
kívánjuk küldeni. Ezt a &man.ps.1;
és a &man.grep.1; használatával
tehetjük meg. A &man.grep.1; parancs
segítségével más parancsok
kimenetében tudunk megkeresni egy általunk
megadott szöveget. Ezt a parancsot átlagos
felhasználóként futtatjuk, azonban az
&man.inetd.8; démont a root
birtokolja, ezért az &man.ps.1; használata
során meg kell adnunk az
kapcsolókat is.&prompt.user; ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wWInnen kiderül, hogy az &man.inetd.8;
azonosítója 198. Elõfordulhat, hogy az
eredményben maga a grep inetd
parancs is megjelenik. Ez a &man.ps.1;
listázási módszere miatt következhet
be.A jelzés elküldésére
használjuk a &man.kill.1; parancsot. Mivel az
&man.inetd.8; démont a root
felhasználó futtatja, ehhez elõször a
&man.su.1; parancs kiadásával nekünk is
root felhasználóvá
(rendszeradminisztrátorrá) kell
válnunk.&prompt.user; suPassword:
&prompt.root; /bin/kill -s HUP 198Ahogy az a legtöbb &unix; esetén elfogadott, a
sikeres végrehajtás esetén a &man.kill.1;
sem válaszol semmit. Amikor viszont nem egy
saját programunknak akarunk jelzést
küldeni, akkor a kill:
PID: Operation not
permitted (a mûvelet nem
engedélyezett) hibaüzenetet látunk. Ha
véletlenül elgépeljük volna a
futó program azonosítóját, akkor a
küldendõ jelzés nem a megfelelõ
folyamatnál fog kikötni (ami nem éppen
jó), vagy ha szerencsénk van, akkor a
jelzést egy éppen használaton
kívüli azonosítóra
küldtük. Az utóbbi esetben a
következõ láthatjuk: kill:
PID: No such process
(nincs ilyen folyamat).Miért /bin/kill?A legtöbb parancsértelmezõ
beépítetten tartalmazza a saját
kill parancsát, tehát
ilyenkor közvetlenül maga a
parancsértelmezõ küldi a jelzést,
nem pedig a /bin/kill programon
keresztül. Ez gyakran a javunkra válhat,
azonban a küldhetõ jelzések megadása
parancsértelmezõnként eltérhet.
Így, ahelyett, hogy egyenként ismernünk
kellene mindegyiket, sokkal egyszerûbb
közvetlenül a /bin/kill
... parancsot
használni.A többi jelzés küldése is nagyon
hasonló módon történik, hiszen
elegendõ csupán a TERM vagy a
KILL behelyettesítése a parancs
megfelelõ helyére.A rendszerünkben óvatosan bánjunk a
futó programok
leállítgatásával, és
legyünk különös tekintettel az 1-es
azonosítóval rendelkezõ, speciális
feladattal bíró &man.init.8; folyamatra. A
/bin/kill -s KILL 1 parancs
kiadásával ugyanis gyorsan le tudjuk
állítani a rendszerünket.
Mielõtt egy &man.kill.1; parancsot
lezárnánk az Enter
billentyûvel, mindig
gyõzõdjünk meg róla, hogy valóban
tényleg a jó paramétereket adtuk
meg.ParancsértelmezõkparancsértelmezõkparancssorA &os;-ben hétköznapi munkánk legnagyobb
részét a parancsértelmezõknek (shell)
nevezett parancssoros felületen tudjuk elvégezni. A
parancsértelmezõ fõ feladata a
beérkezõ parancsok elfogadása és
végrehajtatása. Sok parancsértelmezõ
ezenfelül rendelkezik beépített
funkciókkal is, amelyek olyan hétköznapi
feladatokban igyekeznek segíteni, mint
például az állományok kezelése
és tömeges elérése reguláris
kifejezések használatával, a parancssor
szerkesztése, parancsok makrózása és a
környezeti változók használata. A &os;
alapból tartalmaz néhány
parancsértelmezõt, ilyen például az
sh, a Bourne Shell, és a
tcsh, a továbbfejlesztett C-shell. Sok
más parancsértelmezõ, mint
például a zsh és
bash is elérhetõ a &os;
Portgyûjteményébõl.De melyik parancsértelmezõt is válasszuk?
Ez igazából ízlés kérdése.
Ha inkább C programozók vagyunk, akkor
valószínûleg egy olyan C-szerû shelllel
tudunk kényelmesen dolgozni, amilyen például
a tcsh. Ha viszont egy linuxos rendszert
használtunk korábban vagy éppen még
soha nem használtunk volna a &unix; parancssorát,
érdemes a bash-sel
megpróbálkoznunk. A lényeg az, hogy minden
parancsértelmezõnek vannak olyan egyedi
jellemezõi, amiért használatóak vagy
éppen nem használatóak a munkánkban,
ezért magunknak kell kiválasztani a nekünk
megfelelõt.A shellek egyik legáltalánosabb jellemzõje
az állományok neveinek
kiegészítése. Miután
begépeljük egy parancs vagy
állománynév elsõ néhány
karakterét, a Tab billentyû
lenyomásával megkérhetjük a
parancsértelmezõt, hogy magától
egészítse ki (találja ki) a
fennmaradó részt. Nézzük erre egy
példát. Tegyük fel, hogy van két
állományunk, izemize és
ize.mize, és szeretnénk
letörölni az ize.mize nevût.
Ehhez a következõt kell begépelnünk:
rm
iz[Tab].[Tab].Erre a parancsértelmezõ a következõ
parancsot írja ki: rm
ize[SIPOLÁS].mize.A [SIPOLÁS] itt a konzol sípjára
vonatkozik, amellyel jelzi, hogy nem tudta teljesen
kiegészíteni az állomány nevét,
mivel egynél több is megfelel a megadott alaknak. Az
izemize és az
ize.mize is egyaránt az
iz elõtaggal kezdõdik, azonban
ebbõl a parancsértelmezõ csak az
ize elõtagot tudta kikövetkeztetni.
Ha most begépelünk még egy .
karaktert és újra megnyomjuk a Tab
billentyût, a parancsértelmezõ ezúttal
képes lesz az állomány teljes nevét
megállapítani.környezeti
változókA parancsértelmezõk másik
általános jellemzõje a környezeti
változók használata. A környezeti
változók lényegében a
parancsértelmezõ környezetéhez
tárolt név-érték párok. Ezt a
környezetet látja minden olyan program, amit a
parancsértelmezõbõl meghívunk, és
ezért tartalmazni is szokott sok ilyen
beállítást. Íme a leggyakoribb
környezeti változók felsorolása
és rövid leírása:környezeti
változókVáltozóLeírásUSERA bejelentkezett felhasználó
neve.PATHVesszõvel elválasztott
könyvtárak, ahol a parancsértelmezõ
a végrehajtható állományokat
keresi.DISPLAYAz aktuálisan használt X11
megjelenítõ hálózati neve,
amennyiben létezik ilyen.SHELLA használt
parancsértelmezõ.TERMA felhasználó által
használt terminál típusa. Ebbõl
a terminál képességeit lehet
megállapítani.TERMCAPA terminálok
adatbázisából származó,
különbözõ
terminálfunkciókhoz tartozó
helyettesítõ (escape) kódok.OSTYPEAz operációs rendszer típusa,
például &os;.MACHTYPEA rendszer alatt futó gép
architektúrája.EDITORA felhasználó által
használt szövegszerkesztõ.PAGERA felhasználó által
lapozásra használt program.MANPATHVesszõvel elválasztott könyvtárak,
ahol a parancsértelmezõ a man
oldalakat keresi.Bourne-féle
parancsértelmezõkA környezeti változók
beállítása
parancsértelmezõként valamennyire eltér.
Például egy C-stílusú
parancsértelmezõ, mint például a
tcsh vagy a csh, a
setenv paranccsal állítja a
környezeti változókat. A Bourne-féle
parancsértelmezõk, mint például az
sh vagy a bash, az
export parancsot használják a
környezeti változók
beállítására. Például a
csh vagy a tcsh
használata során a következõképpen
tudjuk be- vagy átállítani a
EDITOR környezeti változó
értékét
/usr/local/bin/emacs-re:&prompt.user; setenv EDITOR /usr/local/bin/emacsUgyanez a Bourne-féle
parancsértelmezõkben:&prompt.user; export EDITOR="/usr/local/bin/emacs"A legtöbb parancsértelmezõben a nevük
elõtt szerepeltetett $ jel
segítségével kérhetjük a
környezeti változók
értékének
behelyettesítését a parancssorba. Ennek
megfelelõen az echo $TERM parancs
kiíratja a TERM változó
aktuális értékét, mivel ebbe a
parancsértelmezõ már az echo
meghívása elõtt behelyettesíti a
TERM értékét.A parancsértelmezõk számos speciális
karaktert, ún. metakarakteret az adatok különleges
reprezentációjaként kezelnek.
Köztük a leggyakrabban használt a
*, amely tetszõleges számú
karaktert helyettesít egy állomány
nevében. Az ilyen metakarakterek
segítségével tudunk egyszerre több
állományt is megnevezni. Például ha
begépeljük az echo * parancsot,
akkor majdnem ugyanazt kapjuk eredményül, mintha az
ls parancsot adtuk volna ki, hiszen a
parancsértelmezõ ilyenkor veszi az összes
* metakarakterre illeszkedõ
állományt, és a kiíratásukhoz
pedig rendre behelyettesíti ezeket a parancssorba az
echo paramétereként.Ha nem szeretnénk, hogy a parancsértelmezõ
értelmezze a speciális karaktereket, akkor egy
backslash (visszaper) (\)
karaktert eléjük téve mindezt
megakadályozhatjuk. Az echo $TERM
parancs ugyebár kiíratja a terminálra
vonatkozó környezeti változó
beállítását, azonban a echo
\$TERM változatlanul kiírja a
$TERM szöveget.A parancsértelmezõnk
megváltoztatásaA parancsértelmezõnk legegyszerûbben a
chsh parancs használatával
változtatható meg. A chsh
kiadása után elindítja az
EDITOR környezeti változónak
megfelelõ szövegszerkesztõt, ha nem lenne ilyen,
akkor alapértelmezés szerint a
vi hívódik meg. Az így
megnyitott állományban változtassuk meg
kedvünk szerint a Shell: kezdetû
sort.A chsh parancsnak megadhatjuk az
opciót is, amin keresztül
szövegszerkesztõ használata nélkül
be tudjuk állítani a
parancsértelmezõt. Például ha a
parancsértelmezõnket a bash-re
akarjuk lecserélni, akkor ezt írjuk be:&prompt.user; chsh -s /usr/local/bin/bashA használni kívánt
parancsértelmezõnek szerepelnie
kell az /etc/shells
állományban. Ha a kiválasztott
parancsértelmezõt a Portgyûjteménybõl
telepítettük fel, akkor az már minden
bizonnyal bekerült oda. Ha viszont saját magunk
raktuk volna fel, akkor ide is fel kell vennünk.Például ha a bash-t
manuálisan telepítettük és
másoltuk a /usr/local/bin
könyvtárba, akkor így kell
eljárnunk:&prompt.root; echo "/usr/local/bin/bash" >> /etc/shellsMajd próbálkozzunk újra a
chsh paranccsal.SzövegszerkesztõkszövegszerkesztõkszerkesztõkA &os; beállításának nagy
része szöveges állományok
szerkesztésével történik. Emiatt sosem
árt legalább egy szövegszerkesztõt
ismernünk. A &os; alaprendszerében, valamint a
Portgyûjteményben is találhatunk
néhányat belõlük.eeszerkesztõkeeA legegyszerûbben megtanulható és
legkönnyedebb szövegszerkesztõt
ee-nek, avagy easy
editornak hívják. Az
ee indításához
írjuk be az ee
állománynév
parancsot, ahol az
állománynév lesz a
szerkesztendõ állomány neve. Így
például az /etc/rc.conf
állomány szerkesztéséhez
gépeljük be az ee /etc/rc.conf
parancsot. Miután elindult az ee, az
összes szerkesztéshez használható
parancsa megjelenik a képernyõ felsõ
részében. Itt a kalap
(^) karakter a Ctrl
billentyû lenyomására utal, így
tehát a ^e jelölés a
Ctrle
billentyûkombinációt jelenti. Ha ki akarunk
lépni az ee-bõl, nyomjuk le
az Esc billentyût, majd a felbukkanó
menübõl válasszuk a szerkesztõ
elhagyását (leave editor). Ha az
állományt módosítottuk,
kilépés elõtt még a
szövegszerkesztõ rákérdez, hogy mentse-e a
változtatásainkat.viszerkesztõkviemacsszerkesztõkemacsA &os; nagyobb tudású
szövegszerkesztõket, mint például a
vi-t, is tartalmaz az alaprendszer
részeként, miközben a többi, mint
például az Emacs vagy a
vim a Portgyûjtemény
részeként (editors/emacs és editors/vim) érhetõ el.
Ezek a szerkesztõk sokkal több lehetõséget
és erõt képviselnek, amiért
cserébe viszont valamivel nehezebb megtanulni a
használatukat. Ha viszont rengeteg szöveget akarunk
majd szerkeszteni, akkor egy vim vagy
Emacs használatának
megismerésével sok idõt
megspórolhatunk.Számos alkalmazás, amely
állományokat akar módosítani vagy
szöveges bemenetre van szüksége, automatikusan
szövegszerkesztõt nyit meg. Ezt az
EDITOR környezeti változó
beállításával tudjuk
meghatározni. Errõl részletesebben a parancsértelmezõknél
olvashatunk.Eszközök és
eszközleírókAz eszköz elnevezést leginkább a
rendszerben folyó, hardverrel kapcsolatos
tevékenységek kapcsán
használják lemezekre, nyomtatókra, grafikus
kártyákra és billentyûzetekre. A &os;
indulása során többnyire azt láthatjuk,
hogy milyen eszközöket sikerült felismernie.
Ezeket a rendszerindításkor megjelenõ
üzeneteket a /var/run/dmesg.boot
állományban nézhetjük meg
újra.Például a acd0 az
elsõ IDE CD-meghajtót, míg a
kbd0 a billentyûzetet
képviseli.A &unix; operációs rendszerben a legtöbb
eszközt a /dev könyvtárban
található, eszközleíróknak
(device node) nevezett speciális állományokon
keresztül érhetjük el.Eszközleírók
létrehozásaAmikor egy újfajta eszközt adunk hozzá a
rendszerhez vagy csak annak egy új
példányát, mindig létre kell hoznunk
hozzá egy új
eszközleírót.DEVFS (DEVice File System,
Eszköz-állományrendszer)Az eszközöket tartalmazó
állományrendszer, avagy
DEVFS, ad hozzáférést
a rendszermag által ismert eszközök neveihez
a globális állományrendszer nevein
keresztül. Így ahelyett, hogy magunknak kellene
létrehoznunk és módosítanunk az
eszközleírókat, a DEVFS
erre a célra fenntart egy külön
állományrendszert.A &man.devfs.5; man oldalon olvashatunk bõvebben
errõl.Bináris formátumokAnnak megértéséhez, hogy a &os;
miért az &man.elf.5; formátumot használja,
elõször is tisztában kell lennünk a &unix;
típusú rendszerekben használt
végrehajtható állományok három
uralkodó formátumával:&man.a.out.5;A legõsibb és egyben a
klasszikus &unix;-os
tárgykódformátum. Egy tömör
és rövidke fejlécet használ, aminek
az elején a formátum
leírására szolgáló
bûvös szám
található (errõl bõvebben lásd
&man.a.out.5;). Három betöltött szegmenst
tartalmaz: .text, .data és .bss, valamint egy
szimbólumokat és karakterláncokat
tároló táblát.COFFAz SVR3 tárgykódformátuma. A
fejléc itt már tartalmaz egy table nevû
szegmenst is, tehát a .text, .data és .bss
szegmensekhez hasonlóan ebbõl is többet tud
tárolni.&man.elf.5;A COFF után következõ
formátum, amelyben több szegmens is
megtalálható, valamint létezik 32 bites
és 64 bites változatban is. Egyetlen
hátránya van: az ELF
tervezése során
rendszerarchitektúránként csupán
egyetlen ABI-t (bináris alkalmazói
felületet) feltételeztek. Ez azonban
meglehetõsen helytelen, mivel még a kereskedelmi
SYSV világában (ahol már legalább
három ABI található: SVR4, Solaris
és SCO) sem állja meg a helyét.A &os; ezt a problémát a
megbélyegzés (branding)
segítségével próbálja
megoldani, aminek révén el tudunk látni
egy ismert ELF állományt a
futtatásához megfelelõ ABI-ra
vonatkozó információkkal. Errõl
részletesebben a &man.brandelf.1; oldalán
tájékozódhatunk.A &os; a klasszikusok
táborából indult, ezért kezdetben az
&man.a.out.5; formátumot használta, mivel ez a
technológia a BSD kiadások számos
generációjában megméretettett
és bevált, egészen a 3.X ág
elindulásáig. Habár már jóval
elõtte lehetett fordítani és futtatni
natív ELF binárisokat (és
rendszermagokat) a &os; rendszereken, a &os; kezdetben
óckodott váltani az alapértelmezés
szerinti ELF formátumra. De vajon
miért? Nos, a linuxos tábor már megtette a
maga fájdalmas váltását az
ELF formátummal kapcsolatban, és
gyorsan maguk mögött hagyták a
a.out formátumot a rugalmatlan,
ugrótáblákra alapozott oszott
könyvtár-kezelési mechanizmusai miatt, amivel
viszont megnehezítették a
különbözõ fejlesztõk és
gyártók számára az osztott
könyvtárak létrehozását. Mivel
az ELF formátumhoz rendelkezésre
álló eszközök megoldást
kínáltak az osztott könyvtárak
gondjaira, és mivel általánosan
elfogadták a jövõbe vezetõ
útként, a &os; is felvállalta az
átállással kapcsolatos
költségeket és végrehajtotta azt. A
&os; az osztott könyvtárakat leginkább a Sun
&sunos; rendszeréhez hasonlóan kezeli, ami egy
nagyon könnyen használható
megoldás.De miért van ilyen sok különbözõ
formátum?A ködös és sötét múltban
egyszerûbb hardverek voltak. Ezek az egyszerû hardverek
egyszerû, kicsi rendszereket támogattak. Az
a.out tökéletesen megfelelõ
volt egy ilyen egyszerû rendszer (egy PDP-11)
binárisainak tárolására. Ahogy az
emberek nekiláttak átültetni errõl az
egyszerû rendszerrõl a &unix;-ot más
rendszerekre, az a.out formátumot
továbbra is megtartották, mivel a &unix; kezdeti,
Motorola 68k-ra, VAXenre készített
átírataihoz is elegendõ volt.Ezután néhány éles
elméjû hardvermérnök kitalálta,
hogy ha rá tudnák kényszeríteni a
programokat egy-két ügyetlen trükkre, akkor a
terveken meg tudnának spórolni néhány
logikai kaput és ezzel processzor is gyorsabban tudna
futni. Miközben az a.out
formátumot ilyen hardverre (amit manapság
RISC-nek hívnak) is szerették
volna áthozni, kiderült, hogy ebben az esetben szinte
használhatatlan. Ezért az
a.out formátum által
felkínáltnál nagyobb
teljesítmény elérése
érdekében nekiláttak számos más
formátumot is kidolgozni. Ekkor jöttek létre a
COFF, ECOFF és
más hasonló formátumok, amelyek
elõbb-utóbb korlátokba ütköztek
még mielõtt a történelem
megállapodott volna az ELF
formátumnál.Ráadásul a programok méretei egyre
inkább kezdtek nõni, miközben a lemezek (valamint
a fizikai memória) továbbra is viszonylag kicsik
maradtak, ezért megszületett az osztott
könyvtár ötlete és a virtuális
memóriát kezelõ alrendszer is sokat finomodott.
Mivel ezek a különbözõ fejlesztések a
a.out formátumra épültek,
annak használatósága a beletömött
módosítások számával
együtt romlott. Emellett az emberek még szerettek
volna betölteni különféle dolgokat
futási idõben dinamikusan, vagy éppen a
memória és a lapozóállomány
megspórolásához kipucolni a programjaik egyes
részeit az inicializáló
kódrészletek lefutása után. A
programozási nyelvek is fejlõdtek, és az
emberek a fõprogram futása elõtt is akartak
kódot futtatni. Az a.out
formátum rengeteg apró foltozáson esett
keresztül, amelyek egy ideig még tudták is
tartani magukat. Azonban egy idõ után már az
a.out formátum egyre növekvõ
teljesítménycsökkenés nélkül
már nem volt képes állni a sarat.
Habár az ELF megszûntette a
fennálló problémák jelentõs
részét, egyúttal megnehezítette egy
alapvetõen mûködõ rendszer
leváltását. Ezért az
ELF formátumnak meg kellett
várnia azt a pillanatot, amikorra az
a.out használata már
kényelmetlenné vált.Azonban ahogy múlt az idõ, az
eszközökbõl, amelyekbõl a &os; a
fordításához szükséges
eszközöket származtatta (különösen
az assembler és a betöltõ),létrejött
két párhuzamos fejlesztési fa. A &os;-fa
kiegészült az osztott könyvtárak
támogatásával és hibákat
javított, miközben a GNU-fa alkotói, akik
eredetileg készítették ezeket a programokat,
újraírták az eszközeiket és a
keresztfordításhoz egyszerûbb
támogatást készítettek,
cserélhetõvé tették a
különbözõ formátumokat és
így tovább. Sokan akartak &os;-re
keresztfordítani, azonban nem volt
szerencséjük, mert a &os; régebbi
forrásait az as és
ld már nem emésztette
meg. Az új GNU eszköztár (a
binutils) viszont ismeri már a
keresztfordítást, az ELF
formátumot, az oszott könyvtárakat, a C++
kiterjesztéseit stb. Idõközben egyre több
gyártó ELF
formátumú binárisokat adott ki, és
jó érzés volt ezeket &os;-n is
futtatni.Az ELF sokkal kifejezõbb az
a.out formátumnál és
jóval több bõvítési
lehetõséget enged az alaprendszerben. Az
ELF formátumhoz tartozó
eszközöt jobban karbantartják és
támogatja a keresztfordítást, ami viszont
sokaknak fontos. Az ELF talán
némileg lassabb, mint az a.out,
azonban ez nehezen mérhetõ le. Számos
részletben eltérnek ugyan, például
hogyan képeznek le lapokat, hogyan kezelik az
inicializáló kódot stb., de ezek egyike sem
igazán fontos. Idõvel az a.out
támogatása ki fog kerülni a
GENERIC rendszermagból, és
végül majd teljesen eltávolításra
kerül, ahogy a régi a.out
formátumú programok szépen lassan
kifutnak.Bõvebben olvashatunk...Man oldalakman oldalakA &os; legátfogóbb
dokumentációja a benne található man
oldalak összesége. A rendszerben
található szinte majdnem mindegyik programhoz
létezik egy rövid használati
útmutató, amely bemutatja az adott program
alapvetõ mûködését és a
különbözõ beállításait.
Ezek a leírások a man parancs
segítségével jeleníthetõek meg.
A man parancs használata
egyszerû:&prompt.user; man parancsahol a parancs a megismerni
kívánt parancsra utal. Például ha
az ls parancsról szeretnénk
többet megtudni, írjuk be:&prompt.user; man lsAz elérhetõ használati
útmutatókat a következõ számozott
szakaszokra osztották:Felhasználói parancsokRendszerhívások és
hibakódokA C függvénykönyvtár
függvényeiEszközmeghajtókÁllományformátumokJátékok és egyéb
szórakoztató alkalmazásokEgyéb információkRendszerkarbantartási és
-mûködtetési parancsokRendszermagfejlesztõk számáraBizonyos esetekben ugyanaz a téma az
útmutatók több szakaszában is
elérhetõ. Például létezik
chmod felhasználói parancs
és a chmod()
rendszerhívás. Ilyenkor a man
parancsnak meg tudjuk adni pontosan, melyik szakaszra is vagyunk
kíváncsiak:&prompt.user; man 1 chmodEnnek hatására a chmod
felhasználói parancshoz tartozó oldal
jelenik meg. Írott formában a használati
útmutatók különbözõ
szakaszaira hagyományosan a név után
zárójelbe tett számmal hivatkoznak,
így a &man.chmod.1; a chmod
felhasználói parancs és a &man.chmod.2; a
rendszerhívás.Ez a módszer remekül mûködik abban az
esetben, amikor ismerjük a parancs nevét, azonban
mit tegyünk akkor, ha nem is emlékszünk a
nevére? A man parancs a
segítségével
paraméterezhetõ úgy is, hogy a parancsok
leírásai között keressen valamilyen
kulcsszó mentén:&prompt.user; man -k mailEzzel a paranccsal megkapjuk azon parancsok
listáját, amelyek leírásában
szerepel a mail kulcsszó. Ez
egyébként mûködésében
teljesen megegyezik a apropos
paranccsal.Szóval szeretnénk megtudni, hogy a
/usr/bin könyvtárban levõ
parancsok pontosan mit is csinálnak? Ehhez írjuk
be:&prompt.user; cd /usr/bin
&prompt.user; man -f *vagy&prompt.user; cd /usr/bin
&prompt.user; whatis *ami ugyanezt teszi.A GNU info állományokSzabad Szoftver
AlapítványA &os;-ben megtalálható a Szabad Szofver
Alapítvány (Free Software Foundation, FSF)
által készített számos
alkalmazás. Ezek a programok a szokványos man
oldalakon kívül még altalában
tartalmaznak egy infonak nevezett, sokkal
részletesebb hipertext alapú leírást
is, amelyeket az info paranccsal, vagy ha van
fenn emacs, akkor annak az info
módjában tudjuk megjeleníteni.Az &man.info.1; parancs használatához ennyit
kell beírnunk:&prompt.user; infoItt a h lenyomásával kapunk
egy rövid bemutatkozást. A parancsok rövid
listáját a ? billentyû
hozza elõ.
diff --git a/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml
index 6b048cd29e..ce826fed69 100644
--- a/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml
@@ -1,4595 +1,4595 @@
JimMockÁtdolgozta, átrendezte és egyes
részeit aktualizálta: JordanHubbardEredetileg írta: Poul-HenningKampJohnPolstraNikClaytonA &os; frissítése és frissen
tartásaÁttekintésA &os; a kiadások közt is állandó
fejlõdésben van. Vannak felhasználók,
akik a hivatalosan kiadott változatokat
használják, és vannak, akik szeretik
folyamatosan nyomonkövetni a fejlesztéseket. Emellett
viszont a hivatalos kiadások esetében
szükség lehet bizonyos biztonsági
frissítések és kritikus
javítások alkalmazására.
Függetlenül a pillanatnyilag használt
változattól, a &os; alaprendszerében
megtalálható minden olyan eszköz, amellyel
könnyedén frissíteni tudunk a
különbözõ verziók között.
Ebben a fejezetben segítünk dönteni a
fejlesztõi változat és a kiadások
használata között. Továbbá
megismerhetjük a rendszer frissítéséhez
használható alapvetõ
eszközöket.A fejezet elolvasása során
megismerjük:milyen segédprogramokkal tudjuk frissíteni
az alaprendszert és a Portgyûjteményt;hogyan tartsuk naprakészen rendszerünket a
freebsd-update,
CVSup,
CVS vagy
CTM
használatával;hogyan vessük össze a telepített
rendszerünk aktuális állapotát egy
ismert eredeti változattal;hogyan frissítsük a
dokumentációt CVSup
vagy dokumentációs portok
segítségével.a két fejlesztõi ág, a &os.stable;
és a &os.current; közti
különbséget;a make buildworld (stb.)
segítségével hogyan fordítsuk
és telepítsük újra az egész
alaprendszert.A fejezet elolvasásához ajánlott:a hálózati kapcsolatunk helyes
beállítása ();a külsõ szoftverek
telepítésének ismerete ().A fejezetben a &os; forrásainak
frissítését a cvsup
parancs segítségével fogjuk
elvégezni. Ehhez telepítsük a net/cvsup-without-gui portot vagy
csomagot, vagy ha már a &os; 6.2-RELEASE vagy
késõbbi változatával
rendelkezünk, akkor elegendõ csak az alaprendszer
részeként elérhetõ &man.csup.1;
programot használnunk.TomRhodesÍrta: ColinPercivalA megíráshoz felhasznált
jegyzeteket készítette: A &os; frissítésefrissítés és frissen tartásfreebsd-updatefrissítés és frissen tartásA biztonsági javítások
telepítése minden
számítógépes szoftver,
különösen az operációs rendszerek
számára lényeges mozzanat. Nagyon
hosszú ideig ez a &os; esetében nem volt
könnyen megoldható: a javításokat
közvetlenül a forráskódon kellett
elvégezni, ezekbõl újrafordítani a
rendszert, majd telepíteni.Ez a nehézség mostanra viszont már
elhárult, mivel a &os; legfrissebb verziói már
tartalmaznak egy freebsd-update nevû
segédprogramot, amellyel mindez leegyszerûsödik.
Ez a program két külön funkciót lát
el. Elõször is, lehetõvé teszi, hogy a &os;
alaprendszer újrafordítása és
-telepítése nélkül javítsunk
biztonsági és egyéb apró
hibákat, valamint másodsorban támogatja a
kisebb és nagyobb verziójú kiadások
közti váltást.Ezek a bináris frissítések azonban csak
a &os; biztonsági csapata által is felügyelt
architektúrák és kiadások
esetén érhetõek el. Emellett bizonyos
lehetõségek használatához,
például a &os; verziói közti
átállás támogatásához
a &man.freebsd-update.8; legújabb változata,
valamint minimum a &os; 6.3 kiadása
szükségeltetik. Ezért ne felejtsük el
alaposan átolvasni a legújabb
kiadásokról szóló
bejelentéseket mielõtt frissítenénk
rájuk, mivel ezzel kapcsolatban fontos
információkat tartalmazhatnak. Az említett
bejelentések a címen
érhetõek el.Ha a crontab már hivatkozik a
freebsd-update programra, akkor a most
következõ mûvelet elkezdése elõtt
tiltsuk le.A konfigurációs állományokElõfordulhat, hogy változtatni akarunk valamin
a frissítési folyamatban és ezért
szeretnénk módosítani a programhoz
tartozó konfigurációs
állományt. Az opciók részletes
ismertetéssel rendelkeznek, habár
némelyiknél még további
magyarázat kellhet:# Az alaprendszerben frissíteni kívánt komponensek
Components src world kernelEzzel a paraméterrel határozhatjuk meg, hogy a
&os; mely részei kerüljenek frissítésre.
Alapértelmezés szerint a program frissíti a
forrásokat, a teljes alaprendszert és a
rendszermagot. Komponensként a
telepítésnél választható
elemeket adhatjuk meg, például "world/games"
hozzáadásakor a games kategória elemei is
folyamatosan frissülni fognak. Az "src/bin"
megadásakor pedig az src/bin könyvtár
tartalma frissül.Ezt a beállítást a legjobb meghagyni az
alapértelmezett értéken, mivel a
további elemek megadásánál
egyenként fel kell sorolni a frissítendõ
komponenseket. Ha itt viszont kifelejtünk valamit, akkor
könnyen megeshet, hogy a források és a
binárisok verziója elcsúszik
egymástól.# Az IgnorePaths beállítás után megadott szövegre illeszkedõ összes
# bejegyzés frissítése kimarad
IgnorePathsEnnél a beállításnál
azokat a könyvtárakat kell megadnunk, amelyeket
(és tartalmukat) ki szeretnénk hagyni a
frissítés során. Ezek lehetnek
például a /bin vagy az /sbin. Így meg tudjuk
akadályozni, hogy freebsd-update
esetleg felülírjon valamilyen helyi
változtatást a rendszerünkben.# Az UpdateIfUnmodified beállítás után megadott elérési útvonalakon csak
# a felhasználó által még nem módosított állományok fognak frissülni
# (hacsak a módosításokat össze nem fésüljük, lásd lentebb)
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profileA megadott könyvtárakban csak azokat a
konfigurációs állományokat fogja
frissíteni, amelyeket nem változtattuk meg.
Amennyiben bármelyikük eltér az eredetileg
frissítendõ változattól, azt a program
nem módosítja. Létezik egy másik
hasonló beállítás, a
KeepModifiedMetadata, amely
hatására a freebsd-update az
összefésülés során elmenti a
változtatásokat.# A MergeChanges beállításnál szereplõ állományok helyi módosításait
# automatikusan összefésüljük a &os; újabb verziójára frissítése közben
MergeChanges /etc/ /var/named/etc/Itt azokat a könyvtárakat adhatjuk meg,
amelyekben a freebsd-update
számára engedélyezzük a
konfigurációs állományok új
verziójának
összefésülését a jelenlegi
állapottal. Az összefésülés
lényegében a &man.mergemaster.8;
használatánál már megszokott
módon, &man.diff.1; formátumban érkezõ
módosítások sorozata alapján
történik. Ekkor egy szövegszerkesztõ
segítségével felügyelhetjük az
összefésülés menetét vagy
megállíthatjuk a freebsd-update
futását. Ha kétségeink
adódnak, akkor egyszerûen mentsük le az
/etc
könyvtárat és fogadjuk el mindegyik
összefésülés eredményét.
A mergemaster
mûködésérõl a ad részletesebb
tájékoztatást.# A &os; frissítésekor ezt a könyvtárat fogja a program használni a
# letöltött módosítások és az egyéb ideiglenes állományok tárolására
# WorkDir /var/db/freebsd-updateAz itt megadott könyvtárba fognak kerülni
az elvégzendõ módosítások
és az egyéb ideiglenesen keletkezõ
állományok. A verziók közti
váltás során ebben a
könyvtárban ajánlott legalább
1 GB szabad tárterületnek lennie.# A kiadások közti váltás során a Components beállításnál megadott
# elemek kerüljenek csak frissítésre (StrictComponents yes), vagy a
# program próbálja meg magától kitalálni, hogy milyen komponesek
# *lehetnek* fenn a rendszeren és azokat frissítse (StrictComponents
# no)?
# StrictComponents noHa ennél a beállításnál a
yes értéket adjuk meg, akkor a
freebsd-update feltételezni fogja,
hogy a Components opciónál
felsoroltunk minden frissítendõ komponenst és
nem próbál meg mást is
megváltoztatni. Ilyenkor tehát a
freebsd-update tulajdonképpen
egyedül csak a Components által
meghatározott elemekhez tartozó
állományokat fogja frissíteni.Biztonsági javításokA biztonsági javítások mindig egy
távoli gépen tárolódnak, a
következõ parancsok használatával
tölthetõek le és
telepíthetõek:&prompt.root; freebsd-update fetch
&prompt.root; freebsd-update installAmennyiben a rendszermagot is érintik
javítások, úgy a rendszert a mûvelet
befejezõdésével újra kell
indítanunk. Ha minden a megfelelõ módon
történt, akkor a rendszerünk már
tartalmazni fogja a korábban letöltött
és telepített javításokat, és
a freebsd-update akár
beállítható egy naponta
végrehajtandó &man.cron.8; feladatnak. Ehhez
mindössze a következõ bejegyzést kell
elhelyeznünk az /etc/crontab
állományban:@daily root freebsd-update cronA bejegyzés szerint naponta egyszer le fog futni a
freebsd-update. Ilyenkor, vagyis a
paraméter megadásakor a
freebsd-update csak ellenõrzi, hogy
vannak-e telepítendõ frissítések. Ha
talál, akkor automatikusan letölti ezeket a lemezre,
de nem telepíti. Helyette levélben
értesíti a root
felhasználót, aki ezután bármikor
manuálisan kérheti a
telepítést.Probléma esetén az alábbi paranccsal
megkérhetjük a freebsd-update
programot a legutóbb telepített
módosítások
visszavonására:&prompt.root; freebsd-update rollbackHa ez a visszavonás a rendszermagra vagy annak
moduljaira is vonatkozott, akkor a rendszert újra kell
indítanunk a parancs futásának
befejezõdésével. A &os; csak ilyenkor
képes betölteni az új binárisokat
betölteni a memóriába.A freebsd-update
önmagától csak a GENERIC
típusú rendszermagokat képes
frissíteni. Ha saját rendszermagot
használunk, akkor azt a rendszer többi
komponensének frissítését
követõen újra kell fordítanunk és
telepítenünk. A freebsd-update
azonban még akkor is érzekelni és
frissíteni fogja a GENERIC
rendszermagot (amennyiben az létezik), ha az éppen
nem az aktuális(an futó) rendszermag.Mindig érdemes tartani egy másolatot a
GENERIC rendszermagról a /boot/GENERIC
könyvtárban. Rengeteg
különbözõ probléma
felderítésében tud segíteni,
illetve ez a szakaszban
leírt freebsd-update programmal
végzett frissítéseknél is hasznos
lehet.Hacsak nem változtatjuk meg az
/etc/freebsd-update.conf
állományt, a freebsd-update a
rendszermag forrásait is frissíti a többivel
együtt. A saját rendszermag
újrafordítása és
telepítése ezután a már a megszokott
módon elvégezhetõ.A freebsd-update által
terjesztett frissítések nem mindig érintik
a rendszermagot. Ha a rendszermag forrásai nem
változnak egy freebsd-update
install parancs kiadása során, akkor
nem kötelezõ újrafordítani a
saját rendszermagot. A
freebsd-update viszont mindig
módosítani fogja a
/usr/src/sys/conf/newvers.sh
állományt. Itt az aktuális
hibajavítás sorszáma szerepel (amelyet a
-p (mint patch
level elõtaggal kapcsolnak a rendszer
verziójához, és a uname
-r paranccsal lehet lekérdezni). Ennek
megfelelõen tehát a saját rendszermag
újrafordítása után, még ha
semmi más nem is változott, a &man.uname.1;
képes pontosan jelezni a rendszerhez
készült hibajavítás
sorszámát. Ez különösen fontos
több rendszer karbantartása során, mivel
így könnyen és gyorsan
tájékozódhatunk azok
naprakészségérõl.Váltás kisebb és nagyobb
verziók közöttVerziók közti váltás során
a külsõ alkalmazások
mûkõdését akadályozó
régi tárgykódok és
függvénykönyvtárak törlõdni
fognak. Ezért javasoljuk, hogy vagy
töröljük le az összes portot és
telepítsük újra, vagy az alaprendszer
frissítése után hozzuk ezeket is
naprakész állapotba a ports-mgmt/portupgrade
segédprogram segítségével.
Elõször minden bizonnyal szeretnék
kipróbálni a frissítést, ezt a
következõ paranccsal tehetjük meg:&prompt.root; portupgrade -afEzzel gondoskodunk róla, hogy a minden a
megfelelõen telepítõdjön újra. Ha a
BATCH környezeti változót a
yes értékre
állítjuk, akkor a folyamat során
megjelenõ összes kérdésre automatikusan
a yes választ adjuk, ezáltal
önállósítani tudjuk.Ha saját rendszermagot használunk, akkor
ennél valamivel azért több feladatunk van.
Szükségünk lesz a GENERIC
rendszermagot egy példányára, amelyet
másoljunk a /boot/GENERIC
könyvtárba. Amennyiben nincs
GENERIC típusú rendszermag a
rendszerünkön, a következõ módok
valamelyikén keresztül tudunk szerezni:Ha a saját rendszermagot még csak egyszer
fordítottuk, akkor a /boot/kernel.old
könyvtárban még
megtalálható a GENERIC.
Ezt nevezzük át egyszerûen /boot/GENERIC
könyvtárra.Ha fizikailag hozzá tudunk férni az
érintett géphez, akkor a
GENERIC egy
példányát akár CD-rõl is
átmásolhatjuk. Helyezzük be a
telepítõlemezt és adjuk ki a
következõ parancsokat:&prompt.root; mount /cdrom
&prompt.root; cd /cdrom/X.Y-RELEASE/kernels
&prompt.root; ./install.sh GENERICItt a X.Y-RELEASE
könyvtár nevében
értelemszerûen helyettesítsük be az
általunk használt változatot. A
GENERIC rendszermag ekkor
alapértelmezés szerint a /boot/GENERIC
könyvtárba kerül.Ha az elõbbiek közül egyik sem
lehetséges, akkor a GENERIC
rendszermagot közvetlenül akár
forrásból is lefordíthatjuk és
telepíthetjük:&prompt.root; cd /usr/src
&prompt.root; env DESTDIR=/boot/GENERIC make kernel
&prompt.root; mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
&prompt.root; rm -rf /boot/GENERIC/bootA freebsd-update akkor fogja ezt
GENERIC rendszermagként
felismerni, ha a hozzátartozó
konfigurációs állományt nem
módosítjuk. Továbbá javasoljuk,
hogy semmilyen speciális
beállítást ne alkalmazzunk a
fordítás során (érdemes
üresen hagyni ehhez az
/etc/make.conf
állományt).Nem kötelezõ újraindítani a
rendszert a GENERIC rendszermaggal.A freebsd-update képes
frissíteni rendszerünket egy adott kiadásra.
Például a következõ paraméterek
megadásával válthatunk a &os; 6.4
használatára:&prompt.root; freebsd-update -r 6.4-RELEASE upgradeA parancs elindulása után nem sokkal, a
váltáshoz szükséges
információk
összegyûjtéséhez a
freebsd-update elemzi a
konfigurációs állományában
megadott beállításokat és a rendszer
jelenleg használt verzióját. A
képernyõn ekkor sorban megjelennek a program
részérõl érzékelt és nem
érzékelt komponensek. Mint például
ahogy itt látható:Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 6.3-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? yEkkor a freebsd-update
megpróbálja letölteni a verziók
közti váltáshoz szükséges
összes állományt. Bizonyos esetekben
kérdésekkel fordul a felhasználó
felé arra vonatkozóan, hogy miket
telepítsen fel vagy mit csináljon.A saját rendszermag használatakor az
iménti lépés valamilyen ehhez hasonló
figyelmeztetést fog adni:WARNING: This system is running a "SAJÁT RENDSZERMAG" kernel, which is not a
kernel configuration distributed as part of FreeBSD 6.3-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"Ez a figyelmeztetés most nyugodtan figyelmen
kívül hagyható. A folyamat során a
frissített GENERIC rendszermagot
fogjuk használni.A javítások letöltését
követõen megkezdõdik a
telepítésük. A váltás ezen
lépése az adott gép aktuális
terhelésétõl és
sebességétõl függõen
változó hosszúságú lehet.
Ezután a konfigurációs
állományok összefésülése
zajlik le — itt általában a emberi
felügyeletre is szükség van az
állományok
összefésülésének
irányításához, amelynek folyamatosan
láthatóak az eredményei. A
meghiúsult vagy kihagyott
összefésülések a teljes
frissítési folyamat leállását
vonják maguk után. Az /etc könyvtárban
tárolt fontosabb állományokról, mint
például a master.passwd vagy
group javasolt elõzetesen
biztonsági mentést készíteni
és késõbb kézzel hozzájuk adni
a változtatásaikat.A rendszerben ekkor még nem lesz jelen semmilyen
konkrét változás, az összes
említett javítás és
összefésülés egy külön
könyvtárban történik. A
telepített javításokat és az
összefésült konfigurációs
állományokat a folyamat végén
magának a felhasználónak kell
véglegesíteni.A frissítési eljárás
végén a következõ parancs
kiadásával tudjuk ténylegesen
érvényesíteni az eddig elvégzett
módosításokat:&prompt.root; freebsd-update installElõször mindig a rendszermag és a
hozzátartozó modulok cserélõdnek le.
Ahogy ez végrehajtódott, újra kell
indítanunk a rendszert. Ha saját rendszermagot
használunk, akkor a &man.nextboot.8; parancs
segítségével állítsuk be a
következõ rendszerindítás során
betöltendõ rendszermagot a /boot/GENERIC
könyvtárban levõre (ezt
frissítettük):&prompt.root; nextboot -k GENERICMielõtt újraindítanánk a
gépünket a GENERIC
rendszermaggal, gyõzõdjünk meg róla,
hogy szerepel benne minden olyan meghajtó, amely
elengedhetetlen a rendszer hiánytalan
indításához (és képes lesz
újra csatlakozni a hálózathoz, ha
éppen távolról adminisztráljuk).
Ez különösen olyan esetben fontos, amikor a
saját rendszermagunkban beépítetten
szerepeltek bizonyos modulok. Ilyenkor a
GENERIC rendszermag használatakor
ezeket a /boot/loader.conf
állományon keresztül töltethetjük
be ideiglenesen. A frissítés
befejezéséig érdemes viszont minden nem
létfontosságú szolgáltatást
leállítani, leválasztani lemezeket
és hálózati megosztásokat
stb.A rendszerünk most már
újraindítható a frissített
rendszermaggal:&prompt.root; shutdown -r nowA rendszer sikeres újraindulása után
ismét el kell indítanunk a
freebsd-update programot, amely
korábban már elmentette a frissítés
állapotát, emiatt a legutóbbi
pontról fog folytatódni, illetve törli az
osztott könyvtárak és
tárgykódok régebbi változatait.
Innen az alábbi paranccsal léphetünk
tovább:&prompt.root; freebsd-update installA függvénykönyvtárak
verziói közti eltérések
mértékétõl függõen
elképzelhetõ, hogy a telepítés az
említett három fázis helyett
kettõben történik.Most pedig újra kell fordítanunk vagy
telepítenünk az összes általunk
korábban használt külsõ
alkalmazást. Erre azért van
szükségünk, mert bizonyos alkalmazások a
verziók közti váltás során
törölt programkönyvtáraktól
függtek. Ennek automatizálásában a
ports-mgmt/portupgrade lesz
segítségünkre. Az alkalmazások
frissítésének
elindításához a következõ
parancsokat használjuk:&prompt.root; portupgrade -f ruby
&prompt.root; rm /var/db/pkg/pkgdb.db
&prompt.root; portupgrade -f ruby18-bdb
&prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
&prompt.root; portupgrade -afA parancsok lefutását követõen a
freebsd-update utolsó
hívásával zárjuk le a
frissítést. Ezzel a paranccsal tudunk
tehát pontot tenni a frissítési
procedúra végére:&prompt.root; freebsd-update installHa a GENERIC rendszermagot csak
átmenetileg használtuk, akkor most már a
megszokott módon fordíthatunk és
telepíthetünk magunk egy saját
rendszermagot.Indítsuk újra a rendszert a &os;
frissített változatával. A folyamat ezzel
véget ért.Rendszerek állapotainak
összehasonlításaA freebsd-update ragyogóan
felhasználható a &os; egy telepített
változatának és egy általunk
garantáltan megbízható
példányának
összevetésére. Ilyenkor a rendszerhez
tartozó segédprogramokat,
programkönyvtárakat és
konfigurációs állományokat
ellenõriztethetjük le. Az
összehasonlítást ezzel a paranccsal
kezdhetjük meg:&prompt.root; freebsd-update IDS >> eredmeny.idkHabár a parancs neve IDS
(intrusion detection system), nem helyettesít semmilyen
olyan behatolásjelzõ megoldást, mint
amilyen például a security/snort. Mivel a
freebsd-update adatokat tárol a
lemezen, teljesen kézenfekvõ a
hamisítás lehetõsége. Míg
ennek eshetõsége adott mértékben
visszaszorítható a
kern.securelevel
csökkentésével és a
freebsd-update által használt
adatok írásvédett
állományrendszerre helyezésével,
erre a problémára az ideális
megoldást mégis egy teljes biztonságban
tudható referencia rendszer jelentheti. Ennek
tárolására alkalmas lehet
például egy DVD vagy egy
külsõ USB-egység.A parancs kiadása után megkezdõdik a
rendszer vizsgálata, és az ellenõrzés
során folyamatosan jelennek meg az
átvizsgált állományok a
hozzájuk tartozó ismert és
kiszámított &man.sha256.1;-kódjukkal
együtt. Mivel a képernyõn
túlságosan gyorsan elúsznának az
eredmények, ezért ezeket egy
eredmeny.idk nevû
állományba mentjük a késõbbi
elemzésekhez.Az így keletkezõ állomány sorai
ugyan meglehetõsen hosszúak, de szerencsére
viszonylag könnyen értelmezhetõek.
Például az adott kiadásban szereplõ
állományoktól eltérõeket ezzel
a paranccsal kérdezhetjük le:&prompt.root; cat eredmeny.idk | awk '{ print $1 }' | more
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.confA példában most csak az elsõ
néhány állományt hagytuk meg, gyakran
tapasztalhatunk viszont ennél többet. Ezek
közül bizonyos állományok
értelemszerûen eltérnek, mint itt
például az /etc/passwd, mert
idõközben új felhasználókat
adtunk a rendszerhez. Máskor egyéb
állományok, például modulok nevei is
felbukkanhatnak, mert tegyük fel, hogy a
freebsd-update már frissítette
ezeket. Ha ki szeretnénk zárni valamilyen
állományokat vagy könyvtárakat az
ellenõrzésbõl, egyszerûen csak soroljuk
fel ezeket az /etc/freebsd-update.conf
állományban megjelenõ
IDSIgnorePaths
beállításnál.A korábban tárgyaltaktól
függetlenül ez a rendszer alkalmas bonyolultabb
frissítési folyamatok
kisegítésére is.TomRhodesÍrta: ColinPercivalA megíráshoz felhasznált
jegyzeteket készítette: A Portgyûjtemény frissítése a
Portsnap használatávalfrissítés és frissen tartásPortsnapfrissítés és frissen tartásA &os; alaprendszer a Portgyûjtemény
frissítéséhez is tartalmaz egy &man.portsnap.8;
elnevezésû segédprogramot. Ez a program
elindítása után csatlakozik egy távoli
géphez, ellenõrzi a biztonsági kulcsát
és letölti a portok legfrissebb változatait. A
biztonsági kulcs feladata a frissítés
közben letöltött állományok
sértetlenségének szavatolása, ezzel
gondoskodik róla, hogy az adatok átvitelük
közben nem változtak meg. A
Portgyûjtemény legújabb
változatát így érhetjük
el:&prompt.root; portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 3 metadata files... done.
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
Applying patches... done.
Fetching 133 new ports or files... done.A példában látható, hogy a
&man.portsnap.8; eltéréseket talált a helyi
és a távoli rendszerekben fellelhetõ portok
között, majd azokat ellenõrizte. Emellett az is
megfigyelhetõ, hogy korábban már futtatuk a
programot, mivel ha most indítottuk volna az elsõ
alkalommal, akkor egyszerûen letöltötte volna a
teljes Portgyûjteményt.Ahogy a &man.portsnap.8; sikeresen befejezi az imént
kiadott fetch mûvelet
végrehajtását, a helyi rendszeren már
telepítésre készen fog várakozni a
Portgyûjtemény és az hozzátartozó
ellenõrzött módosítások. A
tényleges telepítésüket a
következõképpen kérhetjük:
&prompt.root; portsnap extract
/usr/ports/.cvsignore
/usr/ports/CHANGES
/usr/ports/COPYRIGHT
/usr/ports/GIDs
/usr/ports/KNOBS
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/Makefile
/usr/ports/Mk/bsd.apache.mk
/usr/ports/Mk/bsd.autotools.mk
/usr/ports/Mk/bsd.cmake.mk
...Ezzel lezárult a portok frissítése,
innentõl már az aktualizált
Portgyûjtemény felhasználásával
tetszõlegesen telepíthetõek vagy
frissíthetõek az alkalmazások.Az elõbb említett mûveleteket így
tudjuk egyetlen parancsba foglalni:&prompt.root; portsnap fetch updateA dokumentáció frissítésefrissítés és frissen
tartásdokumentációfrissítés és frissen tartásAz alaprendszer és a Portgyûjtemény mellett
a dokumentáció is a &os; operációs
rendszer szerves részét képezi. Noha a &os;
dokumentációjának legfrissebb
változata folyamatosan elérhetõ a &os;
honlapjáról, egyes
felhasználók ezt csak lassan vagy nem képesek
folyamatosan elérni. Szerencsére egy helyi
másolat megfelelõ karbantartásával az
egyes kiadásokhoz tartozó dokumentáció
is frissíthetõ.A dokumentáció frissítése CVSup
használatávalA &os; telepített
dokumentációjának forrásai az
alaprendszeréhez hasonlóan (lásd ) a CVSup
segítségével frissíthetõek.
Ebben a szakaszban megismerhetjük:hogyan telepítsük a
dokumentáció
elõállításához
szükséges eszközöket, amelyekkel a
forrásokból újra tudjuk
generálni a &os;
dokumentációját;hogyan töltsük le a dokumentáció
forrását CVSup
segítségével a /usr/doc
könyvtárba;a dokumentáció
elõállításához alkalmazott
rendszer milyen beállításokkal
rendelkezik, vagyis hogyan korlátozzuk a
generálást bizonyos nyelvekre vagy
formátumokra.A CVSup és a dokumentációs
eszközök telepítéseViszonylag sokféle eszközre lesz
szükségünk, ha a &os;
dokumentációját a forrásokból
akarjuk elõállítani. Ezek az
segédprogramok nem részei a &os;
alaprendszerének, mivel alapvetõen nagyon sok helyet
foglalnak el, és leginkább olyan &os;
felhasználók számára fontosak, akik
folyamatosan a dokumentációval dolgoznak vagy
gyakran frissítik azt forrásból.A feladathoz szükséges összes eszköz
elérhetõ a Portgyûjteménybõl. Ebben
a &os; Dokumentációs Projekt
összeállított egy textproc/docproj nevû portot,
amellyel az említett programok
telepítését és
frissítését igyekezték
megkönnyíteni.Ha nem tartunk igényt a dokumentáció
&postscript; vagy PDF változatára, akkor ehelyett
inkább érdemes megfontolnunk a textproc/docproj-nojadetex port
telepítését. Ebben a változatban
a teTeX betûszedõ
rendszer kivételével az összes
segédprogram megtalálható. Mivel a
teTeX önmagában nagyon
sok segédeszköz telepítését
jelenti, ezért amennyiben a PDF változat
ténylegesen nem szükséges, érdemes
eltekinteni a telepítésétõl.A CVSup
telepítésével kapcsolatban pedig
részletesebb információkat a CVSup használatával
foglalkozó szakaszban olvashatunk.A dokumentáció forrásának
frissítéseA /usr/share/examples/cvsup/doc-supfile
konfigurációs állomány
segítségével a
CVSup képes letölteni a
dokumentáció
forrásállományainak legfrissebb
példányait. Itt a frissítést
alapértelmezés szerint egy nem létezõ
géptõl fogjuk kérni (mivel ezt
kötelezõ kitölteni), azonban a &man.cvsup.1;
programnak egy parancssori paraméter
segítségével megadhatjuk melyik
CVSup szerverrõl töltse le
a forrásokat:&prompt.root; cvsup -h cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfileNe felejtsük el a
cvsup.FreeBSD.org helyére
beírni a hozzánk földrajzilag
legközelebb elhelyezkedõ
CVSup szervert. Ezek teljes
listáját a
tartalmazza.Egy ideig eltarthat, amíg elõször
letöltjük a forrásokat. Várjuk meg
türelmesen, amíg befejezõdik a
mûvelet.Késõbb a forrásokat ugyanezzel a
paranccsal tudjuk frissíteni. A
CVSup ugyanis mindig csak a
legutóbbi futtatása óta történt
változásokat tölti le, ezért
késõbb már ez a lépés
jelentõsen felgyorsulhat.A források letöltése után a
dokumentációt például az ekkor
keletkezett /usr/doc
könyvtárban található
Makefile használatával
állíthatjuk elõ. Tehát miután
az /etc/make.conf állományban
beállítottuk a SUP_UPDATE,
SUPHOST és
DOCSUPFILE változókat, le
tudjuk futtatni a következõ parancsot:&prompt.root; cd /usr/doc
&prompt.root; make updateAz elõbb említett &man.make.1; változók jellemzõ értékei:SUP_UPDATE= yes
SUPHOST?= cvsup.freebsd.org
DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfileMivel a SUPHOST és a
DOCSUPFILE változók
értékét a ?=
szimbólummal állítottuk be,
lehetõségünk van a parancssorból
ezeknek más értékeket adni. Az
/etc/make.conf állományba
általában így érdemes felvenni a
változókat, így nem kell minden
alkalommal módosítani, amikor valamilyen
új beállítást akarunk
kipróbálni.A dokumentáció különbözõ
beállításaiA &os; dokumentációjához
tartozó, frissítést és
elõállítást végzõ
rendszernek van néhány olyan
beállítása, amelyekkel
kérhetjük kizárólag csak a
dokumentáció egyes részeinek
frissítését vagy bizonyos kimeneti
formátumok használatát. Ezek vagy
globálisan az /etc/make.conf
állományban, vagy pedig a parancssorból, a
&man.make.1; program paramétereként
adhatóak meg.Ízelítõül néhány
közülük:DOC_LANGAz elõállítandó és
telepítendõ nyelvû
dokumentáció felsorolása, tehát
például csak az angol
dokumentáció esetén ez
en_US.ISO8859-1.FORMATSAz elõállítandó
dokumentáció kimeneti formátumainak
felsorolása. Itt pillanatnyilag
értékként a html,
html-split, txt,
ps, pdf és
rtf jelenhet meg.SUPHOSTA frissítéshez használt
CVSup szerver
hálózati neve.DOCDIRAz elkészült dokumentáció
telepítésének helye. Ez
alapértelmezés szerint a /usr/share/doc.A folyamathoz kapcsolódóan további
rendszerszintû &man.make.1; változókról
a &man.make.conf.5; man oldalon olvashatunk.A &os; dokumentációjának
elõállításáért
felelõs rendszerben használható &man.make.1;
további változók
bemutatásával kapcsolatban pedig olvassuk el az
A &os;
Dokumentációs Projekt irányelvei
kezdõknek címû könyvet.A &os; dokumentációjának
telepítése forrásbólMiután sikerült letöltenünk a
/usr/doc
könyvtárba a dokumentáció legfrissebb
forrásait, készen állunk a
rendszerünkön telepített példány
frissítésére.A DOCLANG értékeként
megadott nyelven készült dokumentációkat
a következõ paranccsal tudjuk
frissíteni:&prompt.root; cd /usr/doc
&prompt.root; make install cleanHa a make.conf
állományban korábban már megadtuk a
DOCSUPFILE, SUPHOST
és SUP_UPDATE változók
értékeit, akkor a telepítés
fázisa könnyedén össze is
vonatható a források
frissítésével:&prompt.root; cd /usr/doc
&prompt.root; make update install cleanHa pedig csak bizonyos nyelvekhez tartozó
dokumentációt szeretnénk frissíteni,
akkor a &man.make.1; akár a /usr/doc könyvtáron
belül az egyes nyelvekhez tartozó
alkönyvtárakon belül is
meghívható, például:&prompt.root; cd /usr/doc/en_US.ISO8859-1
&prompt.root; make update install cleanA dokumentáció formátumát a
FORMATS változó
felhasználásával tudjuk
meghatározni:&prompt.root; cd /usr/doc
&prompt.root; make FORMATS='html html-split' install cleanMarcFonvieilleA szóbanforgó megoldást
fejlesztette: A dokumentációs portok
használatafrissítés és frissen
tartásdokumentációfrissítés és frissen tartásEz elõzõ szakaszban megmutattuk hogyan lehet a
&os; dokumentációját a források
felhasználásával frissíteni. A
források használatával végzett
frissítés azonban nem minden &os; rendszer
esetében lehetséges vagy hatékony. Ha
ugyanis a dokumentációs forrásból
akarjuk elõállítani, viszonylag sok
eszköz és segédprogram, az ún.
dokumentációs
eszközök használatával kell
tisztában lennünk, valamint bizonyos
mértékig ismernünk kell a
CVS használatát, tudunk
kell kikérni a legfrissebb változatot és
elõállítatattnunk belõle a
végleges változatot. Ezért ebben a
szakaszban most szót ejtünk egy olyan
módszerrõl, ahol a &os;
dokumentációját a
Portgyûjteményen keresztül tudjuk
frissíteni, ezáltal:anélkül le tudjuk tölteni és
telepíteni a dokumentáció adott
pillanatban generált változatát, hogy a
rendszerünkön bármi további
teendõre szükség lenne (ennek
köszönhetõen nem kell
telepítenünk a dokumentációs
eszközöket);letölthetjük a dokumentáció
forrását és a Portgyûjtemény
eszközeivel elõállíthatjuk
belõle a megfelelõ változatot (ez a
források beszerzésében és
feldolgozásában segít
valamelyest).A &os; dokumentáció
frissítésének fentebb említett
módjait támogatják tehát a
dokumentációs portok,
amelyeket a &a.doceng; havi rendszerességgel tart karban.
Ezek a portok a &os; Portgyûjteményén
belül a docs nevû
virtuális kategóriában
találhatóak meg.A dokumentációs portok
fordítása és
telepítéseA dokumentáció könnyebb
elõállításához a
dokumentációs portok a Portgyûjtemény
lehetõségeit veszik igénybe.
Segítségükkel automatikussá teszik a
dokumentáció forrásának
letöltését, a &man.make.1; parancs
meghívását a megfelelõ
környezetben, beállításokkal
és parancssori paraméterekkel. Rajtuk
keresztül a dokumentáció
eltávolítása ugyanolyan egyszerûen
megtehetõ, mint akármelyik másik &os; port
vagy csomag esetében.Továbbá, amikor a
dokumentációs portokat a saját
rendszerünkön fordítjuk, a
dokumentációs
eszközök
függõségként automatikusan
települni fognak.A dokumentációs portok a következõ
módon szervezõdnek:Létezik egy ún.
fõport, a misc/freebsd-doc-en, ahol az
összes fontosabb állomány
megtalálható. Ez lényegében a
dokumentációs portok közös
õse. Alapértelmezés szerint
kizárólag csak az angol nyelvû
dokumentációt állítja
elõ.Létezik egy mindenes port, a
misc/freebsd-doc-all,
amely az összes elérhetõ nyelven
és formátumban elõállítja
a dokumentációt.Végezetül minden nyelvhez létezik
egy-egy alport, ilyen például a
magyar dokumentáció esetén a
misc/freebsd-doc-hu
port. Mindegyikük a fõporttól függ
és az adott nyelvû dokumentációt
telepítik.Az eddigi összefoglaltaknak megfelelõen a
dokumentációs portokat forrásból a
következõ paranccsal lehet telepíteni
(root
felhasználóként):&prompt.root; cd /usr/ports/misc/freebsd-doc-en
&prompt.root; make install cleanEnnek hatására elõáll és
telepítõdik a /usr/local/share/doc/freebsd
könyvtárba az angol nyelvû
dokumentáció állományokra bontott
HTML formátumban (hasonlóan a
tartalmához).Gyakori beállításokA dokumentációs portok
alapértelmezett viselkedése több
különbözõ opció
segítségével is
befolyásolható. Ezek közül most
összefoglalunk néhányat:WITH_HTMLMinden dokumentum egyetlen HTML
állományba kerüljön. A
végeredmény ekkor az adott dokumentum
típusának megfelelõen
article.html (cikk) vagy
book.html (könyv)
néven keletkezik (képekkel
együtt).WITH_PDFMinden dokumentum &adobe; Portable Document Format
típusú állományban
jön létre. Ezek az
állományok a
Ghostscript vagy más
egyéb PDF nézegetõkkel
nyithatóak meg. Ekkor a
dokumentáció konkrét
típusától függõen az
állományok
article.pdf (cikk) vagy
book.pdf (könyv)
néven állítódnak
elõ.DOCBASEA dokumentáció
telepítésének helye.
Alapértelmezés szerint ez a /usr/local/share/doc/freebsd
könyvtár.Ügyeljünk arra, hogy a
telepítés alapértelmezett
célkönyvtára eltér a
CVSup
módszerétõl. Ugyanis mivel
ilyenkor egy portot telepítünk, a
tartalma alapértelmezés szerint a
/usr/local
könyvtáron belülre kerül.
Ez azonban a PREFIX
változó
átállításával
tetszõleges
megváltoztatható.Az elõbbieket most egy rövid
példán keresztül összefoglaljuk. A
következõ paranccsal tudjuk tehát a magyar
nyelvû dokumentáció Portable Document
Format változatát telepíteni:&prompt.root; cd /usr/ports/misc/freebsd-doc-hu
&prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install cleanA dokumentációs csomagok
használataA dokumentációs portok elõzõ
szakaszban bemutatott forrásból
telepítésével kapcsolatban már
említettük, hogy szükséges
hozzá a dokumentációs eszközök
telepítése, valamint némi szabad
tárterület. Ha a dokumentációs
eszközök telepítéséhez nem
elengedõek a rendelkezésre álló
erõforrásaink vagy a források
feldolgozása túlságosan sokat foglalna a
rendszerünkön, akkor lehetõségünk
van a dokumentációs portok elõre
lefordított, csomagolt változatát
használni.A &a.doceng; minden hónapban
elõkészíti a &os; dokumentációs
csomagok legfrissebb változatát. Az így
karbantartott bináris csomagok azután
tetszõlegesen használhatóak a
szabványos csomagkezelõ eszközökkel,
mint amilyen például a &man.pkg.add.1;,
&man.pkg.delete.1; és így tovább.A bináris csomagok használata
esetén a &os; dokumentációja az adott
nyelvhez az összes
elérhetõ formátumban
telepítésre kerül.Például az alábbi paranccsal a magyar
nyelvû dokumentációhoz tartozó
legfrissebb bináris csomagot tudjuk
telepíteni:&prompt.root; pkg_add -r hu-freebsd-docA csomagok elnevezése eltér a
hozzátartozó port nevétõl. Alakja a
következõ:
nyelv-freebsd-doc,
ahol a nyelv az adott nyelv
rövid kódja, vagyis a magyar esetén a
hu, illetve az egyszerûsített
kínai esetén a
zh_ch.A dokumentációs portok
frissítéseAz elõzetesen telepített
dokumentációs portok bármilyen portok
frissítésére alkalmas eszközzel
frissíthetõek. Például a
telepített magyar nyelvû
dokumentáció a ports-mgmt/portupgrade
eszközön keresztül így
frissíthetõ csomagok
használatával:&prompt.root; portupgrade -PP hu-freebsd-docPavLucistnikA szükséges információkat
szolgáltatta: A Docsnap használatafrissítés és frissen
tartásDocsnapfrissítés és frissen tartásA Docsnap a &os;
dokumentációjának egy viszonylag gyors
és könnyû frissítésére
alkalmas &man.rsync.1; repository. Az ún.
Docsnap szerver
folyamatosan követi a dokumentáció
forrásainak változásait, majd minden
órában elõállítja a HTML
változatukat. A Docsnap
használatakor nincs szükségünk a
textproc/docproj port
telepítésére, mivel mindig csak a
már elõállított
dokumentációt frissítjük.A módszer használatához mindössze
a net/rsync port vagy csomag
telepítése szükségeltetik. Ezt a
következõ paranccsal tudjuk elvégezni:&prompt.root; pkg_add -r rsyncA Docsnap
módszerét eredetileg a /usr/share/doc
könyvtárban tárolt
dokumentáció frissítésére
fejlesztették ki, de a bemutatott példák
tetszõleges könyvtárra alkalmazhatóak.
Felhasználói könyvtárak
esetén még rendszergazdai jogosultságokra
sincs szükségünk a feladat
elvégzéséhez.A dokumentáció így az alábbi
paranccsal frissíthetõ:&prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap /usr/share/docJelenleg csak egyetlen Docsnap
szerver érhetõ el, ez a fentebb is
látható
docsnap.sk.FreeBSD.org.Közvetlenül ne használjuk a
paramétert, mert a make
installworld parancs futása közben olyan
elemeket is telepíthetett a /usr/share/doc
könyvtárba, amelyek így
törlõdnének. Helyette inkább így
használjuk a parancsot:&prompt.root; rsync -rltvz --delete docsnap.sk.FreeBSD.org::docsnap/??_??\.\* /usr/share/docHa csak a dokumentáció egy
részét akarjuk frissíteni,
például csak az angol nyelvû
változatát, akkor pedig ezt a parancsot
használjuk:&prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap/en_US.ISO8859-1 /usr/share/doc
]]>
A fejlesztõi ág követése-CURRENT-STABLEA &os;-nek két fejlesztési ága van: a
&os;.current és a &os.stable;. Ebben a szakaszban
mindegyikükrõl monduk pár szót, és
megmutatjuk, miként lehet az adott ághoz
igazítani a rendszerünk
frissítését. Elõször a
&os.current;, majd a &os.stable; változata kerül
tárgyalásra.A &os; friss változatának
használataAhogy arról már az imént is szó
esett, nem szabad elfelejtenünk, hogy a &os.current; a &os;
fejlesztésének frontvonala. Emiatt
a &os.current; használóinak szakmailag
jólképzetteknek kell lenniük, és sosem
szabad visszariadniuk a használat közben
felmerülõ rendszerszintû problémák
önálló megoldásától. Ha
korábban még nem foglalkoztunk &os;-vel,
kétszer is gondoljuk meg a
telepítését!Mi a &os.current;?pillanatképA &os.current; a &os; mögött álló
legfrissebb forráskódot képviseli. Itt
találkozhatunk különféle olyan
fejlesztés alatt álló részekkel,
kísérletezésekkel és
átmeneti megoldásokkal, amelyek nem
feltétlenül kerülnek bele a szoftver
következõ hivatalos kiadásába. Noha a
&os; fejlesztõi a &os.current;
forráskódját naponta
fordítják, adódhatnak olyan
idõszakok, amikor a források mégsem
használhatóak maradéktalanul. Az ilyen
gondokat általában a lehetõ leggyorsabban
igyekeznek megoldani, azonban attól függõen,
hogy éppen a forráskód melyik
verzióját sikerült kifogni, a &os.current;
használata kész katasztrófa vagy
akár a fejlõdésben igazi
továbblépés is lehet.Kinek van szüksége a &os.current;-re?A &os.current; használata elsõsorban az
alábbi 3 csoportot érinti:A &os; közösség azon tagjait, akik
aktívan dolgoznak a forrásfa valamelyik
részén, és mindazokat, akik
számára a legfrissebb
verzió használata feltétlen
elvárás.A &os; közösség azon tagjait, akik
aktívan tesztelnek, és a &os.current;
kordában tartásához hajlandóak
idõt áldozni a menet közben
felbukkanó problémák
megoldására. Vannak olyanok is, akik a &os;
változásaival és fejlesztési
irányával kapcsolatban
kívánnak javaslatokat tenni, melyeket
javítások és
módosítások formájában
tesznek közzé.Mindazokat, akik pusztán
kíváncsiak a fejlesztésben
zajló eseményekre, vagy hivatkozási
szándékkal töltik le a legfrissebb
forrásokat (például csak
nézegetik, de nem
futtatják). Az ilyen emberek esetenként
megjegyzéseket fûznek a fejlesztéshez
vagy kódot küldenek be.Mi nem a &os.current;?Az olyan kiadás elõtt álló
funkciók kipróbálásának
egyszerû módja, amelyekrõl hallottunk,
hogy milyen remek újdonságokat hoznak
és mi akarunk lenni az elsõk, akik ezt
használni is fogják. Ne feledjük
azonban, hogy amikor mindenki elõtt kezdünk el
használni egy újítást, mi
leszünk egyben az elsõk is, akik
szembesülnek a benne rejlõ
hibákkal.A gyors hibajavítások eszköze. A
&os.current; szinte bármelyik változata
pontosan ugyanakkora
valószínûséggel hoz
magával új hibákat, mint ahogy
eltünteti a régieket.Akármilyen értelemben is
hivatalosan támogatott.
Képességeinktõl függõen
õszintén igyekszünk a lehetõ
legtöbbet megtenni a 3
törvényes &os.current;
csoportba tartozó emberekért, azonban
egyszerûen nincs idõnk
komolyabb segítségnyújtást
adni. Ez viszont nem azt jelenti, hogy komisz és
fukar emberek vagyunk, akik utálnak segíteni
a másiknak (de máskülönben nem
tudna fejlõdni a &os;). Csupán a &os;
fejlesztése közben
fizikailag képtelenek vagyunk a naponta
érkezõ ezernyi üzenetet rendre
megválaszolni! A &os;
elõremozdítása és a
kísérleti stádiumban
álló kóddal kapcsolatos
kérdések megválaszolása
közül a fejlesztõk általában
az elsõt részesítik
elõnyben.A &os.current; használata-CURRENThasználataIratkozzunk fel az &a.current.name; és
&a.svn-src-head.name; listákra. Ez nem
egyszerûen hasznos, hanem
elengedhetetlen. Ha nem vagyunk a
&a.current.name; listán, akkor
nem fogjuk látni a rendszer aktuális
állapotára vonatkozó
megjegyzéseket, és így esetleg
feleslegesen öljük az idõnket olyan
problémák megoldásába,
amelyeket mások már korábban
megoldottak. Ami viszont ennél is fontosabb, hogy
így elszalasztjuk a rendszerünk folyamatos
életbentartására vonatkozó
létfontosságú
bejelentéseket.Az &a.svn-src-head.name; listán
láthatjuk az a forráskód egyes
változtatásaihoz tartozó
naplóbejegyzéseket, a hozzájuk
tartozó esetleges mellékhatások
ismertetésével együtt.A listákra vagy a &a.mailman.lists.link;
oldalon található többi lista
valamelyikére úgy tudunk feliratkozni, ha
rákattintunk a nevére. A további
lépésekrõl ezt követõen itt
kapunk értesítést. Amennyiben a
teljes forrásfa változásai
érdekelnek minket, javasoljuk az
&a.svn-src-all.name; lista olvasását.A tükrözések
egyikérõl töltsük le a &os;
forrását. Erre két mód is
kínálkozik:cvsupcron-CURRENTfrissítés
CVSuppalHasználjuk a cvsup programot a
/usr/share/examples/cvsup
könyvtárban található
standard-supfile
állománnyal. Ez a leginkább
ajánlott módszer, hiszen így csak
egyszer kell letölteni az egész
gyûjteményt, majd ezután már
csak a változásokat. Sokan a
cvsup parancsot a
cron parancson keresztül
adják ki, és ezzel mindig automatikusan
frissítik a forrásaikat. A cvsup
mûködését a fentebb
említett minta supfile
állomány megfelelõ
módosításával tudjuk a
saját környezetünkhöz
igazítani.Az említett
standard-supfile
állomány eredetileg nem a
&os.current;, hanem inkább a &os;
biztonsági problémáit
érintõ javítások
követésére használatos. A
&os.current; forrásainak
eléréséhez a
következõ sort kell
kicserélnünk ebben az
állományban:*default release=cvs tag=RELENG_X_YErre:*default release=cvs tag=.A tag
paramétereként megadható
egyéb címkékrõl a
kézikönyv CVS
címkék szakaszában
olvashatunk.-CURRENTfrissítés CTM-melHasználjuk a CTM
alkalmazás nyújtotta
lehetõségeket. Amennyiben nagyon rossz
netkapcsolattal rendelkezünk (drága vagy
csak levelezésre használható) a
CTM megoldást
jelenthet számunkra. Legyünk azonban
tekintettel arra, hogy helyenként
zûrös lehet a használata és
néha hibás állományokat
gyárt. Emiatt viszont csak ritkán
használják, így
elõfordulhat, hogy hosszabb ideig nem is
mûködik. A 9600 bps vagy annál
nagyobb sebességû kapcsolatok
esetén ezért inkább a
CVSup
használatát javasoljuk.Ha nem csak böngészésre, hanem
fordításra is szedjük a
forrásokat, mindig töltsük le a
&os.current; egészét,
ne csak egyes részeit. Ez azzal
magyarázandó, hogy a forráskód
bizonyos részei más helyeken
található részektõl is
függenek, és ezért az
önálló fordításuk szinte
garantáltan gondot fog okozni.-CURRENTfordításaA &os.current; lefordítása elõtt
figyelmesen olvassuk át a
/usr/src könyvtárban
található Makefile
állományt. A frissítési
folyamat részeként elõször
mindenképpen érdemes telepíteni egy új
rendszermagot és újrafordítani az
alaprendszert. Olvassuk el a &a.current;
üzeneteit és a
/usr/src/UPDATING
állományt, ahol megtalálhatjuk az
ezzel kapcsolatos legújabb
információkat, melyek egy-egy újabb
kiadás közeledtével egyre
fontosabbá válnak.Foglalkozzunk vele! Ha már a &os.current;
változatát használjuk, ne
legyünk restek véleményt
formálni róla, különösen
abban az esetben, ha
továbbfejlesztésekrõl vagy
hibákra van szó. Leginkább a
forráskóddal együtt érkezõ
javaslatoknak szoktak örülni a
fejlesztõk!A &os; stabil változatának
használataMi a &os.stable;?-STABLEA &os.stable; az a fejlesztési ág, ahonnan
az egyes kiadások származnak. Ebbe az
ágba már más ütemben kerülnek a
változások, mivel általánosan
elfogadott, hogy ide a korábban már
kipróbált módosítások
vándorolnak át a &os.current;
ágból. Ez azonban még
mindig csak egy fejlesztési ág, ami
arra utal, hogy a &os.stable; által adott pillanatban
képviselt források nem feltétlenül
felelnek meg bizonyos célokra. Ez csupán egy
újabb fejlesztési nyomvonal, nem pedig a
végfelhasználók kenyere.Kinek van szüksége a &os.stable;-re?Ha szeretnénk figyelemmel kísérni
vagy valamilyen módon kiegészíteni a &os;
fejlesztési folyamatát, különösen
a &os; következõ nagyobb
kiadását illetõen, akkor érdemes
követnünk a &os.stable; forrásait.Habár a &os.stable; ágba is bekerülnek
a biztonsági jellegû javítások,
ettõl még nem kell feltétlenül ezt
követnünk. A &os;-hez kiadott biztonsági
figyelmeztetések mindig leírják, hogyan
kell javítani a hibát az érintett
kiadásokban
Ez azért nem teljesen igaz. A régebbi
&os; kiadásokat ugyan nem támogathatjuk a
végtelenségig, de általában
így is több évig foglalkozunk
velük. A &os; régebbi kiadásaival
kapcsolatos jelenleg érvényes
biztonsági házirend részletes
bemutatása a http://www.FreeBSD.org/security/
oldalon olvasható (angolul).
, azonban az egész fejlesztési ágat
felesleges csak biztonsági okból
kifolyólag követni, mivel így olyan
változások is kerülhetnek a rendszerbe,
amire nincs szükségünk.Habár igyekszünk gondoskodni a &os.stable;
ágban található források
lefordíthatóságáról
és
mûködõképességérõl,
nem minden esetben szavatolható.
Ráadásul mivel a &os.stable; ágba
kerülõ kódokat elõször a
&os.current; ágban fejlesztik ki, és mivel a
&os.stable; felhasználói többen vannak a
&os.current; változaténál, ezért
szinte elkerülhetetlen, hogy ilyenkor a &os.stable;
változatban bizonyos hibák és
szélsõséges esetek be ne
következzenek, amelyek a &os.current; használata
során még nem buktak ki.Ezért a &os.stable; ág vakon
követését senkinek sem
ajánljuk, és különösen fontos,
hogy éles szervereken elõzetes
kimerítõ tesztelések nélkül ne
futassunk &os.stable; rendszert.Ha ehhez nem rendelkezünk elegendõ
erõforrással, akkor egyszerûen
használjuk a &os; legfrissebb kiadását,
és az egyes kiadások között pedig
bináris frissítéssel
közlekedjünk.A &os.stable; használata-STABLEhasználataIratkozzunk fel a &a.stable.name; listára.
Ezen keresztül értesülhetünk a
&os.stable; használata során
felmerülõ fordítási
függõségekrõl vagy más,
külön figyelmet igénylõ
problémákról. Gyakran ezen a
levelezési listán elmélkednek a
fejlesztõk a vitatott
javításokról vagy
frissítésekrõl, amibe a
felhasználók is beleszólhatnak, ha a
szóbanforgó változtatással
kapcsolatban bármilyen problémájuk
vagy ötletünk van.Iratkozzunk fel a követni kívánt
ághoz tartozó SVN
levelezési listára. Például
ha a 7-STABLE ág változásait
követjük, akkor az &a.svn-src-stable-7.name;
listára érdemes feliratkoznunk. Ennek
segítségével elolvashatjuk az egyes
változtatásokhoz tartozó
naplóbejegyzéseket, a rájuk
vonatkozó esetleges mellékhatások
ismertetésével együtt.Ezekre, valamint a &a.mailman.lists.link; címen
elérhetõ listák valamelyikére
úgy tudunk feliratkozni, ha a nevükre
kattintunk. A további teendõk ezután
itt jelennek meg.Amennyiben egy új rendszert akarunk
telepíteni és a &os.stable; havonta
készült pillanatképeit akarjuk rajta
futtatni, akkor errõl bõvebb
felvilágosítást a Pillanatképek
honlapján találhatunk (angolul). Emellett a
legfrissebb &os.stable; kiadást
telepíthetjük a tükrözések
valamelyikérõl is, majd innen a lentebb
található utasítások szerint
tudunk hozzáférni a &os.stable;
forráskódjának legfrissebb
változatához.Ha már fut a gépünkön a &os;
egy korábbi kiadása, és ezt akarjuk
forráson keresztül frissíteni, akkor
ezt a &os; tükrözéseivel
könnyedén megtehetjük. Két
módon is:cvsupcron-STABLEfrissítés
CVSuppalHasználjuk a cvsup programot a
/usr/share/examples/cvsup
könyvtárból származó
stable-supfile
állománnyal. Ez a leginkább
ajánlott módszer, mivel így csak
egyszer kell letölteni a teljes
gyûjteményt, utána már csak
a hozzátartozó
változtatásokra van
szükségünk. A
cvsup parancsot sokan a
cron
segítségével futtatják,
és ezzel automatikusan frissülnek a
forrásainak. A cvsup
mûködését
környezetünkhöz az elõbb
említett minta supfile
megfelelõ
módosításával tudjuk
behangolni.-STABLEfrissítés CTM-melHasználjuk a CTM programot. Ha
nincs olcsó vagy gyors internetkapcsolatunk,
akkor érdemes ezt a módszert
választani.Alapvetõen azonban ha gyorsan szeretnénk
hozzájutni a forrásokhoz és a
sávszélesség nem
meghatározó tényezõ, akkor
helyette válasszuk a cvsup vagy
az ftp használatát,
és csak minden más esetben
CTM-et.-STABLEfordításaMielõtt lefordítanánk a &os.stable;
változatát, figyelmesen olvassuk át a
/usr/src könyvtárban
levõ Makefile
állományt. Az átállási
folyamat részeként elõször minden
bizonnyal telepítenünk kell egy
új rendszermagot és újra kell
fordítanunk az alaprendszert. A &a.stable;
valamint a /usr/src/UPDATING
elolvasásából
értesülhetünk azokról az
egyéb, gyakran nagyon fontos
változásokról, melyek
elengedhetetlenek lesznek a következõ
kiadás használatához.A forrás szinkronizálásaAz internet (vagy elektronikus levelek)
használatán keresztül számos mód
kínálkozik az &os; Projekthez tartozó
források frissen tartásához egy adott, vagy
éppen az összes területen attól
függõen, hogy mik érdekelnek minket. Ehhez
elsõsorban az Anonim CVS,
CVSup és CTM szolgáltatásokat
ajánljuk fel.Habár lehetséges csupán a
forrásfa egyes részeit letölteni, a
támogatott frissítési eljárás
során azonban szükségünk lesz az
egész fa szinkronizálására és
a rendszerhez tartozó felhasználói
programok (vagyis minden olyan program, amely a
felhasználói térben fut, ilyeneket
találhatunk többek közt a
/bin és /sbin
könyvtárakban) valamint rendszermag
újrafordítására is. Ha csak a
felhasználói programok forrásait, vagy csak
a rendszermagot, esetleg csupán a forrásfa egyes
részeit frissítjük, akkor az gondokat
okozhat. Az itt elõforduló problémák
fordítási hibáktól kezdve
rendszerösszeomlásokon keresztül akár
adatvesztésbe is torkollhatnak.CVSanonimAz Anonim CVS és a
CVSup alkalmazások ún.
lehúzással frissítik a
forrásokat. A CVSup
használatakor a felhasználó (vagy a
cron szkript) meghívja a
cvsup programot, amely az
állományok aktualizálásához
felveszi a kapcsolatot egy máshol
megtalálható cvsupd szerverrel.
Az így nyert frissítések az adott pillanatig
visszemenõleg érkeznek meg, de csak akkor, ha
igényeljük ezeket. A frissítést
könnyedén le tudjuk szabályozni a
számunkra érdekes egyes állományokra
és könyvtárakra. A frissítéseket
a szerver hozza létre menet közben annak
megfelelõen, hogy milyen verziókkal rendelkezünk,
és mihez akarunk szinkronizálni. Az
Anonim CVS a
CVSupnál valamivel
egyszerûbb abban a tekintetben, hogy ez a
CVS-nek egy olyan kiterjesztése,
amely lehetõvé teszi a változtatások
közvetlen lehúzását egy távoli
CVS tárházból. Miközben a
CVSup mindezt sokkal
hatékonnyabb valósítja meg, addig az
Anonim CVS jóval könnyebben
használható.CTMVelük szemben a CTM nem
hasonlítja össze interaktívan a saját
és a központi szerveren tárolt
forrásokat és nem is húzza át ezeket.
Ehelyett egy olyan szkriptõl van szó, amely naponta
többször megvizsgálja a központi CTM
szerveren tárolt állományok a
legutóbbi futtatás óta keletkezett
változtatásait, majd az észlelt
módosulásokat betömöríti,
felcímkézi egy sorozatszámmal és
(nyomtatható ASCII formátumban)
elõkészíti ezeket az e-mailen keresztüli
küldésre. Az így létrehozott CTM
delták megérkezésük után
a &man.ctm.rmail.1; segédprogrammal kerülnek
feldolgozásra, amely magától
visszaalakítja, ellenõrzi és alkalmazza a
változtatásokat a forrásfa
felhasználó birtokában levõ
másolatára. Ez a megoldás hatékonyabb
a CVSup
használatánál, mert kisebb terhelést
jelent a szerverek számára, hiszen a
frissítéshez nem a
lehúzást, hanem a
küldést
alkalmazzák.Természetesen minden említett
eljárásnak megvannak a maga kompromisszumai. Ha
véletlenül kitöröljük a
forrásfánk egyes részeit, a
CVSup képes ezt
észrevenni és helyreállítani a
sérült részeket. A
CTM ezzel szemben ezt nem végzi
el, szóval ha (biztonsági mentés
nélkül) letöröljük a
forrásainkat, akkor az egész
szinkronizálást az elejérõl kell
kezdenünk (pontosabban a legfrissebb CVS-es
alapdeltától) és a
CTM-mel
újraépíteni az egészet, esetleg a
Anonim CVS-sel letörölni a
hibás adatokat és
újraszinkronizálni.Az alaprendszer újrafordításaaz alaprendszer
újrafordításaMiután sikerült a helyi forrásfánkat
a &os; egy nekünk szimpatikus (&os.stable;, &os.current;
és így tovább) változatához
igazítanunk, elérkezett az idõ, hogy a
segítségével újrafordítsuk az
egész rendszert.Készítsünk biztonsági
mentéstNem tudjuk eléggé
nyomatékosítani, hogy
mielõtt nekikezdenénk,
készítsünk egy biztonsági
mentést a rendszerünkrõl. Míg az
alaprendszer újrafordítása nem
túlságosan bonyolult feladat (egészen
addig, amíg a megadott utasításokat
követjük), saját magunk vagy mások
hibájából fakadóan kialakulhatnak
olyan helyzetek, amikor a rendszer nem lesz képes
elindulni.Mindenképpen gyõzödjünk meg
róla, hogy tisztességesen elvégeztük a
mentést és akad a kezünk ügyében
egy javításra felhasználható
rendszerindító floppy vagy CD.
Valószínûleg soha nem lesz ténylegesen
szükségünk rájuk, azonban jobb
félni, mint megijedni!Iratkozzunk fel a megfelelõ levelezési
listákralevelezési listaA &os.stable; és &os.current; ágak
természetüknél fogva
fejlesztés alatt állnak. A
&os; fejlesztését is emberek végzik,
ezért elõfordulhatnak benne
tévedések.Ezek a tévedések gyakran csak
ártalmatlan apróságok, amelyek
hatására kapunk például egy
ismeretlen diagnosztikai hibát. De ezzel szemben
létrejöhetnek pusztító erejû
hibák is, amelyek hatására a
rendszerünk nem lesz képes elindulni,
károsodnak az állományrendszerek (vagy
még rosszabb).Ha ilyen történik, akkor egy
felszólítást (egy
heads up témájú
üzenetet) küldenek az érintett
változatokhoz tartozó listákra, amelyben
igyekeznek kifejteni a probléma természetét
és a rendszerre mért hatását.
Miután minden rendbejött, a
probléma megoldásáról is
küldenek egy értesítést.Ha a &a.stable; vagy a &a.current; olvasása
nélkül próbáljuk meg használni
a &os.stable; és &os.current; verziókat, akkor
csak magunknak keressük a bajt.Ne használjuk a make world
parancsotRengeteg régebben készült
dokumentáció erre a feladatra a make
world parancs kiadását javasolja. Ennek
használatával azonban átlépünk
olyan fontos lépéseket, amelyek
valójában csak akkor lennének
kihagyhatóak, ha pontosan tudjuk mit csinálunk.
Ezért az esetek döntõ
többségében nem a make
world használatára van
szükségünk, hanem a most bemutatandó
eljárásra.A rendszer frissítése
dióhéjbanA frissítés megkezdése elõtt
érdemes elolvasnunk a
/usr/src/UPDATING állományt,
ahol a letöltött források
használatához elvégzendõ elõzetes
intézkedésekrõl kaphatunk hírt.
Ezután kövessük az alábbiakban
körvonalazott módszer egyes
lépéseit.Ezek a lépések feltételezik, hogy egy
korábbi &os; verziót használunk, tehát
a fordító, a rendszermag, az alaprendszer
és a konfigurációs állományok
valamelyik régebbi változatát.
Alaprendszer alatt, amelyet sokszor csak a world
néven hivatkozunk, a rendszer számára
alapvetõ fontosságú binárisokat,
programkönyvtárakat és
programfejlesztéshez szükséges egyéb
állományokat értjük. Maga a
fordítóprogram is része ennek, azonban
tartalmaz néhány speciális
megszorítást.Mindezek mellett továbbá
feltételezzük, hogy elõzetesen már
valamilyen módon letöltöttük a friss
forrásokat. Ha rendszerünkön ezt még
nem tettük volna meg, akkor a
segítségével
tájékozódhatunk részletesen
arról, hogyan tölthetjük le a legfrissebb
verziót.A rendszer forráskódon keresztüli
frissítése egy kicsivel
körülményesebb, mint amennyire elsõre
látszik. A &os; fejlesztõk az évek
során fontosnak találták, hogy a
folyamatosan felszínre bukkanó,
elkerülhetetlen függõségek
tükrében meglehetõsen drámai
módon megváltoztassák az erre javasolt
módszert. Ezért a szakasz további
részében a pillanatnyilag javasolt
frissítési megoldás nyomán fogunk
haladni.A sikeres frissítések során az
alábbi akadályokkal kell mindenképpen
szembenéznünk:A fordító régebbi változata
nem feltétlenül lesz képes
lefordítani az új rendszermagot. (Illetve a
régebbi fordítóprogramok
tartalmazhatnak hibákat.) Ezért az új
rendszermagot már a fordító új
változatával kell
elõállítanunk. Ebbõl
következik, hogy az új rendszermag
elkészítéséhez elõször
a fordítóprogram újabb
változatát kell lefordítanunk. Ez
viszont nem feltétlenül jelenti azt, hogy az
új rendszermag fordítása elõtt az
új fordítóprogramot
telepítenünk is
kellene.Az új alaprendszer esetenként bizonyos
új funkciókat igényelhet a
rendszermagtól. Ezért a frissebb alaprendszer
telepítése elõtt telepítenünk
kell a frissebb rendszermagot.Ez az elõbb említett két
akadály képzi az okát a
következõ bekezdésekben bemutatott
buildworld,
buildkernel,
installkernel,
installworld sorozatnak.
Természetesen léteznek további
egyéb indokok is, amiért még
érdemes az itt leírtak szerint
frissíteni a rendszerünket. Ezek
közül most vegyünk néhány
kevésbé nyilvánvalóbbat:A régebbi alaprendszer nem minden esetben fog
problémamentesen együttmûködni az
új rendszermaggal, ezért az alaprendszer
újabb változatát szinte azonnal az
új rendszermagot követõen kell
telepítenünk.Vannak olyan konfigurációs
változtatások, amelyeket még az
új alaprendszer telepítése
elõtt el kell végeznünk, a többi
viszont veszélyes lehet a korábbi
alaprendszerre. Ezért a
konfigurációs állományokat
általában két külön
lépésben kell frissíteni.A frissítés során
nagyrészt csak állományok
cserélõdnek el és újabbak
érkeznek, a korábbiak nem
törlõdnek. Ez bizonyos esetekben azonban
gondokat okozhat. Ennek eredményeképpen a
frissítés során
idõnként elõfordulhat, hogy magunknak
kell manuálisan némely megadott
állományokat törölnünk.
Elképzelhetõ, hogy ezt a jövõben
még majd automatizálni
fogják.Ezek a megfontolások vezettek tehát az
ismertetendõ eljárás
kialakításához. Ettõl
függetlenül adódhatnak olyan helyzetek,
amikor további lépéseket is be kell
iktatnunk, viszont az itt bemutatott folyamat egy ideje
már viszonylag elfogadottnak tekinthetõ:make buildworldElõször lefordítja az új
fordítóprogramot és
néhány hozzátartozó
eszközt, majd ennek
felhasználásával
elkészíti az alaprendszer többi
részét. Az eredmény a /usr/obj
könyvtárban keletkezik.make buildkernelEltérõen a &man.config.8; és
&man.make.1; programok korábban javasolt
alkalmazásától, ezzel a paranccsal
már a /usr/obj
könyvtárban létrehozott
új fordítót
használjuk. Ez védelmet nyújt a
fordító és rendszermag
változatai közti
eltérésekbõl fakadó
problémák ellen.make installkernelTelepíti a lemezre az új rendszermagot
és a hozzátartozó modulokat,
ezáltal lehetõvé válik a
frissített rendszermag
betöltése.Átváltás
egyfelhasználós módba.Egyfelhasználós módban a
minimálisra csökkenthetjük a futó
szoftverek frissítésébõl
adódó bonyodalmakat. Ezzel együtt
minimálissá válik a régi
alaprendszer és az új rendszermag
eltéréseibõl eredõ
problémák elõfordulása
is.mergemaster -pAz új alaprendszer
telepítéséhez elvégzi a
konfigurációs állományok
részérõl szükséges
frissítéseket. Például
felvesz még nem létezõ csoportokat
vagy felhasználókat. Ez gyakran
elengedhetetlennek bizonyulhat, mivel ha a rendszer
legutóbbi frissítése óta
újabb csoportok vagy felhasználók
kerültek be az alaprendszerbe, a
installworld csak akkor tud
hibamentesen lefutni, ha ezek már a
futásakor is elérhetõek.make installworldÁtmásolja a /usr/obj
könyvtárból a korábban
elkészített új alaprendszert.
Lefutása után már mind az új
rendszermag és az új alaprendszer a
megfelelõ helyén
található.mergemasterFeldolgozzuk a korábbi fázisból
fennmaradó konfigurációs
állományok
frissítését, mivel most már
elérhetõ az új alaprendszer.A rendszer újraindítása.Az új rendszermag és az új
konfigurációs állományokkal
futó alaprendszer használatához
teljesen újra kell indítanunk a
számítógépünket.Ha a &os; ugyanazon fejlesztési
ágán belül frissítjük a
rendszerünket, például a 7.0
kiadásról a 7.1 kiadásra, akkor
értelemszerûen nem kell az iménti
eljárás minden lépését
szorosan követni, hiszen nagyon
valószínûtlen, hogy komoly
eltérések lennének a
fordítóprogram, a rendszermag, az alaprendszer
és a konfigurációs
állományok között. Ilyenkor
akár nyugodtan kiadhatjuk a make
world parancsot, majd kérhetjük a
rendszermag fordítását és
telepítését.A fejlesztési ágak közti
váltás során azonban könnyen
érhetnek minket meglepetések, ha nem a
megadottak szerint járunk el.Egyes váltásokhoz (például
4.X és 5.0
között) további lépések
megtétele is szükséges lehet
(például adott állományok
törlése vagy átnevezése még
az installworld elõtt).
Ilyenkor mindig figyelmesen olvassuk át a
/usr/src/UPDATING
állományt, különös tekintettel
a végére, mivel gyakran ott adják meg a
konkrét verzióváltáshoz
szükséges teendõket.A szakaszban összefoglalt lépések
egyfajta evolúciós folyamat eredményei,
melynek során a fejlesztõk felismerték,
hogy nem tökéletesen kivédeni az
összes frissítéssel járó
problémát. A javasolt eljárás
remélhetõleg viszont még sokáig
érvényes marad.A &os; 3.X vagy
annál is korábbi változatok
frissítése még ennél is
több ügyességet kíván. Ha
ilyen verziót akarunk frissíteni, akkor
feltétlenül olvassuk el az
UPDATING
állományt!Röviden tehát a &os;
forráskódon keresztüli
frissítését így foglalhatjuk
össze:&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; shutdown -r nowNéhány ritka esetben a
buildworld lépés
elõtt szükségünk lehet a
mergemaster -p parancs
lefuttatására is. Errõl az
UPDATING állományból
tudakozódhatunk. Általában azonban
nyugodt szívvel kihagyhatjuk ezt a
lépést, kivéve, ha nem egy vagy több
fõbb &os; változatot átívelõ
frissítést végzünk.Miután az installkernel
sikeresen befejezte a munkáját, indítsuk
újra a számítógépet
egyfelhasználós módban (a betöltõ
parancssorában adjuk ki boot -s
parancsot). Itt futtassuk a következõket:&prompt.root; adjkerntz -i
&prompt.root; mount -a -t ufs
&prompt.root; mergemaster -p
&prompt.root; cd /usr/src
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; rebootOlvassuk el a magyarázatokatAz iménti leírt folyamat csupán
rövid összefoglalás, amivel némi
gyorstalpalást igyekeztünk adni. Az egyes
lépések megértéséhez
azonban javasolt átolvasni a most következõ
szakaszokat is, különösen abban az esetben, ha
saját rendszermagot akarunk használni.Nézzük meg a
/usr/src/UPDATING
állománytMielõtt bármihez is nekifognánk,
keressük meg a /usr/src/UPDATING (vagy
hasonló, a forráskód másolatunk
tényleges helyétõl függõ)
állományt. Ebben adják hírül
az esetlegesen felmerülõ problémákra
vonatkozó fontosabb információkat, vagy
határozzák meg az egyes lefuttatandó
parancsok pontos sorrendjét. Amennyiben az
UPDATING ellentmondana az itt
olvasottaknak, az UPDATING tartalma a
mérvadó.A korábban tárgyaltak szerint az
UPDATING elolvasása nem
helyettesíti a megfelelõ levelezési
listák figyelemmel
kísérését. Ez a két
elvárás nem kizárja, hanem
kiegészíti egymást.Ellenõrizzük az
/etc/make.conf
állománytmake.confVizsgáljuk át a
/usr/share/examples/etc/make.conf és
az /etc/make.conf
állományokat. Az elõbbi tartalmaz
néhány alapértelmezett
beállítást – ezek
javarészét megjegyzésbe rakták. Ha
használni akarjuk a rendszer lefordítása
során, tegyük bele ezeket az
/etc/make.conf állományba.
Ne felejtsük el azonban, hogy minden, amit megadunk az
/etc/make.conf állományba, a
make minden egyes elindításakor
felhasználásra kerül. Éppen
ezért olyanokat érdemes itt
beállítani, amik az egész
rendszerünket érintik.A legtöbb felhasználó
számára az /etc/make.conf
állományhoz a
/usr/share/examples/etc/make.conf
állományban található
CFLAGS és
NO_PROFILE sorokra lesz szüksége,
melyeket kivehetünk a megjegyzésbõl.A többi definíció
(COPTFLAGS, NOPORTDOCS
és így tovább)
használatáról már mindenki maga
dönt.Frissítsük az /etc
tartalmátAz /etc könyvtár
tartalmazza a rendszer beállításaival
kapcsolatos információk jelentõs
részét, valamint a rendszer indítása
során lefutó szkripteket. Egyes szkriptek a &os;
verzióiról verzióira
változnak.Némely konfigurációs
állományok a rendszer hétköznapi
mûködésében is szerepet
játszanak. Ilyen például az
/etc/group.Alkalmanként a make installworld
parancs futása során igényt tart adott
nevû felhasználókra és csoportokra. A
frissítéskor azonban ezek a
felhasználók vagy csoportok nem
feltétlenül állnak rendelkezésre, ami
gondokat okozhat. Ezért bizonyos esetekben a
make buildworld elõzetesen
ellenõrzi az igényelt felhasználók
és csoportok meglétét.Erre például szolgálhat a
smmsp felhasználó esete.
Nélküle a felhasználók nem
tudták telepíteni az új rendszert, mert
hiányában az &man.mtree.8; nem volt képes
létrehozni a /var/spool/clientmqueue
könyvtárat.Ezt úgy lehetett megoldani, hogy még az
alaprendszer lefordítása (a
buildworld) elõtt meg kellett
hívni a &man.mergemaster.8; parancsot a
paraméterrel. Így csak azokat
az állományokat fogja
összehasonlítani, amelyek feltétlenül
szükségesek a buildworld
vagy az installworld sikeres
mûködéséhez. Amennyiben a
mergemaster egy olyan
verziójával rendelkezünk, amely nem ismeri a
paramétert, akkor az elsõ
indításakor használjuk a
forrásfában található újabb
verzióját:&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -pHa különösen paranoiásak vagyunk,
akkor a csoport törlése vagy
átnevezése elõtt az alábbi
paranccsal ellenõrizni tudjuk az általa birtokolt
állományokat:&prompt.root; find / -group GID -printEz megmutatja GID (mely
megadható numerikus vagy név
formájában is) jelzésû csoporthoz
tartozó összes állományt a
rendszerünkben.Váltsunk egyfelhasználós
módbaegyfelhasználós
módA rendszert egyfelhasználós módban
érdemes lefordítani. A
nyilvánvalóan érezhetõ
gyorsaság elõnyei mellett azért is jobban
járunk, mert az új rendszer
telepítése során számos
rendszerszintû állomány is
módosításra kerül, beleértve a
szabványos rendszerszintû binárisokat,
függvénykönyvtárakat, include
állományokat és így tovább.
Ha üzemelõ rendszeren végezzük el mindezen
változtatásokat (különösen amikor
rajtunk kívül még további
felhasználók is tartózkodnak a
rendszerben), az csak a bajt hozza ránk.többfelhasználós
módMásik lehetõség gyanánt a
rendszert magát lefordíthatjuk
többfelhasználós módban is, majd
ezután csak a telepítést hajtjuk
végre egyfelhasználós
üzemmódban. Ha eszerint cselekszünk,
egyszerûen várjunk addig, amíg az összes
fordítás be nem fejezõdik, és az
egyfelhasználósra váltást halasszuk
a installkernel vagy
installworld idejére.Egy mûködõ rendszerben
rendszeradminisztrátorként az alábbi parancs
kiadásával válthatunk át
egyfelhasználós módba:&prompt.root; shutdown nowEzt elérhetjük úgy is, ha
újraindítjuk a rendszert és a rendszer
indításakor a single user pontot
választjuk a menübõl. Ekkor a rendszer
egyfelhasználós módban indul el.
Miután ez megtörtént, adjuk ki a
következõ parancsokat:&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -aEzekkel a parancsokkal elõször
ellenõrizzük az állományrendszereket,
ezután újracsatlakoztatjuk a
/ állományrendszert
írható módban, csatlakoztatjuk az
/etc/fstab állományban
megadott összes többi UFS típusú
állományrendszert, majd bekapcsoljuk a
lapozóállomány
használatát.Ha a gépünk óráját nem a
greenwich-i, hanem a helyi idõ szerint
állítottuk be (ez akkor áll fenn, ha a
&man.date.1; parancs nem a helyes idõt és
idõzónát jelzi ki), akkor még erre
is szükségünk lehet:&prompt.root; adjkerntz -iEzzel a helyi idõzóna
beállításait tudjuk jól
beállítani — nélküle
késõbb még gondjaink akadhatnak.Töröljük a /usr/obj
könyvtáratA rendszer egyes részei fordításuk
során a /usr/obj
könyvtáron belülre kerülnek
(alapértelmezés szerint). Az itt
található könyvtárak a
/usr/src
könyvtárszerkezetét követik.Ha mindenestõl töröljük ezt a
könyvtárat, akkor növeli tudjuk a make
buildworld folyamat sebességét és
megmenekülünk néhány
függõségekkel kapcsolatos
fejfájástól is.Egyes /usr/obj könyvtáron
belüli állományoknál szerepelhet a
megváltoztathatatlan (immutable)
állományjelzõ (lásd &man.chflags.1;),
amelyet a mûvelet elvégzéséhez
elõször el kell távolítanunk.&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *Fordítsuk újra az alaprendszertA kimenet elmentéseJól járunk azzal, ha a &man.make.1;
futásának kimenetét elmentjük egy
állományba, mivel így a hibák
esetén lesz egy másolatunk a
hibaüzenetrõl. Ha konkrétan nekünk nem
is feltétlenül segít megtalálni a
hiba tényleges okát, mások viszont
többet tudnak róla mondani, ha beküldjük
ezt a &os; egyik levelezési
listájára.Ezt egyébként a legegyszerûbben a
&man.script.1; parancs segítségével
oldhatjuk meg, amelynek paraméteréül azt az
állományt kell megadni, ahova menteni akarjuk a
kimenetet. Ezt közvetlenül a rendszer
újrafordítása elõtt kell kiadnunk,
majd miután megállt, a
exit paranccsal kiléphetünk
belõle.&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET… fordít, fordít, fordít …
&prompt.root; exit
Script done, …Ilyenkor soha ne a
/tmp könyvtárba mentsük
a kimenetet, mert ennek a tartalma a következõ
indítás során magától
törlõdik. Sokkal jobban tesszük, ha a
/var/tmp könyvtárba (ahogy
tettük azt az elõbbi példában is) vagy
a root felhasználó
könyvtárába mentünk.Az alaprendszer fordításaA /usr/src könyvtárban
kell állnunk:&prompt.root; cd /usr/src(kivéve természetesen, ha máshol van
a forráskód, akkor abba a könyvtárba
menjünk).makeAz alaprendszert a &man.make.1; paranccsal
fordíthatjuk újra. Ez a
Makefile nevû
állományból olvassa be a &os;
programjainak újrafordítását
leíró utasításokat, a
fordításuk sorrendjét és
így tovább.A begépelendõ paranccsor
általános alakja tehát a
következõképpen néz ki:&prompt.root; make -x -DVÁLTOZÓtargetA fenti példában a
egy olyan a
paraméter, amelyet a &man.make.1; programnak adunk
át. A &man.make.1; man oldalán
megtalálhatjuk az összes neki
átadható ilyen
beállítást.A
alakú paraméterek közvetlenül a
Makefile állománynak adnak
át olyan változókat, amelyek
segítségével vezérelhetõ a
viselkedése. Ezek ugyanazok a változók,
mint amelyek az /etc/make.conf
állományban is szerepelnek, és itt a
beállításuk egy másik
módját kapjuk. Így a&prompt.root; make -DNO_PROFILE targetparanccsal is megadhatjuk, hogy ne profilozott
függkönyvtárak jöjjenek létre,
ami pontosan megfelel aNO_PROFILE= true # Avoid compiling profiled librariessornak az /etc/make.conf
állományban.A target árulja el a
&man.make.1; programnak, hogy mi a teendõje. Minden
egyes Makefile
különbözõ targeteket
definiál, és a kiválasztott target mondja
meg, pontosan mi is fog történni.Egyes targetek ugyan megjelennek a
Makefile állományban,
azonban nem feltétlenül hivatkozhatunk
rájuk közvetlenül. Ehelyett csupán
arra valók, hogy a fordítás
folyamatának lépéseit felbontsák
még kisebb allépésekre.A legtöbb esetben azonban semmilyen paramétert
nem kell átadnunk a &man.make.1; parancsnak,
ezért a teljes formája így fog
kinézni:&prompt.root; make targetahol a target az egyik
fordítási lehetõséget
képviseli. Az elsõ ilyen targetnek mindig a
buildworld-nek kell lennie.Ahogy a neve is mutatja, a
buildworld lefordítja az
összes forrást a /usr/obj
könyvtárba, majd a
installworld mint másik
target, telepíti az így létrehozott
elemeket a számítógépre.A targetek szétválasztása két
okból is elõnyös. Elõször is
lehetõvé teszi, hogy az új rendszert
biztonságban lefordíthassuk, miközben az a
jelenleg futó rendszert nem zavarja. A rendszer
tehát képes saját magát
újrafordítani. Emiatt a
buildworld target akár
többfelhasználós módban is
mindenféle nem kívánatos hatás
nélkül használható. Ennek
ellenére azonban továbbra is azt javasoljuk,
hogy a installworld részt
egyfelhasználós módban futtassuk
le.Másodrészt ezzel
lehetõségünk nyílik NFS
állományrendszer alkalmazásával
több számítógépre is
telepíteni hálózaton keresztül. Ha
például három frissítendõ
számítógépünk van, az
A, B és
C, akkor az A gépen
elõször adjuk ki a make
buildworld, majd a make
installworld parancsot. A B
és C gépek ezután NFS
segítségével csatlakoztatják az
A/usr/src és
/usr/obj könyvtárait, amelyet
követõen a make installworld
paranccsal telepíteni tudjuk a fordítás
eredményét a B és
C gépekre.Noha a world mint target
még mindig létezik, használata
határozottan ellenjavalt.A&prompt.root; make buildworldparancs kiadásakor a make
parancsnak megadható egy
paraméter is, amellyel párhuzamosíthatjuk
a folyamat egyes részeit. Ez általában
többprocesszoros
számítógépeken nyer
értelmet, azonban mivel a fordítás
folyamatának haladását inkább az
állománymûveletek mintsem a processzor
sebessége korlátozza, ezért
alkalmazható akár egyprocesszoros gépeken
is.Tehát egy átlagos egyprocesszoros
gépen így adható ki a parancs:&prompt.root; make -j4 buildworldEnnek hatására &man.make.1; egyszerre 4
szálon igyekszik mûködni. A
levelezési listákra beküldött
tapasztalati jellegû bizonyítékok azt
igazolják, hogy általában ez a
beállítás adja a legjobb
teljesítményt.Ha többprocesszoros géppel rendelkezünk
és rajta SMP támogatású
rendszermagot indítottunk el, akkor érdemes 6
és 10 közötti értékekkel
kísérleteznünk.Idõigényaz alaprendszer
újrafordításaidõigénySzámos tényezõ befolyásolja a
fordítás tényleges idõbeli
hosszát, de a &os.stable; fa lefordítása
mindenféle trükkök és
rövidítések nélkül a
legtöbb számítógépen olyan
egy vagy két órára
taksálható. A &os.current; fához
ennél valamivel több idõre lesz
szükségünk.Fordítsunk és telepítsünk egy
új rendszermagotrendszermagotfordításaAz újdonsült rendszerünket csak akkor
tudjuk igazán kihasználni, ha egy új
rendszermagot is készítünk hozzá. Ez
gyakorlati szinten tulajdonképpen elvárás,
mivel könnyen elõfordulhat, hogy bizonyos
memóriabeli adatszerkezetek
felépítése megváltozott,
ezért némely programok, mint például
a &man.ps.1; és &man.top.1;, egészen addig nem
lesznek képesek normálisan mûködni,
amíg a rendszer és a rendszermag
forráskódja nem illeszkedik
egymáshoz.Ennek legegyszerûbb és egyben
legbiztonságosabb módja, ha a
GENERIC beállításai
alapján gyártunk és telepítünk
egy rendszermagot. Még ha a GENERIC
beállításai nem is tartalmazzák a
rendszerünkben fellelhetõ összes eszközt,
minden megtalálható bennük ahhoz, hogy a
rendszert sikeresen elindíthassuk legalább
egyfelhasználós módban. Ez mellesleg remek
próbája az új rendszer
életképességének. Miután
elindítottuk a rendszert a GENERIC
típusú rendszermaggal és
meggyõzõdtünk róla, hogy a rendszer
tényleg mûködõképes, a megszokott
rendszermagunk konfigurációs
állománya alapján nyugodtan
elkészíthetjük ezután azt is.&os; alatt egy új rendszermag
építése elõtt fontos újrafordítani az
alaprendszert.Ha saját beállításaink szerint
akarunk rendszermagot létrehozni és már
van is ehhez egy konfigurációs
állományunk, akkor erre használhatjuk a
KERNCONF=SAJÁTMAG
paramétert is, valahogy így:&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=SAJÁTMAG
&prompt.root; make installkernel KERNCONF=SAJÁTMAGHozzátennénk, hogy ha a
kern.securelevel
rendszerváltozó értékét 1
felé állítottuk
és a rendszermag
állományának beállítottunk
noschg vagy hozzá hasonló
állományjelzõt, akkor az
installkernel
lefuttatásához mindenképpen
egyfelhasználós módba kell
váltanunk. Minden más esetben további
bonyodalmak nélkül ki tudjuk adni az említett
parancsokat. A kern.securelevel
részleteirõl az &man.init.8; oldalán, a
különbözõ
állományjelzõkrõl pedig a
&man.chflags.1; oldalán olvashatunk.Indítsuk újra a rendszert
egyfelhasználós módbanegyfelhasználós
módAz új rendszermag mûködésének
leteszteléséhez indítsuk újra a
rendszert egyfelhasználós módban. Ennek
pontos részleteit lásd .Telepítsük az új rendszer
binárisaitHa a &os; friss változatát nemrég
fordítottuk le a make buildworld
paranccsal, akkor utána az
installworld
segítségével tudjuk telepíteni a
keletkezett programokat.Tehát írjuk be ezeket:&prompt.root; cd /usr/src
&prompt.root; make installworldAmennyiben a paranccsorban a make
buildworld használata során adtunk meg
változókat, akkor ne felejtsük el
ugyanazokat megadni a make installworld
kiadása során sem. Ez viszont a többi
paraméterre már nem feltétlenül
érvényes. Például a
beállítást
szigorúan tilos az
installworld targettel együtt
használni.Ennek megfelelõen tehát ha korábban ezt
írtuk be:&prompt.root; make -DNO_PROFILE buildworldakkor így telepítsünk:&prompt.root; make -DNO_PROFILE installworldMáskülönben azokat a profilozott
függvénykönyvtárakat
próbáljuk meg telepíteni, amelyek a
make buildworld futása során
nem jöttek létre.Frissítsük a make
installworld által kihagyott
állományokatAz alaprendszer újrafordítása nem
regisztrálja az új vagy megváltozott
állományokat bizonyos könyvtárakban
(különösen értendõ ez az
/etc, /var és
/usr esetén).Az ilyen állományokat a legegyszerûbben a
&man.mergemaster.8; használatával tarthatjuk
karban, de igény szerint akár kézzel is
elvégezhetjük a szükséges
aktualizálásokat. Függetlenül
attól, hogy mit is választunk, mindenképpen
készítsünk biztonsági mentést
az /etc könyvtárról arra
az esetre, ha bármilyen szörnyûség
történne.TomRhodesÍrta: A mergemastermergemasterA &man.mergemaster.8; segédprogram
valójában egy Bourne szkript, amely segít
az /etc könyvtárunkban
és a forrásfában levõ
/usr/src/etc könyvtárban
elhelyezkedõ konfigurációs
állományok közti eltérések
megállapításában. Ezt a
módszert ajánljuk arra, hogy összevessük
a konfigurációs állományainkat a
forrásfában található
változataikkal.A használatának megkezdéséhez
egyszerûen írjuk be, hogy
mergemaster, majd várjunk egy kicsit,
amíg a mergemaster létrehoz
magának egy átmeneti környezetet a
/ könyvtárból elindulva
és megtölti azt a különbözõ
rendszerszintû beállításokat
tartalmazó állományokkal. Ezeket az
állományokat aztán
összehasonlítja a jelenleg érvényben
levõ változataikkal. Ilyenkor a köztük
talált eltéréseket a &man.diff.1;
formátumának megfelelõen módon mutatja
meg, ahol a jelöli a hozzáadott
vagy módosított sorokat, a
pedig a teljesen eltávolítandó vagy
cserélendõ sorokat. Errõl a
formátumról bõvebben a &man.diff.1; man
oldalán találhatunk
felvilágosítást.A &man.mergemaster.8; ezt követõen megmutatja az
összes olyan állományt, ahol
eltérést tapasztalt, és ezen a ponton van
lehetõségünk letörölni (delete) az
új állományokat (amelyekre itt most
ideiglenes állományként hivatkozik),
telepíteni (install) a módosítatlan
ideiglenes (új) állományt, valamint
összefésülni (merge) az ideiglenes (új)
és a jelenlegi állományokat, vagy
ismét átnézni (view) a &man.diff.1;
által jelzett különbségeket.Ha az ideiglenes állomány
törlését választjuk, akkor a
&man.mergemaster.8; ezt úgy értelmezi, hogy
változatlanul meg akarjuk tartani a jelenlegi
változatot és törölni az újat.
Ezt alapvetõen nem javasoljuk, hacsak tényleg nem
látunk valamilyen okot erre. A &man.mergemaster.8;
parancssorában a ?
begépelésével bármikor
kérhetünk segítséget. Ha az
állomány kihagyását (skip)
választjuk, akkor majd ismét felajánlja,
amikor végeztünk az összes
többivel.A módosítatlan ideiglenes
állomány telepítésének
választásával lecseréljük a
jelenleg verziót az újra. Ha az aktuális
verziót sem változtattuk meg, akkor
számunkra ez a legjobb megoldás.Az állományok
összefésülésének
kiválasztásakor kapunk egy
szövegszerkesztõt, benne a két
állomány tartalmával. Ilyenkor tudjuk a
képernyõn soronként egyeztetni a két
állományt, majd a belõlük a
megfelelõ részek
összeválogatásával kialakítani
az eredményt. Ebben a feldolgozási módban
az l (mint left, vagyis bal) billentyû
lenyomására a bal oldalon látható
részt, az r (mint right, vagyis jobb)
lenyomására pedig a jobb oldalon
látható részt választjuk ki. Az
így keletkezõ eredményt ezután egy
állományba kerül, amelyet telepíteni
tudunk. Ez a megoldás olyan állományok
esetében használható, amikor a
felhasználó módosított az
alapértelmezett
beállításokat.Ha a &man.diff.1; szerinti alakban akarjuk
átnézni a különbségeket, akkor a
&man.mergemaster.8; ugyanúgy megmutatja ezeket, mint a
paranccsor megjelenítése elõtt.Miután a &man.mergemaster.8; végigment a
rendszerszintû állományokon, további
opciókat mutat. Megkérdezheti, hogy újra
létre akarjuk-e hozni a jelszavakat tároló
állományt (rebuild), illetve a folyamat
végén a megmaradt ideiglenes
állományok törlésére (remove)
vár választ.Az állományok aktualizálása
kézzelHa inkább manuálisan szeretnénk
frissíteni, akkor nem másolhatjuk csak
egyszerûen át az állományokat a
/usr/src/etc
könyvtárból a /etc
könyvtárba és nem hagyhatjuk ezeket
sorsukra. Egyes állományokat elõször
telepíteni kell. Ez azért van
így, mert a /usr/src/etc
könyvtár nem pusztán
az /etc könyvtár
egyszerû másolata. Ráadásul az
/etc könyvtárban vannak olyan
állományok, amelyek a
/usr/src/etc könyvtárban nem
is találhatóak meg.Ha (az ajánlottak szerint) a &man.mergemaster.8;
segítségével dolgozunk, nyugodtan
átléphetünk a következõ
szakaszra.Saját magunk a legegyszerûbben ezt úgy
tudjuk megoldani, ha telepítjük az
állományokat egy új
könyvtárba és ezután
nekiállunk változásokat keresni.Az /etc meglevõ
tartalmának mentéseHabár elméletileg magától
semmi sem fogja bántani ezt a könyvtárat,
azért ettõl függetlenül mindig
érdemes biztosra menni. Ezért másoljuk
az /etc könyvtár
tartalmát egy megbízható helyre.
Például:&prompt.root; cp -Rp /etc /etc.oldAz itt a rekurzív
másolást jelenti, a pedig
a dátumok, az állományok és
egyebek tulajdoni viszonyainak
megõrzését.Az /etc új
változatának telepítéséhez
szükségünk lesz még további
könyvtárakra is. Erre a feladatra a
/var/tmp/root tökéletesen
megfelel, ahol még létre kell hoznunk
néhány alkönyvtárat.&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distributionEzzel létrejön a szükséges
könyvtárszerkezet és települnek az
állományok. Sok üres
alkönyvtár is keletkezik a
/var/tmp/root könyvtáron
belül, ezeket töröljük. Ezt a
legkönnyebben így tehetjük meg:&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/nullEzzel törlõdnek az üres
könyvtárak. (A szabvány hibakimenetet
átirányítottuk a
/dev/null eszközre, és ezzel
elnyomtuk a nem üres könyvtárak esetén
keletkezõ hibaüzeneteket.)A /var/tmp/root most már
tartalmazza az összes olyan állományt,
amelyek normális esetben a /
könyvtáron belül foglalnak helyet. Ezt
követõen nincs más dolgunk, csak
végigmenni az itt található
állományokon és
megállapítani, miben térnek a
meglévõektõl.Vegyük észre, hogy a
/var/tmp/root könyvtárba
telepített állományok
némelyikének neve .-tal
kezdõdik. Az írás pillanatában ezek
csak a /var/tmp/root/ és
/var/tmp/root/root/
könyvtárakban található
parancsértelmezõhöz tartozó
indító állományok lehetnek,
habár adódhatnak még ilyenek
(attól függõen, mikor olvassuk ezt).
Ezért a feldolgozásukhoz ne felejtsük el a
ls -a parancsot használni.A &man.diff.1; alkalmazásával
legegyszerûbben így tudunk
összehasonlítani két
állományt:&prompt.root; diff /etc/shells /var/tmp/root/etc/shellsEnnek hatására megjelennek az
/etc/shells és az új
/var/tmp/root/etc/shells
állományok közti
különbségek. A
segítségével gyorsan el tudjuk
dönteni, hogy összefésüljük-e a
két állományt, vagy csak egyszerûen
írjuk felül a régebbi verziót az
újjal.Az új könyvtár
(/var/tmp/root) nevébe
írjuk bele a dátumot is, így
könnyedén össze tudunk hasonlítani
több verziót isA rendszer gyakori újrafordítása az
/etc szintén gyakori
aktualizálását is maga után
vonja, ami viszont fárasztó lehet.Az iménti folyamatot fel tudjuk
gyorsítani, hogy ha az /etc
legutoljára összefésült
változatát megtartjuk. A most
következõ eljárás ennek
mikéntjét vázolja fel.A megszokottak szerint fordítsuk le a
rendszert. Majd amikor az /etc
könyvtárat és a többit is
frissíteni akarjuk, a célként
megadott könyvtár nevében adjuk meg a
dátumot. Ha tehát például
1998. február 14. van, akkor írjuk
ezt:&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distributionFésüljük össze a
könyvtárban található az
állományokat a fentiekben
körvonalazottak szerint.Befejezés után
õrizzük meg a
/var/tmp/root-19980214
könyvtárat.Mikor újra letöltjük a legfrissebb
forrásokat és megismételjük az
elõbbi lépéseket, haladjunk megint az
elsõ lépés szerint. Ekkor
tehát létrejön egy újabb
könyvtár, amelynek a neve ezúttal
már /var/tmp/root-19980221
lesz (ha például hetente
frissítünk).Most már meg tudjuk vizsgálni a
közbeesõ héten született
eltéréseket, ha a két
könyvtárra kiadunk egy rekurzív
&man.diff.1; hívást:&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221Általában így kevesebb
eltérést kapunk, mint amennyi
például a
/var/tmp/root-19980221/etc/
és az /etc
összehasonlítása során
elkerült volna. Mivel kisebb a keletkezett
különbségek száma, ezért
könnyebb lesz átvinnünk az
/etc könyvtárunkba is a
módosításokat.Ezután törölhetjük a
régebbi /var/tmp/root-*
könyvtárat:&prompt.root; rm -rf /var/tmp/root-19980214Az /etc
összefésülésekor mindig
ismételjük meg ezeket a
lépéseket.A &man.date.1; meghívásával
akár automatikussá is tehetjük a
könyvtárak névadását:&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`ÚjraindításEzzel készen is vagyunk. Miután
ellenõriztük, hogy minden a megfelelõ
helyére került, indítsuk újra a
rendszert. Ehhez egy egyszerû &man.shutdown.8; is
elegendõ:&prompt.root; shutdown -r nowBefejeztük!Gratulálunk, sikerült frissítenünk a
&os; rendszerünket.Ha mégis valami balul ütne ki, könnyen
újra tudjuk fordítani a rendszer egyes
részeit. Például, ha
véletlenül letöröltük az
/etc/magic állományt az
/etc frissítése vagy
összefésülése során, a
&man.file.1; parancs nem fog tudni rendesen mûködni.
Ilyenkor a következõket kell tennünk a hiba
kijavításához:&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all installKérdésekMinden egyes változtatásnál
újra kell fordítani a rendszert?Nem könnyû választ adni erre a
kérdésre, mivel ez alapvetõen a
változtatás jellegétõl
függ. Például, ha elindítjuk a
CVSup programot és csak
az alábbi állományok
frissülnek:src/games/cribbage/instr.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkEkkor valószínûleg nem éri
meg újrafordítani a teljes rendszert.
Elegendõ csupán belépni az
érintett állományokat
tartalmazó alkönyvtárakba és ott
rendre kiadni a make all install
parancsot. Ha viszont már valami komolyabb,
például az
src/lib/libc/stdlib változott
meg, akkor vagy az egész rendszert, vagy
legalább azon részeit fordítsuk
újra, amely statikusan linkeltek (és minden
más idõközben még
hozzáadott statikusan linkelt dolgot).Hogy melyik megoldást választjuk,
teljesen rajtunk áll.
Újrafordíthatjuk az egész rendszert
kéthetente, mondván, hadd gyüljenek fel
szépen a módosítások, vagy a
függõségek pontos
kielemzésével csak azokat az elemeket
fordítjuk újra, amelyek tényleg meg
is változtak.Természetesen az egész attól
függ, hogy milyen gyakran és melyik rendszert,
a &os.stable;-t vagy a &os.current;-et
frissítjük.A fordító rengeteg 11-es jelzést
(signal 11) (vagy másfajta jelzéseket) dob
hibával. Mi történhetett?signal 11Ez általában hardveres
meghibásodásra utal. A rendszer
újrafordítása alapjaiban véve
egy remek módszer
számítógépünk
alkatrészeinek terhelésére,
ezért gyakorta elõhozza a memória
már meglevõ hibáit. Ezek
többnyire abban fogalmazódnak meg, hogy a
fordító rejtélyes módon
leáll mindenféle furcsa jelzések
hatására.Errõl biztosan úgy tudunk
meggyõzõdni, ha újraindítjuk a
make programot és az a folyamat egy teljesen
másik pontján vérzik el.Ilyenkor nem tudunk mást tenni, mint
egymás után kicserélgetjük,
kivesszük az alkatrészeket és
így próbáljuk
megállapítani, pontosan melyikük is
okozza a gondokat.A fordítása befejezése
után törölhetem a
/usr/obj
könyvtárat?Röviden: Igen.A /usr/obj tartalmazza a
fordítás folyamata során
keletkezõ összes tárgykódot.
Ennek törlése általában a
make buildworld elsõ
lépései között szerepel.
Ezért tulajdonképpen a
/usr/obj megtartásának
nincs túlságosan sok értelme, viszont
elég sok (jelenleg úgy kb. 340 MB)
helyet fel tudunk így szabadítani.Ha azonban értjük a dolgunkat, akkor
megadhatjuk a make buildworld
parancsnak, hogy hagyja ki ezt a lépést.
Ennek hatására a fordítás
sokkal hamarabb véget ér, mivel a
legtöbb forrást így nem kell
újrafordítani. Üröm az
örömben, hogy ha netalán aprócska
függõségi problémák
merülnének fel, akkor az egész
fordítás megfeneklik mindenfelé
különös módokon. Emiatt gyakran
írnak feleslegesen leveleket a &os;
levelezési listáira, melyek a rendszer
sikertelen
újrafordításáról
panaszkodnak, miközben kiderül, hogy az maguk az
érintettek akarták lerövidíteni
a folyamatot.Lehetséges a megszakadt fordítás
folytatása?Ez attól függ, hogy a probléma
bekövetkezése elõtt mennyire
sikerült eljutni a fordításban.Általában
(tehát nem feltétlenül minden esetben)
a make buildworld lefordítja a
fordításhoz szükséges
eszközök (például a &man.gcc.1;
és &man.make.1;) újabb változatait
és a rendszer
függvénykönyvtárait, majd ezeket
telepíti. Ezután ezekkel az új
eszközökkel lefordítattja saját
magukat és ismét telepíti. Ezt
követõen fordítja újra az
új rendszerállományokkal az
egész rendszert (így ezúttal
már az olyan szokásos
felhasználói programokat is, mint
például az &man.ls.1; és a
&man.grep.1;).Ha tudjuk, hogy az utolsó fázisban
álltunk le (mivel megnéztük a
fordításhoz tartozó kimenetet), akkor
(minden további nélkül) elég
ennyi:… kijavítjuk a hibát …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN allEzzel megmarad a korábbi make
buildworld munkájának
eredménye.Ha ezt az üzenetet látjuk a make
buildworld kimenetében:--------------------------------------------------------------
Building everything..
--------------------------------------------------------------akkor különösebb gond
nélkül megcsinálhatjuk.Amennyiben viszont nem látunk ilyen
üzenetet, vagy nem vagyunk benne biztosak, akkor
még mindig jobb elõvigyázatosnak lenni,
ezért kénytelenek leszünk teljesen
elölrõl kezdeni a
fordítást.Hogyan tudjuk felgyorsítani a
fordítást?Futtassuk egyfelhasználós
módban.Tegyük a /usr/src
és /usr/obj
könyvtárakat külön
állományrendszerekre, külön
lemezekre. Sõt, ha lehetséges, akkor
ezeket a lemezeket tegyük külön
lemezvezérlõkre.Még mindig jobb, ha ezeket az
állományrendszereket a &man.ccd.4;
(lemezek összefûzését
vezérlõ meghajtó)
segítségével kiterjesztjük
több lemezes eszközre.Kapcsoljuk ki a profilozást (az
/etc/make.conf
állományban a
NO_PROFILE=true
megadásával). Többnyire úgy
sem lesz rá szükségünk.Az /etc/make.conf
állományban a CFLAGS
változót állítsuk az
értékre. Az
gyakran sokkal lassabb, az
és
alig tér el az optimalizálás
mértékében. A
paraméter
hatására pedig a
fordítóprogram átmeneti
állományok helyett csöveket
használ a kommunikációra,
és így megtakarít némi
lemezhasználatot (a
memóriahasználat terhére).Ha a &man.make.1; parancsnak átadjuk a
paramétert, akkor képes több
mindent párhuzamosan futtatni. Ez sok esetben
segít attól függetlenül, hogy
egy- vagy többprocesszoros gépünk
van.A /usr/src
könyvtárat tartalmazó
állományrendszert csatlakoztathatjuk
(vagy újracsatlakoztathatjuk) a
beállítással. Ilyenkor az
állományrendszer nem rögzíti
a hozzáférés idejét. Erre
az információra sincs
igazából
szükségünk.&prompt.root; mount -u -o noatime /usr/srcA fenti példa azt feltételezi,
hogy a /usr/src
könyvtárnak saját
állományrendszere van. Ha ez nem
így lenne (tehát például
a /usr része), akkor itt
azt kell megadnunk, nem pedig a
/usr/src nevét.A /usr/obj
könyvtárat tartalmazó
állományrendszert csatlakoztathatjuk
(vagy újracsatlakoztathatjuk) az
beállítással. Ennek
hatására a lemez írása
aszinkron módon történik. Magyarul
az írási mûveletek azonnal
befejezõdnek, miközben az adat
ténylegesen csak pár másodperccel
késõbb kerül ki a lemezre. Ezzel az
írási kérelmek
gyönyörûen
összegyûjthetõek, ami
nagymértékû növekedést
eredményez a
teljesítményben.Ne felejtsük el azonban, hogy ezzel
együtt az
állományrendszerünk is
sérülékenyebbé
válik. Ezen beállítás
használatával megnõ annak az
esélye, hogy egy áramkimaradást
követõ indításnál az
állományrendszer
helyreállíthatatlan állapotba
kerül.Ha egyedül csak a
/usr/obj
található ezen az
állományrendszeren, akkor ez nem
jelent akkora veszélyt. Amikor viszont rajta
kívül még értékes
adat is található az
állományrendszeren, a
beállítás
érvényesítése elõtt
mindenképpen készítsünk
róla friss mentéseket.&prompt.root; mount -u -o async /usr/objAhogy arról az elõbb is szó
esett, ha a /usr/obj nem egy
különálló
állományrendszeren
található, akkor a
példában szereplõ
csatlakozási pontot cseréljük ki
a megfelelõre.Mi tegyünk, ha valami nem megy rendesen?Egyértelmûen bizonyosodjunk meg
róla, hogy a korábbi
fordításokból nem maradtak vissza
semmiféle kóbor állományok.
Ennyi sokszor pontosan elég.&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandirIgen, a make cleandir parancsot
tényleg kétszer kell kiadni.Ezután a make buildworld
parancstól indulva kezdjük újra a
fordítást.Ha még ezek után is fennáll a
probléma, küldjük el a hibát
tartalmazó kimenetet és a uname
-a parancs eredményét a
&a.questions; címére. Ne
lepõdjünk meg, ha a
beállításainkra vonatkozóan
még kapunk további kérdéseket
is!MikeMeyerÍrta: A források követése több
géppelNFStöbb gép
telepítéseHa egyszerre több
számítógéppel is szeretnénk
követni ugyanannak a forrásfának a
változásait és ezért mindegyikre
letöltjük a forrásokat majd
újrafordítjuk ezeket, akkor sok
erõforrást, de leginkább lemezterületet,
hálózati sávszélességet
és processzoridõt, feleslegesen használunk.
Ezekkel úgy tudunk spórolni, ha
valójában csak egyetlen géppel
végeztetjük el a munka legtöbb
részét, miközben a többi NFS
használatával dolgozik. Ez a szakasz ezt a
módszert foglalja össze.ElõkészületekElõször is szedjük össze az egyezõ
binárisokat futtató gépeket, melyekre a
továbbiakban csak fordítási
csoport néven hivatkozunk. Minden
gépnek lehet saját rendszermagja, viszont a
felhasználói programok mindegyikõjük
esetében ugyanazok. Ebbõl a csoportból
válasszuk ki egy fordító
gépet. Ez lesz az a gép, amelyen a
rendszer és a rendszermag lefordításra
kerül. Ideális esetben ez a leggyorsabb gép,
amelynek elegendõ a processzorkapacitása arra, hogy
lefuttassa a make buildworld és
make buildkernel parancsokat. Érdemes
még rajta kívül kiválasztanunk egy
tesztelõ gépet is, ahol a
véglegesítés elõtt
kipróbálhatjuk a
szoftverfrissítéseket. Ennek egy olyan
gépnek kell lennie, amely
akár hosszabb ideig is nélkülözhetõ
a csoportból. Lehet akár maga a
fordítást végzõ gép is, de nem
elvárás.A fordítási csoportban levõ összes
gépnek ugyanarról a géprõl és
ugyanarra a pontra kell csatlakoztatnia a
/usr/obj és
/usr/src könyvtárakat. Ezek
optimális esetben a fordítással
foglalkozó gép két külön
lemezmeghajtóján vannak, melyek egyaránt
elérhetõek NFS-en keresztül. Ha több
fordítási csoportunk is van, akkor az
/usr/src könyvtárnak
elegendõ csak egyetlen fordító gépen
meglennie, a többi pedig csatlakoztassa NFS-en
keresztül.Végül gyõzödjünk meg róla,
hogy az /etc/make.conf és a
/etc/src.conf állományok
tartalma a fordítási csoport mindegyik
gépénél megegyezik a fordító
gépével. Ez azt jelenti, hogy a
fordító gépnek az alaprendszer ugyanazon
részeit és ugyanúgy kell létrehozni,
mint amelyet a fordítási csoport akármelyik
gépére telepíteni is akarunk.
Ezenkívül még a fordítási
csoportban levõ minden egyes gép
/etc/make.conf
állományában a KERNCONF
értékének a saját
rendszermagjára vonatkozó
konfigurációt kell megadni, illetve a
fordítással foglakozó gép
KERNCONF
változójánál pedig az együtt
összeset, a sajátjával kezdve. Ennek
megfelelõen a fordító gépnek a
rendszermagok lefordításához rendelkeznie
kell az egyes gépek
/usr/src/sys/arch/conf
könyvtárában meglevõ
állományaival.Az alaprendszerMost, miután mindent megfelelõen
elõkészítettünk, készen
állunk a munkára. A ban leírtak szerint
fordítsuk le a rendszermagokat és az alaprendszert
a fordító gépen, de utána még
nem telepítsünk semmit se. Ha
befejezõdött a fordítás,
lépjünk be a tesztelõ gépre és
telepítsük a frissen fordított rendszermagot.
Ha ez a gép NFS-en keresztül éri a
/usr/src és
/usr/obj könyvtárakat, akkor az
egyfelhasználós módban aktiválni
kell a hálózatot, majd csatlakoztatni ezeket. Ezt
legkönnyebben úgy tudjuk megcsinálni, ha a
gépet elõször elindítjuk
többfelhasználós módban, majd a
shutdown now paranccsal
egyfelhasználós módba váltunk. Ha
eljuttunk ide, telepítsünk az új
rendszermagot és rendszert, illetve a megszokott
módon futtassuk a mergemaster
parancsot. Amikor ezt befejeztük, ezen a gépen
térjünk vissza a hétköznapi
többfelhasználós mûködési
módba.Miután a tesztelésre szánt gépen
ellenõriztük, hogy minden a megfelelõ
módon mûködik, az elõbb tárgyalt
eljárással telepítsük fel a
fordítási csoportban levõ összes
többi gépre is az új szoftvereket.PortokUgyanezt a gondolatmenet alkalmazható a portfa
esetében is. Az elsõ és egyben legfontosabb
lépés a /usr/ports
csatlakoztatása ugyanarról a géprõl a
fordítási csoport minden gépére. Az
/etc/make.conf megfelelõ
beállításával még a
terjesztési állományokat is meg tudjuk
osztani. A DISTDIR
értékét egy olyan közösen
használt könyvtárra állítsuk,
amely írható az NFS-en keresztül megosztott
állományrendszerünkben a
root felhasználóként
tevékenykedõk számára. A
WRKDIRPREFIX változót minden
gépen egy helyi fordítási
könyvtárra állítsuk.
Zárásképpen még
hozzátesszük, hogy ha csomagokat akarunk
készíteni és mások
számára is elérhetõvé tenni,
akkor ne felejtsük el a PACKAGES
változót a DISTDIR
változóhoz hasonlóan
beállítani.
diff --git a/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml
index 1886c6fb39..c41fc20890 100644
--- a/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml
@@ -1,756 +1,782 @@
TomRhodesÍrta: Támogatott állományrendszerekÁttekintésállományrendszerektámogatott
állományrendszerekállományrendszerekAz állományrendszerek szerves
részét képezik napjaink operációs
rendszereinek. Segítségükkel a
felhasználók adatokat tölthetnek fel és
tárolhatnak a számítógépen,
szabályozhatják a
hozzáférésüket, és
természetesen mûködtethetik a merevlemezeiket. A
különféle operációs rendszerekben
általában azért annyi közös, hogy
mindannyiukhoz tartozik egy natív, vagyis általuk
alapból ismert állományrendszer. A &os;
esetében ezt konkrétan a Fast File System vagy
röviden FFS, amely az eredeti Unix™
File System, vagy más néven UFS
megoldásain alapszik. A &os; tehát a merevlemezeken
ebben a natív állományrendszerben
tárol adatokat.A &os; természetesen ezen kívül még
ismer számos egyéb állományrendszert,
ezáltal képes adatokat olvasni más
operációs rendszerek részérõl is
kezelhetõ partíciókról,
például helyi
USB-eszközökrõl,
flashkártyákról és
merevlemezekrõl. Továbbá ismeri
néhány más operációs rendszer
natív állományrendszerét, mint
például a &linux; Extended File System
(EXT) vagy éppen a &sun; Z File System
(ZFS).&os; alatt az egyes állományrendszerek ismerete
változó. Bizonyos esetekben elegendõ
csupán egy megfelelõ modul betöltése,
máskor viszont egy komplett eszközkészlet
segítségével tudunk velük dolgozni. Ez
a fejezet igyekszik a &sun;-féle Z
állományrendszerrel kezdõdõen bemutatni a
&os; felhasználói számára más
állományrendszerek használatát.A fejezet elolvasása során
megismerjük:a natív és támogatott
állományrendszerek közti
különbségeket;a &os; által ismert
állományrendszereket;hogyan engedélyezzünk, állítsunk
be és érjünk el nem natív
állományrendszereket.A fejezet elolvasásához ajánlott:a &unix; és &os; alapjainak ismerete ();a rendszermag konfigurációjának
és fordításának alapvetõ
fogásainak ismerete ();a különbözõ külsõ
fejlesztésû szoftverek
telepítésének ismerete ();a lemezek és egyéb
tárolóeszközök, valamint a &os; alatt az
eszközök elnevezésének
minimális ismerete ().Jelenleg a ZFS támogatása
még nem tekinthetõ hétköznapi
használatra alkalmasnak. Ennek
következményeképpen bizonyos funkciók
nem megfelelõen vagy egyáltalán nem
mûködnek. Ahogy ez a támogatás
megbízhatóvá válik, úgy
fogjuk tovább finomítani a
dokumentációt.
- A Z állományrendszer
+ A Z állományrendszer (ZFS)A &sun; Z állományrendszere egy új,
közös tárolási módszeren
nyugvó technológia. Ez annyit jelent a
gyakorlatban, hogy mindig csak annyi helyet foglal, amennyire az
adatoknak közvetlenül szüksége van.
Emellett úgy alakították ki, hogy az adatok
épségét minél inkább
védje, ezért például
megtalálhatjuk benne a pillanatképek
készítését, a másolatok
létrehozását és az adatok
sértetlenségének
ellenõrzését. Továbbá egy
RAID-Z néven bemutatott új
replikációs modellt is támogat. A
RAID-Z alapvetõen a
RAID-5 megoldásához
hasonlít, azonban írás során
keletkezõ hibák ellen igyekszik védelmet
nyújtani.A ZFS finomhangolásaA ZFS funkcióit
megvalósító alrendszer
alapértelmezés szerint meglehetõsen sok
erõforrást kíván, ezért nem
árt a legjobb hatékonyságra behangolnunk a
mindennapokban felmerülõ igények mentén.
Mivel ez még egy fejlesztés és
tesztelés alatt álló része a
&os;-nek, elképzelhetõ, hogy ez a jövõben
változik, viszont jelen pillanatban a következõ
lépéseket javasoljuk.MemóriaHasznos, ha a rendszerünkben legalább
1 GB memória található, de
inkább 2 vagy több az ajánlott. Az itt
szereplõ példákban ehelyett azonban
mindenhol csupán 1 GB-ot
feltételezünk.Néhányaknak sikerült
1 GB-nál kevesebb központi
memóriával is használni ezt az
állományrendszert, azonban ilyenkor nagyon
könnyen elõfordulhat, hogy komolyabb terhelés
esetén a &os; a memória elfogyása miatt
egyszerûen összeomlik.A rendszermag beállításaiA rendszermag konfigurációs
állományából javasolt
eltávolítani az összes nem használt
meghajtót és funkciót. A legtöbb
meghajtó egyébként is
elérhetõ modul formájában, és
a /boot/loader.conf
állományon keresztül minden gond
nélkül betölthetõek.
- Az i386 architektúránál
+ Az &i386; architektúránál
szükségünk lesz az alábbi
konfigurációs beállítás
megadására, majd a rendszermag
újrafordítására, végül
a rendszer újraindítására:options KVA_PAGES=512Ezzel az opcióval a rendszermag
címterét növeljük meg, aminek
eredményeképpen a vm.kvm_size
változót immáron az eredetileg
1 GB-os (PAE használata
esetén pedig 2 GB-os) határ felé
tudjuk állítani. Az itt megadandó
értéket úgy tudjuk meghatározni,
ha a beállítani kívánt
méret MB-okban számolt
értékét elosztjuk néggyel. A
példában tehát az 512
egy 2 GB nagyságú címteret ad
meg.A rendszertöltõ
beállításaiA kmem címterét az
összes &os; által ismert architektúra
esetében érdemes megnövelnünk. A
teszteléshez használt rendszeren 1 GB
fizikai memória állt rendelkezésre, itt a
/boot/loader.conf
állományban a következõ
értékek megadásával minden
remekül mûködött:vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"A ZFS finomhangolásával kapcsolatos
további javasolatokat a
címen olvashatunk.A ZFS használataA Z állományrendszerhez létezik egy
olyan mechanizmus, amelyen keresztül már a &os;
indítása során el tudjuk végezni a
közös tárolók
csatlakoztatását:&prompt.root; echo 'zfs_enable="YES"' >> /etc/rc.conf
&prompt.root; /etc/rc.d/zfs startA leírás fennmaradó
részében feltételezzük, hogy
- két SCSI-lemezünk van,
+ három SCSI-lemezünk van,
amelyeket rendre a
- da0
- és
+ da0,
da1
+ és
+ da2
eszközök formájában tudunk
elérni. Az IDE lemezek
tulajdonosainak értelemszerûen itt majd az
ad
eszközneveket kell használniuk a
SCSI-eszközök hivatkozásai
helyett.Egyetlen közös tároló
használataA zpool kiadásával
- egyetlen lemezen is létre tudunk hozni
- ZFS partíciót:
+ egyetlen lemezen is létre tudunk hozni egy
+ egyszerû, nem redundáns ZFS
+ partíciót:
&prompt.root; zpool create minta /dev/da0Az új közös tárterület a
df parancs
felhasználásával rögtön
láthatóvá válik:&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235230 1628718 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032846 48737598 2% /usr
minta 17547136 0 17547136 0% /mintaA parancs kimenetében tisztán
láthatjuk, hogy a minta nevû
tároló nem csak egyszerûen
elkészült, hanem egyúttal
csatolódott. Innentõl
már a többi állományrendszerhez
hasonlóan tetszõlegesen elérhetõ, az
alábbi példához hasonlóan
állományok hozhatóak rajta létre
vagy listázható a tartalma:&prompt.root cd /minta
&prompt.root; ls
&prompt.root; touch proba
&prompt.root; ls -al
total 4
drwxr-xr-x 2 root wheel 3 Aug 29 23:15 .
drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
-rw-r--r-- 1 root wheel 0 Aug 29 23:15 probaSajnos azonban ez a tároló még ki sem
használja a ZFS által
felkínált lehetõségeket.
Ezért most hozzunk létre egy
állományrendszert ezen a tárolón
belül és engedélyezzük rajta a
tömörítést:&prompt.root; zfs create minta/tomoritett
&prompt.root; zfs set compression=gzip minta/tomoritettA minta/tomoritett most már egy
tömörített Z állományrendszer.
Próbáljuk ki mit tud, és másoljunk
néhány nagyobb méretû
állományt a /minta/tomoritett
könyvtárba.Ezután a tömörítés
akár ki is kapcsolható:&prompt.root; zfs set compression=off minta/tomoritettAz állományrendszer
leválasztásához adjuk ki a lenti parancsot,
majd ellenõrizzük az eredményét a
df használatával:&prompt.root; zfs umount minta/tomoritett
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235232 1628716 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
minta 17547008 0 17547008 0% /mintaTegyük ismét elérhetõvé
és csatlakoztassuk újra az
állományrendszert, majd nézzük meg
az eredményt a df paranccsal:&prompt.root; zfs mount minta/tomoritett
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235234 1628714 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
minta 17547008 0 17547008 0% /minta
minta/tomoritett 17547008 0 17547008 0% /minta/tomoritettA közös terület és az
állományrendszer mellesleg a
mount parancs kimenetébõl is
megfigyelhetõ:&prompt.root; mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1d on /usr (ufs, local, soft-updates)
minta on /minta (zfs, local)
minta/tomoritett on /minta/tomoritett (zfs, local)Látható, hogy a létrehozásuk
után a Z állományrendszerek teljesen
hétköznapi módon viselkednek, de
természetesen további lehetõségek is
elérhetõek hozzájuk. A következõ
példában adat néven
készítünk egy új
állományrendszert. Mivel ide majd nagyon fontos
állományokat akarunk elhelyezni,
állítsuk be, hogy minden adatblokkból
két példány legyen:&prompt.root; zfs create minta/adat
&prompt.root; zfs set copies=2 minta/adatA df újbóli
kiadásával most már látható
is ez az állományrendszer és annak
tárfoglalása:&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235234 1628714 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
minta 17547008 0 17547008 0% /minta
minta/tomoritett 17547008 0 17547008 0% /minta/tomoritett
minta/adat 17547008 0 17547008 0% /minta/adatVegyük észre, hogy a közös
területen levõ állományrendszerek
mindegyikén ugyanannyi szabad terület van. A
df segítségével a
késõbbiekben remekül megfigyelhetõ lesz,
hogy az egyes állományrendszerek mindig csak
annyi területet foglalnak el a közös
területbõl, amennyire abban a pillanatban
ténylegesen szükségünk van. A Z
állományrendszerek esetén megszûnik
a partíciók és kötetek fogalma,
és több állományrendszer
tárolódik egyazon közös
területen. Ha már nem akarjuk használni,
egyszerûen csak töröljük le az
állományrendszereket és ezt a
közös tárolót:&prompt.root; zfs destroy minta/tomoritett
&prompt.root; zfs destroy minta/adat
&prompt.root; zpool destroy mintaNyilván tapasztalhattunk már, hogy a
lemezeink olykor menthetetlenül meghibásodnak.
Amikor egy lemezes meghajtó tönkremegy, a rajta
tárolt adatok általában elvesznek. Az
ilyen jellegû kellemetlenségek
elkerülésének egyik módja az
ún. RAID-tömbök
építése. A következõ
szakaszban bemutatjuk, hogy a Z
állományrendszerek esetén hogyan tudunk
ilyen tömböket készíteni.RAID-Z tömbökKorábban már utaltunk rá, hogy ebben
- a szakaszban két SCSI-lemez, vagyis a
- da0 és
- da1 eszközök
- használatát feltételezzük. Egy
- RAID-Z formátumú
+ a szakaszban három SCSI-lemez,
+ vagyis a da0,
+ da1 és
+ da2 eszközök
+ használatát feltételezzük (vagy
+ természetesen ad0 és
+ így tovább, ha IDE-lemezeket használunk).
+ Egy RAID-Z formátumú
közös tároló
készítéséhez a következõ
parancsot kell kiadni:
- &prompt.root; zpool create tarolo raidz da0 da1
+ &prompt.root; zpool create tarolo raidz da0 da1 da2
+
+
+ A &sun; ajánlása szerint egy
+ RAID-Z konfigurációban
+ legalább három, legfeljebb kilenc lemezt
+ javasolt alkalmazni. Ha egyetlen közös
+ tárolóban esetleg tíznél
+ több lemezt szeretnénk felhasználni,
+ akkor érdemes inkább kisebb
+ RAID-Z csoportokra felosztani ezeket. Ha
+ viszont csak két lemezünk van, de
+ továbbra is redundanciára lenne
+ szükségünk, hozzunk helyette létre
+ egy ZFS tükrözést.
+ Ezzel kapcsolatban részletesebben a &man.zpool.8; man
+ oldalon keresztül
+ tájékozódhatunk.
+ Ennek hatására tehát keletkezik egy
tarolo nevû Z-tároló.
Ez a korábbiakhoz hasonló módon
ellenõrizhetõ is a &man.mount.8; és
&man.df.1; parancsokon keresztül. Természetesen
az iménti listába további
lemezeszközök tetszõlegesen felvehetõek.
Most hozzunk létre ezen a közös
területen egy felhasznalok nevû
állományrendszert, ahová majd a
felhasználók adatait fogjuk tenni:&prompt.root; zfs create tarolo/felhasznalokMiután ezzel megvagyunk, az imént
létrehozott állományrendszerre nyugodtan
beállíthatunk tömörítést
és biztonsági másolatokat. Ebben az
alábbi parancsok lesznek a
segítségünkre:&prompt.root; zfs set copies=2 tarolo/felhasznalok
&prompt.root; zfs set compression=gzip tarolo/felhasznalokEzt követõen költöztessük
át a felhasználókat, vagyis másoljuk
át az adataikat ide és hozzuk létre a
megfelelõ szimbolikus linkeket:&prompt.root; cp -rp /home/* /tarolo/felhasznalok
&prompt.root; rm -rf /home /usr/home
&prompt.root; ln -s /tarolo/felhasznalok /home
&prompt.root; ln -s /tarolo/felhasznalok /usr/homeA felhasználók adatai immáron a
frissen létrehozott /tarolo/felhasznalok
állományrendszeren tárolódnak.
Próbáljuk ki, hozzunk létre egy új
felhasználót és jelentkezzünk be
vele.Készítsünk most egy
pillanatképet is, amelyet aztán késõbb
szükség esetén vissza tudunk
állítani:&prompt.root; zfs snapshot tarolo/felhasznalok@08-08-30A snapshot csak valós
állományrendszerekkel mûködik,
könyvtárakra vagy állományokra nem.
A nevében a @ karakter
választja el egymástól a
hozzátartozó címkét az
állományrendszer vagy kötet
nevétõl. Ha netalán a
felhasználói könyvtárak
valamiért megsérültek volna, a
következõ paranccsal
állíthatóak vissza:&prompt.root; zfs rollback tarolo/felhasznalok@08-08-30Az adott idõpontban aktív
pillanatképeket az adott állományrendszer
.zfs/snapshot
könyvtárában találhatjuk meg.
Például az elõbb készített
pillanatkép az alábbi paranccsal
nézhetõ meg:&prompt.root; ls /tarolo/felhasznalok/.zfs/snapshotHa ebbõl elindulunk, akkor pillanatok alatt
írható egy olyan szkript, amely a
felhasználók adatairól havonta
készít egy pillanatképet. Ilyenkor
azonban fontos számításba vennünk,
hogy az idõvel felgyülemlõ pillanatképek
rengeteg helyet el tudnak foglalni. A korábbi
pillanatkép így távolítható
el:&prompt.root; zfs destroy tarolo/felhasznalok@08-08-30Miután alaposan kipróbáltuk a
/tarolo/felhasznalok
néven létrehozott
állományrendszerünket,
állítsuk be véglegesen ez eddigi
/home
állományrendszer helyére:&prompt.root; zfs set mountpoint=/home tarolo/felhasznalokEkkor a df és
mount parancsok használatával
meggyõzõdhetünk róla, hogy ezt az
állományrendszert innentõl már
valóban a /home
könyvtárnak tekintjük:&prompt.root; mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1d on /usr (ufs, local, soft-updates)
tarolo on /tarolo (zfs, local)
tarolo/felhasznalok on /home (zfs, local)
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235240 1628708 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032826 48737618 2% /usr
-tarolo 17547008 0 17547008 0% /tarolo
-tarolo/felhasznalok 17547008 0 17547008 0% /home
+tarolo 26320512 0 26320512 0% /tarolo
+tarolo/felhasznalok 26320512 0 26320512 0% /home
Ezzel lényegében befejeztük a
RAID-Z tömb
konfigurációját. Az
állományrendszerek állapotára
vonatkozóan a &man.periodic.8;
alkalmazásával akár naponta
kérhetünk ellenõrzést:&prompt.root; echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.confA RAID-Z
helyreállításaMinden szoftveres RAID
implementáció kínál valamilyen
megoldást az állapotának
ellenõrzésére, ez alól
tulajdonképpen a ZFS sem
kivétel. A RAID-Z
eszközök állapota a következõ
paranccsal kérdezhetõ le:&prompt.root; zpool status -xEzt az üzenetet láthatjuk, amikor minden
tároló kifogástalanul mûködik
és semmilyen probléma sincs:all pools are healthyHa viszont valamilyen gond lenne valamelyik lemezzel,
például leállt, akkor az elõbbi
parancs eredménye ehhez lesz hasonló: pool: tarolo
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
tarolo DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
da0 ONLINE 0 0 0
da1 OFFLINE 0 0 0
+ da2 ONLINE 0 0 0
errors: No known data errorsA válasz szerint az eszközt az
adminisztrátor állította le. Ez
ennél a példánál valóban
igaz. Lemezeket a következõ módon lehet
leállítani:&prompt.root; zpool offline tarolo da1Így miután leállítottuk a
rendszert, a da1 eszköz
cserélhetõ. A rendszer soron következõ
indításakor ezzel a paranccsal tudjuk jelezni
logikailag is a lemez cseréjét:&prompt.root; zpool replace tarolo da1Nézzük meg újra a tömb
állapotát, de ezúttal a
kapcsoló megadása nélkül, mivel csak
így fogjuk látni:&prompt.root; zpool status tarolo
pool: tarolo
state: ONLINE
scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008
config:
NAME STATE READ WRITE CKSUM
tarolo ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
+ da2 ONLINE 0 0 0
errors: No known data errorsA példa szerint minden megfelelõen
mûködik.Az adatok ellenõrzéseElõzetesen már szó esett róla,
hogy a ZFS képes a tárolt
adatok sértetlenségének
ellenõrzésére. Az új
állományrendszerek
létrehozásánál ez a
lehetõség automatikusan aktiválódik,
de tetszés szerint letiltható:&prompt.root; zfs set checksum=off tarolo/felhasznalokEz a lépés viszont nem
feltétlenül jó döntés, mivel az
adatintegritás megtartásához
felhasznált ellenõrzõ összegek nagyon
kevés helyet foglalnak és meglehetõsen
hasznosak. Emellett semmilyen észlelhetõ
lassulást nem okoznak az állományrendszer
használata során. Ha engedélyezzük,
a ZFS ilyen ellenõrzõ
összegek segítségével folyamatosan
figyelni tudja az adatok épségét. Ezt az
ellenõrzést a scrub paranccsal
válthatjuk ki. Nézzük meg
például a tarolo
esetében:&prompt.root; zpool scrub taroloEz a vizsgálat a tárolt adatok
mennyiségétõl függõen nagyon
sokáig is eltarthat, illetve rengeteg
lemezmûveletet foglal magában, ezért
egyszerre csak egy ilyen futtatása javasolt.
Miután befejezõdött, a tároló
állapota az eredményének megfelelõen
frissül, amelyet közvetlenül utána le is
kérdezhetünk:&prompt.root; zpool status tarolo
pool: tarolo
state: ONLINE
scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008
config:
NAME STATE READ WRITE CKSUM
tarolo ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
+ da2 ONLINE 0 0 0
errors: No known data errorsA példában látható az
utolsó ellenõrzés ideje. Ezen
lehetõség használatával
hosszú idõn keresztül szavatolni tudjuk az
adataink épségét.A Z állományrendszerrel kapcsolatos
további beállítási
lehetõségekrõl a &man.zfs.8; és
&man.zpool.8; man oldalakon olvashatunk.
diff --git a/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml
index 64f1166b60..e641e7fd05 100644
--- a/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml
@@ -1,2450 +1,2509 @@
RossLippertSzerkesztette: MultimédiaÁttekintésA &os; a hangkártyák széles
választékát ismeri, ami által
képesek vagyunk
számítógépünkkel hi-fi
minõségû hangzást létrehozni.
Ennek részeként rögzíteni és
visszajátszani tudunk többek közt MPEG Audio
Layer 3 (MP3), WAV és Ogg Vorbis formátumokban. A
&os; Portgyûjteménye ezenkívül tartalmaz
még olyan alkalmazásokat is, amelyekkel szerkeszteni
lehet a felvett hangokat, effekteket hozzátenni és
vezérelni a hangkártyánkhoz csatlakoztatott
MIDI eszközöket.Némi kísérletezéssel a &os;
még videoállományok és DVD-k
lejátszására is rávehetõ. A
különféle videoanyagok
kódolására,
konvertálására és
visszajátszására alkalmas programok
száma azonban jóval kisebb, mint a hanganyagok
esetén. Például az írás
pillanatában nincs a &os;
Portgyûjteményében a formátumok
közti konvertálásra alkalmas, a videókat
olyan jól újrakódolni tudó
alkalmazás, amilyen az audio esetén az audio/sox. Azonban ezen a
területen a szoftverek palettája gyorsan
változik.Ebben a fejezetben bemutatjuk a hangkártyánk
beállításához szükséges
lépéseket. Az X11 telepítése
és beállítása ()
során ugyan már foglalkoztunk a
videokártyánkkal kapcsolatos hardveres
problémákkal, azonban a jobb
visszajátszás érdekében további
cselfogásokat is be kell majd vetnünk.A fejezet elolvasása során
megismerjük:hogyan állítsuk be úgy a
rendszerünket, hogy felismerje a
hangkártyánkat;hogyan bizonyosodjuk meg róla, hogy a
kártyánk valóban
mûködik;hogyan oldjuk meg a hangkártya
beállítása során
felmerülõ problémákat;hogyan játsszunk le és kódoljunk
MP3-at vagy más egyéb
hangformátumot;hogyan támogatja a videokat az X szerver;hogyan adnak az egyes lejátszók és
kódolók még jobb eredménythogyan játsszunk le DVD-ket,
.mpg és .avi
állományokat;hogyan mentsük a CD-k és DVD-k
tartalmát állományokba;hogyan állítsuk be a TV
kártyánkathogyan állítsunk be egy scannert.A fejezet elolvasásához ajánlott:egy új rendszermag
beállításának és
telepítésének ismerete ().Ha zenei CD-ket próbálunk meg a &man.mount.8;
paranccsal csatlakoztatni, akkor az hibával, vagy a
legrosszabb esetben akár teljes
rendszerösszeomlással is járhat.
Az ilyen típusú lemezek az ISO
szabványú
állományrendszerekétõl
eltérõ kódolással rendelkeznek.MosesMooreÍrta: MarcFonvieilleA &os; 5.X verziójához
igazította: A hangkártya beállításaA rendszer beállításaPCIISAhangkártyaA mûvelet megkezdése elõtt ki kell
derítenünk, milyen típusú
hangkártyánk van, milyen chip van rajta, PCI vagy
ISA buszon csatlakozik-e. A &os; rengeteg PCI és ISA
buszos kártyát ismer egyaránt. A
sajátunk beazonosításához a
támogatott hangeszközök listáját
a Hardware Notes
(Hardverjegyzék) oldalán találhatjuk meg.
Ebbõl a jegyzékbõl mellesleg azt is
megtudhatjuk, hogy melyik meghajtó kezeli a
kártyánkat.rendszermagbeállításA hangeszközünk használatához be
kell töltenünk a neki megfelelõ meghajtót.
Ez két módon is megtehetõ. Ezek
közül az a legkönnyebb, ha a &man.kldload.8;
paranccsal egyszerûen betöltjük a rendszermag
hangkártyánkhoz tartozó modulját.
Ezt megtehetjük közvetlenül
parancssorból:&prompt.root; kldload snd_emu10k1vagy a /boot/loader.conf
állományból az alábbihoz
hasonló sor hozzáadásával:snd_emu10k1_load="YES"A fenti példák a Creative &soundblaster; Live!
hangkártyára vonatkoznak. A többi
betölthetõ hangkártya-modul felsorolása
a /boot/defaults/loader.conf
állományban található. Ha nem
vagyunk benne biztosak, hogy melyik meghajtót is akarjuk
pontosan használni, akkor próbálkozzunk az
snd_driver modul
betöltésével:&prompt.root; kldload snd_driverEz egy olyan metameghajtó, ami egyszerre betölti
az összes érintett eszközmeghajtót,
és segítségével
felgyorsíthatjuk a megfelelõ meghajtó
megtalálását. A
/boot/loader.conf
használatával is be tudjuk ugyanígy
tölteni az összes meghajtót.Az snd_driver metameghajtó
betöltése után úgy kereshetjük
meg a ténylegesen használatban levõ
meghajtót, ha megnézzük a
/dev/sndstat állományt a
cat /dev/sndstat paranccsal.A második módszer szerint a
hangkártyánk támogatását
statikusan beépítjük a rendszermagba. A
lentebb található szakaszban olvashatjuk mindazok
az információkat, amikre
szükségünk lehet ennek elvégzése
közben. A rendszermag
újrafordításával kapcsolatban
forduljunk a hez.A hangkártya támogatásával
rendelkezõ saját rendszermag
összeállításaElsõként hozzá kell adnunk a
rendszermaghoz a hangeszközök
alapmeghajtóját, a &man.sound.4; eszközt.
Ezt a rendszermag beállításait
tartalmazó állományban az alábbi
sor felvételével tehetjük meg:device soundEzután tegyük még hozzá a
hangkártyánkhoz kapcsolódó
támogatást is. Ehhez viszont pontosan tudunk
kell, melyik meghajtó képes mûködtetni
a kártyát. A hangkártyához
tartozó meghajtót a Hardware Notes
(Hardverjegyzék)-ben található
eszközök listájából
deríthetjük ki. Például a Creative
&soundblaster; Live! hangkártyát a
&man.snd.emu10k1.4; meghajtó kezeli. Ennek a
hangkártyának a támogatását
az alábbi sorral állíthatjuk be:device snd_emu10k1Az itt használatos formátumot a
meghajtó man oldalának
átolvasásából tudhatjuk meg.
Azonban az összes támogatott hangkártya
meghajtó megadásának pontos
formátuma megtalálható a
/usr/src/sys/conf/NOTES
állományban is.A PnP (Plug n Play)-t nem ismerõ ISA
kártyák esetén az összes többi
nem PnP-s ISA kártyához hasonlóan
szükséges lehet a rendszermag
számára megadnunk a kártya hardveres
beállításait (IRQ, I/O port stb). Ezt a
/boot/device.hints
állományon keresztül tehetjük meg. A
rendszerindítási folyamat során a
&man.loader.8; beolvassa ezt az állományt, majd
átadja a benne szereplõ
információkat a rendszermagnak.
Például a Creative &soundblaster; 16, nem PnP-s
ISA kártya az snd_sb16
meghajtóval együtt az &man.snd.sbc.4;
meghajtót használja. A kártya
használatához a rendszermag
beállításait tartalmazó
állományba ezeket a sorokat kell megadni:device snd_sbc
device snd_sb16valamint a /boot/device.hints
állományba ezeket:hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"Ekkor a kártya a 0x220 I/O
portot és 5 IRQ-t
használja.A /boot/device.hints
állományban alkalmazott felírási
módról bõvebben a &man.sound.4;, valamint a
kérdéses meghajtó man oldalán
tájékozódhatunk.A fentiekben bemutatott beállítások
alapértelmezettek, néhány esetben azonban
a kártyánknak megfelelõen meg kell
változtatnunk az IRQ és egyéb
értékeket. Errõl a
kártyáról konkrétan a
&man.snd.sbc.4; man oldalon olvashatunk
részletesebben.A hangkártya
kipróbálásaMiután újraindítottuk a
számítógépünket a
módosított rendszermaggal, vagy miután
betöltöttük a szükséges modult, a
hangkártyának valahogy így kell megjelennie
a rendszerünk üzenetpufferében
(&man.dmesg.8;):pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4205 AC97 Codec>A hangkártyánk állapota a
/dev/sndstat állományon
keresztül ellenõrizhetõ:&prompt.root; cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384
kld snd_ich (1p/2r/0v channels duplex default)Ez a kiírás rendszerünként
eltérhet. Ha nem látunk semmilyen
pcm0 eszközt, akkor menjünk
vissza és nézzük át újra,
pontosan mit is csináltunk. Vizsgáljuk át
a rendszermagunk beállításait
tartalmazó állományt és
gyõzõdjünk meg róla, hogy a megfelelõ
meghajtót adtuk meg. Az itt felmerülõ gyakori
gondokkal a foglalkozik.Ha azonban minden remekül haladt, akkor most már
van egy mûködõ hangkártyánk. Ha
rendesen összekapcsoltuk hangkártyánkat a CD-
vagy DVD-meghajtónk audio csatlakozásával,
akkor tegyünk egy CD-t a meghajtóba és
kezdjük el játszani a &man.cdcontrol.1;
paranccsal:&prompt.user; cdcontrol -f /dev/acd0 play 1Az olyan alkalmazások, mint például az
audio/workman, ehhez egy
sokkal barátságosabb felületet
nyújtanak. Az MP3 formátumú
állományok meghallgatásához pedig
minden bizonnyal jól fog jönni egy olyan
alkalmazás is, mint például az audio/mpg123.A kártyát úgy is tesztelhetjük, ha
az alábbihoz hasonló módon adatokat
küldünk a /dev/dsp
állományba:&prompt.user; cat állománynév > /dev/dspahol az
állománynév
tetszõleges állomány neve lehet. A parancs
hatására valamilyen zajt kell hallanunk, és
ez egyben meg is erõsíti, hogy a
hangkártyánk mûködik.A hangkártyánk csatornáinak
jellemzõit a &man.mixer.8; paranccsal
állíthatjuk. Errõl további
részleteket a &man.mixer.8; man oldalon
olvashatunk.Gyakori problémákeszközleíróI/O portIRQDSPHibaMegoldássb_dspwr(XX) timed outNem állítottuk be jól az I/O
portot.bad irq XXNem állítottuk be jól az IRQ
értékét. Gondoskodjunk
róla, hogy a beállított
érték megegyezik a
hangkártyánkéval.xxx: gus pcm not attached, out of
memoryNincs elég memória az eszköz
használatához.xxx: can't open /dev/dsp!A fstat | grep dsp parancs
kiadásával ellenõrizzük, hogy
valamelyik alkalmazás használja-e
már az eszközt. Gyakori bajkeverõ az
esound és a
KDE
hangtámogatása.MunishChopraÍrta: Több hangforrás
kihasználásaGyakoran szükségünk lehet több
hangforrás egyidejû használatára,
fõleg olyankor, amikor az esound
vagy az artsd bizonyos
alkalmazásokkal nem hajlandó megosztani a
hangeszközt.A &os; ezt a virtuális
hangcsatornák használatával
oldja meg, amit a &man.sysctl.8; eszközön
keresztül tudunk engedélyezni. Amikor a
rendszermagban virtuális csatornák
használatával keverünk, akkor
lényegében képesek vagyunk a
hangkártyánk által egyszerre
játszható hangok számát
megtöbbszörözni.A virtuális csatornák számának
beállításához a sysctl két
változóját kell módosítanunk,
amelyet root
felhasználóként így tehetünk
meg:&prompt.root; sysctl dev.pcm.0.play.vchans=4
&prompt.root; sysctl dev.pcm.0.rec.vchans=4
&prompt.root; sysctl hw.snd.maxautovchans=4A fenti példa négy virtuális
csatornát hoz létre, ami egészen
jellemzõ a mindennapi használatban. A
dev.pcm.0.play.vchans és
dev.pcm.0.rec.vchans a
pcm0 eszköz
lejátszásra és felvételre
használt virtuális csatornáinak
számát adja meg, amelyet az eszköz
csatlakoztatása után tudunk
beállítani. A
hw.snd.maxautovchans az új
eszközhöz tartozó virtuális
csatornákat adja meg, ami akkor
állítódik be, amikor a &man.kldload.8;
paranccsal csatlakoztatjuk. Mivel a
pcm modul a többi
eszközmeghajtótól függetlenül
töltõdik be, ezért a
hw.snd.maxautovchans azt tárolja, hogy
a késõbb hozzá csatlakozó
eszközök mennyi virtuális csatornát
fognak majd kapni. Errõl részletesebben a
&man.pcm.4; man oldalon olvashatunk.A használatban levõ
eszközöknél nem tudjuk megváltoztatni a
virtuális csatornák számát. Ehhez
elõször le kell állítanunk az
eszközt használó összes programot,
tehát a zenelejátszókat és
hangdémonokat.Amennyiben nem használjuk ki a &man.devfs.5;
által nyújtott lehetõségeket, az
összes alkalmazásnak a
/dev/dsp0.x
eszközre kell mutatnia, ahol az
x értéke 0-tól
3-ig terjedhet attól függõen, hogy a
dev.pcm.0.rec.vchans
értékét a fenti példához
hasonlóan 4-re állítottuk-e. A
&man.devfs.5; megoldását használó
rendszerek esetén ez a folyamat automatikusan lezajlik,
tehát az összes /dev/dsp
eszközre irányuló kérés
magától
átirányítódik.JosefEl-RayesÍrta: A keverõ alapértelmezett
értékeinek beállításaA keverõben megjelenõ
különbözõ csatornák
alapértékei a &man.pcm.4; meghajtó
forráskódjában huzalozottan
találhatóak meg. Számos alkalmazás
és démon segít két
hívás közt megõrizni a keverõben
beállított értékeket, azonban ez nem
teljesen egy tiszta megoldás. A meghajtó
szintjén is be tudjuk állítani a
keverõ alapértékeit — ezt a
/boot/device.hints állomány
megfelelõ módosításával
érhetjük el, például:hint.pcm.0.vol="50"Ezzel a &man.pcm.4; modul betöltése során
a hangerõ (volume) csatorna alapértelmezett
értéket 50-re állítjuk.ChernLeeÍrta: MP3Az MP3 (MPEG Layer 3 Audio) használatával
közel CD minõségû hangot lehet
elérni, ezért a mi &os;
munkaállomásunk sem maradhat ki elõnyeinek
élvezetébõl.MP3 lejátszókAz XMMS (X Multimedia System)
kiemelkedõen a legnépszerûbb X11-es MP3
lejátszó. Mivel az
XMMS grafikus
felhasználói felülete szinte teljesen
megegyezik a Nullsoft
Winampjának
felületével, ezért még a
Winamp skinjeit is
használhatjuk vele. Az
XMMS-ben ezenkívül
még a natív pluginek
támogatását is
megtalálhatjuk.Az XMMS a multimedia/xmms portból vagy
csomagból telepíthetõ.Az XMMS
használatára könnyû
ráérezni: megtaláljuk benne a
lejátszandó számok listáját,
egy grafikus hangszínszabályzót és
még sok minden mást. Akik már ismerik a
Winamp
mûködését, azok az
XMMS-t is egyszerûnek
érzik majd.Mellette az audio/mpg123
port egy másik, parancssoros MP3 lejátszót
kínál fel.Az mpg123
futtatásához paraméterként meg kell
adnunk a hangeszközt és lejátszandó
MP3 állományt. Ha a hangeszközünk a
/dev/dsp1.0 és a
IzéMizé-Sláger.mp3
nevû MP3 állományt akarjuk rajta
lejátszatni, akkor a következõt kell
begépelnünk:&prompt.root; mpg123 -a /dev/dsp1.0IzéMizé-Sláger.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from IzéMizé-Sláger.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
Sávok lementése CD-rõlMielõtt MP3 formátumba
tömörítenénk egy CD-t vagy annak egy
sávját, a CD-n található audio
adatot valahogy le kell tudnunk szedni a merevlemezre. Ezt
úgy tehetjük meg, ha a nyers CDDA (CD Digital Audio)
adatot WAV formátumú állományokba
mentjük.A sysutils/cdrtools
csomag részeként elérhetõ
cdda2wav segédprogrammal tudjuk a
CD-ken levõ audio és a hozzájuk
tartozó egyéb információkat
leszedni.A meghajtóban levõ CD teljes tartalmát
(root felhasználóként)
a következõ parancs kiadásával lehet
(sávonként) különálló WAV
állományokba menteni:&prompt.root; cdda2wav -D 0,1,0 -BA cdda2wav ismeri az ATAPI (IDE)
CD-meghajtókat, használatukhoz a SCSI
egység sorszáma helyett az eszköz
nevét kell megadni. Tehát például
így szedjük le egy IDE-meghajtóról a
7. sávot:&prompt.root; cdda2wav -D /dev/acd0 -t 7A a
0,1,0 sorszámú SCSI
eszközre utal, ami megfelel cdrecord
-scanbus parancs eredményének.Az egyes sávok lementéséhez a
kapcsoló
használható:&prompt.root; cdda2wav -D 0,1,0 -t 7A példa szerint a zenei CD-rõl a hetedik
sávot szedjük le. Egyszerre több sávot,
például az elsõtõl a hetedikig, egy
tartomány megadásával menthetünk
le:&prompt.root; cdda2wav -D 0,1,0 -t 1+7A &man.dd.1; segédprogram is
használható ATAPI eszközökön
levõ hangsávok kimentéséhez. Ennek
lehetõségérõl részletesebben a
ban olvashatunk.MP3 állományok
tömörítéseAz MP3 állomány
tömörítésére manapság a
legtöbben a lame
elnevezésû kódolót
választják. A portfában a
lame az audio/lame helyen
található meg.Az elõbb kimentett WAV állományok
felhasználásával az alábbi
paranccsal tudjuk átalakítani a
audio01.wav állományt
audio01.mp3
állománnyá:&prompt.root; lame -h -b 128 \
--tt "Izé dal címe" \
--ta "Izé-mizé elõadó" \
--tl "Izé-mizé album" \
--ty "2001" \
--tc "Leszedte és tömörítette: Izé" \
--tg "Mûfaj" \
audio01.wav audio01.mp3A 128 kbites tömörítés a
gyakorlatban leginkább használt
kódolási arány, sokan azonban a sokkal jobb
minõségû 160 vagy 192 kbites
tömörítést szeretik. Minél
nagyobb a kódolási arány, annál
több helyet fog foglalni a keletkezõ MP3
állomány — habár a
minõsége is jobb lesz. A
kapcsoló alkalmazásával tudjuk
aktivizálni a jobb minõségû de
valamivel lassabb módot. A
kezdetû paraméterek ID3 tageket adnak meg, amelyek
segítségével az MP3
állományokba rájuk vonatkozó
információkat tudunk beágyazni. A
tömörítés további
beállításairól a
lame man oldalán
tájékozódhatunk.MP3 állományok
kitömörítéseHa MP3 formátumú állományokat
szeretnénk audio CD-re írni, akkor ehhez
elõször tömörítetlen WAV
formátumba kell ezeket alakítanunk. Az
XMMS és az
mpg123 is egyaránt
lehetõséged ad az MP3 állományok
kitömörítésére.Lemezre írás az
XMMS-sel:Indítsuk el az XMMS
alkalmazást.Az XMMS menüjének
felhozásához kattinsunk jobb gombbal az
ablakjára.Válasszuk az Options
almenüben található
Preference menüpontot.Változtassuk meg az Output Plugin
beállítást a Disk Writer
Plugin értékre.Nyomjunk a Configure gombra.Írjuk be (vagy válasszuk ki a
Browse gombbal) a könyvtárat,
ahová majd a kitömörített
állományok kerülnek.Az eddig megszokottak szerint töltsük be az
XMMS-be az MP3
állományt, állítsuk 100%-ra a
hangerõt és kapcsoljuk ki a
hangszínszabályzót (EQ,
equalizer).Nyomjuk le a Play gombot —
úgy fog tûnni, mintha az
XMMS játszaná az
MP3 állományt, de nem hallunk semmit. Ekkor a
tartalmát állományba menti.Mikor befejeztük a
kitömörítést, ne felejtsük el
visszaállítani az Output Plugin
értékét az
alapértelmezettre.Írás a szabványos kimenetre az
mpg123-mal:Futtassuk le a mpg123 -s
audio01.mp3 >
audio01.pcm parancsot.Az XMMS az
állományokat WAV formátumban írja,
miközben az mpg123 nyers PCM
hangadatokat képez belõlük. A
cdrecord használata
során mind a két formátumból
hozhatóak létre audio CD-k. A nyers PCM a
&man.burncd.8; programmal használható. Amikor WAV
állományokkal dolgozunk, minden egyes sáv
elején egy apró kattanást hallhatunk: ez a
WAV állomány fejléce lesz. A (audio/sox portból vagy
csomagból telepíthetõ)
SoX segédprogrammal a WAV
formátumú állományok fejléce
pillanatok alatt eltávolítható: &prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.rawA CD-írók &os; alatti
használatával kapcsolatban olvassuk el a t.RossLippertÍrta: Videók lejátszásaA videolejátszás egy nagyon friss és
gyorsan fejlõdõ alkalmazási terület.
Legyünk türelmesek, ez nem minden fog annyira
könnyen menni, mint a hangok esetében.A kezdéshez nem árt tudnunk, hogy a
videokártyánk milyen gyártmányú
és milyen chipet használ. Míg az
&xorg; és az
&xfree86; számos
különféle videokártyát ismer,
csupán töredékükkel lehet jó
lejátszási teljesítményt
elõhozni. Az X11 futtatása közben az
&man.xdpyinfo.1; parancs kiadásával
kérdezhetjük le az X szervertõl a
kártyánk használatával
elérhetõ kiterjesztéseket.Érdemes a kezünk ügyében tartani egy
rövidke MPEG formátumú állományt,
amellyel majd ki tudjuk próbálni a
különféle lejátszókat és
azok beállításait. Mivel egyes DVD
lejátszók alapértelmezés szerint a
/dev/dvd helyen keresik a
lejátszandó DVD eszközt, vagy egyszerûen
csak így írták meg ezeket mindenképpen
hasznos lehet, ha szimbolikus linkeket hozunk létre a
megfelelõ eszközökre:&prompt.root; ln -sf /dev/acd0 /dev/dvd
&prompt.root; ln -sf /dev/acd0 /dev/rdvdA &man.devfs.5; mûködése miatt azonban ezek a
kézzel létrehozott linkek az
újraindítás után már nem
maradnak meg. A szimbolikus linkeket a rendszer minden egyes
indulásakor úgy tudjuk automatikusan
létrehozni, hogy ha az /etc/devfs.conf
állományba felvesszük az alábbi
sort:link acd0 dvd
link acd0 rdvdEmellett a DVD-k titkosításának
feloldása, mely a DVD-meghajtók speciális
funkcióit igényli, a DVD eszközökön
írási jogot is igényel.Az X11 osztott memóriát kezelõ
felületének gyorsításához
javasolt néhány &man.sysctl.8; változó
értékének megnövelése is:kern.ipc.shmmax=67108864
kern.ipc.shmall=32768A megjelenítõ képességeinek
megállapításaXVideoSDLDGATöbb különbözõ úton lehet
X11 alatt videókat nézni, de ennek tényleges
módját igazából a
rendelkezésre álló hardver határozza
meg. Az itt leírt módszerek által
kihozható minõség hardverenkét
eltérhet. Másodsorban a videók
megjelenítése az X11-ben az utóbbi
idõben igen nagy hangsúlyt kapott, ezért az
&xorg; és az
&xfree86; minden egyes
változatával jelentõsen javulhat a helyzet
ezen a téren.A videók megjelenítésére
használt gyakori felületek:X11: az X11 normális kimenete osztott
memórián keresztülXVideo: az X11 felületének
kiterjesztése, ami tetszõleges X11 által
kirajzolható objektum esetén támogat
videótSDL: a Simple Directmedia LayerDGA: a Direct Graphics Access (közvetlen grafikus
hozzáférés)SVGAlib: alacsonyszintû konzolos grafikus
rétegXVideoAz &xorg; és az
&xfree86; 4.X rendelkezik egy
XVideo (avagy Xvideo, Xv, xv)
elnevezésû kiterjesztéssel, amelyen
keresztül egy speciális gyorsítás
segítségével a kirajzolható
objektumokban közvetlenül meg tudunk
jeleníteni videókat. Ezzel a
kiterjesztéssel még a gyengébb
gépeken is nagyon jó minõségû
lejátszást tudunk elérni.A kiterjesztés
mûködésérõl az
xvinfo parancs kiadásával
gyõzõdhetünk meg:&prompt.user; xvinfoHa a parancs eredménye ehhez hasonló, akkor
a kártyánk támogatja az
XVideót:X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_SATURATION" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_HUE" (range -180 to 180)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 1024 x 1024
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x36315652 (RV16)
guid: 52563135-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x3e0, 0x7c00
id: 0x35315652 (RV15)
guid: 52563136-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x7e0, 0xf800
id: 0x31313259 (Y211)
guid: 59323131-0000-0010-8000-00aa00389b71
bits per pixel: 6
number of planes: 3
type: YUV (packed)
id: 0x0
guid: 00000000-0000-0000-0000-000000000000
bits per pixel: 0
number of planes: 0
type: RGB (packed)
depth: 1
red, green, blue masks: 0x0, 0x0, 0x0Az XVideo nem mindegyik
implementációjában vannak jelen a
felsorolt formátumok (YUV2, YUV12 stb.), ami viszont
néhány lejátszó
számára akadályokat jelenthet.Amennyiben viszont ezt látjuk:X-Video Extension version 2.2
screen #0
no adaptors presentAkkor a kártyánk nem rendelkezik XVideo
támogatással.Ha az XVideo nem támogatott a
kártyánk számára, akkor az
csupán csak annyit jelent, hogy a gépünknek
nehéz dolga lesz a videók
megjelenítéséhez szükséges
számítási kapacitás
kiszolgálásában. Azonban a
videokártyánktól és
processzorunktól függõen még
így is kielégítõ eredményt
tudunk elõcsalni. Ekkor viszont minden bizonnyal
érdemes lesz átolvasnunk ban, hogyan tudjuk
növelni a teljesítményét.A Simple Directmedia LayerA Simple Directmedia Layer, vagy SDL, eredetileg a
µsoft.windows;, BeOS és &unix; közti
hordozhatóságot szándékozta
megvalósítani, aminek
segítségével a hangot és
grafikát hatékonyan használni tudó
alkalmazások hozhatóak létre. Az SDL
által nyújtott réteg a hardver olyan
alacsonyszintû absztrakcióját öleli
fel, amely gyakran még az X11
felületénél is hatékonyabb.Az SDL a devel/sdl12
helyen található.Direct Graphics Access (Közvetlen grafikus
hozzáférés)A közvetlen grafikus hozzáférés
az X11 egy olyan kiterjesztése, ami lehetõvé
teszi a programok számára az X szerver
megkerülését és így
közvetlenül a videokártya
memóriáját képesek elérni.
Mivel a megosztás hatékony
megvalósításához ez nagyban
építkezik alacsonyszintû
leképzési mûveletekre, ezért az
ilyet használó programokat
root felhasználóként
kell futtatni.A DGA kiterjesztés a &man.dga.1;
segítségével tesztelhetõ és
mérhetõ. A dga parancs
kiadása után minden billentyû
lenyomására megváltoztatja a
képernyõn látható színeket.
A kilépéshez a q
billentyût kell lenyomni.A videókkal foglalkozó portok és
csomagokvideoportokvideocsomagokEbben a szakaszban a &os;
Portgyûjteményébõl a videók
lejátszására alkalmas programokat
vesszük számba. A videolejátszás
nagyon gyorsan fejlõdõ terület, ezért az
itt említett különbözõ
alkalmazások képességei az itt
leírtaktól némileg
eltérhetnek.Elõször is fontos tisztában lennünk
azzal, hogy számos &os;-n futó
videoalkalmazás eredetileg linuxos
alkalmazásként indult, és
közülük sokan még csak béta
minõségûek. Íme a &os;-n is
megtalálható videocsomagokkal kapcsolatos
néhány olyan gond, amivel esetleg
összefuthatunk:Az egyik alkalmazás nem képes
visszajátszani olyan állományt, amit
egy másik alkalmazás hozott
létre.Az alkalmazás nem képes
visszajátszani a saját maga által
készített állományokat.Ugyanazon az alkalmazás két
különbözõ gépen, amikor mind a
kettõn az adott konfigurációra
fordítjuk le, ugyanazt az állományt
másképpen játssza vissza.Egy olyan látszólag egyértelmû
szûrõ, mint például a kép
átméretezése, a hibás
átmértezõ rutin miatt nagyon
csúnya eredményt produkál.Az alkalmazás gyakran elszáll.A porthoz nem találjuk a
dokumentációt, egyedül csak az interneten
vagy a port work
könyvtárában van.Sok alkalmazás a linuxizmus jeleit is
hordozza, vagyis gondok adódhatnak abból, hogy a
szerzõk az alkalmazások
mûködtetéséhez a Linux rendszermag
és a különféle terjesztésekben
megtalálható módosított
szabványos könyvtárak
különlegességeit használják ki.
Ezeket a portok karbantartói nem mindig észlelik
és javítják ki, ami miatt az
alábbiak bármikor bekövetkezhetnek:A processzor jellemzõit a
/proc/cpuinfo állományon
keresztül állapítják meg.A szálak helytelen használatuk miatt a
program befejezõdésekor
összeakadnak.Az alkalmazással gyakran együtt
használt egyéb alkalmazások még
nem nincsenek benne a &os;
Portgyûjteményében.Az ilyen alkalmazások fejlesztõi a
hordozhatóság javításával
és a problémák megoldásával
kapcsolatban eddig mindig igyekeztek
együttmûködni a portok
karbantartóival.MPlayerAz MPlayer az utóbbi
idõben felbukkant, gyorsan fejlõdõ
videolejátszó. Fejlesztõinek célja
a sebesség és rugalmasság a Linux,
illetve más &unix; rendszereken. A
kezdeményezés abból fakadt, hogy a
fejlesztés mögött álló csapat
alapítójának elege lett az akkoriban
elérhetõ lejátszók
teljesítményébõl.
Mondhatnánk, hogy ez a program feláldozta a
grafikus felületet az áramvonalas
kialakításért, azonban ha
hozzászokunk a parancssori
beállításokhoz és a
billentyûkön keresztüli
vezérléshez, remekül
mûködik.Az MPlayer lefordításaMPlayerfordításaAz MPlayer a multimedia/mplayer helyen
található. A program a
fordítási folyamat során elvégez
számos hardverellenõrzést, aminek
eredményeképpen az egyik rendszeren
fordított program nem vihetõ a másikra.
Ezért különösen fontos portból
fordítani és nem pedig bináris csomagot
használni. Mindezek mellett a
Makefile állományban
még számos, a make
parancsnak a fordítás megkezdésekor
átadható beállítást
találhatunk:&prompt.root; cd /usr/ports/multimedia/mplayer
&prompt.root; make
N - O - T - E
Take a careful look into the Makefile in order
to learn how to tune mplayer towards you personal preferences!
For example,
make WITH_GTK1
builds MPlayer with GTK1-GUI support.
If you want to use the GUI, you can either install
/usr/ports/multimedia/mplayer-skins
or download official skin collections from
http://www.mplayerhq.hu/homepage/dload.html
Az üzenet fordítása:
F - I - G - Y - E - L - E - M
Az mplayert személyes igényeinekhez úgy tudjuk igazítani, ha
figyelmesen átnézzük a Makefile állományt! Például a WITH_GTK1
megadásával az MPlayer GTK1 alapú grafikus felülettel jön létre.
A grafikus felület használatához telepítenünk kell a
/usr/ports/multimedia/mplayer-skins portot is, vagy letölteni a
hivatalos skingyûjteményt a http://www.mplayerhq.hu/homepage/dload.html
oldalról.
A port alapbeállításai a
legtöbb felhasználó számára
megfelelõek, habár az Xvid kódek
használatához meg kell adnunk a
WITH_XVID
beállítást. Rajta kívül
még az alapértelmezett DVD eszközt is
érdemes megadni a WITH_DVD_DEVICE
beállítással, amelynek
alapértéke a
/dev/acd0.A leírás
elkészítésének
idõpontjában az MPlayer
portja létrehozza a HTML dokumentációt
és a két végrehajtható
állományt: az mplayer
lejátszót és videók
újrakódolásáért
felelõs mencoder
segédprogramot.Az MPlayer HTML
dokumentációja nagyon közlékeny,
és ha az olvasó nem találná
valamelyik videohardver vagy felület
leírását ebben a fejezetben, akkor ez a
dokumentáció mindenképpen egy hasznos
olvasnivalónak bizonyul. Ha a &unix;-ok alatt
elérhetõ videotámogatás
leírását keressük,
határozottan megéri idõt szánni az
MPlayer
dokumentációjának alapos
végigolvasására.Az MPlayer használataMPlayerhasználataAz MPlayer
használatához a felhasználói
könyvtárunkban rendelkeznünk kell egy
.mplayer elnevezésû
könyvtárral. Ezt a következõ
paranccsal tudjuk létrehozni:&prompt.user; cd /usr/ports/multimedia/mplayer
&prompt.user; make install-userAz mplayer parancssori
paraméterei a hozzátartozó man oldalon
találhatóak meg, valamint mindezek a HTML
dokumentációban még
részletesebben. Ebben a szakaszban csupán
néhányukat mutatjuk be.Egy állomány, mint például a
tesztvideo.avi,
a
beállításával
játszható le a különbözõ
felületeken:&prompt.user; mplayer -vo xv tesztvideo.avi&prompt.user; mplayer -vo sdl tesztvideo.avi&prompt.user; mplayer -vo x11 tesztvideo.avi&prompt.root; mplayer -vo dga tesztvideo.avi&prompt.root; mplayer -vo 'sdl:dga' tesztvideo.aviÉrdemes az itt felsorolt
konfigurációk mindegyikét
kipróbálni, mivel az egymáshoz
mért teljesítményük rengeteg
tényezõn múlik, de közülük
talán maga a hardver a legjelentõsebb.A DVD-k lejátszásához
cseréljük ki a
tesztvideo.avi
paramétert a
paraméterekkel, ahol az N
a lejátszandó fejezet sorszáma,
valamint az
ESZKÖZ
a DVD-hez tartozó eszközleíró.
Például így tudjuk elkezdeni
/dev/dvd eszközrõl a 3.
fejezet lejátszását:&prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvdA port fordítása során a
WITH_DVD_DEVICE paraméter
segítségével megadható az
alapértelmezett DVD eszköz, amely
alapból a /dev/acd0.
Errõl többet a port
Makefile
állományában
találhatunk.A leállításhoz,
szüneteltetéshez,
továbblépéshez és többi
hasonló funkcióhoz tartozó
billentyûket a mplayer -h parancs
kimenetébõl vagy a man oldal
elolvasásából deríthetjük
ki.A lejátszáshoz tartozó
néhány viszonylag fontos
beállítás: az teljesképernyõs módra
vált, valamint a
segít növeli a
teljesítményt.A lejátszáskor kiadandó parancs
túlburjánzását el tudjuk
kerülni, ha létrehozunk egy
.mplayer/config állományt
és itt állítjuk be a gyakori
opciókat:vo=xv
fs=yes
zoom=yesVégezetül megemlítjük, hogy az
mplayer segítségével
a DVD-n található fejezeteket ki tudjuk
menteni .vob
állományokba. A DVD második
fejezetének kimentéséhez
gépeljük be ezt:&prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvdA parancs eredményeképpen keletkezõ
out.vob állomány
formátuma MPEG lesz, amit a fejezetben bemutatott
további csomagokkal tudunk feldolgozni.mencodermencoderA mencoder
használatának megkezdése elõtt
javasolt alaposan beleásnunk magunkat a HTML
dokumentációba és megismerkednünk
az alapvetõ beállításaival. Van
külön man oldala is, azonban a HTML
leírás nélkül
önmagában ez nem túl sokat ér.
Megszámlálhatatlan úton és
módon növelhetõ benne a
minõség, csökkenthetõ a
kódolási arány,
változtatható a formátum, és
ezen apró finomságok felelõsek a
jó vagy éppen a rossz
teljesítményért. A
témába néhány példa
bemutatásával igyekszünk beavatni az
olvasót. Elõször vegyünk egy
egyszerû másolást:&prompt.user; mencoder bemenõ.avi -oac copy -ovc copy -o eredmény.aviA parancssori paraméterek helytelen
kombinációja olyan állományokat
eredményezhet, amelyeket még maga az
mplayer sem képes
lejátszani. Ezért ha csak le akarunk szedni
egy állományt, akkor maradjunk meg az
mplayer
opciójánál.A
bemenõ.avi
állományt MPEG4 video- és MPEG3
hangtömörítéssel (amihez kell majd a
audio/lame) így
tudjuk lekódolni:&prompt.user; mencoder bemenõ.avi -oac mp3lame -lameopts br=192 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq -o eredmény.aviEzzel az mplayer és
xine programok számára is
egyaránt lejátszható
állomány jön létre.A DVD fejezeteit úgy tudjuk közvetlenül
kódolni, ha a parancssorban kicseréljük a
bemenõ.avi
állományt az beállításra, illetve
ha a programot root
felhasználóként futtatjuk. De mivel
elsõre általában ritkán vagyunk
elégedettek a kódolással,
érdemes elõször inkább lementeni az
egész fejezetet egy állományba, majd
azon dolgozni.A xine videolejátszóA xine lejátszó
mögött projekt célja nem egy
mindenható alkalmazás létrehozása,
hanem inkább olyan
újrahasznosítható
függkönyvtárak és egy moduláris
felépítésû program
kifejlesztése, amelyeket pluginekkel tudunk
kiegészíteni. A multimedia/xine helyen
portként, valamint csomagként is
elérhetõ.A xine itt-ott még
valamelyest durva, de mindenképpen egy
dicséretes kezdeményezés. A
xine a gyakorlatban egyaránt
egy erõs processzort és gyors
videokártyát kíván, vagy az XVideo
kiterjesztés támogatását. A
grafikus felhasználói felülete ugyan
használható, de még kicsit
esetlen.Az írás pillanatában az
xine mellé még nem
kapunk olyan modult, amivel le tudnánk játszani
a CSS kódolású DVD-ket. Léteznek
azonban olyan külsõs modulok, amelyekkel meg lehet
valósítani ezt a feladatot, azonban a &os;
Portgyûjteményében ezeket még nem
találhatjuk meg.A xine az
MPlayerhez képes többet
tesz a felhasználóért, azonban ezzel
egyidõben el is veszi tõle a finomhangolás
lehetõségét. A
xine legjobban az XVideót
ismerõ felületeken teljesít.A xine
alapértelmezés szerint grafikus felülettel
indul, ahol a menük segítségével
tudunk megnyitni egy adott állományt:&prompt.user; xineVagy a grafikus felület használata
nélkül kiadhatjuk közvetlenül is az
állomány
lejátszását:&prompt.user; xine -g -p kedvencmozim.aviA transcodeA transcode nem egy újabb
lejátszó, hanem a video- és audio
állományok
újratömörítésére
használható programok gyûjteménye. A
transcode
segítségével a szabványos be-
és kimeneten keresztül parancssoros programokkal
képesek vagyunk videoállományokat
összefûzni, megjavítani.A multimedia/transcode
port fordítása során temérdek
beállítást adhatunk meg, amelyek
közül az alábbi parancsban foglaljuk össze
az általunk javasolandókat:&prompt.root; make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \
WITH_MJPEG=yes -DWITH_XVID=yesEzek a beállítások a legtöbb
felhasználó számára
elegendõek.A transcode képességeinek
illusztrálásához lássunk egy
példát, amiben megmutatjuk, hogyan kell egy DivX
állományt PAL szabványú MPEG-1
formátumú (PAL VCD)
állománnyá alakítani:&prompt.user; transcode -i bemenõ.avi -V --export_prof vcd-pal -o output_vcd
&prompt.user; mplex -f 1 -o eredmény_vcd.mpg eredmény_vcd.m1v eredmény_vcd.mpaAz eredményül keletkezõ
eredmény_vcd.mpg
MPEG állomány akár már
játszható is
MPlayerrel. Ha az
állományt kiírjuk egy írható
CD-re, akkor ezzel video CD-t is létre tudunk hozni,
amihez viszont szükségünk van mind a multimedia/vcdimager és
sysutils/cdrdao
programokra.A transcode parancsnak van saját
man oldala, azonban ehelyett a transcode
wikiben érdemes inkább további
információkat és példákat
keresni.Ajánlott olvasmányokA &os;-hez tartozó videoszoftverek nagyon gyorsan
fejlõdnek. Könnyen elképzelhetõ, hogy az
imént tárgyalt problémák
legtöbbje a közeljövõben hamarosan
megoldódik. Addig viszont bárkinek, aki a
legtöbbet szeretné kihozni a &os; audio- és
video lehetõségeibõl, rengeteg
leírás és dokumentáció
elolvasása alapján kell összecsiszolnia a
különbözõ
beállításokat, és csak
néhány alkalmazás mellett érdemes
kitartania. Ebben a szakaszban igyekszünk segíteni
az olvasónak megtalálni az ilyen jellegû
információkat.Az MPlayer
dokumentációja szakmai szempontból
igen közlékeny. Ezt mindenkinek érdemes
elolvasnia, aki a késõbbiekben magasabb szakmai
szinten akar foglalkozni a &unix;-os videózással.
Az MPlayer levelezési
listája viszont alig tolerálja a
dokumentációt rendesen el nem olvasó
emberek kérdéseit, ezért minden egyes hiba
bejelentése elõtt lehetõleg rendesen
nézzük át a dokumentáció
odavágó részeit.A xine
HOGYAN egyik külön fejezetében az
összes lejátszó esetén
érvényesíthetõ
teljesítménynövelési
módszereket mutat be.Végül íme néhány
ígéretes alkalmazás, amelyeket
érdemes kipróbálnunk:Avifile, ami
egyben a multimedia/avifile portOgle,
ami a multimedia/ogle
portXtheatermultimedia/dvdauthor, egy
nyílt forráskódú DVD-tartalom
szerkesztõJosefEl-RayesEredetileg írta: MarcFonvieilleKiegészítette,
továbbfejlesztette: TV kártyák
beállításaTV kártyákBevezetésA TV kártyák segítségével
kábeles vagy antennás
televízióadásokat tudunk nézni a
számítógépünkön. A
legtöbbjük RCA vagy S-video bemenettel rendelkezik,
valamint néhányukon még FM
rádiókészülék is
megtalálható.A &os; a &man.bktr.4; meghajtón keresztül a
Brooktree Bt848/849/878/879, illetve a Conexant CN-878/Fusion
878a típusú, PCI-os
videorögzító chipeket ismeri.
Ügyelnünk kell arra, hogy a kártyánkon
levõ vevõkészülék is
használható legyen, amit pedig a &man.bktr.4; man
oldalán megtalálható támogatott
eszközök listájából
ellenõrizhetünk.A meghajtó beállításaA kártyánk használatához be kell
töltenünk a &man.bktr.4; meghajtót, ami
csupán annyiból áll, hogy a
/boot/loader.conf állományhoz
hozzáadunk egy ilyen sort:bktr_load="YES"Másik lehetõségünk, ha a TV
kártya támogatását statikusan
beleépítjük a rendszermagba. Ha ezt a
megoldást választjuk, a következõ
sorokat kell elhelyeznünk a rendszermag
beállításait tartalmazó
állományba:device bktr
device iicbus
device iicbb
device smbusA fentebb látható egyéb
eszközök megadása azért
szükséges, mert a kártya
részegységei egy I2C buszon csatlakoznak
egymáshoz. Miután beillesztettük a
szükséges változtatásokat,
fordítsuk le és telepítsük az
új rendszermagot.A támogatás hozzáadása
után újra kell indítanunk a
számítógépünket. A
rendszerindítási folyamat során meg kell
jelennie a TV kártyánknak is, valahogy
így:bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.Természetesen a fenti üzenetek az
aktuális hardvereszközünknek megfelelõen
némileg eltérhetnek. Ellenõrizzük, hogy
a vevõkészüléket helyesen ismerte-e fel
a rendszer. Ha nem sikerült volna, akkor a &man.sysctl.8;
és a rendszermag beállításai
segítségével még mindig van
lehetõségünk állítani rajta.
Például, ha egy Philips SECAM
vevõkészüléket akarunk
beállítani, akkor a rendszermag
beállításaihoz még hozzá kell
adni a következõ sort:options OVERRIDE_TUNER=6vagy erre közvetlenül használhatjuk a
&man.sysctl.8; programot is:&prompt.root; sysctl hw.bt848.tuner=6A &man.bktr.4; man oldalán és a
/usr/src/sys/conf/NOTES
állományban megtalálhatjuk a többi
beállítás részletes
leírását is.Hasznos alkalmazásokA TV kártyánk tényleges
használatához azonban még a
következõ alkalmazások valamelyikét is
telepítenünk kell:A multimedia/fxtv
használatával ablakban
tévézhetünk, valamint
lehetõségünk van kép/audio/video
kimentésére is.A multimedia/xawtv
az fxtv-hez hasonló
lehetõségekkel bíró
tévénézõ alkalmazás.A misc/alevt
dekódolja és megjeleníti a
mûsorhoz kapcsolódó Videotex/Teletext
üzeneteket.Az audio/xmradio
segítségével az egyes TV
kártyákon megtalálható FM
rádiókészülékeket tudjuk
használatba venni.Az audio/wmtune a
rádióvevõkhöz
használható hasznos grafikus
alkalmazás.Ebben a témában a &os;
Portgyûjteményében további
érdekes alkalmazások találhatóak
még.HibakeresésHa bármilyen gond adódna a TV
kártyánkkal kapcsolatosan, akkor elõször
mindenképpen érdemes megnézni, hogy a rajta
levõ videorögzítõ chipet és
vevõkészüléket a &man.bktr.4;
meghajtó ténylegesen ismeri-e, illetve hogy
jól állítottuk-e be. A TV
kártyákra irányuló
különféle egyéb kérdések
és segítség tekintetében
érdemes lehet még levelet küldeni a
&a.multimedia.name; címére is.MarcFonvieilleÍrta: LapolvasóklapolvasókBevezetésA &os; lapolvasókhoz a
SANE (Scanner Access Now Easy)
elnevezésû API (alkalmazásfejlesztõi
felület) segítségével képes
hozzáférni, amelyet a
Portgyûjteményben találhatunk meg. A
lapolvasást végzõ hardvereszközök
használatához a &os; a
SANE mellett még
néhány eszközmeghajtóra is
támaszkodik.A &os; egyaránt ismeri az SCSI és USB
csatlakoztatású lapolvasókat is.
Még mielõtt nekikezdenénk a lapolvasó
beállításához, bizonyosodjuk meg
róla, hogy a SANE
támogatja. A SANEáltal
ismert eszközök felsorolásában
ellenõrizhetjük a lapolvasónk
támogatottságának állapotát.
- Ezenkívül még a &man.uscanner.4; man oldalon
- is láthatjuk az ismert USB-s lapolvasók
- listáját.
+ A &os; 8.X elõtti
+ kiadásaiban ezenkívül még a
+ &man.uscanner.4; man oldalon is láthatjuk az ismert USB-s
+ lapolvasók listáját.
A rendszermag beállításaA korábbiak értelmében tehát
mind a SCSI, mind pedig a USB felületen csatlakozó
eszközök támogatottak. A lapolvasónknak
megfelelõen eltérõ eszközmeghajtók
szükségesek.Beállítás USB felületenA GENERIC rendszermag
alapértelmezés szerint tartalmazza az USB-s
lapolvasók használatához
szükséges eszközmeghajtókat. Ha
valamiért azonban mégis saját
rendszermagot akarunk használni, akkor ne
felejtsük el ellenõrizni, hogy a rendszermag
beállításai között
megtalálhatóak a következõ
sorok:device usb
device uhci
device ohci
-device uscanner
-
- Az alaplapon levõ USB chipkészletnek
- megfelelõen a device uhci vagy
- device ohci sorok közül csak az
- egyikre lesz szükség, habár az sem okoz
- különösebben gondot, ha mind a kettõt
- benne hagyjuk.
-
- Ha nem GENERIC rendszermagunk van, de
- nem akarjuk újrafordítani, akkor a
- &man.kldload.8; parancs segítségével a
- &man.uscanner.4; eszközmeghajtó modulját
- akár közvetlenül is
- betöltethetjük:
-
- &prompt.root; kldload uscanner
-
- Ezt a modult a rendszerindítás során
- úgy tudjuk automatikusan betöltetni, ha a
- /boot/loader.conf
- állományhoz hozzávesszük a
- következõ sort:
-
- uscanner_load="YES"
-
- A megfelelõen felépített rendszermag
- elindítása vagy a szükséges modul
- betöltése után csatlakoztassuk az USB-s
- lapolvasónkat. Ez sor fog megjelenni a rendszer
- üzenetpufferében (&man.dmesg.8;):
+device ehci
+
+ A &os; 8.X elõtti
+ kiadásaiban még a következõ sorra is
+ szükségünk lesz:
+
+ device uscanner
+
+ A &os; ezen változataiban a &man.uscanner.4;
+ eszközmeghajtón keresztül tudjuk
+ használni az USB csatolóval rendelkezõ
+ lapolvasókat. A &os; 8.0
+ változatától kezdõdõen pedig
+ ehhez a &man.libusb.3;
+ függvénykönyvtár nyújt
+ közvetlen támogatást.
+
+ A megfelelõen elõkészített
+ rendszermag elindítása után csatlakoztassuk
+ az USB-s lapolvasónkat. Ez sor fog megjelenni a
+ rendszer üzenetpufferében (&man.dmesg.8;):
+
+ ugen0.2: <EPSON> at usbus0
+
+ Vagy &os; 7.X rendszerek
+ esetében:uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2
- Ez az üzenet elárulja nekünk, hogy a
- lapolvasóhoz mostantól a
+ Ezek az üzenetek elárulják nekünk,
+ hogy a lapolvasóhoz mostantól a használt
+ &os; verziótól függõen a
+ /dev/ugen0.2 vagy a
/dev/uscanner0
- eszközleíró tartozik.
-
+ eszközleíró tartozik. A fenti
+ példában egy &epson.perfection; 1650
+ típusú USB lapolvasót
+ láthatunk.Beállítás SCSI
felületenHa a lapolvasónk SCSI felületen csatlakozik,
fontos tisztában lennünk azzal, hogy pontosan
milyen SCSI-vezérlõn keresztül is
érhetjük el, ugyanis a rajta
található SCSI chipkészletnek
megfelelõen kell majd hangolnunk a rendszermag
beállításait. A
GENERIC rendszermag alapból ismeri
a leggyakrabban elõforduló
SCSI-vezérlõket. Mindenképpen olvassuk
át a NOTES nevû
állományt és adjuk hozzá a
rendszermag beállításaihoz a
megfelelõ sort. A SCSI-kártya
meghajtóján kívül még az
alábbi beállításokat is meg kell
adnunk a rendszermagunk számára:device scbus
device passAhogy sikerült a rendszermagot sikeresen
lefordítani és telepíteni, a rendszer
indulása során az üzenetpufferben
már láthatjuk is a felismert
eszközt:pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfersHa a rendszer indulásakor még nem kapcsoltuk
volna be a lapolvasónkat, a &man.camcontrol.8; parancs
segítségével késõbb
külön kérhetjük a SCSI buszon
található eszközök
újbóli felderítését:&prompt.root; camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successfulEkkor a lapolvasó megjelenik a SCSI
eszközök felsorolásában:&prompt.root; camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)A SCSI eszközökrõl további
leírásokat a &man.scsi.4; és
&man.camcontrol.8; man oldalakon találhatunk.A SANE beállításaA SANE rendszere két
részre oszlik: a backendekre (graphics/sane-backends) és a
frontendekre (graphics/sane-frontends). Ezek
közül maguk a backendek szolgáltatják a
lapolvasó
hozzáférhetõségét. A
SANE által ismert
eszközeinek listájából
kifürkészhetjük, hogy lapolvasónkat
melyik backenden keresztül érhetjük el. Az
eszköz megfelelõ használatához
döntõ fontosságú
megállapítani a hozzátartozó
backendet. A frontendek között találjuk meg a
lapolvasást felügyelõ grafikus felületeket
(mint például az
xscanimage).Elsõként telepítsük a graphics/sane-backends portot vagy
csomagot. Ezután ellenõrizzük, hogy a
SANE felismeri a lapolvasót,
és ehhez adjuk ki a sane-find-scanner
parancsot:&prompt.root; sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3A kimenetében jelzi a felületet, amin a
lapolvasó csatlakozik, valamint a
hozzátartozó eszközleírót. A
gyártó neve és a termék
típusa nem minden esetben jelenik meg, de ez nem is
annyira fontos.Némely USB-s lapolvasók esetén
még egy firmware-t is be kell töltenünk,
amirõl bõvebben a backendhez tartozó man
oldalokon olvashatunk. Ajánlott még elolvasni a
&man.sane-find-scanner.1; és &man.sane.7; man oldalakat
is.Most pedig nézzük meg, hogy vajon a frontend is
be tudja-e azonosítani a lapolvasónkat.
Alapértelmezés szerint a
SANE backendjéhez tartozik
még egy &man.scanimage.1; nevû segédprogram
is, aminek segítségével listázni
tudjuk a használható eszközöket
és képeket tudunk beolvasni parancssorból.
Közülük a kapcsoló
listáz:&prompt.root; scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
- Ha ennek eredményeképpen semmi sem jelenik
- meg, vagy a &man.scanimage.1; látszólag nem
- talált semmilyen eszközt, akkor a lapolvasó
- azonosítása nem sikerült. Ilyen esetekben
- valószínûleg módosítanunk kell
- a backend beállításait tartalmazó
- állományt a használni kívánt
- lapolvasó eszköz szerint. A backendek
- beállításait a /usr/local/etc/sane.d/
- könyvtárban találjuk. Ez a probléma
- bizonyos USB-s lapolvasók esetében
- jelentkezik.
-
- Például, ha ban használt USB-s
- lapolvasónkra a sane-find-scanner
- parancs a következõket adja vissza:
+ Vagy ha a ban
+ szereplõ USB lapolvasóval nézzük:
- &prompt.root; sane-find-scanner -q
+ &prompt.root; scanimage -L
+device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner
+
+ Ezt a kimenetet egy &os; 8.X
+ rendszeren kaptuk, ahol a
+ epson2:libusb:/dev/usb:/dev/ugen0.2 az
+ eszközhöz tartozó backendet és
+ eszközleírót
+ (/dev/ugen0.2) adja meg.
+
+
+ Ha ennek eredményeképpen semmi sem jelenik
+ meg, vagy a &man.scanimage.1; látszólag nem
+ talált semmilyen eszközt, akkor a lapolvasó
+ azonosítása nem sikerült. Ilyen esetekben
+ valószínûleg módosítanunk
+ kell a backend beállításait
+ tartalmazó állományt a használni
+ kívánt lapolvasó eszköz szerint. A
+ backendek beállításait a /usr/local/etc/sane.d/
+ könyvtárban találjuk. Ez a probléma
+ bizonyos USB-s lapolvasók esetében
+ jelentkezik.
+
+ Például, ha ban használt USB-s
+ lapolvasónkat &os; 8.X
+ alatt tökéletesen felismeri a rendszer, de a &os;
+ korábbi változatai esetén (ahol a
+ &man.uscanner.4; eszközmeghajtót
+ használják) a
+ sane-find-scanner parancs a
+ következõket adja vissza:
+
+ &prompt.root; sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0
- Akkor a lapolvasót sikerült megtalálni,
- és láthatjuk, hogy USB-n keresztül
- csatlakozik és a /dev/uscanner0
- eszközleíró tartozik hozzá. Most
- már ellenõrizhetjük a lapolvasó helyes
- beazonosítását is:
+ Akkor a lapolvasót sikerült megtalálni,
+ és láthatjuk, hogy USB-n keresztül
+ csatlakozik és a /dev/uscanner0
+ eszközleíró tartozik hozzá. Most
+ már ellenõrizhetjük a lapolvasó helyes
+ beazonosítását is:
- &prompt.root; scanimage -L
+ &prompt.root; scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
- Az üzenet fordítása:
+ Az üzenet fordítása:
-
+
Nincs azonosítható lapolvasó. Ha nem erre számítottunk, akkor ellenõrizzük,
hogy az eszközt tényleg bekapcsoltuk, csatlakoztattuk és észlelte a
sane-find-scanner segédprogram (amennyiben szükséges). Kérjük, olvassa el a
szoftverhez tartozó dokumentumtációt (README, FAQ, man oldalak)!
- Mivel a lapolvasót nem sikerült
- azonosítani, át kell írnunk a
- /usr/local/etc/sane.d/epson.conf
- állományt. A használt lapolvasó
- típusa &epson.perfection; 1650, ezért hozzá
- az epson backendet fogjuk használni.
- Ehhez feltétlenül olvassuk el a
- konfigurációs állományban
- található megjegyzéseket is. A sorokat
- igen könnyû átírni: tegyük
- megjegyzésbe az összes olyat, ahol a
- lapolvasónk számára nem megfelelõ
- felületek találhatóak (a mi esetünkben
- tehát megjegyzésbe fogjuk tenni az összes
- scsi szóval kezdõdõ sort,
- hiszen a nekünk USB-s eszközünk van), majd az
- állomány végére írjuk be a
- használni kívánt felületet és
- eszközleírót. Ez ebben a konkrét
- esetben ennyi lenne:
-
- usb /dev/uscanner0
-
- A megfelelõ formátum és a további
- részletek leírásához ne
- felejtsük el azonban elolvasni a backend
- konfigurációs állományában
- felbukkanó megjegyzéseket és az ide
- tartozó man oldalt sem. Most már
- megpróbálkozhatunk újra a lapolvasó
- azonosításával:
-
- &prompt.root; scanimage -L
+ Mivel a lapolvasót nem sikerült
+ azonosítani, át kell írnunk a
+ /usr/local/etc/sane.d/epson2.conf
+ állományt. A használt lapolvasó
+ típusa &epson.perfection; 1650, ezért
+ hozzá az epson2 backendet fogjuk
+ használni. Ehhez feltétlenül olvassuk el a
+ konfigurációs állományban
+ található megjegyzéseket is. A sorokat
+ igen könnyû átírni: tegyük
+ megjegyzésbe az összes olyat, ahol a
+ lapolvasónk számára nem megfelelõ
+ felületek találhatóak (a mi esetünkben
+ tehát megjegyzésbe fogjuk tenni az összes
+ scsi szóval kezdõdõ sort,
+ hiszen a nekünk USB-s eszközünk van), majd az
+ állomány végére írjuk be a
+ használni kívánt felületet és
+ eszközleírót. Ez ebben a konkrét
+ esetben ennyi lenne:
+
+ usb /dev/uscanner0
+
+ A megfelelõ formátum és a
+ további részletek leírásához
+ ne felejtsük el azonban elolvasni a backend
+ konfigurációs állományában
+ felbukkanó megjegyzéseket és az ide
+ tartozó man oldalt sem. Most már
+ megpróbálkozhatunk újra a
+ lapolvasó azonosításával:
+
+ &prompt.root; scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner
- Láthatjuk, hogy az USB-s lapolvasónkat
- sikerült azonosítani. Nem számít, ha
- esetleg nem egyezne a valósággal a
- gyártó vagy a típus
- megjelölése. Itt a valóban lényeges
- elem az `epson:/dev/uscanner0' mezõ
- lesz, melynek a backend és az
- eszközleíró nevét kell helyesen
- tartalmaznia.
+ Láthatjuk, hogy az USB-s lapolvasónkat
+ sikerült azonosítani. Nem számít,
+ ha esetleg nem egyezne a valósággal a
+ gyártó vagy a típus
+ megjelölése. Itt a valóban lényeges
+ elem az `epson:/dev/uscanner0' mezõ
+ lesz, melynek a backend és az
+ eszközleíró nevét kell helyesen
+ tartalmaznia.
+ A beállítást akkor zárhatjuk le,
miután a scanimage -L parancs
képes észlelni a lapolvasót. A eszköz
ekkor már készen áll a
beolvasásra.Míg a &man.scanimage.1; parancssorból teszi
lehetõvé számunkra a lapolvasást,
addig érdemesebb a képek olvasását
egy grafikus felületen keresztül
végeznünk. A SANE egy
egyszerû, ám hatékony grafikus felületet
ajánl fel ehhez, ez az
xscanimage (graphics/sane-frontends).Az Xsane (graphics/xsane) egy másik
népszerû grafikus frontend.
Segítségével speciális
lehetõségeket is kihasználhatunk, mint
például többféle
képolvasási mód
(fénymásoló, fax stb.),
színkorrekció, kötegelt beolvasás,
stb. Mind a két említett alkalmazás
elérhetõ a The GIMP
bõvítményeként is.
-
A lapolvasó használatának
engedélyezése más
felhasználók számáraA korábban tárgyalt mûveletek
mindegyikét root
felhasználóként tudjuk csak
végrehajtani. Azonban elõfordulhat, hogy más
felhasználók számára is
szeretnénk hozzáférést
biztosítani a lapolvasóhoz. Ehhez az
érintett felhasználóknak a
lapolvasóhoz tartozó
eszközleíróhoz olvasási és
írás joggal kell rendelkezniük.
Például az USB-s lapolvasónk a
+ /dev/ugen0.2
+ eszközleírót használja, amely
+ valójában csak a
+ /dev/usb/0.2.0
+ eszközleíróra mutató szimbolikus link
+ (ezt gyorsan le tudjuk ellenõrizni, ha
+ megnézzük a /dev könyvtár
+ tartalmát). Az eszközleíró és
+ a rá mutató szimbolikus link rendre a
+ wheel és
+ operator csoportok birtokában van.
+ Ha a pgj
+ nevû felhasználót felvesszük ezekbe a
+ csoportokba, akkor ezáltal hozzá tud majd
+ férni a lapolvasóhoz. Nyilvánvaló
+ biztonsági megfontolásokból azonban
+ kétszer is javasolt meggondolni, mely
+ felhasználókat mely csoportokba vesszük fel,
+ különösen, ha wheel
+ csoportról van szó. Ennél valamivel jobb
+ megoldást kínál, ha létrehozunk
+ külön az USB eszközök
+ használatára vonatkozó csoportot és
+ a lapolvasót ezen csoport tagjainak számára
+ elérhetõvé tesszük.
+
+ Tehát erre a célra például
+ megalkotjuk a
+ usb
+ csoportot. Ehhez elsõ lépésként a
+ &man.pw.8; parancs segítségével hozzuk
+ létre magát a csoportot:
+
+ &prompt.root; pw groupadd usb
+
+ Ezután a /dev/usb/0.2.0
+ eszközleírót és a rá
+ mutató /dev/ugen0.2 szimbolikus
+ linket kell az usb csoport
+ részére elérhetõvé
+ tennünk, a megfelelõ írási
+ engedélyekkel (0660 vagy
+ 0664) együtt, mivel
+ alapértelmezetten csak a tulajdonosuk
+ (root) tudja írni ezeket. Mindezt
+ úgy tudjuk megtenni, ha az
+ /etc/devfs.rules
+ állományhoz hozzáadjuk a megfelelõ
+ sorokat:
+
+ [system=5]
+add path ugen0.2 mode 0660 group usb
+add path usb/0.2.0 mode 0660 group usb
+
+ A &os; 7.X változatok
+ esetén a következõ sorokra lesz
+ szükségünk (legtöbb esetben a
/dev/uscanner0
- eszközleírót használja, amely az
- operator csoport tulajdonában van.
- Például a
- pgj nevû
- felhasználó úgy fog tudni
- hozzáférni, ha felvesszük ebbe a
- csoportba:
-
- &prompt.root; pw groupmod operator -m pgj
-
- A parancs részleteít a &man.pw.8; man
- oldalán olvashatjuk. Ezenkívül még a
- /dev/uscanner0 esetén be kell
- állítanunk a megfelelõ írási
- jogokat is (0660 vagy 0664), mivel az
- operator csoport alapból csak
- olvasni tudja. Ezt pedig úgy tehetjük meg, ha az
- /etc/devfs.rules állományhoz
- hozzáadjuk a következõ sort:
+ eszközleíróhoz):
[system=5]
-add path uscanner0 mode 660
+add path uscanner0 mode 0660 group usb
Ezt követõen az /etc/rc.conf
állományba írjuk be az alábbi sort
és utána indítsuk újra a
számítógépet:devfs_system_ruleset="system"Az itt szereplõ sorok pontos
jelentésérõl a &man.devfs.8; man
oldaláról
tájékozódhatunk.
-
- Természetesen biztonsági
- megfontolásokból azonban érdemes
- kétszer is meggondolni, hogy mely
- felhasználókat vesszük fel a ebbe
- csoportba, különösen akkor, ha az
- operator csoportról van
- szó!
-
+ Ezután már csak fel kell vennünk azokat a
+ felhasználókat a
+ usb csoportba,
+ amelyeknek engedélyezzük a lapolvasó
+ használatát:
+
+ &prompt.root; pw groupmod usb -m pgj
+ A további részletekrõl a &man.pw.8; man
+ oldalon olvashatunk.
diff --git a/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml
index 696148b512..193bb8aac6 100644
--- a/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml
+++ b/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml
@@ -1,2425 +1,2425 @@
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
+ 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 a CtrlAltBackspace
billentyûk együttes lenyomásával
szakíthatjuk meg.Az &xorg; 7.3 és
korábbi változataiban ez a
billentyûkombináció
alapértelmezés szerint engedélyezett.
Amennyiben továbbra is szükségünk
lenne rá, a 7.4 és késõbbi
változatokban ezt úgy tudjuk
engedélyezni, ha a konfigurációs
állomány ServerLayout vagy
ServerFlags szekciójába
felvesszük a következõ 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.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ítottAz 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
á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.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
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.Mozillaaz élsimítás
kikapcsolásaAz é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álataAz XDM-hez tartozó
démon a /usr/local/bin/xdm
állomány. Ezt 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
GNOME automatikusan elindul
bejelentkezéskor — nincs szükség
további beállításra.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-malGNOMEélsimított betûkAz 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
ApplicationsDesktop PreferencesFont (a magyar
változatban ez az AlkalmazásokA
munkaasztal beállításaiBetû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 secure
- Az XFce
+ Az Xfce
- Röviden az XFce-rõl
+ Röviden az Xfce-rõl
- Az XFce a
+ Az 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
+ Í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épekhez
- Az XFce-rõl
- részletesebben az XFce
+ Az Xfce-rõl
+ részletesebben az Xfce
honlapján olvashatunk.
- Az XFce telepítése
+ Az Xfce telepítése
- Az XFce-hez tartozik
+ Az 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
+ 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
+ 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.