diff --git a/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml index 2847516c84..6bbed2da17 100644 --- a/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml @@ -1,2989 +1,3232 @@ Chern Lee Geschreven door + Mike Smith Naar een tutorial van + Matt Dillon - Tevens gebaseerd op tuning(7) geschreven door + Tevens gebaseerd op tuning(7) door + Danny Pansters Vertaling door - Configuratie en optimalisatie + Instellingen en Optimalisatie Overzicht - systeem configuratie - systeem optimalisering + systeeminstellingen + systeemoptimalisatie - Een belangrijk aspect van &os; is systeemconfiguratie. - Een correcte configuratie helpt moeilijkheden bij toekomstige - upgrades te voorkomen. In dit hoofdstuk wordt de configuratie - van &os; beschreven, alsmede een aantal prestatiebevorderende + Systeeminstellingen zijn een belangrijk aspect van &os;. + Correcte instellingen helpen moeilijkheden bij toekomstige + upgrades te voorkomen. In dit hoofdstuk wordt het instellen van + &os; beschreven, alsmede een aantal prestatiebevorderende maatregelen waarmee een &os; systeem geoptimaliseerd kan worden. - Nadat je dit hoofdstuk gelezen hebt, zul je het volgende - weten: + Na het lezen van dit hoofdstuk weet de lezer: - Hoe je efficiënt met bestandssystemen en - wisselpartities omgaat + Hoe efficiënt om te gaan met bestandssystemen en + wisselpartities; - De grondslagen van het rc.conf - configuratiesysteem en van het opstarten van toepassingen - (services) d.m.v. /usr/local/etc/rc.d. + De grondbeginselen van het rc.conf + instellingensysteem en van het opstarten van toepassingen + (diensten) met + /usr/local/etc/rc.d; - Hoe een netwerkkaart geconfigureerd en getest wordt. + Hoe een netwerkkaart ingesteld en getest wordt; - Hoe je virtuele hosts configureert op je - netwerkapparatuur. + Hoe virtuele hosts op netwerkapparatuur ingesteld + worden; - Hoe de verscheidene configuratiebestanden in - /etc gebruikt worden. + Hoe de configuratiebestanden in + /etc gebruikt worden; - Hoe je &os; kunt optimaliseren met - sysctl variabelen. + Hoe &os; geoptimaliseerd kan worden met + sysctl variabelen; - Hoe schijfprestaties verbeterd en kernelbeperkingen - gewijzigd kunnen worden. + Hoe schijfprestaties te verbeteren en hoe + kernelbeperkingen gewijzigd kunnen worden. - Voordat je dit hoofdstuk leest, is het goed om eerst: + Veronderstelde voorkennis: - De &unix; en &os; grondslagen () te begrijpen. + De &unix; en &os; grondbeginselen () begrijpen; + - Bekend zijn met het actualiseren van de &os; broncode - () en - de grondlagen van kernel configuratie en compilatie - (). + Bekend zijn met de grondbeginselen van kernelinstellingen + en compilatie (). - Initiële configuratie + Initiële Instellingen Partitioneren - partitioneren + + partitioneren + + /etc + /var + /usr - Partities - - Bij het aanleggen van bestandssystemen met - &man.disklabel.8; of &man.sysinstall.8;, is het van belang - te onthouden dat op een harde schijf de data-overdracht het - snelst is aan de buitenste sporen en het langzaamst aan de - binnenste. Kleinere en veelgebruikte bestandssystemen kunnen - daarom het beste aan het begin van de schijf geplaatst worden, - terwijl grotere partities als /usr meer - naar het einde van de schijf geplaatst kunnen worden. Het is - een goed idee om partities aan te maken in deze of - gelijksoortige volgorde: root, swap, - /var, /usr. + Basispartities + + Bij het aanmaken van bestandssystemen met + &man.disklabel.8; of &man.sysinstall.8; is het van belang + dat op een harde schijf de data-overdracht het snelst is aan + de buitenste sporen en het langzaamst aan de binnenste. + Kleinere en veelgebruikte bestandssystemen kunnen daarom het + beste aan het begin van de schijf geplaatst worden, terwijl + grotere partities als /usr meer naar het + einde van de schijf geplaatst kunnen worden. Het is een goed + idee om partities aan te maken in deze of gelijksoortige + volgorde: root, swap, /var, + /usr. De grootte van /var hangt af van de wijze waarop de machine gebruikt gaat worden. /var wordt gebruikt voor onder meer - mailboxen, logbestanden, en printerdata en -wachtrijen. + mailboxen, logbestanden en printerdata en -wachtrijen. Mailboxen en logbestanden kunnen onverwacht groot worden, afhankelijk van het aantal systeemgebruikers en de bewaarduur - van logbestanden. Meestal kun je met minder dan een gigabyte - af. Vergeet echter niet dat /var/tmp - groot genoeg moet zijn om pakketten te kunnen bevatten. - - De /usr partitie bevat veel van de - benodigde systeembestanden. Tevens bavat ze de &man.ports.7; - collectie (aanbevolen) en de broncode (optioneel). Beide - zijn optioneel tijdens de installatie. - Voor deze partitie wordt tenminste 2 gigabytes aanbevolen. - - Je doet er goed aan rekening te houden met de vereiste - schijfruimte bij het kiezen van partitiegroottes. Als je in - een partitie onvoldoende vrije schijfruimte hebt, terwijl - een andere vrijwel niet gebruikt wordt, is dat een vervelend + van logbestanden. Meestal is minder dan een gigabyte + voldoende. /var/tmp moet wel groot + genoeg moet zijn om packages te kunnen bevatten. + + De partitie /usr bevat veel van de + benodigde systeembestanden. Die bevat tevens de + &man.ports.7;collectie (aanbevolen) en de broncode + (optioneel). Beide zijn optioneel tijdens de installatie. + Voor deze partitie wordt tenminste 2 gigabyte + aanbevolen. + + Het is verstandig rekening te houden met de vereiste + schijfruimte bij het kiezen van partitiegroottes. Als in een + partitie onvoldoende vrije schijfruimte is, terwijl een + andere vrijwel niet gebruikt wordt, is dat een vervelend en niet optimaal oplosbaar probleem. - &man.sysinstall.8;'s Auto-defaults - partitiekeuze kan in de ervaring van sommige gebruikers - mogelijk te kleine /var en - / partities opleveren. Partitioneer - verstandig en ben niet te zuinig met schijfruimte. - + + &man.sysinstall.8;'s Auto-defaults + partitiekeuze kan in de ervaring van sommige gebruikers + mogelijk te kleine /var en + / partities opleveren. Partitioneren + moet verstandig en niet te zuinig gebeuren. + + Wisselpartities (swap) swap grootte + wisselpartitie - wisselpartitie grootte - Als vuistregel geldt dat het wisselbestand ongeveer het + wisselpartitiegrootte + + De vuistregel is dat het wisselbestand ongeveer het dubbele van de grootte van het systeemgeheugen (RAM) moet - zijn. Bijvoorbeeld, als de machine 128 megabytes + zijn. Als de machine bijvoorbeeld 128 megabytes geheugen heeft, kan het beste een wisselbestand van (tenminste) 256 megabytes gebruikt worden. Minder dan 256 megabytes swap is in dit geval af te raden. Systemen met weinig geheugen kunnen overigens beter - functioneren met meer swap. Ook doe je er goed aan rekening + functioneren met meer swap. Ook is het verstandig rekening te houden met eventuele geheugenuitbreiding in de toekomst. - Bovendien zijn de VM paging algoritmen van de kernel zodanig - afgestemd dat ze het beste presteren bij een wisselbestand van - tenminste tweemaal de grootte van het geheugen. Een te kleine - swap kan dus inefficiënties in de VM code tot gevolg - hebben en mogelijk problemen veroorzaken indien het - systeemgeheugen later uitgebreid wordt. + Bovendien zijn de VM paging algoritmen van de kernel zo + afgestemd dat ze het beste presteren bij een wisselbestand + van tenminste tweemaal de grootte van het geheugen. Een te + kleine swap kan dus inefficiënties in de VM code tot + gevolg hebben en mogelijk problemen veroorzaken als het + systeemgeheugen uitgebreid wordt. Op grotere systemen met meerdere SCSI schijven (of - meerdere IDE schijven op verschillende controllers) is het aan - te raden om op elke schijf een wisselpartitie te configureren - (dit kan tot en met vier schijven), elk van ongeveer dezelfde - grootte. De kernel kan met arbitraire groottes werken, maar - interne datastructuren schalen tot viermaal de grootste - swappartitie. De kernel kan de beschikbare ruimte voor het - wisselbestand het meest optimaal indelen indien de partities - ongeveer even groot zijn. Een grote swap is prima, ook als ze - zelden gebruikt wordt. Zo kan het gemakkelijker zijn om een - (uit de hand gelopen) proces dat het systeem grotendeels bezet - houdt te beëindigen, voordat het noodzakelijk wordt om - opnieuw op te starten. + meerdere IDE schijven op verschillende controllers) is het + aan te raden om op elke schijf een wisselpartitie in te + stellen (dit kan tot en met vier schijven), elk met ongeveer + dezelfde grootte. De kernel kan met arbitraire groottes + werken, maar interne datastructuren schalen tot viermaal de + grootste swappartitie. De kernel kan de beschikbare ruimte + voor het wisselbestand het meest optimaal indelen als de + partities ongeveer even groot zijn. Een grote swap is prima, + ook als ze zelden gebruikt wordt. Zo kan het gemakkelijker + zijn om een (uit de hand gelopen) proces dat het systeem + grotendeels bezet houdt te beëindigen, voordat er + opnieuw opgestart moet worden. Waarom partitioneren? Waarom niet één enkele grote partitie gebruiken? Er zijn verscheidene redenen waarom dit niet zo'n goed idee is. De verschillende partities hebben hun eigen - karakteristiek operationeel gedrag en vereisten. Door ze te + karakteristieke operationele gedrag en vereisten. Door ze te scheiden zijn er betere mogelijkheden om het systeem te - optimaliseren. Bijvoorbeeld, vanaf de / - en /usr partities wordt vooral gelezen - en er wordt weinig naar geschreven, terwijl er in + optimaliseren. Vanaf de / en + /usr partities wordt bijvoorbeeld vooral + gelezen en er wordt weinig naar geschreven, terwijl er in /var en /var/tmp - zowel veel gelezen als geschreven zal worden. + zowel veel gelezen als geschreven wordt. - Door je systeem goed te partitioneren kun je vermijden dat + Door een systeem goed te partitioneren wordt vermeden dat fragmentatie die optreedt in de kleinere partities met veel schrijfactiviteit doorsijpelt naar partities die vooral lees-intensief zijn. Door schrijf-intensieve partities aan - het begin van de schijf te plaatsen, zorg je ervoor dat de - invoer/uitvoer performance het beste is daar waar het het - meest nodig is. - Ofschoon je natuurlijk ook de best mogelijke in/uit performance - wilt hebben in de grotere partities, zal het plaatsen van deze - bestandssystemen aan het begin van de schijf niet opwegen tegen - de voordelen van het plaatsen van /var aan - het begin van de schijf (na root en swap) voor wat betreft de - totale snelheid van het systeem. + het begin van de schijf te plaatsen, zijn de prestaties wat + betreft invoer/uitvoer het beste is daar waar het het + meest nodig is. Ofschoon er natuurlijk ook de best mogelijke + in/uit prestaties wenselijk zijn in de grotere partities, + weegt het plaatsen van deze bestandssystemen aan het begin + van de schijf niet tegen de voordelen van het plaatsen van + /var aan het begin van de schijf (na + root en swap) voor de totale snelheid van het systeem. Tenslotte zijn er veiligheidsoverwegingen. Een compacte en - nette root partitie die vrijwel alleen-lezen is, heeft een + nette rootpartitie die vrijwel alleen-lezen is, heeft een betere kans om een nare crash te overleven. - - Basisconfiguratie + Hoofdinstellingen rc bestanden + rc.conf - De voornaamste lokatie voor systeemconfiguratie is het bestand + De voornaamste lokatie voor systeeminstellingen is /etc/rc.conf. Dit bestand bevat een scala - aan configuratieve informatie, die gebruikt wordt om het systeem - te configureren bij het opstarten. De naam impliceert dit al; - het is informatie voor de rc* files (rc staat - voor "resource configuration"). - - De systeembeheerder wordt geacht regels toe te voegen aan het - rc.conf bestand om de standaard instellingen - uit /etc/defaults/rc.conf aan te passen. - Het standaard bestand moet niet letterlijk gekopiëerd worden - naar /etc - het bevat standaard waardes en - is niet bedoeld als voorbeeld. Alle wijzigingen die specifiek - zijn voor uw systeem horen in /etc/rc.conf - te staan. - - In een clusterscenario is het nuttig om systeem-specifieke - configuratie te scheiden van algemene configuratie die voor het - hele cluster geldt. Hiervoor kunnen een aantal strategieën + aan instellingen, die gebruikt wordt om het systeem in te stellen + bij het opstarten. De naam impliceert dit al. Het is informatie + voor de rc* bestanden (rc staat voor + resource configuration of + broninstellingen). + + De systeembeheerder wordt geacht regels toe te voegen aan + rc.conf om de standaardinstellingen uit + /etc/defaults/rc.conf aan te passen. Het + standaardbestand moet niet letterlijk gekopiëerd worden + naar /etc. Het bevat standaardwaardes en is + niet bedoeld als voorbeeld. Alle wijzigingen die specifiek + zijn voor een systeem horen in /etc/rc.conf + thuis. + + In een clusterscenario is het nuttig om systeemspecifieke + instellingen te scheiden van algemene instellingen die voor het + hele cluster gelden. Hiervoor kunnen een aantal strategieën worden gebruikt. De aanbevolen benadering is om gedeelde - configuratie in een ander bestand te plaatsen, zoals - /etc/rc.conf.site, en dit invoegen in + instellingen in een ander bestand te plaatsen, zoals + /etc/rc.conf.site en dit invoegen in /etc/rc.conf, wat verder alleen - systeem-specifieke informatie bevat. + systeemspecifieke informatie bevat. Aangezien rc.conf gelezen wordt door - &man.sh.1; is dit eenvoudig te bereiken. Bijvoorbeeld: + &man.sh.1; is dit eenvoudig te bereiken: - rc.conf: - . rc.conf.site - hostname="node15.example.com" - network_interfaces="fxp0 lo0" - ifconfig_fxp0="inet 10.1.1.1" + + rc.conf: + + . rc.conf.site + hostname="node15.example.com" + network_interfaces="fxp0 lo0" + ifconfig_fxp0="inet 10.1.1.1" - rc.conf.site: - defaultrouter="10.1.1.254" - saver="daemon" - blanktime="100" + + rc.conf.site: + + defaultrouter="10.1.1.254" +saver="daemon" +blanktime="100" - Het rc.conf.site bestand kan dan naar elk - systeem gedistribueerd met behulp van rsync of - een gelijksoortig programma, terwijl het - rc.conf bestand uniek blijft. + rc.conf.site kan dan naar elk systeem + gedistribueerd worden met rsync of een + gelijksoortig programma, terwijl rc.conf + uniek blijft. Het actualiseren van het systeem met &man.sysinstall.8; - of make world zal het - rc.conf bestand niet overschrijven, zodat - de bestaande systeemconfiguratie niet verloren gaat. + of make world overschrijft + rc.conf niet, zodat de bestaande + systeeminstellingen niet verloren gaan. - Toepassingen configureren + Toepassingen Instellingen Geïnstalleerde toepassingen hebben meestal hun eigen - configuratiebestanden, met hun eigen syntax, etc. Het is van + instellingenbestanden, met hun eigen syntaxis, etc. Het is van belang deze bestanden apart te houden van het basissysteem, - zodat ze gemakkelijk gelokaliseerd kunnen worden en beheerd - met de hulpmiddelen voor pakketbeheer. + zodat ze makkelijk gelokaliseerd kunnen worden en beheerd kunnen + worden met de hulpmiddelen voor pakketbeheer. /usr/local/etc - Deze bestanden worden typisch geïnstalleerd in - /usr/local/etc. Indien een toepassing een - uitgebreide set configuratiebestanden heeft, zal er een - subdirectory voor aangemaakt worden. + Deze bestanden worden meestal geïnstalleerd in + /usr/local/etc. Als een toepassing een + uitgebreide set bestanden voor instellingen heeft, wordt er een + submap voor aangemaakt. - Bij de installatie van een port of pakket, zullen normaliter - ook voorbeeld-configuratiebestanden geïnstalleerd worden. - Deze zijn doorgaans te herkennen aan een - .default toevoegsel. Indien er geen - bestaande configuratiebestanden voor de toepassing zijn, zullen - deze gecreëerd worden door de .default - bestanden te kopiëren. + Bij de installatie van een port of package, worden normaliter + ook voorbeeldbestanden met instellingen geïnstalleerd. Deze + zijn doorgaans te herkennen aan een toevoegsel + .default. Als er geen bestaande + instellingenbestanden voor de toepassing zijn, kunnen ze gemaakt + worden door de .default bestanden te + kopiëren. - Een voorbeeld is de directory + Een voorbeeld is de map /usr/local/etc/apache: -rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf -rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default -rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf -rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default -rw-r--r-- 1 root wheel 12205 May 20 1998 magic -rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default -rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types -rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default -rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf -rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default - Aan de grootte van de bestanden kunt je zien dat alleen - srm.conf gewijzigd is. Als je later de - Apache port vernieuwd zal dit bestand - niet overschreven worden. + Aan de grootte van de bestanden is te zien dat alleen + srm.conf gewijzigd is. Als later de + Apache port wordt vernieuwd, wordt dit + bestand niet overschreven. - Services starten + + + + Tom + Rhodes + Bijgedragen door + + + - services + Diensten Starten + + diensten + + Veel gebruikers kiezen ervoor om software van derden te + installeren op &os; vanuit de portscollectie. In veel gevallen + is het noodzakelijk om de software dusdanig in te stellen dat + het opstart tijdens het booten. Diensten zoals mail/postfix of www/apache13 zijn slechts twee + voorbeelden van softwarepakketten die gestart kunnen worden + tijdens de systeemstart. In deze paragraaf wordt toegelicht + hoe software van derde partijen kan worden gestart. + + In &os; worden de meeste diensten, zoals &man.cron.8;, door + de opstartscripts van het systeem gestart. Deze scripts kunnen + verschillen tussen &os; en leverancierversies, echter het meest + belangrijke aspect om in gedachten te houden is dat hun + opstartinstellingen verwerkt kunnen worden door simpele + opstartscripts. + + Voor de komst van rcNG zetten applicaties simpelweg een + opstartscript in de map /usr/local/etc/rc.d dat dan + uitgelezen werd door de opstartscripts van het systeem. Deze + scripts werden dan uitgevoerd tijdens de laatste stappen van + een systeemstart. + + Terwijl veel individuen bezig waren om de oude stijl van + instellen naar de nieuwe stijl over te zetten, bleef sommige + software nog steeds een script nodig hebben in de genoemde map. + De subtiele verschillen in de scripts hangen af van het wel of + niet gebruiken van rcNG. Vóór &os; 5.1 + werden scripts oude stijl gebruikt en in bijna + alle gevallen voldoet een script nieuwe + stijl. + + Elk script moet een .sh toegevoegd + hebben aan het einde en elk script moet opstartbaar zijn door + het systeem. Het laatstgenoemde kan bereikt worden met + chmod en door het zetten van de rechten + 755. Er zouden ook minimaal de opties + start en stop moeten zijn + voor de applicatie. + + Het simpelste opstartscript ziet er waarschijnlijk als + volgt uit: + + #!/bin/sh +echo -n ' utility' - Het is gebruikelijk dat op een systeem een aantal services - draaien. Dit zijn 'dienstverlenende' toepassingen die normaliter - niet gestopt worden. Er zijn verscheidene methoden om een - service, of daemon, te starten. +case "$1" in +start) + /usr/local/bin/utility + ;; +stop) + kill -9 `cat /var/run/utility.pid` + ;; +*) + echo "Usage: `basename $0` {start|stop}" >&2 + exit 64 + ;; +esac - /usr/local/etc/rc.d +exit 0 - Software geïnstalleerd van een port of pakket - plaatst vaak een script in /usr/local/etc/rc.d - dat bij het opstarten van het systeem wordt aangeroepen met een - argument en bij het afsluiten van het - systeem met een argument. - Dit is de aanbevolen wijze om systeem-wijde services te starten - die moeten draaien als root, of waarvan - het de bedoeling is dat ze initiëel worden gestart als - root. + Dit script levert de opties stop en + start voor de applicatie met de naam + utility. Deze applicatie zou dan de + volgende regels in /etc/rc.conf geplaatst + kunnen hebben: - Deze scripts worden geregistreerd als onderdeel van de - installatie van het pakket en ze worden verwijderd als het - pakket gedeïnstalleerd wordt. + utility_enable="YES" - Een generiek opstartscript in - /usr/local/etc/rc.d ziet er als volgt - uit: + Dit kan handmatig gestart worden met: - #!/bin/sh -echo -n ' FooBar' + &prompt.root; /usr/local/etc/rc.d/utility.sh start -case "$1" in -start) - /usr/local/bin/foobar - ;; -stop) - kill -9 `cat /var/run/foobar.pid` - ;; -*) - echo "Usage: `basename $0` {start|stop}" >&2 - exit 64 - ;; -esac + Hoewel niet alle software van derden een regel nodig heeft + in /etc/rc.conf, wordt er bijna elke + dag een wel een port veranderd om deze instellingen te + ondersteunen. De meldingen tijdens de installatie van de port + bevatten vaak meer informatie. Sommige software + van derden levert opstartscripts die de applicatie kunnen laten + werken met rcNG. Dit wordt in de volgende paragraaf + behandeld. -exit 0 - - - De opstart- en afsluitscripts van &os; doorzoeken - /usr/local/etc/rc.d naar scripts met een - .sh extensie die uitvoerbaar zijn door - root. Deze worden aangeroepen met de opties - en bij - respectievelijk het opstarten en het afsluiten van het systeem. - Dus als je zou willen dat het bovenstaande script op het juiste - moment in de opstartroutine van het systeem gevonden en - uitgevoerd wordt, zou je het opslaan als - FooBar.sh in - /usr/local/etc/rc.d en het uitvoerbaar maken. - Dat laatste doe je met behulp van het &man.chmod.1; - commando: + + Uitgebreide Applicatieinstellingen - &prompt.root; chmod 755 FooBar.sh - - Sommige services verwachten aangeroepen te worden door - &man.inetd.8; wanneer er een verbinding wordt gemaakt naar - een geschikte poort. Dit is gebruikelijk voor services als POP - en IMAP, of telnet. In dit geval kun je dergelijke services - inschakelen door het bestand /etc/inetd.conf - te wijzigen. Zie &man.inetd.8; voor details. - - Sommige toegevoegde systeemservices zijn misschien niet - afdoende af te stemmen met /etc/rc.conf - parameters. Traditioneel werden de commando's om zulke services - te starten in /etc/rc.local geplaatst. - Sinds &os; 3.1 is er geen standaard - /etc/rc.local meer. Als je het bestand - echter aanmaakt, zal het op de verwachte manier gebruikt worden. - Merk op dat een rc.local bestand in het - algemeen beschouwd wordt als laatste redmiddel; als er een - betere plaats is om de service te starten, doe het dan - daar. - - Plaats geen commando's in - /etc/rc.conf. Om daemons te starten of - enig commando uit te voeren bij het opstarten, moet je een - script in /usr/local/etc/rc.d - plaatsen. - - Het is ook mogelijk om systeemservices te starten met behulp - van de &man.cron.8; daemon. Deze aanpak heeft een aantal - voordelen, niet in het minst omdat &man.cron.8; deze processen - uitvoert als de eigenaar van de crontab in - kwestie, waardoor services gestart en onderhouden kunnen worden - door niet-root gebruikers. - - Hierbij wordt een eigenschap van &man.cron.8; benut: de - specificatie van het tijdstip kan vervangen worden door - @reboot, waardoor de betreffende taak wordt - uitgevoerd wanneer &man.cron.8; gestart wordt, kort na - de systeemstart. + Nu &os; rcNG heeft, zijn de instellingen van + applicaties die mee moeten opstarten verbeterd. Er is meer + diepgang in gekomen. Door gebruik te maken van de + sleutelwoorden die in de paragraaf rcNG behandeld worden, + kunnen applicaties nu starten na andere diensten. + DNS kan bijvoorbeeld extra opties + meekrijgen van /etc/rc.conf in plaats + van hard ingestelde opties in het opstartscript. Een + basisscript ziet er ongeveer als volgt uit: + + #!/bin/sh +# +# PROVIDE: utility +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: FreeBSD shutdown + +# +# WIJZIG DEZE WAARDEN NIET HIER +# MAAR IN HET BESTAND /etc/rc.conf +# +utility_enable=${utility_enable-"NO"} +utility_flags=${utility_flags-""} +utility_pidfile=${utility_pidfile-"/var/run/utility.pid"} + +. /etc/rc.subr + +name="utility" +rcvar=`set_rcvar` +command="/usr/local/sbin/utility" + +load_rc_config $name + +pidfile="${utility_pidfile}" + +start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${utility_flags} ${command_args}" + +run_rc_command "$1" + + Dit script zorgt ervoor dat + utility wordt gestart voor + de dienst login, maar na de dienst + daemon. Het biedt ook de mogelijkheid + voor het instellingen en volgen van het + PID of het process ID + bestand. + + Deze nieuwe methode maakt het volgende mogelijk: + makkelijker commandoregelopties manipuleren, importeren van + standaardfuncties uit /etc/rc.subr, + compatibiliteit met het &man.rcorder.8; programma en het + eenvoudiger instellingen via + /etc/rc.conf. In essentie kan dit + script zelfs geplaatst worden in de map /etc/rc.d. Dat kan in + potentie wel het &man.mergemaster.8; programma van de wijs + brengen als dat gebruikt wordt voor het bijwerken van + software. + + + + Diensten met Diensten Starten + + Andere diensten, zoals POP3 server + daemons, IMAP, enzovoort, kunnen gestart + worden door gebruik te maken van &man.inetd.8;. Daaraan is + voorafgegaan dat die dienst uit de portscollectie is + geïstalleerd en dat er een regel met instellingen is + toegevoegd aan /etc/inetd.conf of + één van de bestaande niet actieve regels is + geactiveerd. Werken met inetd + en zijn instellingen wordt uitgebreid toegelicht in de + paragraaf over inetd. + + In sommige gevallen is het handiger om &man.cron.8; te + gebruiken om diensten te starten. Deze aanpak heeft een aantal + voordelen omdat cron start als de eigenaar + van crontab. Dit stelt reguliere + gebruikers in staat om sommige applicaties te starten en te + onderhouden. + + cron levert een unieke optie: plaats van + een tijdsspecificatie kan @reboot gebruikt + worden. Dit zorgt ervoor dat de taak gestart wordt als + &man.cron.8; gestart wordt, meestal tijdens een + systeemstart. + - + Tom Rhodes Een bijdrage van - Configuratie van <command>cron</command> - cron - configuratie + <command>cron</command> Instellen + + + cron + + instellen + Een zeer nuttig hulpprogramma in &os; is &man.cron.8;. De cron daemon draait op de achtergrond en - controleert voortdurend het bestand - /etc/crontab. Ook controleert - cron de /var/cron/tabs - directory, op zoek naar nieuwe crontab - bestanden. Deze crontab bestanden bevatten - informatie over specifieke taken die cron moet - verrichten op gezette tijden. - - Het cron programma gebruikt twee - verschillende soorten configuratiebestanden, de systeemcrontab en - gebruikerscrontabs. Het enige verschil tussen deze twee formaten - is het zesde veld. In de systeemcrontab is dit de gebruikersnaam - als wie het commando wordt uitgevoerd. Dit geeft de - systeemcrontab de mogelijkheid om commando's uit te voeren als - elke gebruiker. In een gebruikerscrontab is het zesde veld het - uit te voeren commando en alle commando's worden uitgevoerd als - de gebruiker die de crontab heeft aangelegd. Dit is een - belangrijke veiligheidsmaatregel. - - Gebruikerscrontabs geven individuele gebruikers de + controleert voortdurend /etc/crontab. Ook + controleert cron de map + /var/cron/tabs, op zoek naar nieuwe + crontab bestanden. Deze + crontab bestanden bevatten informatie over + specifieke taken die cron moet verrichten op + gezette tijden. + + cron gebruikt twee verschillende soorten + instellingenbestanden: de systeemcrontab en gebruikerscrontabs. + Het enige verschil tussen deze twee formaten is het zesde veld. + In de systeemcrontab is dit de gebruikersnaam die het commando + uitvoert. Hierdoor kunnen met de systeemcrontab commando's als + iedere gebruiker uitgevoerd worden. In een gebruikerscrontab is + het zesde veld het uit te voeren commando en alle commando's + worden uitgevoerd als de gebruiker die de crontab heeft + aangemaakt. Dit is een belangrijke veiligheidsmaatregel. + + + Gebruikerscrontabs geven individuele gebruikers de mogelijkheid om bepaalde terugkerende taken automatisch te - laten uitvoeren zonder dat root privileges noodzakelijk zijn. - Commando's in de crontab van een gebruiker worden uitgevoerd - met de permissies van de eigenaar. + laten uitvoeren zonder dat root rechten + noodig zijn. Commando's in de crontab van een gebruiker + worden uitgevoerd met de rechten van de eigenaar. - Root kan ook een gebruikerscrontab aanleggen. Dit is niet - dezelfde als /etc/crontab - (de systeemcrontab). Omdat er al een systeemcrontab is, - is het doorgaans niet nodig om een gebruikerscrontab voor root - te maken. + root kan ook een gebruikerscrontab + aanleggen. Dit is niet dezelfde als + /etc/crontab (de systeemcrontab). Omdat + er al een systeemcrontab is, is het doorgaans niet nodig om een + gebruikerscrontab voor root te + maken. + - - Het /etc/crontab bestand (systeemcrontab) - ziet er uit als volgt: + /etc/crontab (de systeemcrontab) ziet er + uit als volgt: # /etc/crontab - root's crontab for &os; # # $&os;: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $ # # SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # # -#minute hour mday month wday who command +#minuut uur mdag maand wdag wie commando # # -*/5 * * * * root /usr/libexec/atrun +*/5 * * * * root /usr/libexec/atrun + - Zoals in de meeste &os; configuratiebestanden, - representeert een # karakter commentaar. + Zoals in de meeste &os; instellingenbestanden gaat het + karakter # vooraf aan commentaar. Commentaar wordt gebruikt als uitleg en geheugensteun. Commentaar dient niet vermengd te worden met commando's, - anders zal het commentaar geïterpreteerd worden als - deel van het commando. Blanco regels worden genegeerd. + anders wordt het commentaar opgevat als deel van het + commando. Blanco regels worden genegeerd. - Eerst worden omgevingsvariabelen gedefiniëerd. Het - is-gelijk karakter (=) wordt hiervoor - gebruikt; in geval van dit voorbeeld de SHELL, - PATH en HOME variabelen. Als de - SHELL regel ontbreekt, zal - cron standaard sh als - shell gebruiken. Voor de PATH - omgevingsvariabele is er geen standaardwaarde. Als - PATH ontbreekt moet men absolute paden - gebruiken. Indien HOME ontbreekt, zal - cron de home directory gebruiken van de - de gebruiker die cron aanroept. + Eerst worden omgevingsvariabelen gedefiniëerd. + Hoervoor wordt het is-gelijk karakter (=) + gebruikt. In het bovenstaande voorbeeld wordt het gebruikt + voor de variabelen SHELL, PATH + en HOME. Als de regel SHELL + ontbreekt, gebruikt cron standaard + sh als shell. Voor de omgevingsvariabele + PATH bestaat geen standaardwaarde. Als + PATH ontbreekt moeten absolute paden + gebruikt worden. Als HOME ontbreekt, gebruikt + cron de thuismap van de de gebruiker die + cron aanroept. - In deze commentaarregel kun je de zeven velden zien van - een crontab definitie. Dit zijn minute, - hour, mday, - month, wday, - who en command. De - betekenissen liggen voor de hand: minute is - het aantal minuten van het tijdstip waarop het commando moet - worden uitgevoerd; hour geeft het uur aan; - mday staat voor de dag van de maand; - month staat voor het maandnnummer en - wday geeft de dag van de week aan. Het - veld who is bijzonder en bestaat enkel in - het /etc/crontab bestand. Het geeft aan - als welke gebruiker het commando dient te worden uitgevoerd. - Een gebruiker die zijn eigen crontab - bestand installeert heeft deze optie niet. Het - command veld tenslotte bevat het uit te - voeren commando. + In deze commentaarregel staan de zeven velden van een + crontabdefinitie. Dit zijn minuut, + uur, mdag, + maand, wdag, + wie en commando. De + betekenissen liggen voor de hand: minute + is het aantal minuten van het tijdstip waarop het commando + moet worden uitgevoerd; hour geeft het uur + aan; mdag staat voor de dag van de maand; + maand staat voor het maandnummer en + wdag geeft de dag van de week aan. Het + veld wie is bijzonder en bestaat alleen in + /etc/crontab. Het geeft aan als welke + gebruiker het commando uitgevoerd moet worden. Een gebruiker + die zijn eigen crontab installeert, + heeft deze optie niet. Het veld command + bevat het uit te voeren commando. In deze regel worden aan de hierboven besproken opties - waarden toegekend. Merk op dat er gebruik wordt gemaakt van - * karakters. Deze betekenen - eerst-laatst en kunnen gezien worden als - telkens. In deze regel staat dus dat - het commando atrun elke vijf minuten - moet worden uitgevoerd door root, - ongeacht welke dag of maand het is. Voor meer informatie over - atrun wordt verwezen naar de &man.atrun.8; - handleiding. - - Commando's kunnen een willekeurig aantal schakelopties of - argumenten hebben. Echter, als commando's meerdere regels + waarden toegekend. Er wordt gebruik gemaakt van + */5 en * karakters. + Deze betekenen eerst-laatst en kunnen gezien + worden als telkens. In deze regel staat + dus dat het commando atrun elke vijf + minuten moet worden uitgevoerd door + root, ongeacht welke dag of maand het + is. Meer informatie over atrun staat in + &man.atrun.8;. + + Commando's kunnen een willekeurig aantal opties of + argumenten meekrijgen. Als commando's echter meerdere regels nodig hebben moeten deze regels afgebroken worden met een backslash \ karakter, om aan te geven dat ze op de volgende regel vervolgd worden. Dit is de basisopzet voor elk crontab - bestand. De enige uitzondering is de aanwezigheid van veld nummer - zes, waar de gebruikersnaam gespecificeerd wordt. Dit veld - bestaat alleen in het systeembestand - /etc/crontab. Voor - crontab bestanden van individuele - gebruikers moet dit veld worden weggelaten. + bestand. De enige uitzondering is de aanwezigheid van veld zes, + waar de gebruikersnaam wordt aangegeven. Dit veld bestaat alleen + in het systeembestand /etc/crontab. Voor + crontabbestanden van individuele gebruikers + moet dit veld worden weggelaten. - Een crontab installeren + Een Crontab Installeren + + + De onderstaande procedure moet niet gebruikt worden om de + systeemcrontab te wijzigen of te installeren. Er kan een + gewone editor gebruikt worden. cron + ziet dat het bestand veranderd is en begint direct met het + gebruiken van de nieuwe versie. Deze + FAQ vraag geeft verdere uitleg. + Om een nieuwe crontab te installeren - kun je het crontab commando gebruiken. - Het meest gebruikelijk is: + moet eerst een bestand in het juiste formaat gemaakt worden en + daarna moet het geiuml;nstalleerd worden met + crontab commando: + + &prompt.root; crontab crontabbestand - &prompt.root; crontab crontab + In dit voorbeeld is crontabbestand de + naam van een eerder gemaakt + crontabbestand. Er bestaat ook een optie om een lijst van - geïnstalleerde crontab bestanden op te - vragen, namelijk de schakeloptie van + geïnstalleerde crontab bestanden op + te vragen, namelijk de optie van crontab. - Gebruikers die hun eigen crontab bestand willen schrijven - zonder het gebruik van een template, kunnen de - crontab -e optie benutten. Dit zal je - EDITOR openen met een leeg bestand. Wanneer het - bestand wordt opgeslagen en de editor afgesloten, wordt het + Gebruikers die hun eigen crontabbestand willen schrijven + zonder het gebruik van een sjabloon, kunnen gebruik maken van + crontab -e. Dit opent de + EDITOR met een leeg bestand. Als het bestand + wordt opgeslagen en de editor wordt afgesloten, wordt het bestand automatisch als crontab geïnstalleerd. + Een gebruikerscrontab kan verwijderd + worden door de met crontab de optie + te gebruiken. - - Tom - Rhodes - Een bijdrage van - + + Tom + Rhodes + Een bijdrage van + - Het rc-systeem van FreeBSD 5.X + Gebruik van rc met &os; 5.X rcNG - &os; heeft recentelijk het NetBSD - rc.d systeem voor systeem initialisatie - overgenomen. Veel van de bestanden in - /etc/rc.d zijn scripts voor basisservices - die werken met de , - en opties, analoog aan de wijze waarop - services die via een port of pakket zijn geïnstalleerd + &os; gebruikt inmiddels het NetBSD rc.d + systeem bij het opstarten van het systeem. Veel van de bestanden + in /etc/rc.d zijn scripts voor basisdiensten + die werken met de opties , + en , analoog aan + hoe diensten die via een port of package zijn geïnstalleerd gestart worden met de scripts in - /usr/local/etc/rc.d. - Je kunt bijvoorbeeld &man.sshd.8; herstarten als volgt: + /usr/local/etc/rc.d. &man.sshd.8; kan + bijvoorbeeld als volgt herstart worden: &prompt.root; /etc/rc.d/sshd restart - Deze procedure is hetzelfde voor andere services. Uiteraard - worden services normaliter automatisch gestart zoals - gespecificeerd in &man.rc.conf.5;. Om bijvoorbeeld de Network - Address Translation daemon te starten bij het opstarten van het - systeem voeg je simpelweg de volgende regel toe aan - /etc/rc.conf: + Deze procedure is vrijwel gelijk voor andere diensten. + Uiteraard worden diensten meestal automatisch gestart zoals + in &man.rc.conf.5; staat. Om de Network Address Translation + daemon bij het opstarten te laten starten is de volgende regel in + /etc/rc.conf bijvoorbeeld voldoende: natd_enable="YES" - Als er reeds een regel is, - verander je gewoon in . - De rc scripts zullen voor zover nodig automatisch andere - afhankelijke services starten. + Als er reeds een natd_enable="NO" regel + is, kan NO gewoon in YES + veranderd worden. De rc scripts starten, voor zover nodig, + automatisch andere afhankelijke diensten. - Omdat het rc.d systeem in eerste instantie - bedoeld is om services te starten/stoppen bij het - opstarten/afsluiten van het systeem zullen de standaard + Omdat het rc.d systeem in eerste + instantie bedoeld is om diensten te starten en stoppen bij het + opstarten en afsluiten van het systeem, werken de standaardopties , en - opties alleen werken als de geschikte - variabelen in /etc/rc.conf ingesteld zijn. - Bijvoorbeeld, het sshd restart commando werkt - dan en slechts dan als sshd_enable de waarde - krijgt in /etc/rc.conf. - Als je een service wil starten, stoppen of herstarten ongeacht de - definities in /etc/rc.conf moet het commando - voorafgegaan te worden met force. Dus om + alleen als de juiste variabelen in + /etc/rc.conf zijn ingesteld. Het commando + sshd restart alleen dan als + sshd_enable de waarde YES + heeft in /etc/rc.conf. Als er een service + gestart, gestopt of herstart moet worden, ongeacht de definities + in /etc/rc.conf, moet het commando + voorafgegaan worden door force. Dus om sshd te herstarten ongeacht - /etc/rc.conf setting, zou je het volgende - commando uitvoeren: + /etc/rc.conf setting, voldoet het volgende + commando: &prompt.root; /etc/rc.d/sshd forcerestart - Je kunt eenvoudig controleren of een service is "aangezet" in - /etc/rc.conf door het bijpassende - rc.d script uit te voeren met de optioe - . Bijvoorbeeld voor - sshd: + Het is eenvoudig te controleren of een dienst is ingeschakeld + is in /etc/rc.conf door het bijpassende + rc.d script uit te voeren met de optie + . Voor sshd: &prompt.root; /etc/rc.d/sshd rcvar # sshd $sshd_enable=YES - De tweede regel (# sshd) is de uitvoer - van het sshd command, niet een + De tweede regel (# sshd) is de + uitvoer van sshd, geen root console. - Om vast te stellen of een service draait is er de - optie. Bijvoorbeeld, om te controleren - of sshd daadwerkelijk gestart is: + De optie wordt gebruikt om vast te + stellen of een dienst gestart is. Om bijvoorbeeld te controleren + of sshd gestart is: &prompt.root; /etc/rc.d/sshd status sshd is running as pid 433. - Het is ook mogelijk om een service te herladen met de optie + Het is ook mogelijk om een dienst te herladen met de optie . Dan wordt er getracht een signaal te - sturen aan een individuele service, waarbij de service haar - configuratiebestanden zal moeten herlezen. Meestal komt dit neer - op het verzenden van een SIGHUP signaal. + sturen aan een individuele dienst, waarbij de dienst de bestanden + met instellingen opnieuw in moet lezen. Meestal komt dit neer + op het verzenden van het signaal + SIGHUP signaal. - De rcNG structuur wordt niet alleen - gebruikt voor netwerkservices, maar ook voor het merendeel van de - systeeminitialisatie. Beschouw bijvoorbeeld het bestand - bgfsck. Als dit script wordt uitgevoerd - zal de volgende boodschap worden getoond: + De structuur van rcNG wordt niet + alleen gebruikt voor netwerkdiensten, maar ook voor het merendeel + van de systeemstart. In dit kader is bijvoorbeeld het bestand + bgfsck interessant. Als dit script wordt + uitgevoerd, wordt de volgende boodschap getoond: Starting background file system checks in 60 seconds. Dit script wordt dus gebruikt voor bestandssysteemcontrole - in de achtergrond, hetgeen alleen tijdens systeeminitialisatie + in de achtergrond, hetgeen alleen tijdens de systeemstart gebeurt. - Veel systeemservices zijn afhankelijk van andere services om - correct te kunnen functioneren. Zo zullen NIS en andere - RPC-gebaseerde services niet starten als de - rpcbind (portmapper) service nog niet draait. - Om dit te stroomlijnen wordt informatie over afhankelijkheden en - andere meta-data ingevoegd in het commentaar bovenaan het - opstartscript. Het &man.rcorder.8; programma wordt vervolgens - gebruikt om deze commentaarregels te verwerken tijdens de - systeeminitialisatie en zo vast te stellen in welke volgorde - de systeemservices gestart moeten worden. De volgende woorden - kunnen worden ingevoegd aan het begin van elk + Veel systeemdiensten zijn afhankelijk van andere diensten om + correct te kunnen functioneren. Zo starten NIS en andere + RPC-gebaseerde diensten niet als de rpcbind + (portmapper) dienst nog niet draait. Om dit te stroomlijnen + wordt informatie over afhankelijkheden en andere meta-data + ingevoegd in het commentaar bovenaan het opstartscript. Deze + commentaarregels worden vervolgens tijdens de systeemstart + met &man.rcorder.8; verwerkt om zo vast te stellen in welke + volgorde de systeemdiensten gestart moeten worden. De volgende + sleutelwoorden kunnen worden opgenomen aan het begin van elk opstartscript: - PROVIDE: Specificeert in welke services + PROVIDE: geeft aan in welke diensten dit bestand voorziet. - REQUIRE: Specificeert welke andere - services vereist zijn voor deze service. Dit script wordt - uitgevoerd na de gespecificeerde - services. + REQUIRE: geeft aan welke andere + diensten vereist zijn voor deze dienst. Dit script wordt + uitgevoerd na de aangegeven + diensten. - BEFORE: Specificeert services die - afhankelijk zijn van deze service. - Dit bestand wordt uitgevoerd voor - de gespecificeerde services. + BEFORE: geeft diensten aan die + afhankelijk zijn van deze dienst. Dit bestand wordt + uitgevoerd vóór de + aangegeven diensten. - KEYWORD: &os; of NetBSD. Dit wordt gebruikt voor speciale - eigenschappen van één van de *BSD's. + KEYWORD: &os; of NetBSD. Dit wordt gebruikt voor + speciale eigenschappen van één van de + *BSD's. Met deze methode kan een systeembeheerder gemakkelijk - systeemservices besturen, zonder gedoe met runlevels - zoals met sommige andere &unix; systemen het geval is. + systeemdiensten besturen, zonder gedoe met + runlevels zoals bij sommige andere &unix; + systemen. - Overige informatie over het &os; 5.X - rc.d systeem vindt u in de &man.rc.8; - en &man.rc.subr.8; handleidingen. + Meer informatie over het &os; 5.X rc.d + staat in &man.rc.8; en &man.rc.subr.8;. Marc Fonvieille Een bijdrage van - Configureren van een netwerkkaart + Netwerkkaarten Instellen - netwerkkaart configuratie + netwerkkaart instellen - We kunnen ons vandaag nog nauwelijks een computer voorstellen - zonder een netwerkverbinding. Het toevoegen en configureren van - een netwerkkaart is een gebruikelijke taak voor een - &os; beheerder. + Het is tegenwoordig nauwelijks voorstelbaar dat een computer + geen netwerkverbinding heeft. Het toevoegen en instellen van + een netwerkkaart is een gebruikelijke taak voor een &os; + beheerder. - Het geschikte stuurprogramma vinden + Het Juiste Stuurprogramma Vinden netwerkkaart configuratie + stuurprogramma - Voor je begint, moet je weten welke kaart je hbet, welke - chip erop zit en of het een PCI of ISA kaart is. &os; - ondersteunt vele kaarten. Controleer de - Hardware Compatibiliteit Lijst voor de betreffende release om - na te gaan of je kaart ondersteund wordt. + Voor het zoeken begint, moet duidelijk zijn om welke kaart + het gaat, welke chip erop zit en of het een PCI of ISA kaart + is. &os; ondersteunt vele kaarten. Op de Hardware + Compatibiliteitslijst voor de betreffende release om staan de + kaarten die ondersteund worden. - Als je zeker bent dat je kaart ondersteund wordt, moet + Als duidelijk is dat een kaart ondersteund wordt, moet vastgesteld worden wat het geschikte stuurprogramma is. - Het bestand /usr/src/sys/i386/conf/LINT - (4.X) of /usr/src/sys/conf/NOTES geeft een - lijst van netwerkinterface stuurprogramma's met wat informatie - over de ondersteunde chipsets/kaarten. In geval van twijfel, - lees dan de handleiding van het stuurprogramma - (man). In het algemeen bevat deze meer - informatie over de ondersteunde hardware en mogelijke problemen - die kunnen optreden. - - Als je een veelgebruikte kaart hebt, hoeft je waarschijnlijk - niet ver te zoeken. Stuurprogramma's voor veelvoorkomende - netwerken zijn al aanwezig in de algemene - GENERIC kernel, in dat geval zal je kaart - reeds gevonden worden bij het opstarten, bijvoorbeeld zo: + In /usr/src/sys/i386/conf/LINT (4.X) of + /usr/src/sys/conf/NOTES staat een + lijst van stuurprogramma's voor netwerkinterfaces met wat + informatie over de ondersteunde chipsets of kaarten. In geval + van twijfel biedt de hulppagina voor het stuurprogramma + (man) vaak uitkomst. In het algemeen bevat + deze meer informatie over de ondersteunde hardware en mogelijke + problemen die kunnen optreden. + + Als een veelgebruikte kaart gebruikt wordt, hoeft meestal + niet ver gezocht te worden. Stuurprogramma's voor + veelvoorkomende netwerkinterfaces al aanwezig in de algemene + GENERIC kernel. In dat geval wordt zo'n + al gevonden worden bij het opstarten, bijvoorbeeld met het + volgende bericht: dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38 000ff irq 15 at device 11.0 on pci0 dc0: Ethernet address: 00:a0:cc:da:da:da miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30 000ff irq 11 at device 12.0 on pci0 dc1: Ethernet address: 00:a0:cc:da:da:db miibus1: <MII bus> on dc1 ukphy1: <Generic IEEE 802.3u media interface> on miibus1 ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto - In dit voorbeeld zijn er twee kaarten die het &man.dc.4; - stuurprogramma gebruiken aanwezig in het systeem. + In dit voorbeeld zitten er twee kaarten in het systeem die + het stuurprogramma &man.dc.4; gebruiken. Pas als het juiste stuurprogramma geladen is, kan de netwerkkaart gebruikt worden. Dit kan op twee manieren. - Het eenvoudigste is om een kernel module te laden voor de - kaart met &man.kldload.8;. Maar voor sommige NIC + Het eenvoudigste is om met &man.kldload.8; een kernelmodule + voor de kaart te laden . Maar voor sommige NIC stuurprogramma's (bijvoorbeeld ISA kaarten en sommige kaarten - die het &man.ed.4; stuurprogramma gebruiken) is er geen module. - Je kunt ook als alternatief de ondersteuning voor je kaart - in de kernel compileren. Controleer - /usr/src/sys/i386/conf/LINT (4.X) of - /usr/src/sys/conf/NOTES (5.X) en de - handleiding van het stuurprogramma om na te gaan wat er in het - kernel configuratiebestand moet staan. Zie - voor meer informatie over het - compileren van een eigen kernel. Als je netwerkkaart al bij het - opstarten wordt herkend door de GENERIC - kernel hoeft je geen eigen kernel te bouwen. + die het stuurprogramma &man.ed.4; gebruiken) is er geen module. + Ondersteuning voor een kaart kan ook in de kernel gecompileerd + worden. In /usr/src/sys/i386/conf/LINT + (4.X) of /usr/src/sys/conf/NOTES (5.X) en + de hulppagina van het stuurprogramma is na te lezen wat er in + het kernelinstellingenbestand moet staan. In staat meer informatie over het + compileren van een eigen kernel. Als een netwerkkaart al bij + het opstarten wordt herkend door de + GENERIC, is er geen reden om een andere + kernel te bouwen. - Configuratie van de netwerkkaart + De Netwerkkaart Instellen - Netwerkkaart configuratie - configuratie + netwerkkaart instellen + instellen Nadat een geschikt stuurprogramma geladen is, moet de kaart - nog geconfigureerd worden. Mogelijk is dit al gebeurd door + nog ingestelt worden. Mogelijk is dit al gebeurd door sysinstall tijdens de installatie. - Om de configuratie van de netwerkkaarten te zien: + Om de instellen van de netwerkkaarten weer te geven + zien: &prompt.user; ifconfig dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 - ether 00:a0:cc:da:da:da - media: Ethernet autoselect (100baseTX <full-duplex>) - status: active + inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 + ether 00:a0:cc:da:da:da + media: Ethernet autoselect (100baseTX <full-duplex>) + status: active dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 - ether 00:a0:cc:da:da:db - media: Ethernet 10baseT/UTP - status: no carrier + inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 + ether 00:a0:cc:da:da:db + media: Ethernet 10baseT/UTP + status: no carrier lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 - inet 127.0.0.1 netmask 0xff000000 + inet 127.0.0.1 netmask 0xff000000 tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 - Op oudere versies van of &os; moet je misschien de - optie gebruiken, volgens &man.ifconfig.8;; - voor meer details over de syntax van &man.ifconfig.8; wordt - verwezen naar de handleiding. Merk op dat de invoer voor wat - betreft IPv6 (inet6 etc.) in dit voorbeeld - achterwege is gelaten. + + Op oudere versies van of &os; moet volgens + &man.ifconfig.8; misschien de optie + gebruikt worden. In &man.ifconfig.8;zijn meer details over + de syntaxis te lezen. In dit voorbeeld is de uitvoer over + IPv6 (inet6 etc.) achterwege + gelaten. + In dit voorbeeld werden de volgende apparaten weergegeven: - dc0: De eerste Ethernet - interface + dc0: de eerste Ethernet + interface; - dc1: De tweede Ethernet - interface + dc1: de tweede Ethernet + interface; - lp0: De parallelle poort - interface + lp0: de parallelle poort + interface; - lo0: Het loopback - apparaat + lo0: het loopback + apparaat; - tun0: Het tunnel apparaat - gebruikt door ppp + tun0: het tunnelapparaat + gebruikt door ppp. &os; gebruikt de naam van het stuurprogramma gevolgd door een nummer voor de volgorde waarop de kaarten gedetecteerd zijn - bij het opstarten. Bijvoorbeeld sis2 - zou de derde netwerkkaart zijn in het systeem die het - stuurprogramma &man.sis.4; gebruikt. + bij het opstarten. sis2 is de derde + netwerkkaart in het systeem die het stuurprogramma &man.sis.4; + gebruikt. - In dit voorbeeld is het dc0 - apparaat volledig operationeel. Dit blijkt uit de volgende - indicatoren: + In het vorige voorbeeld is het apparaat + dc0 volledig operationeel. Dit blijkt + uit de volgende indicatoren: UP betekent dat de kaart - geconfigureerd en klaar voor gebruik is. + geconfigureerd is en klaar voor gebruik; De kaart heeft een Internet (inet) - adres (in dit geval - 192.168.1.3). + adres (in dit geval 192.168.1.3); - Het heeft een geldig subnet masker (netmask; - 0xffffff00 is hetzelfde als - 255.255.255.0). + Het heeft een geldig subnetmasker + (netmask; 0xffffff00 is hetzelfde als + 255.255.255.0); - Het heeft een geldig uitzendadres (in dit geval, - 192.168.1.255). + Het heeft een geldig broadcastadres (in dit geval, + 192.168.1.255); Het MAC adres van de kaart (ether) - is 00:a0:cc:da:da:da + is 00:a0:cc:da:da:da; - De fysieke mediaselectie is in autoselectie modus + De fysieke mediaselectie staat in autoselectiemodus (media: Ethernet autoselect (100baseTX - <full-duplex>)). Ook zie je dat - dc1 geconfigureerd is om met - 10baseT/UTP media te werken. Voor meer - informatie over de mogelijke media types, zie de handleiding - voor het betreffende stuurprogramma. + <full-duplex>)). + dc1 is ingesteld om met + 10baseT/UTP media te werken. Meet + informatie over de mogelijke media types staan in de + hulppagina's voor het betreffende stuurprogramma. De status van de link (status) - is active, d.w.z. de drager is gevonden. - Voor dc1 ziet men echter + is active, dat wil zeggen dat de drager + is gevonden. Bij dc1staat echter status: no carrier. Dit is normaal als er geen ethernet kabel in de kaart gestoken is. - Als de &man.ifconfig.8; uitvoer er ongeveer zo uitziet: + Als de uitvoer &man.ifconfig.8; uitvoer er ongeveer zoals + hieronder uitziet, dan is de netwerkkaart nog niet + ingesteld: dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 - ether 00:a0:cc:da:da:da + ether 00:a0:cc:da:da:da - dan is de netwerkkaart nog niet geconfigureerd. + Om de kaart te instellen zijn root + rechten nodig. De netwerkkaart van vanaf de console worden + ingesteld met &man.ifconfig.8;, maar dan moet dat na elke + herstart herhaald worden. Daarom wordt het vrijwel altijd in + /etc/rc.conf gezet. - Om de kaart te configureren heb je root - privileges nodig. De netwerkkaart configuratie van vanaf de - console worden verricht met &man.ifconfig.8; maar dan zou je het - na elke keer opnieuw opstarten moeten herhalen. Daarom zet je - het in het /etc/rc.conf bestand. + In /etc/rc.conf moet voor elke + netwerkkaart in een systeem een regel toegevoegd worden. In + het huidige voorbeeld zou dat het volgende kunnen zijn: - Open /etc/rc.conf in je favoriete - editor. Je zult een regel moeten invoegen voor elke - netwerkkaart in je systeem, in dit voorbeeld:: - -ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0" + ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0" ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP" - dc0, - dc1, etc, moeten vervangen worden door - de correcte stuurprogramma's voor je netwerk kaarten, zo ook de - IP nummers. In de handleiding van het stuurprogramma en van - &man.ifconfig.8; vind je meer details over de mogelijke opties - en in de &man.rc.conf.5; handleiding staat meer informatie over - het /etc/rc.conf bestand. - - Als het netwerk al geconfigureerd is tijdens het installeren - van &os; zullen er al enkele regels met betrekking tot de - netwerkkaart(en) in /etc/rc.conf staan. - Controleer /etc/rc.conf voor je regels - toevoegt. - - Ook het bestand /etc/hosts moet worden - gewijzigd om de namen en IP adressen van verschillende machines - op het lokale netwerk, als ze er nog niet in staan. Voor meer - informatie, zie &man.hosts.5; en + dc0, dc1, + enzovoort, moeten vervangen worden door de correcte + stuurprogramma's voor de netwerkkaarten, zo ook de + IP adressen. In de handleiding van het + stuurprogramma en van &man.ifconfig.8; staan meer details over + de mogelijke opties en in &man.rc.conf.5; staat meer informatie + over /etc/rc.conf. + + Als het netwerk al geconfigureerd is tijdens het + installeren van &os; staan er al enkele regels met betrekking + tot de netwerkkaart(en) in /etc/rc.conf. + Het is dus handig /etc/rc.conf te + controleren voordat er regels toegevoegd worden. + + Ook /etc/hosts moet worden gewijzigd + om de namen en IP adressen van + verschillende machines op het lokale netwerk, als ze er nog + niet in staan. Meer informatie staat in &man.hosts.5; en /usr/share/examples/etc/hosts. - Testen en probleemoplossing - - Als de gewenste veranderingen in - /etc/rc.conf gemaakt zijn, moet je het - systeem opnieuw opstarten (of nauwkeurig alle daemons starten - of herstarten). Veranderingen aan de interface(s) worden dan - toegepast en je kunt controleren of herstarten goed werkt - zonder foutmeldingen. - - Als de kaart werkt maar de performance is slecht, kan het de - moeite waard zijn om de &man.tuning.7; handleiding door te - nemen. Controleer ook de netwerkconfiguratie, want ook - incorrecte netwerkinstellingen kunnen tot langzame verbindingen - leiden. - - Soms kunnen enkele device timeouts optreden. - Met sommige kaarten is dit normaal gedrag. Maar als dit - continu gebeurt of storend is, ga dan na of er geen sprake is - van een hardwareconfict tussen de netwerkkaart en een ander - apparaat. Controleer nogmaals de bekabeling. Misschien zit er - niets anders op dan een ander netwerkkaartje te gebruiken. - - Je kunt ook geconfronteerd worden met een paar - watchdog timeout foutmeldingen. Als - eerste moet je dan de netwerkkabel controleren. Veel kaarten - hebben een PCI slot nodig dat Bus Mastering ondersteund. - Sommige oudere moederborden hebben maar één PCI - slot waarmee dit kan (meestal slot 0). Controleer de - documentatie van de netwerkkaart en het moederbord om na te - gaan of dit het probleem is. + Testen en Problemen Oplossing + + Als de veranderingen in /etc/rc.conf + zijn gemaakt, moet het systeem opnieuw gestarten worden (of + moeten nauwkeurig alle daemons gestart of herstart worden). + Veranderingen aan de interface(s) worden dan toegepast en dan + kan er controleerd worden of herstarten goed werkt zonder + foutmeldingen. + + Als de kaart werkt, maar de performance is slecht, dan kan + het de moeite waard zijn om &man.tuning.7; door te nemen. + Incorrecte netwerkinstellingen kunnen ook tot langzame + verbindingen leiden. + + Soms kunnen enkele device timeouts + optreden. Met sommige kaarten is dit normaal gedrag. Maar als + dit continu gebeurd of storend is, is het verstandig uit te + zoeken of er geen sprake is van een hardwareconfict tussen de + netwerkkaart en een ander apparaat Ook dient nogmaals de + bekabeling gecontroleer te worden. Misschien zit er niets + anders op dan een andere netwerkkaart te gebruiken. + + Het is ook mogelijk dat er watchdog + timeout foutmeldingen optreden. Als eerste moet + dan de netwerkkabel fecontroleerd worden. Veel kaarten hebben + een PCI slot nodig dat Bus Mastering ondersteunt. Sommige + oudere moederborden hebben maar één PCI slot + waarmee dit kan (meestal slot 0). In de documentatie van de + netwerkkaart en het moederbord is na te gaan of dit het + probleem is. No route to host meldingen treden op als het systeem niet in staat is om een pakket naar de eindbestemming te routeren. Dit kan gebeuren als er geen - standaardroute gespecificeerd is of als er een kabel niet - verbonden is. Controleer de uitvoer van - netstat -rn en ga na dat er een geldige - route is naar de bestemming. Mocht dit niet het geval zijn, - dan kun je verder lezen hoe dit moet in - . + standaardroute aangegeven is of als er een kabel niet verbonden + is. De uitvoer van netstat -rn moet + gecontroleerd worden en of er een geldige route is naar de + bestemming. Mocht dit niet het geval zijn, dan staat er meer + informatie in . ping: sendto: Permission denied foutmeldingen worden vaak veroorzaakt door een verkeerd - geconfigureerde firewall. Als de kernel ipfw + ingestelde firewall. Als de kernel ipfw activeert bij het opstarten zonder dat er firewallregels zijn - gedefiniëerd, is de standaard policy om alle verkeer te - weigeren, zelfs pings! Zie voor meer - informatie. + gedefiniëerd, is het standaardbeleid om alle verkeer te + weigeren, zelfs pings! In staat + meer informatie. - Er kan ook sprake zijn van onvoldoende performance doordat + Er kan ook sprake zijn van onvoldoende prestaties doordat de mediaselectie instelling niet optimaal is. In dergelijke - gevallen kun je proberen om de mediaselectie niet als - autoselect in te stellen maar expliciet - aangeven wat de mediaselectie moet zijn, bijvoorbeeld + gevallen is het mogelijk om de mediaselectie niet als + autoselect in te stellen, maar expliciet + aan te geven wat de mediaselectie moet zijn, bijvoorbeeld 10baseT/UTP voor twisted pair. Hoewel dit voor de meeste - hardware zal helpen, kan het zijn dat de problemen blijven. - Controleer dan nogmaals de netwerkinstellingen en lees de - &man.tuning.7; handleiding. - + hardware helpt, kan het zijn dat de problemen blijven. + Dan moeten nogmaals de netwerkinstellingen gecontroleerd worden + en geeft de &man.tuning.7; handleiding wellicht meer + informatie. - Virtuele hosts + Virtuele Hosts virtuele hosts + IP aliassen &os; wordt veel gebruikt voor virtuele sitehosting, waarbij één fysieke server er op het netwerk uitziet alsof het meerdere servers zijn. Dit kan bereikt worden door meerdere - IP adressen toe te kennen aan dezelfde interface. + IP adressen toe te kennen aan dezelfde + interface. Een bepaalde netwerkinterface heeft een echt - adres en kan daarnaast een willekeurig aantal alias - adressen hebben. Normaliter worden dergelijke aliassen toegevoegd - door aliasregels toe te voegen aan + adres en kan daarnaast een willekeurig aantal + alias adressen hebben. Normaliter worden + dergelijke aliassen toegevoegd door aliasregels toe te voegen aan /etc/rc.conf. - Een aliasregel voor de interface fxp0 - ziet er zo uit: + Een aliasregel voor de interface + fxp0 ziet er zo uit: ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx" - Merk op dat aliasregels beginnen met alias0 en daarna _alias1, - _alias2, enz. Het configuratieproces stopt als er een nummer + De aliasregels moeten beginnen met alias0 + en moete elkaar dan opvolgen (bijvoorbeeld + _alias1,, _alias2, + enzovoort). Het instelproces stopt als er een nummer ontbreekt. Het is belangrijk dat aliassen het juiste netmasker hebben. Dit is eenvoudig: Een bepaalde interface moet altijd één adres hebben dat het netmasker van het netwerk correct representeert. Elk ander adres binnen dit netwerk op - deze interface (alias) moet een netmasker van allemaal enen - (bits) hebben. + deze interface (alias) moet een netmasker van allemaal + 1'en (bits) hebben (getoond als 255.255.255.255 of 0xffffffff). Een voorbeeld. Stel de fxp0 - interface is verbonden met twee netwerken, het - 10.1.1.0 netwerk met masker - 255.255.255.0 en het - 202.0.75.16 met netmasker - 255.255.255.240. We willen dat - het systeem op 10.1.1.1 tot en met - 10.1.1.5 en op - 202.0.75.17 tot en met - 202.0.75.20. - - Dit kan als volgt geregeld worden: + interface is verbonden met twee netwerken, het 10.1.1.0 netwerk met masker 255.255.255.0 en het 202.0.75.16 met netmasker 255.255.255.240. Het systeem moet ook + de adressen 10.1.1.1 tot en met + 10.1.1.5 en 202.0.75.17 tot en met 202.0.75.20 krijgen. Zoals hierboven + vermeld, heeft alleen het eerste adres in een netwerkreeks (in + dit geval 10.0.1.1 en 202.0.75.17) een geldig netmasker. Alle + overige (10.1.1.2 tot en met + 10.1.1.5 en 202.0.75.18 tot en met 202.0.75.20) moeten ingesteld worden met + het netmasker 255.255.255.255. + + Dit kan als volgt: ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" - - Configuratiebestanden + Instellingenbestanden <filename>/etc</filename> layout - Configuratiedata wordt in een aantal directories bewaard, - o.m: - + Instellingengegevens wordt in een aantal mappen bewaard. + Daar zijn onder andere: + + + + + + /etc - Generieke systeemconfiguratiebestanden; deze zijn - specifiek voor het systeem. + + Generieke systeeminstellingenbestanden, specifiek + voor het systeem. /etc/defaults + De standaardversies van - systeemconfiguratiebestanden die gebruikt als er geen - in /etc staat. + systeeminstellingenbestanden die gebruikt worden als er + geen in /etc staat. /etc/mail - Extra &man.sendmail.8; configuratiebestanden, of - configuratiebestanden voor andere MTAs. + + Extra &man.sendmail.8; instellingenbestanden of + instellingenbestanden voor andere MTAs. /etc/ppp - Configuratie voor zowel for user- als kernel-ppp + + Instellingen voor zowel user- als kernel-ppp programma's. /etc/namedb - Standaard locatie voor &man.named.8; data. + + Standaardlocatie voor &man.named.8; gegevens. Normaal gesproken bevinden zich hier - named.conf en zonebestanden. + named.conf en + zonebestanden. /usr/local/etc - Configuratiebestanden voor geïnstalleerde - software. Kan subdirectories hebben waarin bij elkaar - horende configuratiedata van een applicatie gegroepeerd - zijn. + + Instellingenbestanden voor geïnstalleerde + software. Kan submappen hebben waarin bij elkaar + horende instellingengegevens van een applicatie + gegroepeerd zijn. /usr/local/etc/rc.d - Start/stop scripts voor geïnstalleerde - services. + + Start en stop scripts voor geïnstalleerde + diensten. /var/db - Automatisch gegenereerde systeem-specifieke - database bestanden, zoals de pakketdatabase, de - &man.locate.1; database, enz. + + Automatisch gemaakte systeemspecifieke + databasebestanden, zoals de packagedatabase, de + &man.locate.1; database, enzovoort. Hostnamen hostnaam + DNS <filename>/etc/resolv.conf</filename> resolv.conf In /etc/resolv.conf wordt voorgeschreven op welke wijze &os; het Domain Name System (DNS) moet gebruiken. De meest voorkomende termen in resolv.conf zijn: - + + + + + nameserver - Het IP adres van een naamserver die ondervraagd - moet worden voor naam/IP conversie. De servers worden - in volgorde geprobeerd en het maximale aantal is - drie. + + Het IP adres van een + naamserver die ondervraagd moet worden voor + naam/IP conversie. De servers + worden in volgorde geprobeerd en het maximale aantal + is drie. + search + Zoeklijst voor het opzoeken van hostnamen. Meestal wordt deze bepaald door het domein waarop de lokale hostnaam zich bevindt. + domain + De lokale domeinnaam. - Een typisch resolv.conf bestand: + Een typisch resolv.conf + bestand: search example.com nameserver 147.11.1.11 nameserver 147.11.100.30 - Gebruik of search of - domain, maar niet beide opties tegelijk. - + + search en domain + dienen niet tegelijk gebruikt te worden. + - Als je DHCP gebruikt: &man.dhclient.8; overschrijft - normaliter resolv.conf met informatie + Als DHCP wordt gebruikt: &man.dhclient.8; overschrijft + meestal resolv.conf met informatie ontvangen van de DHCP server. <filename>/etc/hosts</filename> hosts /etc/hosts is een eenvoudige - tekstdatabase uit de dagen van het oude Internet. Het werkt - samen met DNS en NIS om namen en IP nummers over en weer te - vertalen. Lokale computers verbonden via een LAN kunnen best - hierin gezet worden om zo op simpele wijze naam/IP conversie - voor je LAN te hebben, zonder een &man.named.8; server te - hoeven draaien. Ook kun je naamaliassen toekennen - (vergelijkbaar met CNAMES bij DNS). Op soortgelijke wijze kan - /etc/hosts ook gebruikt worden als een - (zeer beperkte) lokale DNS cache. - + tekstdatabase uit de dagen van het oude internet. Het werkt + samen met DNS en NIS om namen en IP + adressen over en weer te vertalen. Lokale computers, + verbonden via een LAN, kunnen hier het beste in opgenomen + worden om zo op simpele wijze naam/IP + conversie voor een LAN te hebben, zonder noodzaak voor een + &man.named.8; server. Ook kunnen naamaliassen toegekend + worden (vergelijkbaar met CNAMES bij DNS). Op soortgelijke + wijze kan /etc/hosts gebruikt worden als + een (zeer beperkte) lokale DNS cache. + # $&os;$ # # Host Database -# This file should contain the addresses and aliases -# for local hosts that share this file. -# In the presence of the domain name service or NIS, this file may -# not be consulted at all; see /etc/nsswitch.conf for the resolution order. +# Dit bestand hoort de adressen en aliassen te bevatten +# voor de lokale hosts die dit bestand gebruiken. +# Bij gebruik van DNS of NIS hoeft dit bestand helemaal niet gebruikt +# te worden. Zie /etc/nsswitch.conf voor de volgorde van resolutie. # # ::1 localhost localhost.my.domain myname.my.domain 127.0.0.1 localhost localhost.my.domain myname.my.domain # -# Imaginary network. +# Verzonnen netwerk. #10.0.0.2 myname.my.domain myname #10.0.0.3 myfriend.my.domain myfriend # -# According to RFC 1918, you can use the following IP networks for -# private nets which will never be connected to the Internet: +# Volgens RFC 1918 mogen de volgende IP netwerken gebruikt worden +# als private netwerken die niet met internet verbonden zijn: # # 10.0.0.0 - 10.255.255.255 # 172.16.0.0 - 172.31.255.255 # 192.168.0.0 - 192.168.255.255 # -# In case you want to be able to connect to the Internet, you need -# real official assigned numbers. PLEASE PLEASE PLEASE do not try -# to invent your own network numbers but instead get one from your -# network provider (if any) or from the Internet Registry (ftp to -# rs.internic.net, directory `/templates'). +# Als er toch verbinding moet zijn met internet, zijn echte +# officieel toegewezen nummers nodig. Probeer ECHT GEEN eigen +# netwerknummers te verzinnen, maar vraag ze op bij de provider +# (als die er is) of bij de Internet Registry (ftp naar +# rs.internic.net, map `/templates'). # /etc/hosts heeft als formaat: [Internet address] [official hostname] [alias1] [alias2] ... Bijvoorbeeld: 10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2 - Raadpleeg &man.hosts.5; voor meer informatie. + In &man.hosts.5; staat meer informatie. - Logbestanden configureren + Logboekbestanden Instellen - logbestanden + logboekbestanden <filename>syslog.conf</filename> syslog.conf syslog.conf is het - configuratiebestand voor het &man.syslogd.8; programma. Het - geeft aan welke soorten syslog berichten er - gelogd moeten worden en naar welke logbestanden, apparaten, - gebruikers of machines. + instellingenbestand voor het programma &man.syslogd.8;. Het + geeft aan welke soorten syslog berichten + er gelogd moeten worden en naar welke logboekbestanden, + apparaten, gebruikers of machines. # $&os;$ # -# Spaces ARE valid field separators in this file. However, -# other *nix-like systems still insist on using tabs as field -# separators. If you are sharing this file between systems, you -# may want to use only tabs as field separators here. -# Consult the syslog.conf(5) manual page. +# Spaties zijn TOEGESTAAN als veldscheiding in dit bestand. +# Maar andere *nix-achtige systemen eisen nog steeds het gebruik +# van tabs als veldscheiding. Als dit bestand gedeeld wordt met +# andere systemen, is het verstandig alle tabs als veldscheiding +# te gebruiken. +# Zie ook de handleding van syslog.conf(5). *.err;kern.debug;auth.notice;mail.crit /dev/console *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages security.* /var/log/security mail.info /var/log/maillog lpr.info /var/log/lpd-errs cron.* /var/log/cron *.err root *.notice;news.err root *.alert root *.emerg * -# uncomment this to log all writes to /dev/console to /var/log/console.log +# verwijder het commentaarkarakter om alle schrijfacties naar +# /dev/console naar /var/log/console.log te schrijven. #console.info /var/log/console.log -# uncomment this to enable logging of all log messages to /var/log/all.log +# verwijder het commentaarkarakter om alle berichten naar +# /var/log/all.log te schrijven. #*.* /var/log/all.log -# uncomment this to enable logging to a remote log host named loghost +# # verwijder het commentaarkarakter om alle liggen naar een andere +# host in te schakelen met de naam loghost. #*.* @loghost -# uncomment these if you're running inn +# # verwijder het commentaarkarakter als inn draait. # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice !startslip *.* /var/log/slip.log !ppp *.* /var/log/ppp.log - Zie de &man.syslog.conf.5; handleiding voor meer - informatie. + In &man.syslog.conf.5; staat meer informatie. <filename>newsyslog.conf</filename> newsyslog.conf newsyslog.conf is het - configuratiebestand voor &man.newsyslog.8;, een programma - dat normaal op gezette tijden via &man.cron.8; wordt - uitgevoerd. &man.newsyslog.8; stelt vast wanneer logbestanden - moeten gearchiveerd of anderszins opnieuw gearrangeerd moeten - worden. logfile wordt hernoemd naar - logfile.0, logfile.0 - naar logfile.1, enz. + instellingenbestand voor &man.newsyslog.8;, een programma + dat op gezette tijden via &man.cron.8; wordt uitgevoerd. + &man.newsyslog.8; stelt vast wanneer logboekbestanden + gearchiveerd moeten worden of anderszins opnieuw gerangschikt + moeten worden. logfile wordt hernoemd + naar logfile.0, + logfile.0 + naar logfile.1, enzovoort. newsyslog.conf geeft aan welke - logbestanden beheerd moeten worden, hoeveel er in archieven - bewaard moeten worden, en wanneer ze aangemaakt moeten worden. - Logbestanden kunnen gereorganiseerd en/of gearchiveerd worden - als ze een bepaalde grootte bereikt hebben of op een bepaald - periodiek tijdstip of een bepaalde datum. + logboekbestanden beheerd moeten worden, hoeveel er in + archieven bewaard moeten worden en wanneer ze aangemaakt + moeten worden. Logboekbestanden kunnen gereorganiseerd en/of + gearchiveerd worden als ze een bepaalde grootte bereikt + hebben of op een bepaald periodiek tijdstip of een bepaalde + datum. # configuration file for newsyslog # $&os;$ # # filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num] /var/log/cron 600 3 100 * Z /var/log/amd.log 644 7 100 * Z /var/log/kerberos.log 644 7 100 * Z /var/log/lpd-errs 644 7 100 * Z /var/log/maillog 644 7 * @T00 Z /var/log/sendmail.st 644 10 * 168 B /var/log/messages 644 5 100 * Z /var/log/all.log 600 7 * @T00 Z /var/log/slip.log 600 3 100 * Z /var/log/ppp.log 600 3 100 * Z /var/log/security 600 10 100 * Z /var/log/wtmp 644 3 * @01T05 B /var/log/daily.log 640 7 * @T00 Z /var/log/weekly.log 640 5 1 $W6D0 Z /var/log/monthly.log 640 12 * $M1D0 Z /var/log/console.log 640 5 100 * Z - In de &man.newsyslog.8; handleiding vind je meer - informatie. + In &man.newsyslog.8; staat meer informatie. - + <filename>sysctl.conf</filename> sysctl.conf + sysctl sysctl.conf lijkt veel op rc.conf. Waardetoekenning heeft weer de - variable=value vorm. De gespecificeerde + vorm variable=value. De ingestelde &man.sysctl.8; waarden worden doorgevoerd op het moment dat het - systeem naar multi-user modus gaat. Niet alle variabelen kunnen - in deze modus gewijzigd worden. + systeem naar multi-user modus gaat. Niet alle variabelen + kunnen in deze modus gewijzigd worden. - Een voorbeeld sysctl.conf waarin het - loggen van gevallen waarin een proces beëindigd wordt ten - gevolge van een fataal signaal (bijv. een TERM signaal of een - exitcode van een programma dat crasht) wordt uitgezet en waarin - de Linux emulatielaag zodanig wordt ingesteld dat een Linux - programma ook echt zal rapporteren dat het onder &os; - draait: + Hieronder staat een voorbeeld van + sysctl.conf waarin het loggen van gevallen + waarin een proces beëindigd wordt ten gevolge van een + fataal signaal (bijv. een TERM signaal of een exitcode van een + programma dat crasht) wordt uitgezet en waarin de &linux; + emulatielaag zodanig wordt ingesteld dat een &linux; programma + ook echt rapporteert dat het onder &os; draait: kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11) compat.linux.osname=&os; compat.linux.osrelease=4.3-STABLE - Optimalisering met sysctl + Optimaliseren met sysctl sysctl + optimalisering + met sysctl - &man.sysctl.8; is een interface waarmee je veranderingen kunt - aanbrengen aan een draaiend &os; systeem. Er zijn onder meer vele - geavanceerde opties voor de TCP/IP stack en het virtuele - geheugensysteem, waarmee een ervaren systeembeheerder de - systeemprestaties drastisch kan verbeteren. Met &man.sysctl.8; - kunnen meer dan vijfhonderd ststeemvariabelen opgevraagd en - ingesteld worden. + &man.sysctl.8; is een interface waarmee veranderingen gemaakt + kunnen worden aan een draaiend &os; systeem. Er zijn onder meer + vele geavanceerde opties voor de TCP/IP stack + en het virtuele geheugensysteem, waarmee een ervaren + systeembeheerder de systeemprestaties drastisch kan verbeteren. + Met &man.sysctl.8; kunnen meer dan vijfhonderd ststeemvariabelen + opgevraagd en ingesteld worden. - In de kern heeft &man.sysctl.8; twee funkties: het lezen en + In essentie heeft &man.sysctl.8; twee funkties: het lezen en wijzigen van systeeminstellingen. - Om alle leesbare variabelen te zien: + Om alle leesbare variabelen te tonen: &prompt.user; sysctl -a Om een bepaalde variabele op te vragen, bijvoorbeeld kern.maxproc: &prompt.user; sysctl kern.maxproc kern.maxproc: 1044 Om een bepaalde variabele toe te kennen (te wijzigen), is de - voor de hand liggende syntax + syntaxis variable=value: - + &prompt.root; sysctl kern.maxfiles=5000 kern.maxfiles: 2088 -> 5000 Waarden van sysctl variabelen zijn doorgaans strings (tekst), getallen of booleans (1 als waar, 0 als onwaar). + Om automatisch variabelen in te stellen als de machine start, + kunnen ze toegevoegd worden aan + /etc/sysctl.conf. Meer informatie staat in + &man.sysctl.conf.5; en . + - - Tom - Rhodes - Een bijdrage van - + + Tom + Rhodes + Een bijdrage van + - &man.sysctl.8; alleen-lezen - In sommige gevallen kan het wenselijk zijn om &man.sysctl.8; - waarden die alleen-lezen zijn toch te wijzigen. Het zal duidelijk - zijn dat dit niet wordt aangeraden, maar het is soms - onvermijdelijk. + &man.sysctl.8; Alleen-lezen - Op sommige laptops, bijvoorbeeld, is het &man.cardbus.4; - apparaat niet in staat om geheugenregio's af te tasten, met als - gevolg foutmeldingen als: + In sommige gevallen is het wenselijk zijn om &man.sysctl.8; + waarden die alleen-lezen zijn toch te wijzigen. Dit wordt niet + aangeraden, maar het is soms onvermijdelijk. + + Op sommige laptops is bijvoorbeeld het apparaat + &man.cardbus.4; niet in staat om geheugenregio's af te tasten, + met als gevolg foutmeldingen als: cbb0: Could not map register memory device_probe_and_attach: cbb0 attach returned 12 - In dergelijke gevallen moeten er meestal enkele &man.sysctl.8; - instellingen gewijzigd worden die alleen-lezen zijn en een - standaardwaarde hebben. Dit kan bereikt worden door - &man.sysctl.8; OIDs in het lokale + In dergelijke gevallen moeten er meestal enkele + &man.sysctl.8; instellingen gewijzigd worden die alleen-lezen + zijn en een standaardwaarde hebben. Dit kan bereikt worden door + &man.sysctl.8; OIDs in de lokale /boot/loader.conf te zetten. - Standaardinstellingen zijn te vinden in + Standaardinstellingen staan in /boot/defaults/loader.conf. - Om het bovenstaande probleem op te lossen moet - gezet worden - in /boot/loader.conf. Nu zal &man.cardbus.4; - wel goed werken. - + Om het bovenstaande probleem op te lossen moet in + in /boot/loader.confhw.pci.allow_unsupported_io_range=1 ingesteld + worden. Dan werkt &man.cardbus.4; wel goed. Harde schijven optimaliseren - Sysctl variabelen + Sysctl Variabelen <varname>vfs.vmiodirenable</varname> vfs.vmiodirenable - De vfs.vmiodirenable sysctl variabele + De sysctl variabele vfs.vmiodirenable kan de waarde 0 (uit) of 1 (aan) hebben. De standaardwaarde - is 1. Deze variabele bepaalt hoe directories door het systeem - in een cache bewaard worden. De meeste directories zijn + is 1. Deze variabele bepaalt hoe mappen door het systeem + in een cache bewaard worden. De meeste mappen zijn klein en gebruiken slechts een klein fragment (typisch 1 K) in het bestandssysteem en nog minder (typisch - 512 bytes) in de buffer cache. In de standaard modus - operandi zal de buffer cache slechts een bepaald aantal - directories in de cache bewaren, ook al is er een overvloed - aan geheugen beschikbaar. Met deze sysctl wordt de VM page - cache gebruikt, waardoor voor het cachen van directories al - het geheugen kan worden gebruikt. Het is echter wel - zo dat het minimale in-core geheugen dat gebruikt wordt om een - directory te cachen in dat geval de fysieke page size is - (typisch 4 K) i.p.v. 512  bytes. Deze optie wordt - vooral aanbevolen als je services wil draaien die met grote - aantallen bestanden werken, zoals webcaches, grote - mailsystemen en newsservers. In het algemeen zal deze optie - de performance niet verlagen, ook al kost het meer geheugen, - maar je zult moeten experimenteren om dit voor jouw specifieke - machine na te gaan. + 512 bytes) in de buffercache. Als deze variabele + uit staat (op 0) bewaart de buffercache slechts een bepaald + aantal mappen in de cache, ook al is er een overvloed aan + geheugen beschikbaar. Wanneer deze aan staat (op 1), wordt + de VM pagecache gebruikt, waardoor voor het cachen van mappen + al het geheugen kan worden gebruikt. Het is echter wel zo + dat het minimale in-core geheugen dat gebruikt wordt om een + map te cachen in dat geval de fysieke pagegrootte is + (typisch 4 K) in plaats van 512  bytes. Het is aan + te raden deze optie aan te laten staat als gebruik gemaakt + worden van diensten die met grote aantallen bestanden werken, + zoals webcaches, grote mailsystemen en newsservers. Als deze + optie aan blijft staan, verlaagt die de prestaties niet, ook + al kost het meer geheugen. Door experimenteren is dit voor + een systeem na te gaan. <varname>vfs.write_behind</varname> vfs.write_behind - De vfs.write_behind sysctl variabele + De sysctl variabele vfs.write_behind staat standaard aan (1). Dit betekent dat - het bestandssysteem data naar het medium gaat schrijven op het - moment dat er een volledig clusters aan data verzameld zijn. - Dit is typisch het geval bij het schrijven van grote + het bestandssysteem gegevens naar het medium gaat schrijven + op het moment dat er een volledig cluster aan data verzameld + is Dit is meestal het geval bij het schrijven van grote sequentiële bestanden. Het idee is om te voorkomen dat de buffercache verzadigd raakt met vuile buffers zonder dat - dit bijdraagt aan de I/O performance. Dit kan echter - processen ophouden en onder sommige omstandigheden wil je - mogelijk deze sysctl uitzetten. + dit bijdraagt aan de I/O prestaties. Dit kan echter + processen ophouden en onder sommige omstandigheden is het + wellicht beter deze sysctl uit te zetten. <varname>vfs.hirunningspace</varname> vfs.hirunningspace - De vfs.hirunningspace sysctl variabele - bepaalt hoeveel nog te schrijven data er systeemwijd op elk - moment in de wachtrij naar schijfcontrollers mag staan. De - standaardwaarde is normaal voldoende maar op machines met veel - schijven, wil je deze misschien verhogen naar vier of vijf - megabytes. Merk op dat het zetten van - een te hoge waarde (groter dan de schrijfdrempel van de - buffer cache) kan leiden tot zeer slechte clustering - performance. Zet deze waarde niet arbitrair hoog! Hogere - schrijfwaarden kunnen latentie veroorzaken in het lezen als - dit tegelijk plaatsvindt. - - Er zijn verscheidene andere sysctls betreffende buffer - cache en VM page cache. Het wordt afgeraden deze te wijzigen. - Sinds &os; 4.3 is het VM systeem zeer goed in staat zichzelf - automatisch te tunen. + De sysctl variabele vfs.hirunningspace + bepaalt hoeveel nog te schrijven gegevens er in het complete + systeem op elk moment in de wachtrij naar schijfcontrollers + mag staan. De standaardwaarde is meestal voldoende, maar op + machines met veel schijven, is het beter deze te verhogen + naar vier of vijf megabyte. Het + instellen van een te hoge waarde (groter dan de + schrijfdrempel van de buffercache) kan leiden tot zeer + slechte prestaties bij clustering. Stel deze waarde niet + arbitrair hoog in! Hogere schrijfwaarden kunnen vertraging + veroorzaken in het lezen, als dit tegelijk + plaatsvindt. + + Er zijn verscheidene andere sysctls voor buffercache en + VM pagecache. Het wordt afgeraden deze te wijzigen. Sinds + &os; 4.3 is het VM systeem zeer goed in staat zichzelf + automatisch te optimaliseren. <varname>vm.swap_idle_enabled</varname> vm.swap_idle_enabled - De vm.swap_idle_enabled sysctl - variabele is nuttig in grote multi-user systemen met veel - gebruikers die in- en uitloggen en veel onbenutte processen. - Dergelijke systemen hebben de neiging om voortdurend de vrije - geheugenreserves onder druk te zetten. Het is mogelijk om de - prioriteit van geheugenpages die verband houden met onbenutte - processen sneller te laten dalen dan met het normale pageout - algoritme, door deze sysctl aan te zetten en via - vm.swap_idle_threshold1 en + De sysctl variabele + vm.swap_idle_enabled is nuttig in grote + multi-user systemen met veel gebruikers die af- en aanmelden + en veel onbenutte processen. Dergelijke systemen hebben de + neiging om voortdurend de vrije geheugenreserves onder druk + te zetten. Het is mogelijk om de prioriteit van + geheugenpages die verband houden met onbenutte processen + sneller te laten dalen dan met het normale pageout algoritme, + door deze sysctl aan te zetten en via + vm.swap_idle_threshold1 en vm.swap_idle_threshold2 de swapout - hysterese (in seconden onbenut) af te stemmen. Gebruik deze - optie alleen wanneer nodig, want de andere kant van de - medaille is dat dit eerder pre-page geheugen inhoudt in plaats - van later, waardoor het meer swap en schijfbandbreedte kost. - In een klein systeem heeft deze optie een voorspelbaar effect - maar in grote systemen waar al sprake is van een matige paging - kan deze optie het mogelijk maken voor het VM systeem om - gehele processen gemakkelijk in en uit het geheugen te - halen. + hysterese (in seconden onbenut) af te stemmen. Deze optie + dient alleen gebruikt te worden als ze echt nodig is, want de + andere kant van de medaille is dat dit eerder pre-page + geheugen inhoudt in plaats van later, waardoor het meer + wisselbestand- en schijfbandbreedte kost. In een klein + systeem heeft deze optie een voorspelbaar effect, maar in + grote systemen waar al sprake is van een matige paging kan + deze optie het mogelijk maken voor het VM systeem om hele + processen gemakkelijk in en uit het geheugen te halen. <varname>hw.ata.wc</varname> hw.ata.wc Ten tijde van &os; 4.3 is er geflirt met het uitzetten van IDE schrijfcaching. Hierdoor neemt de - bandbraadte naar IDE schijven af maar het werd als - noodzakelijk beschouwd vanwege ernstige problemen met data - inconsistentie die door harddisk producenten + bandbraadte naar IDE schijven af, maar het werd als + noodzakelijk beschouwd vanwege ernstige problemen met + gegevensinconsistentie die door harddiskproducenten geëintroduceerd waren. Het probleem is dat IDE schijven niet de waarheid vertellen over wanneer een schrijfactie klaar is. Door IDE schrijfcaching wordt data niet alleen - ongeorderd geschreven, maar soms kan zelfs het schrijven van + ongeordend geschreven, maar soms kan zelfs het schrijven van sommige blokken voortdurend uitgesteld worden als er sprake - is van een hoge disk load. Een crash of stroomstoring kan + is van een hoge disklast. Een crash of stroomstoring kan dan ernstige corruptie van het bestandssysteem veroorzaken. - &os;'s standaard installing werd daarom voor alle zekerheid - gewijzigd. Helaas was het resultaat een groot verlies aan - performance en na die release is de standaardwaarde weer - terugveranderd. Met de hw.ata.wc sysctl - variabele kun je controleren of schrijfcaching aan of uit - staat op jouw styteem. Als schrijfcaching uitstaat, kun je - het aan zetten door hw.ata.wc naar 1 te - zetten. Aangezien dit een kernelvariabele is, moet deze gezet - worden vanuit de boot loader tijdens het opstarten. Nadat de - kernel eenmaal opgestart is, heeft het wijzigen van deze - sysctl geen effect. - - Voor meer informatie, zie de &man.ata.4; hadleiding. + Daarom werd de standaardinstelling van &os; voor alle + zekerheid gewijzigd. Helaas was het resultaat een groot + verlies aan prestaties en na die release is de + standaardwaarde weer terug veranderd. Met de sysctl + variabele hw.ata.wc kan gecontroleerd + worden of schrijfcaching aan of uit staat. Als + schrijfcaching uit staat, het die weer aangezet worden door + hw.ata.wc naar 1 te zetten. Aangezien dit + een kernelvariabele is, moet deze ingesteld worden vanuit de + bootloader tijdens het opstarten. Nadat de kernel eenmaal + opgestart is, heeft het wijzigen van deze sysctl geen + effect. + + Meer informatie staat in &man.ata.4;. - <option>SCSI_DELAY</option> - (<varname>kern.cam.scsi_delay</varname>) + <literal>SCSI_DELAY</literal> + (<varname>kern.cam.scsi_delay</varname>) - + SCSI_DELAY + kern.cam.scsi_delay - De kernel configuratie optie - kan worden gebruikt om de opstarttijd te versnellen. De - standaard waarde is nogal hoog en kan 15+ + De SCSI_DELAY kernelinstelling kan + gebruikt worden om de opstarttijd te versnellen. De + standaardwaarde is nogal hoog en kan 15 seconden vertraging veroorzaken. Met modernere SCSI systemen - zal iets als 5 seconden al voldoende zijn. - Nieuwere versies van &os; (5.0+) gebruiken de opstartvariabele + is 5 seconden al voldoende. Nieuwere + versies van &os; (5.0 en hoger) gebruiken de opstartvariabele kern.cam.scsi_delay. Zowel deze als de - optie gebruiken waarden uitgedrukt - in milliseconden en - niet seconden. + optie SCSI_DELAY gebruiken waarden + uitgedrukt in milliseconden en + niet in + seconden. Softupdates Softupdates + tunefs - Het &man.tunefs.8; programma kan worden gebruikt om een - bestandsysteem nauwkeurig afstemmen. het heeft veel - verschillende opties, maar voor nu hebben we alleen interesse - in het aan- en uitzetten van softupdates en dat gaat als - volgt: + &man.tunefs.8; kan gebruikt worden om een bestandsysteem + nauwkeurig af te stellen. Het heeft veel opties, maar nu wordt + alleen het aan- en uitzetten van softupdates besproken. Dat + gaat als volgt: &prompt.root; tunefs -n enable /filesystem &prompt.root; tunefs -n disable /filesystem - Een bestandssysteem kan niet met &man.tunefs.8; worden - gewijzigd als het gemount is. Softupdates aanzetten zul je dan - ook in het algemeen vanuit single-user modus doen, voordat - partities aangekoppeld zijn. + Een bestandssysteem kan niet met &man.tunefs.8; gewijzigd + worden als het gemount is. Softupdates aanzetten wordt dus in + het algemeen gedaan vanuit single-user modus, voordat partities + gemount zijn. Vanaf &os; 4.5, is het mogelijk om softupdates aan te zetten op het moment dat de bestandssystemen aangemaakt worden, door middel van de -U optie van &man.newfs.8;. Softupdates zorgen voor een drastische verbetering van de - meta-data performance, met name het aanmaken en verwijderen van + meta-data prestaties, met name het aanmaken en verwijderen van bestanden, door gebruik van een geheugencache. Het wordt dan - ook aangeraden om op al je bestandssystemen softupdates te - gebruiken. Er zijn twee nadelen aan softupdates waarvan je je - bewust moet zijn: Ten eerste, softupdates garandeert een - consistent bestandssysteem in geval van een crash maar het - kan makkelijk enkele seconden (zelfs een minuut!) achterliggen - met het daadwerkelijk bijwerken op de fysieke harde schijf. - Als je systeem crasht verlies je wellicht meer werk dan anders - het geval zou zijn. Ten tweede, softupdates vertraagt het - vrijgeven van bestandssysteemblokken. Als je een - bestandssysteem hebt (zoals op de root partitie) dat bijna vol - is, dan kan het verrichten van een grote update, zoals + ook aangeraden om op alle bestandssystemen softupdates te + gebruiken. Er zijn twee nadelen aan softupdates: softupdates + garandeert een consistent bestandssysteem in geval van een + crash, maar het kan makkelijk enkele seconden (zelfs een + minuut) achter liggen met het daadwerkelijk bijwerken op de + fysieke harde schijf. Als een systeem crasht wordt wellicht + meer werk verloren dan anders het geval zou zijn. Daarnaast + vertraagt softupdates het vrijgeven van bestandssysteemblokken. + Als een bestandssysteem (zoals de root partitie) bijna vol is, + dan kan het verrichten van een grote update, zoals make installworld, ertoe leiden dat het bestandssysteem ruimtegebrek krijgt en dat daardoor de operatie mislukt. - Meer details over softupdates + Meer over Softupdates Softupdates + details Er zijn traditioneel twee methodes om de metadata van een bestandssysteem terug naar de schijf te schrijven. Het - bijwerken van metadata houdt in het bijwerken van van - niet-inhoudelijke data zoals inodes of directories. + bijwerken van metadata houdt het bijwerken van van + niet-inhoudelijke data zoals inodes of mappen in. - Historisch gezien was het gebruikelijk om metadata updates - synchroon weg te schrijven. Als bijvoorbeeld een directory + Historisch gezien was het gebruikelijk om metadataupdates + synchroon weg te schrijven. Als een map bijvoorbeeld gewijzigd was, wachtte het systeem totdat de verandering daadwerkelijk naar de schijf geschreven was. De databuffers (de inhoud van een bestand) werden doorgeschoven naar de - buffer cache en op een later moment asynchroon op de schijf - opgeslagen. Het voordeel van deze benadering is dat ze altijd - veilig is. Als het systeem faalt tijdens een update is de - metadata nog altijd consistent. Een bestand kan volledig - gecreëerd zijn, of helemaal niet. Als de datablokken - van een bestand nog niet van de buffer cache naar + buffercache en op een later moment asynchroon op de schijf + opgeslagen. Het voordeel van deze benadering is dat ze + altijd veilig is. Als het systeem faalt tijdens het + bijwerken, is de metadata nog altijd consistent. Een bestand + kan volledig gecreëerd zijn of helemaal niet. Als de + datablokken van een bestand nog niet van de buffercache naar de schijf geschreven zijn ten tijde van de crash, is &man.fsck.8; in staat om dit te herkennen en het bestandssysteem te repareren door de lengte van het bestand - nul te maken. Ook is deze implementatie helder en eenvoudig. + nul te maken. Deze implementatie is ook helder en eenvoudig. Het nadeel is echter dat het wijzigen van metadata een traag - proces is. Een rm -r commando, - bijvoorbeeld, benadert alle bestanden in een directory - sequentiëel, maar elke directory verandering (verwijderen - van een bestand) wordt synchroon naar de schijf geschreven. - Dit houdt ook in het bijwerken van de directory zelf, van de - inodetabel en mogelijk ook van indirecte blokken gealloceerd - door het bestand in kwestie. Gelijksoortige overwegingen kan - men maken bij een commando als tar -x - waarbij een grote bestandshiëearchie wordt - uitgepakt. - - De tweede mogelijkheid is om metadata updates asynchroon - weg te schrijven. Dit is standaard in Linux/ext2fs en als - een *BSD ufs bestandssysteem met - mount -o async aangekoppeld is, is de - werking hetzelfde. Alle bijwerkingen aan metadata wordt - eenvoudigweg doorgegeven aan de buffer cache en vermengd met - inhoudelijke updates van de bestandsdata. Het voordeel is - een grote winst aan snelheid, omdat er niet telkens gewacht - hoeft te worden op elke bijwerking aan metadata tot deze - daadwerkelijk naar de schijf geschreven is. De implementatie - is ook in dit geval helder en eenvoudig. Het grote nadeel is - uiteraard dat er geen enkele garantie is voor de consistentie - van het bestandssysteem. Als het systeem faalt tijdens een - operatie waarbij veel metadata wordt bijgewerkt (bijvoorbeeld - door een stroomstoring of iemand drukt op de resetknop), - blijft het bestandssysteem in een onvoorspelbare toestand - achter. Er is geen mogelijkheid om de toestand van het - bestandssysteem te onderzoeken als het systeem weer opstart, - want de datablokken van een bestand kunnen al weggeschreven - zijn geweest terwijl het wegschrijven van bijwerkingen aan de - inodetabel of de bijhorende directory nog niet plaats heeft - gevonden. Het is zelfs onmogelijk om een + proces is. Een rm -r commando benadert + bijvoorbeeld alle bestanden in een map sequentiëel, maar + elke mapverandering (verwijderen van een bestand) wordt + synchroon naar de schijf geschreven. Dit omvat ook het + bijwerken van de map zelf, van de inodetabel en mogelijk ook + van indirecte blokken die voor het bestand in kwestie + zijn gealloceerd. Gelijksoortige processen spelen zich af + bij een commando als tar -x, waarbij een + grote bestandshiëearchie wordt uitgepakt. + + De tweede mogelijkheid is om het bijwerken van metadata + asynchroon weg te schrijven. Dit is standaard in + &linux;/ext2fs en als een *BSD ufs bestandssysteem met + mount -o async gemount is, is de werking + hetzelfde. Alle bijwerkingen aan metagegevens worden + eenvoudigweg doorgegeven aan de buffercache en vermengd met + inhoudelijke updates van de bestandsgegevens. Het voordeel + is een grote winst aan snelheid, omdat er niet telkens + gewacht hoeft te worden op het bijwerken van metagegevens tot + deze daadwerkelijk naar de schijf geschreven zijn. De + implementatie is ook in dit geval helder en eenvoudig. Het + grote nadeel is uiteraard dat er geen enkele garantie is voor + de consistentie van het bestandssysteem. Als het systeem + faalt tijdens een operatie waarbij veel metagegevens worden + bijgewerkt (bijvoorbeeld door een stroomstoring of iemand + drukt op de resetknop), blijft het bestandssysteem in een + onvoorspelbare toestand achter. Er is geen mogelijkheid om + de toestand van het bestandssysteem te onderzoeken als het + systeem weer opstart, want de datablokken van een bestand + kunnen al weggeschreven zijn geweest terwijl het wegschrijven + van bijwerkingen aan de inodetabel of de bijhorende map nog + niet plaats heeft gevonden. Het is zelfs onmogelijk om een fsck te implementeren die de overgebleven - chaos kan opruimen; de benodigde informatie is gewoon niet + chaos kan opruimen: de benodigde informatie is gewoon niet volledig aanwezig op de schijf. Als een bestandssysteem op - deze manier onherstelbaar beschadigd is, is je enige optie - &man.newfs.8; te gebruiken en vervolgens te herstellen van een - backup. + deze manier onherstelbaar beschadigd is, is de enige optie + &man.newfs.8; te gebruiken en vervolgens te herstellen van + een backup. De gebruikelijke oplossing voor dit probleem is het implementeren van dirty region logging, ook wel journaling genoemd, hoewel deze - term niet consistent gebruikt wordt en soms ook wordt gebruikt - voor andere vormen van transactie logging. Metadata updates - worden nog steeds synchroon geschreven, maar slechts naar een - klein gebied van de schijf. Later worden ze dan naar de - juiste locatie verplaatst. Omdat het loggebied klein is, - hoeven de koppen van de schijf zelfs tijdens - schrijfintensieve operaties nog maar over een kleine fysieke - afstand te bewegen en door deze snellere respons zijn dit - soort operaties sneller dan op de traditionele manier. De - extra complexiteit van de implementatie is nogal beperkt, dus - het risico van introductie van extra bugs valt wel mee. Een - nadeel is dat alle metadata tweemaal geschreven wordt (eerst - naar het loggebied en later nog eens naar de eindlocatie) dus - bij normaal gebruik kan er sprake zijn van wat men wel noemt - een performance pessimization. Anderzijds, in - geval van een crash kunnen alle nog uitstaande metadata - operaties snel worden teruggedraaid of vanuit het loggebied - alsnog worden afgemaakt, wanneer de machine weer opstart. Het - bestandssysteem zal dan snel opgestart zijn. + term niet consistent gebruikt wordt en soms ook wordt + gebruikt voor andere vormen van transactielogging. Het + bijwerken van metagegevens wordt nog steeds synchroon + geschreven, maar slechts naar een klein gebied van de schijf. + Later worden ze dan naar de juiste locatie verplaatst. Omdat + het loggebied klein is, hoeven de koppen van de schijf zelfs + tijdens schrijfintensieve operaties nog maar over een kleine + fysieke afstand te bewegen en door deze snellere respons zijn + dit soort operaties sneller dan op de traditionele manier. + De extra complexiteit van de implementatie is nogal beperkt, + dus het risico van introductie van extra bugs valt mee. Een + nadeel is dat alle metagegevens tweemaal geschreven worden + (eerst naar het loggebied en later nog eens naar de + definitieve locatie). Dus bij normaal gebruik kan er sprake + zijn van wat men wel noemt een performance + pessimization. Anderzijds kunnen in geval van een + crash alle nog uitstaande metagegevensoperaties snel worden + teruggedraaid of vanuit het loggebied alsnog worden + afgemaakt, wanneer de machine weer opstart. Het + bestandssysteem start dan snel op. Kirk McKusick, de vader van het Berkeley FFS, loste dit probleem op met softupdates, wat betekent dat alle uitstaande - metadata updates in het geheugen bewaard worden en dan - geordend achtereenvolgens naar de schijf geschreven worden. - Dit heeft het gevolg dat in geval van intensieve metadata - operaties latere bijwerkingen aan een item eerdere bewerkingen - opvangen (catch) als deze nog in het geheugen - zitten en nog niet weggeschreven waren. Dus alle operaties - op, zeg, een directory worden in het algemeen eerst in het - geheugen uitgevoerd voordat de updates naar de schijf - geschreven worden. De databloks worden geordend conform hun - positie zodat ze nooit weggeschreven worden voordat hun - metadata geschreven is. Als het systeem een crash - ondervindt, veroorzaakt dat een impliciet het terugdraaien - van uitstaande operaties (log rewind): Alle - operaties die nog niet weggeschreven waren lijken nooit - gebeurd te zijn. Er wordt zo een consistent bestandssysteem - in stand gehouden dat er uit ziet als was het 30 tot 60 - seconden eerder. Het gebruikte algoritme garandeert dat alle - bronnen die in gebruik zijn als zodanig gemarkeerd worden in - hun daarvoor geschikte bitmaps: blokken en inodes. Na een - crash is de enige allocatiefout die kan optreden dat bronnen - gemarkeerd kunnen zijn als in gebruik (used) - terwijl ze feitelijk alweer beschikbaar (free) - zijn. &man.fsck.8; herkent deze situatie en stelt dergelijke - vrij te maken bronnen opnieuw beschikbaar. Het is volkomen - veilig om na een crash te negeren dat het bestandssysteem niet - schoon is en het tot aankoppelen te dwingen met - mount -f. Om niet langer in gebruik zijnde + acties voor het bijwerken van metagegevens in het geheugen + bewaard worden en dan geordend naar de schijf geschreven + worden. Dit heeft het gevolg dat in geval van intensieve + operaties met betrekking tot metagegevens, latere + bijwerkingen aan een item eerdere bewerkingen opvangen + (catch) als deze nog in het geheugen zitten en + nog niet weggeschreven waren. Dus alle operaties, + op bijvoorbeeld een map, worden in het algemeen eerst in het + geheugen uitgevoerd voordat er wordt bijgewerkt naar schijf. + De datablokken worden geordend conform hun positie, zodat ze + nooit weggeschreven worden voordat hun metagegevens + geschreven zijn. Als het systeem een crash ondervindt, + veroorzaakt dat impliciet het terugdraaien van uitstaande + operaties (log rewind): alle operaties die nog + niet weggeschreven waren lijken nooit gebeurd te zijn. Zo + wordt een consistent bestandssysteem in stand gehouden dat + eruit ziet alsof het 30 tot 60 seconden eerder was. Het + gebruikte algoritme garandeert dat alle bronnen die in + gebruik zijn als zodanig gemarkeerd worden in hun daarvoor + geschikte bitmaps: blokken en inodes. Na een crash is de + enige allocatiefout die kan optreden dat bronnen gemarkeerd + kunnen zijn als in gebruik (used), terwijl ze + feitelijk alweer beschikbaar (free) zijn. + &man.fsck.8; herkent deze situatie en stelt dergelijke vrij + te maken bronnen opnieuw beschikbaar. Het is volkomen veilig + om na een crash te negeren dat het bestandssysteem niet + schoon is en het tot mounten te dwingen met + mount -f. Om niet langer gebruikte bronnen vrij te maken moet later &man.fsck.8; uitgevoerd - worden. Dit is dan ook het idee achter - background fsck: Op het moment dat het - systeem aan het opstarten is, wordt er alleen een - snapshot van het systeem bewaard. Het - commando fsck kan later uitgevoerd worden. - Alle bestandssystemen kunnen dirty gemount - worden en het systeem kan gewoon verder opstarten naar - multiuser modus. Vervolgens zijn er fscks - gepland die in de achtergrond draaien voor elk bestandssysteem - dat niet schoon is en waarmee bezette bronnen vrijgegeven - worden. Bestandssystemen die geen gebruik maken van - softupdates moeten echter nog steeds gebruik maken van de + worden. Dit is dan ook het idee achter background + fsck: op het moment dat het systeem aan het + opstarten is, wordt er alleen een + snapshot van het systeem bewaard. + fsck kan later uitgevoerd worden. Alle + bestandssystemen kunnen dirty gemount worden + en het systeem kan gewoon verder opstarten naar multi-user + modus. Vervolgens zijn er fscks + gepland die in de achtergrond draaien voor elk + bestandssysteem dat niet schoon is en waarmee bezette bronnen + vrijgegeven worden. Bestandssystemen die geen gebruik maken + van softupdates moeten echter nog steeds gebruik maken van de normale fsck in de voorgrond. - Het voordeel van softupdates is dat metadata operaties - bijna net zo snel zijn als asynchrone updates (d.w.z. sneller - dan met logging, waarbij de metadata - tweemaal geschreven wordt). Nadelen zijn de complexiteit van - de code (wat een groter risico van bugs impliceert in een - gebied dat bijzonder gevoelig is voor wat betreft verlies van - gebruikersdata) en een groter geheugenverbruik. Tevens moet - de gebruiker wennen aan enkele eigenaardigheden. Na een - crash lijkt de toestand van het bestandssysteem wat + Het voordeel van softupdates is dat operaties op + metagegevens bijna net zo snel zijn als asynchrone updates + (dat wil zeggen sneller dan met + logging, waarbij de metagegevens keer + keer geschreven worden). Nadelen zijn de complexiteit van + de code (wat een groter risico op bugs impliceert in een + gebied dat bijzonder gevoelig is voor verlies van + gebruikersgegevens) en een groter geheugenverbruik. Tevens + moet de gebruiker wennen aan enkele eigenaardigheden. Na + een crash lijkt de toestand van het bestandssysteem wat ouder. In situaties waar de standaard synchrone benadering een aantal lege bestanden zou hebben achtergelaten na fsck, is het met softupdates juist zo dat dergelijke bestanden er helemaal - niet zijn, omdat noch de metadata noch de bestandsinhoud - ooit naar de schijf is geschreven. Schijfruimte wordt pas - vrijgegeven als de bijwerkingen aan metadata en inhoudelijke + niet zijn, omdat de metadata of de bestandsinhoud nooit naar + de schijf is geschreven. Schijfruimte wordt pas vrijgegeven + als de bijwerkingen aan metagegevens en inhoudelijke bestandsdata weggeschreven zijn, wat mogelijk pas enige tijd na het uitvoeren van rm plaatsvindt. Dit kan problemen veroorzaken als er grote hoeveelheden data - naar een bestandssysteem geschreven wordt dat onvoldoende - vrije ruimte heeft om alle bestanden tweemaal te kunnen + naar een bestandssysteem geschreven worden dat onvoldoende + vrije ruimte heeft om alle bestanden twee keer te kunnen bevatten (bijvoorbeeld in /tmp). - Fijnafstemming van kernellimieten + Fijnafstemming van Kernellimieten fijnafstemming + kernellimieten - Bestands-proceslimieten + Bestandsproceslimieten <varname>kern.maxfiles</varname> kern.maxfiles kern.maxfiles kan worden verhoogd of - verlaagd, afhankelijk van de systeembehoeften. Deze variabele - geeft het maximale aantal bestandsbeschrijvingen op je systeem. - Als de bestandsbeschrijvingstabel vol is zal de systeembuffer - meerdere malen file: table is full - tonen, hetgeen je kunt zien met het dmesg - commando. - - Elk geopend bestand, socket, of fifo heeft een - bestandsbeschrijving (file descriptor). Een grote - produktieserver kan makkelijk enige duizenden - bestandsbeschrijvingen nodig hebben, afhankelijk van het soort - en aantal services die tegelijk draaien. - - kern.maxfiles's standaardwaarde wordt - bepaald door de optie in je kernel - configuratiebestand. kern.maxfiles groeit - evenredig met de waarde van . Als - je een eigen kernel bouwt is het een goed idee om deze kernel - optie in te stellen volgens het aantal systeemgebruikers (maar - niet te laag). Hoewel een produktieserver misschien niet 256 - eens gebruikers tegelijk met zich verbonden heeft kunnen de - benodigde systeembronnen best vergelijkbaar zijn met een - grootschalige webserver. - - Vanaf &os; 4.5, kun je meestal het beste - naar 0 zetten in - je kernel configuratiebestand. Er wordt dan een redelijke - waarde gekozen gebaseerd op de hoeveelheid RAM in het - systeem. - + verlaagd, afhankelijk van de systeembehoeften. Deze + variabele geeft het maximale aantal bestandsdescriptors op + een systeem. Als de bestandsdescriptortabel vol is,.toont de + systeembuffer meerdere malen file: table is + full, hetgeen achteraf te zien is net + dmesg. + + Elk geopend bestand, socket of fifo heeft een + bestandsdescriptor. Een grote produktieserver kan makkelijk + enige duizenden bestandsdescriptors nodig hebben, afhankelijk + van het soort en aantal diensten die tegelijk draaien. + + De standaardwaarde voor kern.maxfiles + wordt bepaald door de optie MAXUSERS in + het bestand met kernelinstellingen. + kern.maxfiles groeit evenredig met de + waarde van MAXUSERS. Als een aangepaste + kernel wordt gebouwd, is het een goed idee om deze + kerneloptie in te stellen afhankelijk van het gebruikt van + een systeemhet (maar niet te laag). Hoewel een + produktieserver misschien niet 256 gebruikers gelijktijdige + gebruikers heeft, kunnen de benodigde systeembronnen best + vergelijkbaar zijn met een grootschalige webserver. + + + Vanaf &os; 4.5 kan meestal het beste + MAXUSERS op 0 gezet + worden in het bestand met kernelinstellingen. Er wordt dan + een redelijke waarde gekozen, die gebaseerd is op de + hoeveelheid RAM in een systeem. + + <varname>kern.ipc.somaxconn</varname> kern.ipc.somaxconn - De kern.ipc.somaxconn sysctl variabele + De sysctl variabele kern.ipc.somaxconn beparkt de grootte van de luisterwachtrij voor het accepteren van nieuwe TCP verbindingen. De standaardwaarde van - 128 is typisch te laag voor robuuste + 128 is meestal te laag voor robuuste behandeling van nieuwe verbindingen in een zwaarbeladen webserver omgeving. Voor zulke omgevingen wordt aangeraden deze waarde te verhogen tot 1024 of hoger. - De service daemon zal misschien zelf de luisterwachtrij - beperken (bijv. &man.sendmail.8;, of - Apache) maar zal vaak een - mogelijkheid in haar configuratiebestand hebben om de - wachtrijgrootte aan te passen. Grote luisterwachtrijen zijn - ook beter in het afwenden van Denial Of Service + De dienstdaemon beperkt misschien zelf de luisterwachtrij + (bijvoorbeeld &man.sendmail.8; of + Apache), maar heeft vaak een + mogelijkheid in een configuratiebestand de wachtrijgrootte + aan te passen. Grote luisterwachtrijen zijn + ook beter in het ontwijken van Ontzegging van Dienst (DoS) aanvallen. - + - Networkbeperkingen - - De kernel configuratie - optie bepaalt het aantal netwerk Mbufs dat beschikbaar is voor - het systeem. Een veel bezochte server met een laag aantal - Mbufs zal &os;'s mogelijkheden beperken. Elk cluster staat voor - ongeveer 2 K geheugen dus een waarde van 1024 stelt 2 - megabytes aan kernel geheugen voor, gereserveerd voor - netwerkbuffers. Met een simpele berekening kun je nagaan - hoeveel je er nodig hebt. Als je een webserver met een maximum - van 1000 simultane verbindingen en elke verbinding kost je - 16 K aan ontvangst netwerkbuffers en 16 K aan - zendbuffers, dan heb je ongeveer 32 MB aan netbuffers nodig - voor de webserver. Een goede vuistregel is te vermeniguldigen - met twee, dus 2x32 MB / 2 KB = - 64 MB / 2 kB = 32768. Voor machines - met veel geheugen wordt 4096 tot 32768 aangeraden. Je moet in - geen geval een arbitrair hoge waarde voor deze sysctl opgeven, - want dat kan leiden tot een crash tijdens het opstarten. De - optie van &man.netstat.1; kan gebruikt - worden om netwerk clustergebruik te observeren. - - De kern.ipc.nmbclusters loader parameter - moet gebruikt worden om dir tijdens het opstarten toe te passen. - Alleen voor oudere versies van &os; is het nodig om de - kernel &man.config.8; optie te - gebruiken. + Netwerkbeperkingen + + De kerneloptie NMBCLUSTERS bepaalt het + aantal netwerk Mbufs dat beschikbaar is voor een systeem. Een + veel bezochte server met een laag aantal Mbufs beperkt de + mogelijkheden van &os;. Elk cluster staat voor ongeveer + 2 K geheugen, dus een waarde van 1024 stelt 2 megabyte + aan kernelgeheugen voor, dat is gereserveerd voor + netwerkbuffers. Een simpele berekening geeft aan hoeveel er + nodig is. Stel dat een webserver met een maximum van 1000 + simultane verbindingen voor elke verbinding 16 K aan + ontvangst netwerkbuffers en 16 K aan zendbuffers kost, dan + is ongeveer 32 MB aan netbuffers nodig voor de webserver. + Een goede vuistregel is te vermeniguldigen met twee, + dus 2x32 MB / 2 KB = 64 MB / + 2 kB = 32768. Voor machines met veel geheugen wordt + 4096 tot 32768 aangeraden. Er moet in geen geval een arbitrair + hoge waarde voor deze sysctl opgegeven worden, want dat kan + leiden tot een crash tijdens het opstarten. Met de optie + van &man.netstat.1; kan clustergebruik + van het netwerk bekeken worden. + + De loaderparameter kern.ipc.nmbclusters + moet gebruikt worden om dit tijdens het opstarten toe te + passen. Alleen voor oudere versies van &os; is het nodig om de + kerneloptie NMBCLUSTERS te gebruiken. Voor drukke servers die extensief gebruik maken van de - &man.sendfile.2; systeemaanroep, kan het nodig zijn het aantal - &man.sendfile.2; buffers via de - kernel configuratie optie of door deze - waarde te zetten in /boot/loader.conf - (zie &man.loader.8; voor details). Een algemene indicator dat - deze parameter aangepast moet worden is als je processen ziet - die in de sfbufa status zijn. De sysctl - variabele kern.ipc.nsfbufs is alleen-lezen en + systeemaanroep &man.sendfile.2;, kan het nodig zijn het aantal + &man.sendfile.2; buffers te verhogen via de kerneloptie + NSFBUFS of door de waarde in te stellen in + /boot/loader.conf (in &man.loader.8; staan + details). Als er in de procestabel processen staan met een + status sfbufa is dat een algemene indicator + dat deze parameter aangepast moet worden. De sysctl variabele + kern.ipc.nsfbufs is alleen-lezen en laat zien op welke waarde deze kernelvariabele is ingesteld. - Deze parameter schaalt engiszins met de - kern.maxusers variabele, maar het kan nodig - zijn om deze bij te stellen. + Deze parameter schaalt engiszins met de variabele + kern.maxusers, maar het kan nodig zijn om + deze bij te stellen. Zelfs als een socket als non-blocking gemarkeerd is, dan - nog kan het aanroepen van &man.sendfile.2; op het - non-blocking socket ertoe leiden dat er toch blokkade optreedt - totdat er voldoende struct sf_buf's - vrijgemaakt zijn. + nog kan het aanroepen van &man.sendfile.2; op de non-blocking + socket ertoe leiden dat er toch blokkade optreedt totdat er + voldoende struct sf_buf's vrijgemaakt + zijn. <varname>net.inet.ip.portrange.*</varname> net.inet.ip.portrange.* - De net.inet.ip.portrange.* sysctl - variabelen bepalen welk bereik van poortnummers automatisch - gebonden worden aan TCP en UDP sockets. Er zijn drie - gebieden: een laag gebied, een midden (standaard) gebied en - een hoog gebied. De meeste netwerkprogramma's gebruiken het - standaardbereik, wat begrensd wordt door + De sysctle variabelelen + net.inet.ip.portrange.* bepalen welke + reeks poortnummers automatisch gebonden wordt aan TCP en UDP + sockets. Er zijn drie gebieden: een laag gebied, een + (standaard) middengebied en een hoog gebied. De meeste + netwerkprogramma's gebruiken het standaardbereik, wat + begrensd wordt door net.inet.ip.portrange.first en net.inet.ip.portrange.last met standaardwaarden van respectievelijk 1024 en 5000. Gebonden - poortbereiken worden gebruikt voor uitgaande verbindingen en + poortreeksen worden gebruikt voor uitgaande verbindingen en het is onder bepaalde omstandigheden mogelijk dat poorten - opraken. Dit gebeurt meestal in het geval van een zwaar + op raken. Dit gebeurt meestal in het geval van een zwaar belaste webproxy. Poortbereik is niet van belang als vooral - services draaien die zich vooral bezighouden met inkomende + diensten draaien die zich bezighouden met inkomende verbindingen, zoals een normale webserver, of als het aantal - uitgaande verbindingen beperkt is zoals bij een mailrelay. + uitgaande verbindingen beperkt is, zoals bij een mailrelay. Voor situaties waarin een tekort aan poorten dreigt, wordt aangeraden om net.inet.ip.portrange.last bescheiden op te hogen. Een waarde van 10000, 20000 of - 30000 is redelijk. Hou ook rekening met - effecten voor wat betreft firewalls als je poortbereiken gaat - wijzigen. Sommige firewalls kunnen grote poortgebieden - blokkeren, meestal de lagere poorten, en verwachten dat - andere systemen hogere poorten gebruiken voor uitgaande - verbindingen — om deze reden wordt het aanbevolen om - net.inet.ip.portrange.first te + 30000 is redelijk. Er moet ook rekening + met effecten op firewalls gehouden worden als de poortreeks + gewijzigd wordt. Sommige firewalls kunnen grote + poortreeksen blokkeren, meestal de lagere poorten, en + verwachten dat andere systemen hogere poorten gebruiken voor + uitgaande verbindingen. Om deze reden wordt het aanbevolen + om net.inet.ip.portrange.first te verlagen. - TCP bandbreedte vertragingsprodukt + TCP Bandbreedtevertragingsproduct (TCP Bandwidth Delay + Product) - TCP bandbreedte vertragingsprodukt - net.inet.tcp.inflight_enable + TCP bandbreedtevertragingsproduct + + + net.inet.tcp.inflight_enable + - De TCP bandbreedte vertragingsprodukt limitatie lijkt op - TCP/Vegas in NetBSD. Het kan aangezet - worden door de net.inet.tcp.inflight_enable - sysctl variabele de waarde 1 te geven. Het - systeem zal dan het bandbreedte vertragingssprodukt trachten te - berekenen voor elke verbinding en dan de hoeveelheid data in - de wachtrij naar het netwerk beperken tot de hoeveelheid die + De TCP bandbreedtevertragingsproduct limitatie lijkt op + TCP/Vegas in NetBSD. Het kan aangezet worden door de sysctl + variabelel net.inet.tcp.inflight_enable + de waarde 1 te geven. Het systeem + tracht dan het bandbreedtevertragingssprodukt te berekenen + voor elke verbinding en beperkt dan de hoeveelheid gegevens + in de wachtrij naar het netwerk tot de hoeveelheid die vereist is om maximale doorvoer te kunnen handhaven. - Dit is nuttig bij gebruik van modems, Gigabit Ethernet, of - zelfs bij hoge snelheid WAN links (of elke andere link met een - groot bandbreedte vertragingsprodukt), in het bijzonder als je - ook windowschaling gebruikt of een groot verzendwindow - gebruikt. Als je deze optie aanzet, denk er dan ook aan om + Dit is nuttig bij gebruik van modems, Gigabit Ethernet of + zelfs bij hoge snelheid WAN links (of elke andere link met + een groot bandbreedtevertragingsprodukt), in het bijzonder + als ook windowschaling of een groot verzendwindow gebruikt + wordt. Als deze optie aangezet wordt, dient ook net.inet.tcp.inflight_debug de waarde - 0 te geven (geen debugging) en voor - produktiegebruik zou ook het zetten van + 0 te krijgen (geen debugging) en voor + produktiegebruik kan het instellen van net.inet.tcp.inflight_min naar minstens - 6144 voordeel kunnen opleveren. Merk - echter op dat het instellen van hoge minima effectief enig - beperken van bandbreedte kan ondermijnen, afhankelijk van de - link. De mogelijkheid tot limitatie zorgt ervoor dat de - hoeveelheid data die opgebouwd wordt in tussentijdse route- en - switchwachtrijen verlaagd kan worden en tevens kan de - hoeveelheid data die opgebouwd wordt in de interfacewachtrij - van de lokale host verlaagd worden. Met minder pakketten in - wachtrijen kunnen interactieve verbindingen opereren met - lagere Round Trip tijden, met name over - langzame modems. Merk echter op dat deze optie alleen over - datatransmissie (uploading / serverkant) gaat en geen effect - heeft op dataontvangst (downloading / clientkant). - - Aanpassen van net.inet.tcp.inflight_stab - wordt niet aangeraden. Deze parameter - krijgt standaard een waarde van 20, hetgeen 2 maximale - pakketten opgeteld bij de bandbreedte windowberekening - representeert. Het extra window is nodig om het algoritme - stabiel te houden en om de response bij veranderende - omstandigheden te verbeteren, maar het kan ook leiden tot - langere pingtijden over langzame verbindingen (zonder het - inflight algoritme zou dit echter nog erger zijn). In - dergelijke gevallen kun je misschien deze parameter verlagen - naar 15, 10 of 5 en misschien moet voor het gewenste effect - ook net.inet.tcp.inflight_min verlaagd - worden (bijvoorbeeld naar 3500). Het verlagen van deze - parameters moet pas in laatste instantie overwogen - worden. + 6144 voordeel opleveren. Het instellen + van hoge minima kan effectief het beperken van bandbreedte + ondermijnen, afhankelijk van de link. De mogelijkheid tot + limitering zorgt ervoor dat de hoeveelheid data die opgebouwd + wordt, in tussentijdse route- en switchwachtrijen verlaagd + kan worden en tevens kan de hoeveelheid gegevens die + opgebouwd wordt in de interfacewachtrij van de lokale host + verlaagd worden. Met minder pakketten in wachtrijen, kunnen + interactieve verbindingen opereren met lagere + Round Trip tijden, met name over + langzame modems. Deze optie gaat alleen over datatransmissie + (upload / serverkant) en heeft geen effect gegevensontvangst + (download / clientkant). + + Aanpassen van + net.inet.tcp.inflight_stab wordt + niet aangeraden. Deze parameter krijgt + standaard een waarde van 20, wat 2 maximale pakketten + opgeteld bij de bandbreedtevensterberekening representeert. + Het extra venster is nodig om het algoritme stabiel te houden + en om de reactietijd bij veranderende omstandigheden te + verbeteren, maar het kan ook leiden tot langere pingtijden + over langzame verbindingen (zonder het inflight algoritme kan + dit echter nog erger zijn). In dergelijke gevallen kan deze + parameter misschien verlaagd worden naar 15, 10 of 5 en + misschien moet voor het gewenste effect ook + net.inet.tcp.inflight_min verlaagd worden + (bijvoorbeeld naar 3500). Het verlagen van deze parameters + moet pas in laatste instantie overwogen worden. - Swapruimte toevoegen + Wisselbestandruimte Toevoegen - Je kunt nog zo goed plannen, soms draait een systeem gewoon - niet zoals verwacht. Een oorzaak hiervoor kan zijn een tekort aan - swapruimte. Als blijkt dat er meer swapruimte nodig is, is dit - eenvoudig te realiseren. Er zijn drie manieren om de totale - ruimte beschikbaar als wisselbestand te vergroten: Een nieuwe - harde schijf toevoegen, swappen over NFS, of een swapbestand maken - op een bestaande (UFS of anderzijds) partitie. + Hoe goed er ook gepland wordt, soms draait een systeem gewoon + niet zoals verwacht. Een oorzaak hiervoor kan een tekort aan + wisselbestandruimte zijn. Als blijkt dat er meer + wisselbestandruimte nodig is, kan dat eenvoudig. Er zijn drie + manieren om de totale ruimte beschikbaar als wisselbestand te + vergroten: een nieuwe harde schijf toevoegen, swappen over NFS of + een wisselbestand maken op een bestaande (UFS of andere) + partitie. - Wisselbestand (partitie) op een nieuwe harde schijf - - Dit is natuurlijk de beste manier om de swap te vergroten en - een goed excuus om een extra harde schijf toe te voegen. Die - komt immers altijd wel van pas. In dat geval kun je het beste - de discussie over swapruimte - uit het onderdeel Initiële configuratie - uit dit handboek nog eens herlezen om wat suggesties te krijgen - over hoe je het beste je wisselpartitie(s) kunt regelen. + Wisselbestand (partitie) op een Nieuwe Harde + Schijf + + Dit is natuurlijk de beste manier om de + wisselbestandsruimte te vergroten en een goed excuus om een + extra harde schijf toe te voegen. Die komt immers altijd wel + van pas. In dat geval kan het beste de discussie over + wisselbestandruimte in + nog eens herlezen worden om wat suggesties te krijgen over hoe + wisselbestandpartitie(s) het beste ingedeeld kunnen + worden. Swappen over NFS In het algemeen wordt swappen over NFS niet aangeraden - omdat het langzaam is. Overweeg dit alleen als het onmogelijk - is om naar een lokale schijf te swappen. In &os; versies voor - 4.X was het hanteren van een wisselbestand over NFS erg langzaam - en inefficiënt. Nieuwere versies werken beter, maar dan - nog wordt swappen over NFS sterk gelimiteerd door de aanwezige - netwerkbandbreedte en het zal de NFS server extra - belasten. + omdat het langzaam is. Dit dient alleen gebruikt te worden als + het onmogelijk om naar een lokale schijf te swappen. In &os; + versies voor 4.X was het hanteren van een wisselbestand over + NFS erg langzaam en inefficiënt. Nieuwere versies werken + beter, maar dan nog wordt swappen over NFS sterk gelimiteerd + door de aanwezige netwerkbandbreedte en belast het de NFS + server. - Swapbestanden + Wisselbestanden - Het is mogelijk om een bestand aan te maken van een bepaalde - grootte en dit als swap te gebruiken. In dit voorbeeld zullen - we een 64MB bestand gebruiken, /usr/swap0. - Uiteraard kan een willekeurige naam gebruikt worden. + Het is mogelijk om een bestand aan te maken van een + bepaalde grootte en dit als swap te gebruiken. In dit + voorbeeld wordt een 64 MB bestand gebruikt, + /usr/swap0. Uiteraard kan een + willekeurige naam gebruikt worden. - Een wisselbestand aanmaken met &os; 4.X + Een Wisselbestand Aanmaken met &os; 4.X - - - Zorg ervoor dat je kernel het vnode stuurprogramma - bevat. In recente versies van GENERIC - is vnode niet inbegrepen. + + + De kernel moet het vnode stuurprogramma bevatten. In + recente versies van GENERIC + is vnode niet opgenomen. - pseudo-device vn #Vnode driver (turns a file into a device) - + pseudo-device vn #Vnode driver (turns a file into a device) + - - Een vn-apparaat aanmaken: - &prompt.root; cd /dev + + Een vn-apparaat aanmaken: + + &prompt.root; cd /dev &prompt.root; sh MAKEDEV vn0 - + - - Een swapbestand aanmaken - (/usr/swap0): + + Een wisselbestand aanmaken + (/usr/swap0): - &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 - + &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 + - - Correcte permissies op (/usr/swap0) - zetten: + + Correcte rechten op (/usr/swap0) + instellen: - &prompt.root; chmod 0600 /usr/swap0 - + &prompt.root; chmod 0600 /usr/swap0 + - - Wisselbestand opnemen in - /etc/rc.conf: + + Wisselbestand opnemen in + /etc/rc.conf: - swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. - + swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. + - - Herstart de machine of om het wisselbestand meteen aan - te zetten, voer in: - - &prompt.root; vnconfig -e /dev/vn0b /usr/swap0 swap - - + + Nu kan de machine herstart worden of het + wisselbestand meteen te gebruiken: + &prompt.root; vnconfig -e /dev/vn0b /usr/swap0 swap + + + - Een wisselbestand aanmaken met &os; 5.X + Een Wisselbestand Aanmaken met &os; 5.X - - - Ga na dat je kernel het stuurprogramma voor de - geheugendisk (&man.md.4;) bevat. Het is standaard in de - GENERIC kernel. + + + De kernel moet het stuurprogramma voor de + geheugendisk (&man.md.4;) bevatten. Dat zit standaard in + de GENERIC kernel. - device md # Memory "disks" - + device md # Memory "disks" + - - Maak een swapbestand aan - (/usr/swap0): + + Het wisselbestand /usr/swap0 + aanmaken: - &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 - + &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 + - - Zet correctie permissies op - (/usr/swap0): + + De correctie rechten op + /usr/swap0 instellen: - &prompt.root; chmod 0600 /usr/swap0 - + &prompt.root; chmod 0600 /usr/swap0 + - - Neem het swapbestand op in - /etc/rc.conf: + + Het wisselbestand opnemen in + /etc/rc.conf: - swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. - + swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. + - - Herstart de machine of om het wisselbestand direct in te - schakelen: - - &prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0 - - + + De machine moet herstart worden of om het + wisselbestand direct in te schakelen: + &prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0 + + Hiten Pandya Geschreven door + Tom Rhodes - Vermogen- en bronnenbeheer + Energie- en Bronnenbeheer Het is belangrijk om hardwarebronnen op een efficiënte wijze te benutten. Voordat ACPI geïntroduceerd werd was het erg lastig en onflexibel - om het vermogensverbruik en de thermische eigenschappen van een - systeem te beheersen. De hardware werd beheerst door deze of gene - interface, ingebed in het BIOS, zoals de + om het energieverbruik en de thermische eigenschappen van een + systeem te beheersen. De hardware werd beheerst door deze of + gene interface, ingebed in het BIOS, zoals de Plug-n-play BIOS (PNPBIOS) of - Advanced Power Management (APM), etc. - Vermogens- en bronnenbeheer is een kerntaak van moderne - besturingssystemen. Je zult bijvoorbeeld willen dat het - besturingssysteem systeemlimieten in de gaten houdt (en mogelijk - een SMS stuurt o.i.d.) als de systeemtemperatuur onverwacht + Advanced Power Management (APM), enzovoort. + Energie- en bronnenbeheer is een kerntaak van moderne + besturingssystemen. Het besturingssysteem moet bijvoorbeeld + systeemlimieten in de gaten houdt (en mogelijk een SMS sturen of + iets dergelijks) als de systeemtemperatuur onverwacht toeneemt. - In dit deel van het &os; handboek wordt uitgebreide informatie - verschaft over ACPI. Aan het einde vindt je - referenties naar meer leesmateriaal. Merk op dat - ACPI op &os; 5.X en nieuwere systemen als - een standaard ingeladen kernelmodule aanwezig is. Met - &os; 4.9 kun je ACPI aanzetten door de - regel device acpi toe te voegen aan je kernel - configuratiebestand en een nieuwe kernel te bouwen en - installeren. + In dit deel van het &os; handboek wordt uitgebreide + informatie verschaft over ACPI. Aan het einde + staan referenties naar meer leesmateriaal. + ACPI is op &os; 5.X en nieuwere systemen + als een standaard ingeladen kernelmodule aanwezig. In + &os; 4.9 kan ACPI aangezet worden door de + regel device acpica toe te voegen aan het + bestand met kernelinstellingen en een nieuwe kernel te bouwen en + te installeren. Wat is ACPI? Advanced Configuration and Power Interface - (ACPI) is een standaard geschreven door een - alliantie van producenten met als doel te voorzien in een een - standaard interface voor hardware bronnen- en vermogensbeheer. - Een belangrijk element is dat het meer flexibiliteit en - beheersmogelijkheden biedt aan het besturingssysteem - (OS). Moderne systemen hebben de limieten van - de huidige PNP interfaces verder opgerekt dan wenselijk en - misschien wel mogelijk was. ACPI is de - directe opvolger van APM - (Advanced Power Management). Centraal is het verleggen van - hardwarebeheer en -monitoring naar de OS laag i.p.v. de zeer - beperkte BIOS laag. + (ACPI) is een standaard die door een + alliantie van producenten geschreven is, met als doel te + voorzien in een een standaardinterface voor hardware bronnen- + en energiebeheer. Een belangrijk element is dat het meer + flexibiliteit en beheersmogelijkheden biedt aan het + besturingssysteem (OS). Moderne systemen + hebben de limieten van de huidige PNP interfaces verder + opgerekt dan wenselijk en misschien wel mogelijk was. + ACPI is de directe opvolger van + APM (Advanced Power Management). Centraal + is het verleggen van hardwarebeheer en -monitoring naar de OS + laag in plaats van de zeer beperkte BIOS laag. Tekortkomingen van APM Met de Advanced Power Management (APM) - faciliteit kan het stroomverbruik van een systeem geregeld + faciliteit kan het energieverbruik van een systeem geregeld worden op basis van de systeemactiviteit. Het APM BIOS wordt geleverd door de systeemproducent of -verkoper en het is specifiek voor dat betreffende hardware platform. Een APM stuurprogramma in het besturingssysteem regelt vervolgens de toegang tot de APM Software Interface, die het besturen van vermogensniveau mogelijk maakt. - Er zijn vier hoofdproblemen met APM te onderscheiden: Ten - eerste wordt het vermogensbeheer verricht door een BIOS + Er zijn vier hoofdproblemen met APM te onderscheiden: ten + eerste wordt het energiebeheer verricht door een BIOS (afhankelijk van producent) en het besturingssysteem heeft daar - geen kennis van. Een voorbeeld hiervan is als de gebruiker - idle-time waarden zet voor een harde schijf in het APM BIOS; - dan zal het BIOS de harde schijf langzamer kunnen katen draaien - zonder dat het besturingssysteem die noodzaak ziet of goedkeurt. - Ten tweede, de APM logica is ingebed in het BIOS, waardoor het - opereert buiten het besturingssysteem om. Dit houdt in dat - gebruikers problemen met hun APM BIOS alleen kunnen verhelpen - door een nieuw BIOS in het ROM te flashen, hetgeen een - gevaarlijke en mogelijk onherstelbare operatie is. Ten derde is - er het feit op zich dat APM een producent-specifieke technologie - is, in de zin dat er altijd een hoge mate van duplicatie zal - zijn van al dan niet geslaagde pogingen om het wiel te - heruitvinden en uiteraard ook van bugs. Er is geen enkele - garantie dat het wegnemen van een bug door een producent ook - een zelfde bug weg zal nemen bij een concurrent. Tenslotte is - het van belang je te realiseren dat de APM BIOS in het algemeen - gewoon te weing geheugen kon gebruiken om een ingewikkeld - vermogensbeheer te kunnen implementeren. Laat staan dat deze - goed aanpasbaar kon zijn aan veranderlijke doelstellingen voor - de betreffende machine. + geen kennis van. De gebruiker die idle-time waarden instelt + voor een harde schijf in het APM BIOS is hier een voorbeeld + van. Dan zal het BIOS de harde schijf langzamer kunnen laten + draaien zonder dat het besturingssysteem de noodzaak ziet of + het goedkeurt. Ten tweede: de APM logica is ingebed in de + BIOS, waardoor het buiten het besturingssysteem om opereert. + Dit houdt in dat gebruikers problemen met hun APM BIOS alleen + kunnen verhelpen door een nieuw BIOS in het ROM te flashen, + wat een gevaarlijke en mogelijk onherstelbare operatie is. + Ten derde is APM een producent-specifieke technologie, in de + zin dat er altijd een hoge mate van duplicatie zal zijn van al + dan niet geslaagde pogingen om het wiel opnieuw uit te vinden + en uiteraard ook van bugs. Er is geen enkele garantie dat het + wegnemen van een bug door een producent ook een zelfde bug + wegneemt bij een concurrent. Tenslotte is het van belang te + weten dat de APM BIOS in het algemeen gewoon te weing geheugen + kon gebruiken om een ingewikkeld energiebeheer te kunnen + implementeren. Laat staan dat deze goed aanpasbaar was aan + veranderlijke doelstellingen voor de betreffende + machine. Plug-n-play BIOS (PNPBIOS) was in veel situations onbetrouwbaar. PNPBIOS is 16-bit technologie, dus het besturingssysteem moet 16-bit emulatie - gebruiken om met PNPBIOS methoden te kunnen interfacen. + gebruiken om met PNPBIOS methoden te kunnen samenwerken. - Het &os; APM stuurprogramma is - gedocumenteerd in de &man.apm.4; handleiding. + Het &os; stuurprogramma APM is + gedocumenteerd in &man.apm.4;. - <acronym>ACPI</acronym> configureren + <acronym>ACPI</acronym> Instellen - Het acpi.ko stuurprogramma wordt + Het stuurprogramma acpi.ko wordt standaard geladen bij het opstarten door de &man.loader.8; en hoeft niet gecompileerd te worden. De redenatie is dat er met modules gemakkelijker gewerkt kan worden, bijvoorbeeld een andere acpi.ko gebruiken zonder dat er een nieuwe kernel gebouwd moet worden. Dit heeft het voordeel dat testen eenvoudiger is. Een andere - reden is dat het opstarten van ACPI nadat een - systeem eenmaal volledig opgestart is, weinig nuttig is en in - sommige gevallen fataal kan zijn. In geval van tijfel kun je - beter ACPI helemaal uitzetten. Dit + reden is dat het opstarten van ACPI nadat + een systeem eenmaal volledig opgestart is, weinig nuttig is en + in sommige gevallen fataal kan zijn. In geval van tijfel kan + ACPI beter uitgeschakeld worden. Dit stuurprogramma kan niet gestopt worden als het eenmaal geladen - is, omdat de systeembus het gebruikt voor allerlei - interacties met hardware. ACPI kan uitgezet - worden met de &man.acpiconf.8; utility. In feite kan de meeste - interactie met het ACPI systeem gedaan worden - via &man.acpiconf.8;. In wezen betekent dit alles dat als er - iets over ACPI in &man.dmesg.8; staat, dat - het hoogstwaarschijnlijk al draait. - - ACPI en APM - kunnen niet samenleven en moeten afzonderlijk en exclusief - gebruikt worden. De laatste die gestart wordt bepaalt of het - stuurprogramma de ander wel of niet ziet. - - In haar eenvoudigste vorm kan ACPI worden - gebruikt om het systeem in slaapmodus te zetten met de - vlag een 1-5 optie op - &man.acpiconf.8;. De meeste gebruikers hebben alleen - 1 nodig; de optie 5 al een - "soft-off" verrichten, wat hetzelfde is als: + is, omdat de systeembus het gebruikt voor allerlei interacties + met hardware. ACPI kan uitgezet worden met + het hulpprogramma &man.acpiconf.8;. In feite kan de meeste + interactie met het ACPI systeem gedaan + worden via &man.acpiconf.8;. In wezen betekent dit dat als er + iets over ACPI in &man.dmesg.8; staat, het + hoogstwaarschijnlijk al draait. + + + ACPI en APM + kunnen niet samenleven en moeten afzonderlijk en exclusief + gebruikt worden. De laatste die gestart wordt bepaalt of het + stuurprogramma de ander wel of niet ziet. + + + In haar eenvoudigste vorm kan ACPI + gebruikt worden om het systeem in slaapmodus te zetten met de + vlag en een 1-5 optie + met &man.acpiconf.8;. De meeste gebruikers hebben alleen + 1 nodig. De optie 5 + verricht een soft-off, wat hetzelfde is + als: &prompt.root; halt -p - Andere opties zijn mogelijk. Zie de &man.acpiconf.8; - handleiding voor meer informatie. + Andere opties zijn mogelijk. In &man.acpiconf.8; staat + meer informatie. Nate Lawson Geschreven door + Peter Schultz Met medewerking van + Tom Rhodes - en - Gebruiken en debuggen van &os; <acronym>ACPI</acronym> + &os; <acronym>ACPI</acronym> Gebruiken en Debuggen ACPI is een totaal nieuwe manier om - apparaten te ontdekken, om stroomverbruik te beheren en om een + apparaten te ontdekken, om energieverbruik te beheren en om een gestandaardiseerde toegang te bieden tot allerlei apparaten die eerder via het BIOS beheerd werden. Er wordt - voortdurend vooruitgang geboekt om ACPI op alle - systemen te laten werken, maar bugs in de AML - bytecode van sommige moederborden, onvolledigheden in &os;'s - kernel subsystemen en bugs in de Intel ACPI-CA - interpreter blijven opduiken. + voortdurend vooruitgang geboekt om ACPI op + alle systemen te laten werken, maar bugs in de + ACPIMachine Language + (AML) bytecode van sommige moederborden, + onvolledigheden in &os;'s kernel subsystemen en bugs in de + &intel; ACPI-CA interpreter blijven + opduiken. Deze tekst is bedoeld om de &os; ACPI - onderhouders te helpen met het vinden van de hoofdoorzaken van - problemen die worden geobserveerd en met het debuggen en het - vinden van een oplossing. + beheerders (maintainers) te helpen met het vinden + van de hoofdoorzaken van problemen die voorkomen en met het + debuggen en het vinden van een oplossing. - Debugging informatie aanbieden + Debuginformatie Aanleveren + + + Voordat een probleem wordt aanmeld, moet het zeker zijn + dat de laatste BIOS versie draait en + indien beschikbaar de geïntregeerde controller + firmware versie. + - Voor diegenen die meteen een probleem willen indienen, - zend dan s.v.p. de volgende informatie naar - - acpi-jp@jp.FreeBSD.org + Diegenen die meteen een probleem willen indienen, sturen + de volgende informatie naar + freebsd-acpi@FreeBSD.org: - Omschrijving van het buggy gedrag, inclusief systeem - type en model en alles wat de bug kan veroorzaken. Als het - een nieuw fenomeen is, probeer dan ook zo accuraat mogelijk - aan te geven wanneer de bug het eerst optrad. + Omschrijving van het foutieve gedrag, inclusief + systeemtype en model en alles wat de fout kan veroorzaken. + Als het een nieuw fenomeen is, dan dient ook zo accuraat + mogelijk aangegeven te worden wanneer de fout het eerst + optrad. - De dmesg uitvoer van boot - , inclusief enige foutmeldingen - die gegenereerd worden als de bug optreedt. + De &man.dmesg.8; uitvoer van boot + -v, inclusief foutmeldingen die gegenereerd + worden als de fout optreedt. - dmesg uitvoer van boot - met ACPI - uitgeschakeld, indien het uitzetten van - ACPI het probleem oplost. + De &man.dmesg.8; uitvoer van boot + -v met ACPI uitgeschakeld, + indien het uitzetten van ACPI het + probleem oplost. - Uitvoer van sysctl hw.acpi. Dit is + Uitvoer van sysctl hw.acpi. Dit is tevens een goede manier om uit te vinden welke - ACPI mogelijkheden je systeem + ACPI mogelijkheden een systeem heeft. - Een URL waar je - ASL gevonden kan worden. Zend de - ASL niet - rechtstreeks naar de lijst omdat deze nogal groot kan zijn. - Je kunt een kopie van je ASL genereren met dit + Een URL waar de + ACPISource + Language (ASL) gevonden + kan worden. De ASL dient + niet rechtstreeks naar de lijst + gezonden te worden, omdat deze nogal groot kan zijn. Een + kopie van een ASL kan gemaakt worden met het volgende commando: - &prompt.root; acpidump -t -d > $NAME-$SYSTEM.asl + &prompt.root; acpidump -t -d > name-system.asl - (Vervang je loginnaam met - $NAME en producent/model met + (Vervang een aanmeldnaam door + $NAME en producent/model door $SYSTEM. Bijvoorbeeld: njl-FooCo6000.asl) - De meeste &os; programmeurs lezen de freebsd-current - mailinglijst maar stuur problemen s.v.p. ook naar acpi-jp zodat - ze zeker gezien worden. Heb alsjeblieft geduld, deze mensen - hebben elders ook nog fulltime banen. Als de bug niet meteen - duidelijk is, zul je waarschijnlijk gevraagd worden om een - PR in te dienen via &man.send-pr.1;. Als je - een PR moet opstellen, vermeld dan alle - hierboven gevraagde informatie. Dit helpt om het probleem te - kunnen volgen en oplossen. Zend s.v.p. geen - PR zonder eerst acpi-jp te mailen, aangezien - men PRs gebruikt als herinnering, niet als - rapportagesysteem. Mogelijk is jouw probleem al eens door - iemand anders aangemeld. + De meeste &os; programmeurs lezen de &a.current; + mailinglijst, maar problemen gaan bij voorkeur ook naar + &a.acpi.name; zodat ze zeker gezien worden. Het kan enige tijd + duren voordat er antwoord komt, omdat deze mensen elders ook + nog fulltime banen hebben. Als de bug niet meteen duidelijk + is, komt er waarschijnlijk en verzoek om een + PR in te dienen via &man.send-pr.1;. Als er + een PR moet worden opgesteld, dan dient alle + hierboven gevraagde informatie vermeld te worden. Dit helpt om + het probleem te kunnen volgen en oplossen. Het sturen van een + PR zonder eerst &a.acpi.name; te mailen is + niet wenselijk, aangezien men PRs gebruikt + als herinnering, niet als rapportagesysteem. Mogelijk is een + probleem al eens door iemand anders aangemeld. Achtergrond ACPI is aanwezig op alle moderne computers die voldoen aan de ia32 (x86), ia64 (Itanium) of amd64 (AMD) architecturen. De volledige standaard heeft vele - mogelijkheden zoals CPU performancebeheer, - vermogenstoevoerbeheer, thermische zones, diverse - batterijsystemen, ingebedde controllers en busnummering. De - meeste systemen implementeren minder dan de volledige standaard. - Een desktopsysteem, bijvoorbeeld, implementeert normaliter - alleen het busnummering gedeeelte, terwijl laptops mogelijk - ook koeling- en batterijbeheer ondersteunen. Laptops hebben ook - suspend en resume (slapen en wakker worden) met hun eigen - aanverwante comlexiteit. + mogelijkheden zoals CPU prestatiebeheer, + energiebeheer, thermische zones, diverse batterijsystemen, + ingebedde controllers en busnummering. De meeste systemen + implementeren minder dan de volledige standaard. Een + desktopsysteem implementeert bijvoorbeeld meestal alleen + busnummering, terwijl laptops mogelijk ook koeling- en + batterijbeheer ondersteunen. Laptops hebben ook suspend en + resume (slapen en wakker worden) met hun eigen aanverwante + comlexiteit. Een ACPI-compliant systeem heeft verscheidene componenten. Het BIOS is de - eerste en dan zijn er verscheidene gedefineerde tabellen zoals - FADT in het geheugen die zaken als de + eerste en dan zijn er verscheidene tabellen in het geheugen + zoals FADT die zaken als de APIC map (gebruikt voor - SMP) specificeren, beschikbeer gesteld door + SMP) specificeren, beschikbaar gesteld door verschillende producenten/verkopers. Daarnaast zijn er - specifieke eenvoudige configuratievariabelen en - configuratieregisters, ook alle specifiek voor de leverancier. - Ook wordt er een tabel van bytecode (de - DSDT)) geleverd die een boomstructuurachtige - namespace biedt voor apparaten en apparaatobjectfuncties. - - Het ACPI stuurprogramma moet de - voorgedefiniëerde tabellen verwerken, een interpreter voor + specifieke eenvoudige instellingen en instellingenregisters, + ook allen specifiek voor de leverancier. Ook wordt er een + tabel van bytecode (de Differentiated System + Description Table DSDT) + geleverd die een op een boomstructuur lijkende namespace biedt + voor apparaten en apparaatobjectfuncties. + + Het stuurprogramma ACPI moet de + voorgedefinieerde tabellen verwerken, een interpreter voor de bytecode implementeren en apparaatstuurprogramma's en de kernel aanpassen om alleen al informatie van het - ACPI subsysteem te kunnen accepteren. Intel - heeft een interpreter beschikbaar gesteld - (ACPI-CA) die door &os; en ook door Linux en - NetBSD gebruikt wordt. De ACPI-CA broncode - kun je vinden in - src/sys/contrib/dev/acpica. - De "lijmcode" die ACPI-CA laat werken met - &os; bevindt zich in - src/sys/dev/acpica/Osd. - Tenslotte, stuurprogramma's die verscheidene - ACPI apparaten implementeren vind je in - src/sys/dev/acpica. + ACPI subsysteem te kunnen accepteren. + &intel; heeft een interpreter beschikbaar gesteld + (ACPI-CA) die door &os; en ook door &linux; + en NetBSD gebruikt wordt. De ACPI-CA + broncode staat in src/sys/contrib/dev/acpica. De + lijmcode (glue code) die + ACPI-CA laat werken met &os; staat in + src/sys/dev/acpica/Osd. Stuurprogramma's + die verscheidene ACPI apparaten + implementeren staan in src/sys/dev/acpica. - Veel voorkomende problemen + Algemene Problemen Wil ACPI goed werken, dan moeten alle - onderdelen goed werken. Hier zijn enkele veel voorkomende problemen - in volgorde van hoe vaak ze optreden en enkele mogelijke - oplossingen of manieren om de problemen te vermijden. + onderdelen goed werken. Hieronder staan enkele algemene + problemen in volgorde van hoe vaak ze optreden en enkele + mogelijke oplossingen of manieren om de problemen te + vermijden. Suspend/resume ACPI heeft drie slaapstanden waarbij het geheugen (RAM) wordt ingezet. Dit - zijn de STR toestanden, - S1-S3, en nog een + zijn de STR toestanden + S1-S3,en nog een slaap-met-gebruik-van-harde-schijf toestand - (STD) die S4 genoemd - wordt. S5 is zo ongeveer - en is de normale status van je systeem wanneer ingestoken - maar niet aangezet. S4 kan feitelijk op + (STD) die S4 heet. + S5 is zacht uit en is de + normale status van een systeem als het is aangesloten maar + niet is aangezet. S4 kan feitelijk op twee manieren geïmplementeerd worden: - S4BIOS is een slaapstand - naar schijf met behulp van het BIOS en - S4OS wordt volledig door - het besturingssysteem beheerd. - - Begin met het controleren van sysctl - voor items die iets met "suspend" te - maken hebben. Hier zijn de resultaten voor een - Thinkpad: - - hw.acpi.supported_sleep_state: S3 S4 S5 - hw.acpi.s4bios: 0 - - Dit betekent dat hier acpiconf - gebruikt kan worden om - S3, S4 - OS, en S5 te testen. - Als gelijk was aan een (1), dan zouden - we S4BIOS ondersteuning - hebben in plaats van S4 + S4BIOS is een + slaapstand naar schijf met behulp van het + BIOS en + S4OS wordt volledig + door het besturingssysteem beheerd. + + als eerste dienen de sysctl + items die iets met de slaapstand + te maken hebben gecontroleerd te worden. Hieronder staan de + resultaten voor een Thinkpad: + + hw.acpi.supported_sleep_state: S3 S4 S5 +hw.acpi.s4bios: 0 + + Dit betekent dat hier acpiconf -s + gebruikt kan worden om S3, + S4 OS en + S5 te testen. Als + gelijk was aan (1), dan zou er + S4BIOS ondersteuning + zijn in plaats van S4 OS. - Als je suspend/resume moet testen, begin dan met - S1 indien ondersteund. Deze toestand - heeft de grootste kans om te werken, omdat deze niet veel - stuurprogrammaondersteuning vereist. Niemand heeft nog - S2 geïmplementeerd, maar mocht je het - hebben, het is ongeveer hetzelfde als S1. - Het volgende om uit te proberen is S3. - Dit is het diepste STR niveau en heeft - uitgebreide ondersteuning van stuurprograama's nodig om je - hardware goed te kunnen herinitialiseren. Mocht je hier - problemen hebben om verder te komen, mail dan s.v.p. naar de - acpi-jp lijst, maar verwacht niet een snelle oplossing omdat - er nog de nodige stuurprogramma's/hardware ligt om getest en - bewerkt te worden. + Als suspend/resume getest moet worden, dient, indien + ondersteund, bij S1 begonnen te worden. + Deze toestand heeft de grootste kans om te werken, omdat deze + niet veel stuurprogrammaondersteuning vereist. Niemand heeft + nog S2 geïmplementeerd, maar het is + ongeveer hetzelfde als S1. Daarna wordt + S3 getest. Dit is het diepste + STR niveau en heeft uitgebreide + ondersteuning van stuurprogramma's nodig om hardware goed + opnieuw te kunnen starten. Mochten er blokkades optreden, + dan kan naar de &a.acpi.name; lijst gemaild worden. Er kan + echter geen snelle oplossing verwacht worden, omdat er nog de + nodige stuurprogramma's/hardware liggen om getest en bewerkt + te worden. Om een probleem te kunnen isoleren helpt het om zoveel mogelijk stuurprogramma's uit de kernel te halen. Als dit - werkt, kun je terugwerken naar de driver die schuldig is aan - het falen. Typisch zullen binaire stuurprogramma's zijn als - nvidia.ko, X11 + werkt, kan er teruggewerkt worden naar de driver die schuldig + is aan het falen. Meestal vertonen binaire stuurprogramma's + als nvidia.ko, X11 beeldschermstuurprogramma's en USB de - meeste problemen vertonen, terwijl bijvoorbeeld Ethernet - interfaces meestal meteen goed werken. Als je de - stuurprogramma's zonder problemen kunt in- en uitladen, dan - kun je dit automatiseren door de juiste commando's in - /etc/rc.suspend en + meeste problemen, terwijl bijvoorbeeld Ethernet + interfaces meestal meteen goed werken. Als de + stuurprogramma's zonder problemen geladen en verwijderd + kunnen worden, dan is dit te automatiseren door de juiste + commando's in /etc/rc.suspend en /etc/rc.resume te zetten. Er staat een - voorbeeld (achter commentaartekens) voor het in- en uitladen - van een driver. Probeer - naar nul (0) te zetten als het zo mocht zijn dat je - beeldscherm er na het wakker worden verstoord uitziet. - Probeer langere of kortere waarden te zetten voor - om na te gaan of dat - helpt. - - In geval van problemen, kun je ook proberen om een recente - Linux distibutie met ACPI support te laten - starten en daarvan de suspend/resume ondersteuning op dezelfde - hardware uit te proberen. Als het werkt met Linux, dan is het - waarschijnlijk een &os; stuurprogrammaprobleem en als je kunt - uitvinden over welke driver het gaat kan dat bijdragen aan het - oplossen van het probleem. Merk op dat de - ACPI zich in het algemeen niet bezighouden - met andere stuurprogramma's bijv. geluid, - ATA, etc.) dus als je bezig bent met een - echt driverprobleem, dan zul je waarchijnlijk uiteindelijk - ook naar de freebsd-current lijst moeten posten en naar de - beheerder van het stuurprogramma. Als je je avontuurlijk - voelt, ga vooral je gang en plaats een paar &man.printf.3;s in - problematische stukken van een stuurprogramma voor debugging - om na te gaan waar precies de resume funktie hangt. - - Tot slot kun je proberen om ACPI uit te - zetten en in plaats daarvan APM aan te - zetten. Als suspend/resume werkt met APM - dan kun je het misschien beter daarbij houden, vooral met wat - oudere apparatuur (voor 2000). Producenten hebben nogal wat - tijd nodig gehad om ACPI ondersteuning goed - te krijgen en oudere hardware heeft een grotere - waarschijnlijkheid dat er BIOS problemen - zijn met ACPI. + voorbeeld (achter commentaartekens) voor het laden en + verwijderen van een driver. Als het beeldscherm er na + wakker worden vreemd uitziet, kan geprobeerd worden + naar nul + (0) te zetten. Met langere of kortere + waarden voor kan + bekeken worden of dat helpt. + + In geval van problemen is het ook een optie om een + recente &linux; distibutie met ondersteuning voor + ACPI support te starten en daarvan de + suspend/resume ondersteuning op dezelfde hardware uit te + proberen. Als het werkt met &linux;, dan is het + waarschijnlijk een &os; stuurprogrammaprobleem en als het + mogelijk is uit te vinden over welke driver het gaat, kan dat + bijdragen aan het oplossen van het probleem. + ACPI houdt zich in het algemeen niet bezig + met andere stuurprogramma's bijvoorbeeld geluid, + ATA, enzovoort. Als er dus een echt + driverprobleem is, dan is waarchijnlijk uiteindelijk + ook nodig naar de &a.current.name; lijst te posten en naar de + beheerder van het stuurprogramma. Voor degenen met moed is + het vooral aan te raden een paar &man.printf.3;s in + problematische stukken van een stuurprogramma te plaatsen + voor debugging om na te gaan waar de resumefunctie precies + hangt. + + Tot slot kan geprobeerd worden om ACPI + uit te zetten en in plaats daarvan APM aan + te zetten. Als suspend/resume werkt met + APM, is het wellicht verstandig het + daarbij te houden, vooral met wat oudere apparatuur (voor + 2000). Producenten hebben nogal wat tijd nodig gehad om + ACPI ondersteuning goed te krijgen en + voor oudere hardware is het waarschijnlijker dat er + BIOS problemen zijn met + ACPI. - Hangen van het systeem (tijdelijk of permanent) + Systeem Hangt (tijdelijk of permanent) Meestal is het hangen van het systeem het gevolg van - verloren interrupts of een interrupt storm. Chipsets kunnen + verloren interrupts of een interruptstorm. Chipsets kunnen een heleboel problemen hebben, afhankelijk van hoe het - BIOS interrupts configureert voor het + BIOS interrupts instelt voor het opstarten, of de APIC - (MADT) tabel correct is en de routering van - het SCI. - - Interrupt storms kunnen onderscheiden worden van verloren - geraakte interrupts door de uitvoer van - vmstat te controleren - en de regel met acpi0 goed te lezen. Als de - teller in toenemende mate hoger gaat dan enkele per seconde, - dan heb je een interrupt storm. Als het systeem lijkt te - hangen, probeer dan op de console naar de - DDB te breken - (CTRL - ALTESC) en voer - in: . + (MADT) tabel correct is en de routering + van het System Control Interrupt + (SCI). + + Interruptstorms kunnen onderscheiden worden van verloren + geraakte interrupts door de uitvoer van vmstat + -i te controleren en de regel met + acpi0 goed te lezen. Als de teller in + toenemende mate hoger staat dan enkele per seconde, dan is + sprake van een interruptstorm. Als het systeem lijkt te + hangen, is het wellicht nog mogelijk door te dringen tot + de DDB (CTRL + ALTESC) + show interrupts uit te voeren. De beste hoop in geval van interruptproblemen is om APIC ondersteuning uit te zetten met - 1 in - loader.conf. + hint.apic.0.disabled="1" in + loader.conf. Panics Panics zijn relatief zeldzaam met ACPI - en hebben de hoogste prioriteit om opgelost te worden. De - eerste stap is de verschillende gebeurtenissen te isoleren - die de panic kunnen reproduceren (indien mogelijk) en het - verkrijgen van een backtrace. Volg het advies over het - aanzetten van en het opzetten - van een seriële console of een &man.dump.8; partitie. - Als je de backtrace handmatig op moet schrijven, zorg dan in - ieder geval dat je de bovenste en onderste vijf (5) regels van - de backtrace noteert. - - Probeer vervolgens om op te starten met - ACPI uitgezet. Als dat werkt, heb je het - ACPI subsysteem geïsoleerd en kun je - verschillende waarden - uitproberen. Zie de &man.acpi.4; handleiding voor enkele + en krijgen de hoogste prioriteit bij het oplossen. Eerst + moeten de verschillende gebeurtenissen waarmee de + panic (als mogelijk) te reproduceren is geïsoleerd + worden en moet een backtrace gemaakt worden. + options DDB dient aangezet te worden en er + dient een een seriële console () of een &man.dump.8; partitie + te komen.. In DDB is een backtrace te + maken met tr. Als de backtrace handmatig + opgeschreven moet worden, is het belangrijk dat in ieder + geval de bovenste en onderste vijf (5) regels van de + backtrace genoteerd worden. + + Daarna dient getracht te worden het systeem te starten + zonder ACPI. Als dat werkt, is het + ACPI subsysteem geïsoleerd en kunnen + de verschillende waarden + uitgeprobeerd worden. In &man.acpi.4; staan enkele voorbeelden. - Systeem komt toch weer op na slaap (suspend) of stop (shutdown) - Probeer eerst - 0 - te zetten in &man.loader.conf.5;. Dit zorgt ervoor dat - ACPI niet het opvangen van bepaalde - gebeurtenissen tijdens het afsluitproces negeert. Om dezelfde - redenen moeten sommige systemen deze waarde altijd op - 1 (de standaard) hebben. In het algemeen lost - dit een probleem op waarbij een systeem spontaan weer opkomt - nadat het in slaapstand is gezet of geheel gestopt. + Systeem Slaat Aan na Slaapstand of Stop + hw.acpi.disable_on_poweroff="0" kan + uitgezet worden in &man.loader.conf.5;. Hierdoor schakelt + ACPI bepaalde gebeurtenissen tijdens het + afsluitproces niet uit. Om dezelfde redenen moeten sommige + systemen deze waarde altijd op 1 + (standaard) hebben staan. In het algemeen lost dit een + probleem op waarbij een systeem spontaan weer opkomt + nadat het in slaapstand is gezet of geheel gestopt is. - Overige problemen - - Als je nog andere problemen hebt met ACPI - (met een docking station of apparaten niet gedetecteerd, etc.), - verzend dan s.v.p. een beschrijving naar de mailinglijst. Sommige - zaken kunnen echter gerelateerd zijn aan delen van het - ACPI subsysteem die nog niet af zijn dus het - kan in sommige gevallen een tijd duren. Heb s.v.p. geduld en - wees bereid om eventuele patches uit te proberen. + Overige Problemen + + Als er nog andere problemen zijn met + ACPI (met een docking station of + apparaten niet gedetecteerd, enzovoort), dan kan een mail + met beschijving naar de mailinglijst gezonden worden. + Sommige zaken kunnen echter gerelateerd zijn aan delen van + het ACPI subsysteem die nog niet af zijn, + dus het kan in sommige gevallen een tijd duren. Gebruikers + moeten soms geduld hebben en de bereidheid om eventuele + patches uit te proberen. <acronym>ASL</acronym>, <command>acpidump</command> en - <acronym>IASL</acronym> + IASL Het grootste probleem is dat BIOS - producenten vaak incorrecte (of gewoon buggy!) bytecode leveren. Dit - blijkt doorgaans uit kernel boodschappen als: + producenten vaak incorrecte (of gewoon foutieve) bytecode + leveren. Dit blijkt doorgaans uit kernelboodschappen + als: - ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] (Node 0xc3f6d160), AE_NOT_FOUND + ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\ +(Node 0xc3f6d160), AE_NOT_FOUND - Vaak kun je dergelijke problemen oplossen door je + Vaak kunnen dergelijke problemen geoplost worden door de BIOS bij te werken tot de laatste revisie. - De meeste consoleberichten zijn onschuldig, maar als je andere - problemen ondervindt -- zoals batterijstatus die niet werkt -- - dan ligt het voor de hand te zoeken naar problemen in de + De meeste consoleberichten zijn onschuldig, maar als er andere + problemen zijn, zoals batterijstatus die niet werkt, dan ligt + het voor de hand te zoeken naar problemen in de AML code. De bytecode die - AML genoemd wordt wordt gecompileerd van een - broncodetaal genaamd ASL. Deze staat weer in - een tabel genaamd DSDT. Om een kopie van de - ASL te verkrijgen kun je &man.acpidump.8; - gebruiken. Je moet dan zowel de (laat - inhoud van vaste tabellen zien) als de - (disassembleer AML naar - ASL) opties gebruiken. Zie het - Debugging informatie - aanleveren gedeelte voor een voorbeeld. - - De eenvoudigste eerste controle die je kunt verrichten, is - de ASL code opnieuw compileren en kijken of + AML genoemd wordt, wordt gecompileerd van + een broncodetaal ASL. Deze staat weer in + een tabel DSDT. Met &man.acpidump.8; kan + een kopie van de ASL gemaakt worden. Dan + moeten zowel de opties (laat inhoud van + vaste tabellen zien) als (disassembleer + AML naar ASL) gebruikt + worden. In Debuginformatie + Aanleveren staat een voorbeeld. + + De eenvoudigste eerste controle is de + ASL code opnieuw compileren en kijken of er foutmeldingen optreden. Waarschuwingen kunnen doorgaans - genegeerd worden maar fouten zijn bugs die meestal ertoe leiden - dat ACPI niet correct werkt. Om - ASL te hercompileren gebruik je: + genegeerd worden, maar fouten zijn bugs die er meestal toe + leiden dat ACPI niet correct werkt. Om + ASL te hercompileren: - &prompt.root; iasl jouw.asl + &prompt.root; iasl eigen.asl - <acronym>ASL</acronym> repareren - - Op langere termijn is het de bedoeling dat voor vrijwel elke - machine ACPI werkt zonder enig ingrijpen van - de gebruiker. Op dit moment echter, wordt er nog gewerkt aan - oplossingen voor veel voorkomende vergissingen die - BIOS producenten maken. De Microsoft - interpreter (acpi.sys en acpiec.sys) - controleert niet strikt of het BIOS volledig - aan de standaard voldoet waardoor het voorkomt dat - BIOS makers die alleen testen onder Windows - bepaalde fouten in hun ASL nooit correct - repareren. We hopen de identificatie en documentatie van welk - niet-standaard gedrag precies wordt toegelaten door Microsoft's - interpreter voort te zetten en te repliceren zodat &os; kan - werken zonder dat gebruikers zich gedwongen zien om de + <acronym>ASL</acronym> Repareren + + Op langere termijn is het de bedoeling dat voor vrijwel + elke machine ACPI werkt zonder enig + ingrijpen van de gebruiker. Op dit moment wordt er echter nog + gewerkt aan oplossingen voor veel voorkomende vergissingen die + BIOS producenten maken. De µsoft; + interpreter (acpi.sys en + acpiec.sys) controleert niet strikt of het + BIOS volledig aan de standaard voldoet, + waardoor het voorkomt dat BIOS makers die + alleen testen onder &windows; bepaalde fouten in hun + ASL nooit correct repareren. &os; hoopt + door te gaan met de identificatie en documentatie van welk + niet-standaard gedrag precies wordt toegelaten door + µsoft;'s interpreter en te dit te repliceren zodat &os; + kan werken zonder dat gebruikers zich gedwongen zien om de ASL te repareren. Als een tijdelijke oplossing en om te helpen met het in kaart brengen van bepaald - gedrag, kun je de ASL handmatig repareren. - Als dit lukt, stuur dan s.v.p. een &man.diff.1; van de oude en - de nieuwe ASL zodat het buggy gedrag mogelijk - in ACPI-CA kan worden verwerkt, waardoor + gedrag, kan de ASL handmatig gerepareerd + worden. Mocht dit lukken, dan wordt erop aangedrongen een + &man.diff.1; van de oude en de nieuwe ASL + te mailen, zodat het foutieve gedrag mogelijk in + ACPI-CA kan worden verwerkt, waardoor andere gebruikers niet meer handmatig met hun ASL aan de gang hoeven. - Hier volgt een lijst van veel voorkomende foutmeldingen, hun + Hieronder staat een lijst algemene foutmeldingen, hun oorzaken en hoe ze op te lossen: _OS afhankelijkheden Sommige AMLs gaan ervan uit dat de - wereld enkel bestaat uit verscheidene Windows versies. Je - kunt &os; zich laten voordoen als elk OS - om te kijken of dit je problemen oplost. Een gemakkelijke - manier om dit te doen is - =Windows 2001 te - zetten in /boot/loader.conf of andere - gelijksoortige strings die je tegenkomt in je - ASL. + wereld enkel bestaat uit &windows; versies. &os; kan zich + voordoen als elk OS om te kijken of dit + problemen oplost. Een gemakkelijke manier om dit te doen is + hw.acpi.osname="Windows 2001" in te + stellen in /boot/loader.conf of andere + gelijksoortige strings die in een ASL + staan. + - Ontbrekende return statements + Ontbrekende Return Opdrachten - Sommige methoden hebben geen specifieke returnwaarde zoals - wel vereist wordt door de standaard. Hoewel + Sommige methoden hebben geen specifieke returnwaarde, + zoals wel vereist wordt door de standaard. Hoewel ACPI-CA hier niets mee doet, heeft &os; - de mogelijkheid tot impliciete returns. Je kunt ook expliciet - return statements toevoegen waar vereist als je weet welke - waarden teruggevoerd moeten worden. Om iasl - te dwingen tot compilatie van ASL kun je - de schakeloptie gebruiken. + de mogelijkheid tot impliciete returns. Er kunnen ook + expliciet return opdrachten toegevoegd worden waar vereist, + als het bekend is welke waarden teruggevoerd moeten worden. + Om iasl te dwingen tot compilatie van + ASL kan de schakeloptie + gebruikt worden. - Verder gaan dan de standaard <acronym>AML</acronym> + De Standaard <acronym>AML</acronym> Aanpassen - Nadat je jouw.asl aangepast hebt, - compileer je het als volgt: + Nadat eigen.asl aangepast is, kan + deze als volgt gecompileerd wordent: - &prompt.root; iasl jouw.asl + &prompt.root; iasl eigen.asl - Met de optie kun je afdwingen dat er - de AML gemaakt wordt, zelfs als er - compileerfouten optreden. Denk eraan dat sommige fouten - (zoals ontbrekende return statements) automatisch opgelost - worden door de interpreter. + Met de optie is af te dwingen dat de + AML gemaakt wordt, zelfs als er + compileerfouten optreden. Sommige fouten (zoals ontbrekende + return opdrachten) worden automatisch opgelost door de + interpreter. - DSDT.aml is de standaard naam voor + DSDT.aml is de standaardnaam voor het bestand dat door iasl wordt - geproduceerd. Je kunt dit inladen in plaats van de buggy - versie uit het BIOS (die nog steeds - aanwezig is in het flashgeneugen) door - /boot/loader.conf als - volgt te wijzigen: + geproduceerd. Dit is in plaats van de foutieve versie uit + het BIOS (die nog steeds + aanwezig is in het flashgeneugen) te laden door + /boot/loader.conf als volgt te + wijzigen: acpi_dsdt_load="YES" acpi_dsdt_name="/boot/DSDT.aml" - Vergeet niet je DSDT.aml in de - /boot directory te - zetten. + DSDT.aml moet in de map /boot staan. + - Debugging uitvoer van <acronym>ACPI</acronym> verkrijgen - - Het ACPI stuurprogramma heeft een zeer - flexibele debugging faciliteit. Je kunt zowel een set van - subsystemen specificeren als het niveau van verbositeit. De te - debuggen subsystemen worden gespecificeerd als lagen - (layers) en ze zijn opgedeeld in + Debuguitvoer van <acronym>ACPI</acronym> + Verkrijgen + + Het stuurprogramma ACPI heeft een zeer + flexibele debugfaciliteit. Er kan zowel een set van + subsystemen aangegeven worden als het niveau van uitvoerigheid. + De te debuggen subsystemen worden aangegeven als lagen + (layers) en zijn opgedeeld in ACPI-CA componenten (ACPI_ALL_COMPONENTS) en ACPI hardware ondersteuning - (ACPI_ALL_DRIVERS). De verbositeit van debugging uitvoer wordt - gespecificeerd als het niveau (level) en gaat van + (ACPI_ALL_DRIVERS). De uitvoerigheid van debuguitvoer wordt + aangegeven als het niveau (level) en gaat van CPI_LV_ERROR (alleen fouten rapporteren) tot ACPI_LV_VERBOSE (alles). Het niveau is een bitmasker en dus kunnen er meerdere - opties tegelijk gezet worden (gescheiden door spaties). In de - praktijk zul je wellicht een seriële console willen - gebruiken om de uitvoer te loggen als deze zo omvangrijk is dat - ze de console message buffer vult (misschien wel meerdere - keren). Een complete lijst van de individuele lagen en niveaus - vindt je in de &man.acpi.4; handleiding. - - Debugging uitvoer staat niet standaard aan. Om het aan te - zetten voeg je toe aan je - kernel configuratie als ACPI in je kernel is - gebouwd. Je kunt aan je - /etc/make.conf bestand toevoegen om het - systeemwijd aan te zetten. Als je ACPI als - module gebruikt (de normale situatie), dan hoeft je slechts de - acpi.ko module te hercompileren als - volgt: + opties tegelijk ingeschakeld worden (gescheiden door spaties). + In de praktijk wordt wellicht een seriële console gebruikt + om de uitvoer te loggen als deze zo omvangrijk is dat de + console berichtbuffer vol loopt (misschien wel meerdere keren). + Een complete lijst van de individuele lagen en niveaus staat + in &man.acpi.4;. + + Debuguitvoer staat staandaard niet aan. Door + options ACPI_DEBUG toe te voegen aan het + bestand met kernelinstellingen als ACPI als + de kernel is gebouwd, wordt het ingeschakeld. Door + ACPI_DEBUG=1 toe te voegen aan + /etc/make.conf wordt het systeembreed + ingeschakeld. Als ACPI als module wordt + gebruikt (de normale situatie), dan hoeft slechts de + acpi.ko module opnieuw gecompileerd te + worden: &prompt.root; cd /sys/modules/acpi/acpi -&& make clean && make -ACPI_DEBUG=1 - - Installeer acpi.ko in - /boot/kernel en voeg de - gewenste debuglaag en het gewenste verbositeitsniveau toe aan - het loader.conf bestand. Hier is een - voorbeeld waarmee debugging uitvoer wordt aangezet voor alle +&& make clean && +make ACPI_DEBUG=1 + + acpi.ko moet in + /boot/kernel komen te + staan en de gewenste debuglaag en het gewenste + niveau van uitvoerigheid dienen toegevoegd te worden aan + loader.conf. Hieronder een voorbeeld + waarmee debuguitvoer wordt aangezet voor alle ACPI-CA componenten en alle ACPI hardware stuurprogramma's - (CPU, LID, etc). Het - verbositeitsniveau is het laagste; er worden alleen - foutmeldingen gemeld. + (CPU, LID, enzovoort. + Het niveau van uitvoerigheid is het laagst mogelijke. Er + worden alleen fouten gemeld. debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS" debug.acpi.level="ACPI_LV_ERROR" - Als de informatie die je zoekt veroorzaakt wordt door een - specifieke gebeurtenis (bijvoorbeeld in en uit slaapstand gaan), - dan kun je wijzigingen aan loader.conf - achterwege laten en in plaats daarvan sysctl - gebruiken om laag en niveau te specificeren na het opstarten en - zo het systeem voor te bereiden op die specifieke gebeurtenis. - De sysctls hebben dezelfde namen als de + Als de gezochte informatie wordt veroorzaakt door een + specifieke gebeurtenis (bijvoorbeeld in en uit slaapstand + gaan), dan kunnen wijzigingen aan + loader.conf achterwege blijven en in + plaats daarvan kan sysctl gebruikt worden om + laag en niveau in te stellen na het opstarten en zo het systeem + voor te bereiden op die specifieke gebeurtenis. De + sysctls hebben dezelfde namen als de parameters in loader.conf. - Referenties + Verwijzingen - Meer informatie over ACPI kun je vinden - op de volgende locaties: + Meer informatie over ACPI staat op de + volgende locaties: - De ACPI mailinglijst - - acpi-jp@jp.freebsd.org + De &a.acpi; De ACPI mailinglijst archieven - - http://home.jp.freebsd.org/mail-list/acpi-jp/ + + + + + + De oude ACPI mailinglijst archieven + + De ACPI 2.0 specificatie - http://acpi.info/spec.htm/ + &os; Handleidingen: &man.acpi.4;, &man.acpi.thermal.4;, &man.acpidump.8;, &man.iasl.8;, &man.acpidb.8; - DSDT debugging informatie. - (Gebruikt Compaq als voorbeeld maar van algemeen nut). + url="http://www.cpqlinux.com/acpi-howto.html#fix_broken_dsdt"> + DSDT debugging informatie. + (Gebruikt Compaq als voorbeeld, maar van algemeen + nut). diff --git a/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml index e7410970c0..1251bb5341 100644 --- a/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml @@ -1,1425 +1,1414 @@ Chrisptophe Juliet Bijgedragen door René Ladan Vertaald door Bureaubladapplicaties Samenvatting &os; kan een groot aantal bureaubladapplicaties draaien, zoals browsers en tekstverwerkers. De meeste hiervan zijn beschikbaar als packages of kunnen automatisch vanuit de portscollectie gebouwd worden. Veel nieuwe gebruikers verwachten dit soort applicaties op hun bureaublad. Dit hoofdstuk laat zien hoe populaire bureaubladapplicaties moeiteloos geïnstalleerd kunnen worden vanuit een package of vanuit de portscollectie. Als programma's vanuit ports geïnstalleerd worden, wordt hun broncode gecompileerd. Dit kan erg lang duren, afhankelijk van wat er gecompileerd wordt en de rekenkracht van een machine. Als compileren vanuit broncode te veel tijd kost, kunnen de meeste programma's van de portscollectie als een voorafgebouwd package geïnstalleerd worden. Omdat &os; compatibel is met &linux;, zijn veel applicaties die voor &linux; zijn ontwikkeld beschikbaar een &os; bureaublad. Het wordt sterk aanbevolen om te lezen voordat &linux; applicaties geïnstalleerd worden. Veel ports die gebruik maken van &linux; compatibiliteit beginnen met linux-. Dit is handig om te onthouden wanneer er naar een port gezocht wordt met bijvoorbeeld &man.whereis.1;. In dit hoofdstuk wordt aangenomen dat &linux; binaire compatibiliteit is ingeschakeld voordat &linux; applicaties worden geïnstalleerd. In dit hoofdstuk worden de volgende categoriën behandeld: Browsers (zoals Mozilla, &netscape;, Opera, Firefox, Konqueror) Productiviteit (zoals KOffice, AbiWord, The GIMP, OpenOffice.org) Documentviewers (zoals &acrobat.reader;, gv, Xpdf, GQview) Financieel (zoals GnuCash, Gnumeric, Abacus) Er wordt aangenomen dat de lezer van dit hoofdstuk: Weet hoe aanvullende software van derde partijen geïnstalleerd wordt (). Weet hoe aanvullende &linux; software geïnstalleerd wordt (). Meer informatie over een multimedia-omgeving staat in . Installatie van e-mail staat beschreven in . Browsers &os; wordt zonder een voor-geïnstalleerde browser geleverd. In plaats hiervan bevat de www map van de portscollectie browsers om te installeren. Het is ook mogelijk voor de meeste ports een package te installeren als compileren niet gewenst is. Compileren kan soms lang duren. KDE en GNOME bevatten reeds HTML-browsers. In staat meer informatie over de installatie van deze complete bureaubladen. Lichtgewicht browsers uit de portscollectie zijn onder andere www/dillo, www/links of www/w3m. Dit gedeelte behandelt deze applicaties: - + Applicatie Bronnen Ports Afhankelijkheden Mozilla veel zwaar Gtk+ &netscape; veel licht &linux; binaire compatibiliteit Opera weinig licht &os; en &linux; versies beschikbaar. De &linux; versie is afhankelijk van de &linux; binaire compatibiliteit en linux-openmotif. Firefox gemiddeld zwaar Gtk+ Konqueror gemiddeld zwaar KDE bibliotheken Mozilla Mozilla Mozilla is misschien wel de meest geschikte browser voor &os;. Het is modern, stabiel en volledig geschikt naar &os;. Het bevat een zeer aan de standaarden voldoend HTML-weergave element. Het levert een mail- en nieuwslezer. Het bevat zelfs een HTML-bewerker voor het maken van webpagina's. Mozilla deelt dezelfde broncodebasis met &netscape; Communicator. Op langzame machines, met een CPU-snelheid van 233MHz of minder dan 64MB aan RAM, kan Mozilla te veeleisend zijn om volledig bruikbaar te zijn. In dat geval is Opera browser een mogelijke vervanger. Het is niet wenselijk is om Mozilla te compileren, dan is dit al door het &os; GNOME team gedaan. Het package kan geïnstalleerd worden met: &prompt.root; pkg_add -r mozilla Als het package niet beschikbaar is en er genoeg tijd en schijfruimte schikbaar zijn, kan de broncode van Mozilla gedownload, gecompileerd en geïnstalleerd worden. Dit gaat met: &prompt.root; cd /usr/ports/www/mozilla &prompt.root; make install clean De Mozilla port zorgt voor een correcte installatie door de chrome registry setup met root rechten te draaien. Als echter ook toevoegingen zoals muisgebaren geïnstalleerd moeten worden, dan moet Mozilla als root gedraaid worden om dat op de juiste wijze geïnstalleerd te krijgen. Als de installatie van Mozilla eenmaal voltooid is, is root zijn niet langer nodig. Mozilla kan als browser gestart worden met: &prompt.user; mozilla Het kan direct als mailprogramma of nieuwslezer gestart worden met: &prompt.user; mozilla -mail Tom Rhodes Bijgedragen door Mozilla, &java;, en ¯omedia; &flash; Mozilla installeren is eenvoudig, maar helaas neemt Mozilla installeren met ondersteuning voor add-ons zoals &java; en ¯omedia; &flash; zowel tijd als schijfruimte in beslag. Als eerste moeten de bestanden gedownload worden die gebruikt worden met Mozilla. Op kan een account aangemaakt worden. De gebruikersnaam en het moeten bewaard worden omdat het in de toekomst nog nodig kan zijn. Daarna dient j2sdk-1_3_1-src.tar.gz gedownload te worden en in /usr/ports/distfiles/ geplaatst te worden omdat de port het bestand niet automatisch kan ophalen. Dit komt door licentiebeperkingen. Ook kan meteen de java environment kan vanaf gedownload worden. De bestandsnaam is j2sdk-1_3_1_08-linux-i586.bin en is rond 25 megabyte groot. Ook dit bestand dient in /usr/ports/distfiles/ te worden geplaatst. Tenslotte dient de java patchkit van gedownload te worden en in /usr/ports/distfiles/ gezet te worden. Installeer de java/jdk13 port met make install clean en installeer vervolgens de www/flashpluginwrapper port. Deze is afhankelijk van emulators/linux_base wat een grote port is. Er bestaan andere &flash; plug-ins, maar werkten niet op het moment van schrijven. Installeer de www/mozilla port als Mozilla niet al is geïnstalleerd. Kopieer de &flash; plug-in met: &prompt.root; cp /usr/local/lib/flash/libflashplayer.so \ /usr/X11R6/lib/browser_plugins/libflashplayer_linux.so &prompt.root; cp /usr/local/lib/flash/ShockwaveFlash.class \ /usr/X11R6/lib/browser_plugins/ Voeg de volgende regels bovenin (meteen onder #!/bin/sh) aan het opstartscript van Mozilla /usr/X11R6/bin/mozilla toe: LD_PRELOAD=/usr/local/lib/libflashplayer.so.1 export LD_PRELOAD Mozilla kan gestart worden met: &prompt.user; mozilla & Ga naar de About Plug-ins optie van het Help menu. Er verschijnt een lijst met alle beschikbare plugins. &java; en &shockwave; &flash; horen beiden in de lijst te staan. &netscape; &netscape; De portscollectie bevat verschillende versies van de &netscape; browser. Omdat in de &os; versie een serieuze veiligheidsfout zit, wordt installatie sterk afgeraden ten faveure van een meer recente &linux; of DIGITAL UNIX versie. De laatste stabiele uitgave van de &netscape; browser is &netscape; 7. Deze kan geïnstalleerd worden vanaf de ports collectie: &prompt.root; cd /usr/ports/www/netscape7 &prompt.root; make install clean Er zijn ook versies in de Franse, Duitse en Japanse categoriën. &netscape; 4.x versies worden niet aangeraden omdat ze niet voldoen aan de hedendaagse standaarden. &netscape; 7.x en nieuwere versies zijn echter alleen beschikbaar voor het &i386; platform. Opera Opera Opera is een zeer snelle, complete browser en voldoet aan standaarden. Hij komt in twee smaken: een &os; versie en een versie die draait onder &linux; emulatie. Voor elk besturingssysteem is er een gratis versie van de browser (adware) en een reclameloze versie die gekocht kan worden op de Opera website. De &os; package versie van Opera wordt zo geïnstalleerd: &prompt.root; pkg_add -r opera Sommige FTP-sites hebben niet alle packages, maar hetzelfde resultaat kan worden behaald met de ports collectie door te typen: &prompt.root; cd /usr/ports/www/opera> &prompt.root; make install clean De &linux; versie van Opera kan geïnstlleerd worden door bij de bovenstaande voorbeelden linux-opera te gebruiken in plaats van opera. De &linux; versie is nuttig in situaties waarin plugins nodig zijn die alleen voor &linux; beschikbaar zijn, zoals Adobe &acrobat.reader;. In alle andere opzichten lijken de &os; en &linux; versies identiek. Firefox Firefox Firefox is de browser voor de volgende generatie, gebaseerd op de codebase van Mozilla. Mozilla is een volledig pakket van applicaties, zoals een browser, een mailclient, een chatclient en nog veel meer. Firefox is gewoon een browser wat het kleiner en sneller maakt. Het package is te installeren met: &prompt.root; pkg_add -r firefox Via de portscollectie kan ook de broncode gecompileerd worden: &prompt.root; cd /usr/ports/www/firefox &prompt.root; make install clean Konqueror Konqueror Konqueror is deel van KDE maar het kan ook buiten KDE gebruikt worden door x11/kdebase3 te installeren. Konqueror is veel meer dan een browser. Het is ook een bestandsbeheerder en een multimedia-viewer. Konqueror wordt ook met een verzameling plugins geleverd, beschikbaar in misc/konq-plugins. Konqueror ondersteunt ook &flash; en er is meer informatie beschikbaar op . Productiviteit Als het op productiviteit aankomt, zoeken nieuwe gebruikers vaak een goed kantoorpakket of een vriendelijke tekstverwerker. Hoewel sommige bureaubladomgevingen zoals KDE reeds een kantoorpakket verschaffen, is er geen standaardapplicatie. &os; verschaft alles wat nodig is, ongeacht de bureaubladomgeving. Dit gedeelde behandelt deze applicaties: - + Applicatie Bronnen Ports Afhankelijkheden KOffice weinig zwaar KDE AbiWord weinig licht Gtk+ of GNOME The GIMP weinig licht Gtk+ OpenOffice.org veel erg zwaar GCC 3.1, &jdk; 1.3, Mozilla KOffice KOffice kantoorpakket KOffice De KDE-gemeenschap heeft zijn bureaubladomgeving met een kantoorpakket geleverd dat buiten KDE gebruikt kan worden. Het bevat de vier standaardcomponenten uit andere kantoorpakketten. KWord is de tekstverwerker, KSpread is het spreadsheetprogramma, KPresenter beheert diapresentaties, en Kontour voorziet in grafische mogelijkheden. Voordat de nieuwste KOffice wordt geïnstalleert, moet er een recente versie van KDE geïnstalleerd zijn. KOffice als package installeren gaat met het volgende commando: &prompt.root; pkg_add -r koffice Als het package niet beschikbaar is, kan de portscollectie gebruiken worden. Om KOffice voor KDE3 te installeren: &prompt.root; cd /usr/ports/editors/koffice-kde3 &prompt.root; make install clean AbiWord AbiWord AbiWord is een vrij tekstverwerkingsprogramma, ongeveer gelijk aandoet als µsoft; Word. Het is geschikt om verslagen, brieven, rapporten, memo's, enz. mee te typen. Het is erg snel, bevat veel mogelijkheden en is erg gebruikersvriendelijk. AbiWord kan veel bestandsformaten in- en uitvoeren, waaronder enkele formaten zoals µsoft; .doc. AbiWord is beschikbaar als package en te installeren met: &prompt.root; pkg_add -r AbiWord2 Als het package niet beschikbaar is, kan het worden gecompileerd vanuit de ports collectie. De ports collectie is meer recent. Dat kan als volgt: &prompt.root; cd /usr/ports/editors/AbiWord2 &prompt.root; make install clean The GIMP The GIMP Voor het bewerken of retoucheren van afbeeldingen is The GIMP een zeer geavanceerd afbeeldingenmanipulatieprogramma. Het kan als eenvoudig tekenprogramma worden gebruikt of als kwalititeitspakket voor het retoucheren van foto's. Het ondersteunt een groot aantal plugins en bevat een scripting interface. The GIMP kan een groot aantal bestandsformaten lezen en schrijven. Het ondersteunt interfaces met scanners en tabletten. Het pakket is te installeren als package met: &prompt.root; pkg_add -r gimp Als een FTP-site dit package niet heeft, kan de portscollectie gebruikt worden. De graphics map van de portscollectie bevat ook The GIMP Manual. Die kan zo geïnstalleerd worden: &prompt.root; cd /usr/ports/graphics/gimp &prompt.root; make install clean &prompt.root; cd /usr/ports/graphics/gimp-manual-pdf &prompt.root; make install clean De graphics map van de portscollectie bevat de ontwikkelversie van The GIMP in graphics/gimp-devel. Een HTML versie van The GIMP Manual staan in graphics/gimp-manual-html. OpenOffice.org OpenOffice.org kantoorpakket OpenOffice.org OpenOffice.org bevat alle noodzakelijke applicaties in een compleet kantoorproductiviteitspakket: een tekstverwerker, een spreadsheet, een presentatiebeheerder en een tekenprogramma. De gebruikersinterface is vrijwel gelijk aan die van andere kantoorpakketten en het kan veel populaire bestandsformaten in- en uitvoeren. Het is beschikbaar in een aantal verschillende talen met interfaces, spellingcontrole en woordenboeken. De tekstverwerker van OpenOffice.org gebruikt een eigen XML-bestandsformaat voor overdraagbaarheid en flexibiliteit. Het spreadsheetprogramma bevat een macrotaal en kan gekoppeld worden aan externe databases. OpenOffice.org is stabiel en draait zonder aanpassingen op &windows;, &solaris;, &linux;, &os; en &macos; X. Meer informatie over OpenOffice.org staat op de OpenOffice website. Voor specifieke &os; informatie en om direct packages te downloaden is er de website van het &os; OpenOffice Porting Team. Om OpenOffice.org te installeren: &prompt.root; pkg_add -r openoffice Als het package geïnstalleerd is, moet het installatieprogramma gedraaid worden en gekozen worden voor . Dit programma dient uitgevoerd te worden door de gebruiker die OpenOffice.org gaat gebruiken: &prompt.user; openoffice-setup Als de OpenOffice.org packages niet beschikbaar zijn, kan het uit de ports gecompileerd worden. Hiervoer is veel schijfruimte en tijd nodig: &prompt.root; cd /usr/ports/editors/openoffice-1.1 &prompt.root; make install clean Als de installatie klaar is, moet het installatieprogramma gedraaid worden en gekozen worden voor . Dit programma dient uitgevoerd te worden door de gebruiker die OpenOffice.org gaat gebruiken: &prompt.user; cd /usr/ports/editors/openoffice-1.1 &prompt.user; make install-user Vertaalde versies zijn als de onderstaande ports beschikbaar: - + Taal Port Catalaans editors/openoffice-1.1-ca Tsjechisch editors/openoffice-1.1-cs Deens editors/openoffice-1.1-dk Grieks editors/openoffice-1.1-gr Spaans editors/openoffice-1.1-es Estlands editors/openoffice-1.1-et Fins editors/openoffice-1.1-fi Italiaans editors/openoffice-1.1-it Nederlands editors/openoffice-1.1-nl Zweeds editors/openoffice-1.1-se Slowaaks editors/openoffice-1.1-sk Sloveens editors/openoffice-1.1-sl_SI Turks editors/openoffice-1.1-tr Arabisch arabic/openoffice-1.1 Chinees (Vereenvoudigd) chinese/openoffice-1.1-zh_CN Chinees (Traditioneel) chinese/openoffice-1.1-zh_TW Frans french/openoffice-1.1 Duits german/openoffice-1.1 Hongaars hungarian/openoffice-1.1 Japans japanese/openoffice-1.1 Koreaans korean/openoffice-1.1 Pools polish/openoffice-1.1 Portugees (Braziliaans) portuguese/openoffice-1.1-pt_BR Portugees portuguese/openoffice-1.1-pt_PT Russisch russian/openoffice-1.1 Documentviewers Het kan zijn dat de standaardviewers voor een aantal populaire bestandsformaten niet in het basissysteem zitten. In dit gedeelte wordt aangegeven hoe die geïnstalleerd kunnen worden. Dit gedeelte behandelt deze applicaties: - + Applicatie Bronnen Ports Afhankelijkheden &acrobat.reader; weinig licht &linux; binaire compatibiliteit gv weinig licht Xaw3d Xpdf weinig licht FreeType GQview weinig licht Gtk+ of GNOME &acrobat.reader; &acrobat.reader; PDF bekijken Documenten worden vaak als PDF-bestanden, Portable Document Format, verspreid. Een van de aanbevolen viewers voor dit bestandstype is &acrobat.reader; dat Adobe voor &linux; heeft uitgegeven. Omdat &os; &linux; binaries kan draaien, is het ook beschikbaar voor &os;. Het &acrobat.reader; 5 package wordt geïnstalleerd met: - &prompt.root; pkg_add -r acroread5 + &prompt.root; pkg_add -r acroread Zoals gewoonlijk kan ook de portscollectie gebruikt worden als het package niet beschikbaar is: &prompt.root; cd /usr/ports/print/acroread5 &prompt.root; make install clean - - &acrobat.reader; is - beschikbaar in verschillende versies. Op het moment van - schrijven, zijn er: print/acroread (versie 3.0.2), - print/acroread4 (versie - 4.0.5) en print/acroread5 (versie 5.0.6). - Als er geen package is door de gewenste versie van &os;, dan - kan de portscollectie wederom de laatste versie - bevatten. gv gv PDF bekijken &postscript; bekijken gv is een &postscript; en PDF viewer. Het is gebaseerd op ghostview maar heeft een vriendelijker uiterlijk dankzij de Xaw3d bibliotheek. Het is snel en heeft mogelijkheden als oriëntatie, papiergrootte, schalen en anti-aliassen. Bijna elke bewerking kan met het toetsenbord of de muis worden gedaan. gv is als package te installeren: &prompt.root; pkg_add -r gv Of uit de portscollectie: &prompt.root; cd /usr/ports/print/gv &prompt.root; make install clean Xpdf Xpdf PDF bekijken Xpdf een efficiënte lichtgewicht PDF-viewer voor &os;. Het heeft erg weinig bronnen nodig en is zeer stabiel. Het gebruikt de standaard X-fonts en is niet afhankelijk van &motif; of andere X-toolkits. Xpdf is als package te installeren: &prompt.root; pkg_add -r xpdf Of uit de portscollectie: &prompt.root; cd /usr/ports/graphics/xpdf &prompt.root; make install clean Als de installatie voltooid is, kan Xpdf gestart worden en het menu kan met de rechtermuisknop geactiveerd worden. GQview GQview GQview is een afbeeldingenbeheerder. Een bestand kan met één klik bekeken worden, er kan een externe editor opgestart worden er kunnen thumbnail-voorbeelden gemaakt worden en nog veel meer. Het bevat ook een diapresentatie-modus en enkele standaard bestandsoperaties. Er kunnen afbeeldingsverzamelingen beheerd worden en eenvoudig duplicaten gevonden worden. GQview het completekan scherm gebruiken ondersteunt meerdere talen. GQview is als package te installeren: &prompt.root; pkg_add -r gqview Of vanuit de portscollectie: &prompt.root; cd /usr/ports/graphics/gqview &prompt.root; make install clean Financiën Om financiën via het &os; bureaublad te beheren zijn er krachtige en gemakkelijk te gebruiken applicaties om te installeren. Sommige zijn compatibel met wijdverbreide bestandsformaten zoals Quicken of Excel documenten. Dit gedeelte behandelt deze applicaties: - + Applicatie Bronnen Ports Afhankelijkheden GnuCash weinig zwaar GNOME Gnumeric weinig zwaar GNOME Abacus weinig licht Tcl/Tk GnuCash GnuCash GnuCash is onderdeel van GNOME dat gebruikersvriendelijke en krachtige applicaties aan eindgebruikers wil leveren. Met GnuCash kunnen inkomsten en uitgaven, bankrekeningen en voorraden bijgehouden worden. Het bevat een intuïtieve interface terwijl het erg professioneel blijft. GnuCash levert een slim kasboek, een hiërarchisch systeem van rekeningen, veel toetsenbordversnellers en auto-invul mogelijkheden. Het een transactie splitsen in meer gedetailleerde stukken. GnuCash kan Quicken QIF-bestanden invoeren en samenvoegen. Het kan ook met de meeste internationale datum- en valutaformaten omgaan. GnuCash is als package te installeren: &prompt.root; pkg_add -r gnucash Of uit de portscollectie: &prompt.root; cd /usr/ports/finance/gnucash &prompt.root; make install clean Gnumeric Gnumeric spreadsheet Gnumeric Gnumeric is een spreadsheet uit de GNOME bureaubladomgeving. Het maakt gebruikt van auto-invullen afhankelijk van het celformaat. Het kan bestanden in een aantal populaire formaten zoals Excel, Lotus 1-2-3 en Quattro Pro inlezen. Gnumeric ondersteunt grafieken door middel van het grafiekprogramma math/guppi. Het heeft een groot aantal ingebouwde functies en kent gebruikelijke celformaten als nummer, valuta, datum, tijd en veel meer. Gnumeric is als package te installeren: &prompt.root; pkg_add -r gnumeric Of uit de portscollectie: &prompt.root; cd /usr/ports/math/gnumeric &prompt.root; make install clean Abacus Abacus spreadsheet Abacus Abacus is een kleine en gemakkelijk te gebruiken spreadsheet en bevat veel ingebouwde functies die nuttig zijn in verschillende domeinen zoals statistiek, financiën, en wiskunde. Het kan Excelbestanden lezen en schrijven. Abacus kan &postscript; uitvoer produceren. Abacus is als package te installeren: &prompt.root; pkg_add -r abacus Of uit de portscollectie: &prompt.root; cd /usr/ports/deskutils/abacus &prompt.root; make install clean Samenvatting Hoewel &os; populair is bij ISP's om zijn prestaties en stabiliteit, is het behoorlijk klaar voor dagelijks gebruik als een bureaublad. Met enkele duizenden applicaties als packages of ports, is een perfect bureaublad te bouwen dat aan alle noden voldoet. Als een bureaublad is geïnstalleerd is het mogelijk een stap verder te gaan met misc/instant-workstation. Met deze meta-port kan een verzameling ports gebouwd worden die aangepast kan worden door /usr/ports/misc/instant-workstation/Makefile te bewerken en de gebruikte syntaxis voor de standaardverzameling om ports toe te voegen of te verwijderen te gebruiken. Het bouwen gaat volends de gebruikelijke procedure. Uiteindelijk is het zo mogelijk één groot package te creëren voldoet aan de persoonlijke eisen van een gebruiker dat te installeren is op alle gebruikte werkstations! Nu volgt nog een overzicht van alle bureaubladapplicaties die in dit hoofdstuk zijn behandeld: - + Applicatie Package Port Mozilla mozilla www/mozilla &netscape; linux-netscape7 www/netscape7 Opera linux-opera www/linux-opera Firefox firefox www/firefox KOffice koffice-kde3 editors/koffice-kde3 AbiWord - AbiWord-gnome + AbiWord2 editors/AbiWord2 The GIMP gimp graphics/gimp OpenOffice.org openoffice editors/openoffice-1.1 &acrobat.reader; acroread5 print/acroread5 gv gv print/gv Xpdf xpdf graphics/xpdf GQview gqview graphics/gqview GnuCash gnucash finance/gnucash Gnumeric gnumeric math/gnumeric Abacus abacus deskutils/abacus diff --git a/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml index c01703afdf..5f99a800e1 100644 --- a/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml @@ -1,1097 +1,1097 @@ Andrey A. Chernov Bijgedragen door Michael C. Wu Herschreven door René Ladan Vertaald door Lokalisatie - I18N/L10N Gebruiken en Instellen Samenvatting &os; is een zeer gedistribueerd project met gebruikers over de gehele wereld. Dit hoofdstuk behandelt de internationalisatie- en lokalisatie-eigenschappen van &os; die niet-Engelssprekende gebruikers echt werk laten verzetten. Er zitten veel aspecten van de i18n-implementatie in zowel de systeem- als applicatieniveaus, dus waar mogelijk wordt de lezer verwezen naar meer specifieke bronnen. Na dit hoofdstuk weet de lezer: Hoe verschillende talen en locales gecodeerd zijn op moderne besturingssystemen. Hoe de locale in te stellen voor een login-shell. Hoe de console voor niet-Engelse talen te configureren. Hoe het X-Window Systeem effectief met meerdere talen te gebruiken. Waar meer informatie te vinden over het schrijven van i18n-respecterende applicaties. Veronderstelde voorkennis: Weten hoe aanvullende applicaties van derde partijen geïnstalleerd worden (). Beginselen Wat is I18N/L10N? internationalisatie lokalisatie Ontwikkelaars hebben internationalisatie (internationalization afgekort tot de term I18N, de eerste en de laatste letter en het aantal tussenliggende letters. L10N gebruikt hetzelfde schema voor naamgeving en komt van localization. Samen staan I18N/L10N methoden, protocollen en applicaties gebruikers toe de taal van hun keuze te gebruiken. I18N-applicaties zijn geprogrammeerd door gebruik te maken van I18N-gereedschappen van bibliotheken. Daarmee kunnen ontwikkelaars een eenvoudig bestand schrijven en menu's en teksten weergeven in elke taal. Programmeurs worden door het &os; Project sterk aangemoedigd deze conventie te volgen. Waarom I18N/L10N Gebruiken? I18N/L10N wordt gebruikt als een gebruiker gegevens wil bekijken, invoeren of verwerken in niet-Engelse talen. Welke Talen Worden Ondersteund Door I18N? I18N en L10N zijn niet &os; specifiek. Momenteel kan er gekozen worden uit de meeste grote wereldtalen, inclusief maar niet beperkt tot: Chinees, Duits, Japans, Koreaans, Frans, Russisch en Vietnamees. Lokalisatie Gebruiken In al zijn pracht is I18N niet &os; specifiek maar een conventie. Het &os; Project moedigt iedereen aan &os; te helpen deze conventie te gebruiken. locale Lokalisatie-instellingen zijn gebaseerd op drie hoofdtermen: Taalcode, Landcode en Codering. Localenamen zijn als volgt opgebouwd: Taalcode_Landcode.Codering Taal- en Landcodes taalcodes landcodes Om een &os; systeem (of een ander I18N-ondersteunend &unix; achtig systeem) te lokaliseren naar een bepaalde taal, moet de gebruiker de codes voor het specifieke land en taal achterhalen. Landcodes geven applicaties aan welke variatie van de gegeven taal gebruikt moet worden. Ook webbrowsers, SMTP/POP-servers, webservers, enz. maken beslissingen gebaseerd op die codes. Hieronder staan voorbeelden van taal- en landcodes: - + Taal- en landcode Omschrijving en_US Engels - Verenigde Staten ru_RU Russisch voor Rusland zh_TW Traditioneel Chinees voor Taiwan Coderingen coderingen ASCII Sommige talen gebruiken andere ASCII-coderingen dan 8-bit, wijde of multibyte karakters, zie &man.multibyte.3;. Oudere programma's herkennen die niet en interpreteren ze foutief als controlekarakters aan. Afhankelijk van de implementatie moeten gebruikers eventueel een applicatie met wijde of multibyte karakterondersteuning compileren, of hem correct instellen. Om wijde of multibyte karakters in te kunnen voeren en te kunnen verwerken levert de &os; Portscollectie voor elke taal programma's. Hiervoor staat I18N-documentatie in de respectievelijke &os; Port. Voor het bouwen van een gewenste applicatie met lokalisatie is het verstandig de applicatiedocumentatie te bekijken om te bepalen hoe de juiste waarden doorgegeven kunnen worden naar configure, Makefile of de compiler. Houd rekening met: Taalspecifieke enkele C-karakters karakterverzamelingen (zie &man.multibyte.3;), bijvoorbeeld ISO-8859-1, ISO-8859-15, KOI8-R of CP437. Wijde of multibyte coderingen, bijvoorbeeld EUC of Big5. Een lijst met actieve karakterverzamelingen staat bij de IANA Registry. &os; versies 4.5 en hoger gebruiken in plaats hiervan X11-compatible locale-coderingen. I18N Applicaties In het &os; Ports en Package systeem hebben I18N-applicaties I18N in hun naam zodat ze eenvoudig herkend kunnen worden. Toch ondersteunen ze niet altijd iedere mogelijk gewenste taal. Locale instellen Meestal is het voldoende om de waarde van de localenaam te exporteren als LANG in de login-shell. Dit kan door die waarde in ~/.login_conf van de gebruiker of in ~/.profile, ~/.bashrc of ~/.cshrc) van de gebruiker te zetten. Het is niet nodig om localedeelverzamelingen als LC_CTYPE of LC_CTIME in te stellen. Bij de taalspecifieke &os; documentatie staat vaak nog informatie. De twee volgende omgevingsvariabelen moeten in de configuratiebestanden ingesteld worden: POSIX LANG voor de &posix; &man.setlocale.3; functies. MIME MM_CHARSET voor de MIME karakters voor applicaties. Dit is inclusief de gebruikers-shell-configuratie, de configuratie van de specifieke applicatie en de X11 configuratie. Methoden om Locale in te Stellen locale loginklasse Er zijn twee methoden om de locale in te stellen en beiden worden hieronder beschreven. De eerste (aanbevolen) methode is door middel van het toekennen van omgevingsvariabelen in de loginklasse en de tweede is mogelijk door middel van het toevoegen van de omgevingsvariabelen aan het opstartbestand van de systeem-shell. Methode Loginklasse Deze methode biedt de mogelijkheid om omgevingsvariabelen die nodig zijn voor de localenaam en MIME karakterverzamelingen éénmalig voor elke mogelijke shell toe te kennen in plaats van door toekenning via het opstartbestand van elke shell. Gebruikersinstellingen kunnen door de gebruiker zelf worden gemaakt en voor Beheerdersinstellingen zijn superuser-rechten nodig. Gebruikersinstellingen Hieronder staat een minimaal voorbeeld van een .login_conf bestand in de thuismap van een gebruiker die beide variabelen heeft ingesteld op Latin-1 codering: me:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1: traditioneel Chinees BIG-5 codering Hieronder staat is een voorbeeld van een .login_conf die variabelen instelt voor traditioneel Chinees in BIG-5 codering. Er zijn veel andere variabelen ingesteld zijn omdat sommige software localevariabelen niet correct respecteert voor Chinees, Japans, en Koreaans. # Gebruikers die geen valuta eenheden of tijdformaten voor Taiwan # willen gebruiken kunnen handmatig elke variabele wijzigen. me:\ :lang=zh_TW.Big5:\ :lc_all=zh_TW.Big:\ :lc_collate=zh_TW.Big5:\ :lc_ctype=zh_TW.Big5:\ :lc_messages=zh_TW.Big5:\ :lc_monetary=zh_TW.Big5:\ :lc_numeric=zh_TW.Big5:\ :lc_time=zh_TW.Big5:\ :charset=big5:\ :xmodifiers="@im=xcin": # Instellen van XIM invoerserver Zie Beheerdersinstellingen en &man.login.conf.5; voor meer details. Beheerdersinstellingen Er dient gecontroleerd te worden of loginklasse voor gebruikers, /etc/login.conf, de juiste taal instelt door de volgende instellingen in /etc/login.conf: taalnaam: accountstitel:\ :charset=MIME_karakterverzameling: :lang=localenaam:\ :tc=default: Voor het bovenstaande voorbeeld dat gebruik maakt van Latin-1 ziet dat er als hieronder uit: german:Duitse gebruikersaccounts:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:\ :tc=default: Loginklasse wijzigen met &man.vipw.8; vipw Met vipw kunnen nieuwe gebruikers toegevoegd worden en de instellingen dienen ongeveer als volgt uit te zien: gebruiker:wachtwoord:1111:11:taal:0:0:Gebruikersnaam:/home/gebruiker:/bin/sh Loginklasse wijzigen met &man.adduser.8; adduser loginklasse Met adduser kunnen nieuwe gebruikers toegevoegd worden. Hierna dient één van de volgende stappen uitgevoerd te worden: defaultclass = taal instellen in /etc/adduser.conf. In dit geval dient er voor alle gebruikers van andere talen een default klasse ingevoerd te worden. Er kan ook gekozen worden voor een antwoord op de vraag over taal vanuit &man.adduser.8;: Enter login class: default []: Ook kan het volgende gebruikt worden voor elke gebruiker die een andere taal gebruikt: &prompt.root; adduser -class taal Loginklasse wijzigen met &man.pw.8; pw Als &man.pw.8; wordt gebruikt om nieuwe gebruikers toe te voegen: &prompt.root; pw useradd gebruikersnaam -L taal Methode Opstartbestand Shell Deze methode wordt niet aanbevolen omdat er instellingenen nodig zijn voor elke mogelijke shell. Het advies is de Methode Loginklasse te gebruiken. MIME locale Om de localenaam en MIME karakterverzameling toe te voegen kunnen gewoon twee omgevingsvariabelen ingesteld worden, zoals hieronder te zien is, in /etc/profile en/of /etc/csh.login opstartbestanden voor shells. Hier wordt de Duitse taal als voorbeeld gebruikt: In /etc/profile: LANG=de_DE.ISO8859-1; export LANG MM_CHARSET=ISO-8859-1; export MM_CHARSET Of in /etc/csh.login: setenv LANG de_DE.ISO8859-1 setenv MM_CHARSET ISO-8859-1 Het is ook mogelijk de bovenstaande instructies toe te toevoegen /usr/share/skel/dot.profile (ongeveer gelijk aan wat hierboven in /etc/profile is gebruikt) of aan /usr/share/skel/dot.login (ongeveer gelijk aan wat hierboven in /etc/csh.login is gebruikt). Voor X11: In $HOME/.xinitrc: LANG=de_DE.ISO8859-1; export LANG Of: setenv LANG de_DE.ISO8859-1 Afhankelijk van de shell (zie boven). Console Instellen Voor alle enkele C-karakters karakterverzamelingen worden de juiste lettertypen voor het console ingesteld in /etc/rc.conf voor de taal in kwestie met: font8x16=lettertypenaam font8x14=fontnaam font8x8=fontnaam De lettertypenaam komt uit de map /usr/share/syscons/fonts zonder het achtervoegsel .fnt. sysinstall toetsenmapping schermmapping De gebruiker dient ervoor te zorgen de juiste enkele C-karakters karakterverzameling wordt ingestelt met /stand/sysinstall. In sysinstall kan Configure en Console gekozen worden. Het is ook mogelijk het volgende aan /etc/rc.conf toe te voegen: scrnmap=schermmappingnaam keymap=toetsenmappingnaam keychange="fkey_nummer sequentie" schermmappingnaam komt uit de map /usr/share/syscons/scrnmaps zonder het achtervoegsel .scm. Meestal is een schermmapping met een overeenkomstig gemapt lettertype nodig als workaround om bit 8 naar bit 9 uit te breiden op een lettertype–karaktermatrix van een VGA-adapter in pseudografische gebieden, dat wil zeggen om letters uit dat gebied te halen als het schermlettertype een bit 8 kolom gebruikt. Als de moused daemon is ingeschakeld met de onderstaande regel in /etc/rc.conf, dan wordt aangeraden de muiscursorinformatie in de volgende paragraaf te bekijken. moused_enable="YES" moused Standaard neemt de muiscursor van het &man.syscons.4; stuurprogramma het bereik 0xd0-0xd3 van de tekenverzameling in beslag. Als een ingestelde taal dit bereik gebruikt, moet het cursorbereik hierbuiten gehaald worden. Om de workaround voor &os; versies vóór 5.0 aan te zetten kan de volgende regel aan dekernelconfiguratie toegevoegd worden: options SC_MOUSE_CHAR=0x03 Voor &os; versies 4.4 en hoger kan de volgende regel aan /etc/rc.conf toegevoegd worden: mousechar_start=3 De toetsenmappingnaam komt uit de map /usr/share/syscons/keymaps zonder het achtervoegsel .kbd. Als niet precies duidelijk is welke toetsenmapping te gebruiken, kan de toetsenmapping getest worden met &man.kbdmap.1; zonder opnieuw op te starten. keychange is nodig om functietoetsen zo te programmeren dat ze overeenkomen met het geselecteerde terminaltype omdat functietoetssequenties niet in de toetsenmapping gedefinieerd kunnen worden. Er dient ook een controle te zijn op een juiste instelling van het juiste terminaltype voor het console in /etc/ttys voor alle ttyv* regels. De huidige instellingen zijn: - + Karakterverzameling Terminaltype ISO-8859-1 of ISO-8859-15 cons25l1 ISO-8859-2 cons25l2 ISO-8859-7 cons25l7 KOI8-R cons25r KOI8-U cons25u CP437 (VGA standaardinstelling) cons25 US-ASCII cons25w Voor wijde of multibyte karaktertalen kan je juiste &os; port in de map /usr/ports/taal gebruikt worden. Sommige ports verschijnen als console terwijl het systeem ze als serieële vtty ziet. Er dienen dus voldoende vtty's gereserveerd te zijn voor zowel X11 als de pseudo-serieële console. Hier is een gedeeltelijke lijst van applicaties voor het gebruik van andere talen in console: - + Taal Locatie traditioneel Chinees (BIG-5) chinese/big5con Japans japanese/kon2-16dot of japanese/mule-freewnn Koreaans korean/han X11 Instellen Hoewel X11 geen deel is van het &os; Project wordt het hier wel besproken voor &os; gebruikers. Meer details zijn te vinden op de &xfree86; website of op de website van een andere X11 server die gebruikt wordt. In ~/.Xresources kunnen applicatiespecifieke I18N instellingen gemaakt worden als lettertypen, menu's, enzovoort. Lettertypen Weergeven X11 &truetype; lettertypeserver Eerst moet &xorg; server (x11-servers/xorg-server) of &xfree86; server (x11-servers/XFree86-4-Server) geïnstalleerd worden en daarna de &truetype; lettertypen van de taal. Door de gewenste locale in te stellen worden de menu's en dergelijke in de gekozen taal weergegeven. Niet-Engelse Karakters Invoeren X11 Input Method (XIM) Het X11 Input Method (XIM) protocol is een nieuwe standaard voor alle X11-cliënts. Alle X11-applicaties horen geschreven te worden als XIM-cliënts die invoer aannemen van de XIM-invoerservers. Er zijn meerdere XIM-servers beschikbaar voor verschillende talen. Printerinstellingen Sommige enkele C-karakters karakterverzamelingen zijn standaard hardware-gecodeerd in printers. Voor wijde of multibyte karakterverzamelingen is een speciale installatie nodig en het gebruik van apsfilter wordt dan aangeraden. Een document kan ook naar &postscript; of PDF formaat omgezet worden door gebruik te maken van taalspecifieke conversieprogramma's. Kernel en bestandssystemen Het &os; Snelle Bestandssysteem (FFS) is 8-bit schoon, dus het kan gebruikt worden met elke enkele C-karakters karakterverzameling (zie &man.multibyte.3;), maar er is geen karakterverzamelingnaam opgeslagen in het bestandssysteem. Het is dus rauw 8-bit en het weet niets van coderingsbevelen. Officieel ondersteunt FFS nog geen enkele vorm van wijde of multibyte karakterverzamelingen. Toch hebben sommige wijde of multibyte karakterverzamelingen onafhankelijke patches voor FFS die ondersteuning inschakelen. Dit zijn tijdelijke oplossingen of hacks die niet overdraagbaar zijn en daarom is besloten ze niet in de source tree op te nemen. Op de websites van de talen staan de patchbestanden en meer informatie. &ms-dos; Unicode Voor het &os; &ms-dos; bestandssysteem kan geschakeld worden tussen &ms-dos;, Unicode karakterverzamelingen en gekozen &os; bestandssysteem-karakterverzamelingen. &man.mount.msdos.8; beschijft de details. I18N-programma's Compileren Veel &os; Ports zijn geschikt gemaakt voor &os; met I18N-ondersteuning. Een aantal daarvan zijn gemarkeerd met -I18N in de portnaam. Deze en nog veel andere programma's hebben ingebouwde ondersteuning voor I18N en behoeven geen speciale aandacht. MySQL Toch is het voor sommige applicaties zoals MySQL nodig dat de Makefile geconfigureerd is met de specifieke karakterverzameling. Dit wordt normaliter gedaan in de Makefile of door middel van het doorgeven van een waarde aan configure in de broncode. &os; Lokaliseren naar Talen Andrey A. Chernov Oorspronkelijk bijgedragen door Russisch (KOI8-R codering) lokalisatie Russisch Voor meer informatie over KOI8-R codering, zie de KOI8-R References (Russian Net Character Set). Locale instellen Voeg de volgende regels toe aan ~/.login_conf bestand: me:Mijn account:\ :charset=KOI8-R:\ :lang=ru_RU.KOI8-R: Zie eerder in dit hoofdstuk voor voorbeelden over het opzetten van de locale. Console instellen Voeg voor de &os; versies voorafgaand aan 5.0 de volgende regel toe aan het kernelconfiguratiebestand: options SC_MOUSE_CHAR=0x03 Voeg voor &os; versie 4.4 en hoger de volgende regel toe aan /etc/rc.conf: mousechar_start=3 Gebruik de volgende instellingen in /etc/rc.conf: keymap="ru.koi8-r" scrnmap="koi8-r2cp866" font8x16="cp866b-8x16" font8x14="cp866-8x14" font8x8="cp866-8x8" Voor elke ttyv* regel in /etc/ttys, gebruik cons25r als het terminaltype. Zie eerder in dit hoofdstuk voor voorbeelden over het opzetten van de console. Printer instellen printers Aangezien de meeste printers met Russische karakters met hardware-codepagina CP866 komen, is een speciaal uitvoerfilter nodig om KOI8-R om te zetten in CP866. Zo'n filter is standaard geïnstalleerd als /usr/libexec/lpr/ru/koi2alt. Een /etc/printcap regel voor een Russische printer moet er uit zien als: lp|Russische lokale lijnprinter:\ :sh:of=/usr/libexec/lpr/ru/koi2alt:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs: Zie &man.printcap.5; voor een gedetailleerde beschrijving. &ms-dos; bestandssysteem en Russische bestandsnamen De volgende voorbeeld &man.fstab.5; regel zet ondersteuning aan voor Russische bestandsnamen gekoppeld op &ms-dos; bestandssystemen: /dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KIO8-R 0 0 De optie selecteert de te gebruiken localenaam, en stelt de karakteromzettabel in. Om de te gebruiken moet /usr gemount zijn voor de &ms-dos; partitie omdat de omzettabellen zich bevinden in /usr/libdata/msdosfs. &man.mount.msdos.8; geeft verdere uitleg. X11 Instellen Voer eerst de niet-X lokale instellingen uit zoals beschreven. De Russische KOI8-R locale werkt niet altijd met oude &xfree86; uitvoeringen (lager dan 3.3). &xfree86; 4.X is nu de standaardversie van het X Window Systeem op &os;. Dit is meestal geen probleem, tenzij een oude versie van &os; wordt gebruikt. Voer in de map russian/X.language het volgende uit: &prompt.root; make install Bovenstaande port installeert de nieuwste versie van de KOI8-R lettertypen. &xfree86; 3.3 heeft al enkele KOI8-R lettertypen, maar deze zijn beter geschaald. Controleer de "Files" sectie in /etc/XF86Config bestand. De volgende regels moeten vóór andere FontPath regels staan: FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi" Er er een hoge resolutie videomodus wordt gebruikt dan kunnen de 75dpi en 100dpi regels gewisseld worden. Om een Russisch toetsenbord te activeren dient het volgende in het "Keyboard" gedeelte van XF86Config te staan: Voor &xfree86; 3.X: XkbLayout "ru" XkbOptions "grp:caps_toggle" Voor &xfree86; 4.X: Option "XkbLayout" "ru" Option "XkbOptions" "grp:caps_toggle" Ook moet daar XkbDisable uitgeschakeld (uitgecomment) zijn. De RUS/LAT-schakelaar is CapsLock. De oude CapsLock functie is nog steeds beschikbaar via Shift CapsLock (alleen in LAT-modus). Als er &windows; toetsen op een toetsenbord zitten en het blijkt dat sommige niet-alfabetische toetsen verkeerd gemapt zijn in RUS-modus, dan kan de volgende regel aan XF86Config toegevoegd worden: Voor &xfree86; 3.X: XkbVariant "winkeys" Voor &xfree86; 4.X: Option "XkbVariant" "winkeys" Het Russische XKB toetsenbord hoeft niet te werken met oude versies van &xfree86;, zie bovenstaande noot voor meer informatie. Het Russische XKB toetsenbord hoeft ook niet te werken met niet-gelokaliseerde applicaties. Minimaal gelokaliseerde applicaties moeten vroeg in het programma een aanroep naar de XtSetLanguageProc (NULL, NULL,); functie doen. In KOI8-R for X Window staan meer instructies over het lokaliseren van X11-applicaties. Traditioneel Chinees voor Taiwan lokalisatie traditioneel Chinees Het &os;-Taiwan Project heeft een Chinese HOWTO voor &os; op die gebruik maakt van veel Chinese ports. De huidige redacteur voor de &os; Chinese HOWTO is Shen Chuan-Hsing statue@freebsd.sinica.edu.tw. Chuan-Hsing Shen heeft de Chinese &os; Collection (CFC) gemaakt met gebruik van &os;-Taiwan's zh-L10N-tut. De packages en scriptbestanden zijn beschikbaar op . Duits (Alle ISO 8859-1 Talen) lokalisatie Duits Slaven Rezic eserte@cs.tu-berlin.de heeft een tutorial geschreven over hoe umlauten in &os; gebruikt kunnen worden. De tutorial is in het Duits geschreven en staat op . Japans en Koreaans lokalisatie Japans lokalisatie Koreaans Japanse lokalisatie staat beschreven op en de Koreaanse lokalisatie staat op . Niet-Engelstalige &os; documentatie Sommige delen van &os; zijn naar andere talen vertaald. Hiernaar staan links op de hoofdsite of in /usr/share/doc. diff --git a/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent b/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent index 5f5ec63200..58655e7a54 100644 --- a/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent +++ b/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent @@ -1,113 +1,400 @@ -freebsd-advocacy@FreeBSD.org"> + +FreeBSD lijstserver"> +&a.mailman.listinfo;"> -freebsd-announce@FreeBSD.org"> + +FreeBSD ACPI mailinglijst"> +freebsd-acpi"> -freebsd-bugs@FreeBSD.org"> + +FreeBSD steun mailinglijst"> +freebsd-advocacy"> -freebsd-chat@FreeBSD.org"> + +FreeBSD AFS porting mailinglijst"> +freebsd-afs"> -cvs-committers@FreeBSD.org"> + +FreeBSD Adaptec AIC7xxx discussies mailinglijst"> +freebsd-aic7xxx"> -freebsd-core@FreeBSD.org"> + +FreeBSD Alpha porting mailinglijst"> +freebsd-alpha"> -freebsd-current@FreeBSD.org"> + +FreeBSD porten naar AMD64 systemen"> +freebsd-amd64"> -cvs-all@FreeBSD.org"> + +FreeBSD aankondigingen mailinglijst"> +freebsd-announce"> -freebsd-database@FreeBSD.org"> + +FreeBSD Apache mailinglijst"> +freebsd-apache"> -freebsd-developers@FreeBSD.org"> + +FreeBSD architectuur en ontwerp mailinglijst"> +freebsd-arch"> -freebsd-doc@FreeBSD.org"> + +FreeBSD ARM porting mailinglijst"> +freebsd-arm"> -freebsd-emulation@FreeBSD.org"> + +FreeBSD ATM netwerken mailinglijst"> +freebsd-atm"> -freebsd-fs@FreeBSD.org"> + +FreeBSD broncode audit mailinglijst"> +freebsd-audit"> -freebsd-hackers@FreeBSD.org"> + +FreeBSD binair updatesysteem systeem mailinglijst"> +freebsd-binup"> -freebsd-hardware@FreeBSD.org"> + +FreeBSD bugbusters mailinglijst"> +freebsd-bugbusters"> -freebsd-isdn@FreeBSD.org"> + +FreeBSD problem reports mailinglijst"> +freebsd-bugs"> -freebsd-isp@FreeBSD.org"> + +FreeBSD babbel mailinglijst"> +freebsd-chat"> -freebsd-java@FreeBSD.org"> + +FreeBSD clustering mailinglijst"> +freebsd-cluster"> -freebsd-jobs@FreeBSD.org"> + + -freebsd-mobile@FreeBSD.org"> + +FreeBSD installatie en instellingen tools mailinglijst"> +freebsd-config"> -freebsd-mozilla@FreeBSD.org"> + + -freebsd-multimedia@FreeBSD.org"> + +&os.current; mailinglijst"> +freebsd-current"> -freebsd-net@FreeBSD.org"> + +CTM aankondigingen"> +ctm-announce"> -freebsd-newbies@FreeBSD.org"> + +CTM distributie van CVS bestanden"> +ctm-cvs-cur"> -new-bus-arch@bostonradio.org"> + +CTM 4-STABLE src tak distributie mailinglijst"> +ctm-src-4"> -freebsd-ports@FreeBSD.org"> + +CTM -CURRENT src tak distributie mailinglijst"> +ctm-src-cur"> -freebsd-questions@FreeBSD.org"> + +CTM gebruikersdiscussie mailinglijst"> +ctm-users"> -freebsd-scsi@FreeBSD.org"> + +FreeBSD CVS commitberichten mailinglijst"> +cvs-all"> -freebsd-security@FreeBSD.org"> + +FreeBSD CVS doc commitlijst"> +cvs-doc"> -freebsd-security-notifications@FreeBSD.org"> + +FreeBSD CVS ports commitlijst"> +cvs-ports"> -freebsd-small@FreeBSD.org"> + +FreeBSD CVS projecten commitlijst"> +cvs-projects"> -freebsd-smp@FreeBSD.org"> + +FreeBSD CVS src commitlijst"> +cvs-src"> -freebsd-stable@FreeBSD.org"> + +FreeBSD CVSweb beheer mailinglijst"> +freebsd-cvsweb"> -freebsd-tokenring@FreeBSD.org"> + +FreeBSD gebaseerde Databases mailinglijst"> +freebsd-database"> -freebsd-www@FreeBSD.org"> + + -majordomo@FreeBSD.org"> + +FreeBSD documentatieproject mailinglijst"> +freebsd-doc"> + + + + + + + + +FreeBSD-emulatie mailinglijst"> +freebsd-emulatie"> + + +FreeBSD FireWire (IEEE 1394) discussion mailinglijst"> +freebsd-firewire"> + + +FreeBSD bestandssysteem project mailinglijst"> +freebsd-fs"> + + +FreeBSD GEOM mailinglijst"> +freebsd-geom"> + + +FreeBSD GNOME and GNOME applications mailinglijst"> +freebsd-gnome"> + + +FreeBSD technische discussie mailinglijst"> +freebsd-hackers"> + + +FreeBSD hardware and apparatuur mailinglijst"> +freebsd-hardware"> + + +FreeBSD mirror sites mailinglijsts"> +freebsd-hubs"> + + +FreeBSD internationalisatie mailinglijst"> +freebsd-i18n"> + + +FreeBSD i386-specifieke onderwerpen mailinglijst"> +freebsd-i386"> + + +FreeBSD IA32 porting mailinglijst"> +freebsd-ia32"> + + +FreeBSD IA64 porting mailinglijst"> +freebsd-ia64"> + + +FreeBSD IPFW code mailinglijst"> +freebsd-ipfw"> + + +FreeBSD ISDN mailinglijst"> +freebsd-isdn"> + + +FreeBSD Internet service provider mailinglijst"> +freebsd-isp"> + + +FreeBSD Java Language mailinglijst"> +freebsd-java"> + + +FreeBSD gerelateerd werk mailinglijst"> +freebsd-jobs"> + + +FreeBSD KDE/Qt en KDE applicaties mailinglijst"> +freebsd-kde"> + + +FreeBSD LFS porting mailinglijst"> +freebsd-lfs"> + + +FreeBSD libh installatie and packagingsysteem mailinglijst"> +freebsd-libh"> + + +FreeBSD MIPS porting mailinglijst"> +freebsd-mips"> + + +FreeBSD mirrorsite beheerders"> +mirror-announce"> + + +FreeBSD laptop computer mailinglijst"> +freebsd-mobile"> + + +FreeBSD port van de Mozilla browser mailinglijst"> +freebsd-mozilla"> + + +FreeBSD multimedia mailinglijst"> +freebsd-multimedia"> + + +FreeBSD netwerken mailinglijst"> +freebsd-net"> + + +FreeBSD nieuwe gebruikers mailinglijst"> +freebsd-newbies"> + + +FreeBSD new-bus mailinglijst"> +freebsd-new-bus"> + + +FreeBSD OpenOffice mailinglijst"> +freebsd-openoffice"> + + +FreeBSD prestaties mailinglijst"> +freebsd-performance"> + +FreeBSD perl mailinglijst"> +freebsd-perl"> + + +FreeBSD pakketfilter mailinglijst"> +freebsd-pf"> + + +FreeBSD niet-Intel platformen porting mailinglijst"> +freebsd-platforms"> + + +FreeBSD core team beleidsbeslissingen mailinglijst"> +freebsd-policy"> + + +FreeBSD ports mailinglijst"> +freebsd-ports"> + + +FreeBSD ports bugs mailinglijst"> +freebsd-ports-bugs"> + + + + + + + + +FreeBSD PowerPC porting mailinglijst"> +freebsd-ppc"> + + +FreeBSD Quality Assurance mailinglijst"> +freebsd-qa"> + + +FreeBSD algemene vragen mailinglijst"> +freebsd-questions"> + + +FreeBSD realtime extensions mailinglijst"> +freebsd-realtime"> + + +FreeBSD SCSI subsysteem mailinglijst"> +freebsd-scsi"> + + +FreeBSD beveiliging mailinglijst"> +freebsd-security"> + + +FreeBSD beveiligingswaarschuwingen mailinglijst"> +freebsd-security-notifications"> + + +FreeBSD-small mailinglijst"> +freebsd-small"> + + +FreeBSD symmetric multiprocessing mailinglijst"> +freebsd-smp"> + + +FreeBSD SPARC porting mailinglijst"> +freebsd-sparc64"> + + + + + + + + +&os.stable; mailinglijst"> +freebsd-stable"> + + +FreeBSD C99 en POSIX compliance mailinglijst"> +freebsd-standards"> + + +FreeBSD test mailinglijst"> +freebsd-test"> + + +FreeBSD prestaties en stabiliteit test mailinglijst"> +freebsd-testing"> + + +FreeBSD threads mailinglijst"> +freebsd-threads"> + + +FreeBSD tokenring mailinglijst"> +freebsd-tokenring"> + + +FreeBSD USB mailinglijst"> +freebsd-usb"> + + +FreeBSD gebruikersgroep coördinatie mailinglijst"> +freebsd-user-groups"> + + +FreeBSD wederverkopers pre-release coördinatie mailinglijst"> +freebsd-vendors"> + + +Discussis over de VuXML infrastructuur"> +freebsd-vuxml"> + + +FreeBSD Webmaster mailinglijst"> +freebsd-www"> + + +FreeBSD X11 mailinglijst"> +freebsd-x11"> + +majordomo@FreeBSD.org">