From 34076ce21beff999f342be37702f0023e7b637ed Mon Sep 17 00:00:00 2001 From: Rene Ladan Date: Mon, 10 Nov 2008 20:42:03 +0000 Subject: [PATCH] MFen handbook/config 1.233 -> 1.235 (plus local fixes) Approved by: remko (mentor) Obtained from: perforce --- .../books/handbook/config/chapter.sgml | 1885 ++++++++--------- 1 file changed, 941 insertions(+), 944 deletions(-) diff --git a/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml index 320c3b78cc..14ef62282a 100644 --- a/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml @@ -3,8 +3,8 @@ $FreeBSD$ - %SOURCE% en_US.ISO8859-1/ooks/handbook/config/chapter.sgml - %SRCID% 1.233 + %SOURCE% en_US.ISO8859-1/books/handbook/config/chapter.sgml + %SRCID% 1.235 --> @@ -80,13 +80,13 @@ - Hoe de instellingenbestanden in - /etc gebruikt worden; + Hoe de instellingenbestanden in /etc + gebruikt worden; Hoe &os; geoptimaliseerd kan worden met - sysctl variabelen; + sysctl-variabelen; @@ -99,7 +99,7 @@ - De &unix; en &os; grondbeginselen (De grondbeginselen van &unix; en &os; () begrijpen; @@ -127,40 +127,39 @@ Basispartities - Bij het aanmaken van bestandssystemen met - &man.bsdlabel.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, + Bij het aanmaken van bestandssystemen met &man.bsdlabel.8; + of &man.sysinstall.8; is het van belang dat op een harde + schijf de gegevensoverdracht 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. + 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 printergegevens en -wachtrijen. Mailboxen en logbestanden kunnen onverwacht groot worden, afhankelijk van het aantal systeemgebruikers en de bewaarduur van logbestanden. Meestal is minder dan een gigabyte voldoende. /var/tmp moet wel groot - genoeg moet zijn om packages te kunnen bevatten. + genoeg moet zijn om pakketten 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. + 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. + 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 @@ -182,33 +181,33 @@ De vuistregel is dat het wisselbestand ongeveer het dubbele van de grootte van het systeemgeheugen (RAM) moet - 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 is het verstandig rekening - te houden met eventuele geheugenuitbreiding in de toekomst. - 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. + 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 is het verstandig rekening te houden met + eventuele geheugenuitbreiding in de toekomst. 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 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. + 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 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. @@ -230,16 +229,16 @@ schrijfactiviteit doorsijpelt naar partities die vooral lees-intensief zijn. Door schrijf-intensieve partities aan 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 + 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 rootpartitie die vrijwel alleen-lezen is, heeft een - betere kans om een nare crash te overleven. + 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 + rootpartitie die vrijwel alleen-lezen is, heeft een betere + kans om een nare crash te overleven. @@ -258,16 +257,15 @@ 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). + 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 + 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 @@ -275,7 +273,7 @@ hele cluster gelden. Hiervoor kunnen een aantal strategieën worden gebruikt. De aanbevolen benadering is om gedeelde instellingen in een ander bestand te plaatsen, zoals - /etc/rc.conf.site en dit invoegen in + /etc/rc.conf.site en dit in te voegen in /etc/rc.conf, wat verder alleen systeemspecifieke informatie bevat. @@ -306,8 +304,8 @@ blanktime="100" gelijksoortig programma, terwijl rc.conf uniek blijft. - Het actualiseren van het systeem met &man.sysinstall.8; - of make world overschrijft + Het actualiseren van het systeem met &man.sysinstall.8; of + make world overschrijft rc.conf niet, zodat de bestaande systeeminstellingen niet verloren gaan. @@ -317,23 +315,23 @@ blanktime="100" Geïnstalleerde toepassingen hebben meestal hun eigen instellingenbestanden, met hun eigen syntaxis, etc. Het is van - belang deze bestanden apart te houden van het basissysteem, - zodat ze makkelijk gelokaliseerd kunnen worden en beheerd kunnen - worden met de hulpmiddelen voor pakketbeheer. + belang deze bestanden apart te houden van het basissysteem, zodat + ze makkelijk gelokaliseerd kunnen worden en beheerd kunnen worden + met de hulpmiddelen voor pakketbeheer. /usr/local/etc 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. + uitgebreide verzameling bestanden voor instellingen heeft, wordt + er een submap voor aangemaakt. - Bij de installatie van een port of package, worden normaliter + Bij de installatie van een port of pakket, 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 + worden door de .default-bestanden te kopiëren. Een voorbeeld is de map @@ -351,8 +349,8 @@ blanktime="100" -rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default Aan de grootte van de bestanden is te zien dat alleen - srm.conf gewijzigd is. Als later de - Apache port wordt vernieuwd, wordt dit + srm.conf gewijzigd is. Als later de port + Apache wordt vernieuwd, wordt dit bestand niet overschreven. @@ -374,12 +372,12 @@ blanktime="100" 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. + het opstart tijdens het opstarten van de computer. 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 @@ -388,31 +386,31 @@ blanktime="100" opstartinstellingen verwerkt kunnen worden door simpele opstartscripts. - Voor de komst van rc.d zetten applicaties simpelweg een - opstartscript in de map Voor de komst van rc.d 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. + 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 rc.d. Vóór &os; 5.1 - werden scripts oude stijl gebruikt en in bijna - alle gevallen voldoet een script nieuwe - stijl. + niet gebruiken van rc.d. + Vóór &os; 5.1 werden scripts oude + stijl gebruikt en in bijna alle gevallen voldoet een + script nieuwe stijl. - Elk script moet uitvoerbaar zijn door het systeem; dit - wordt meestal bereikt door gebruik te maken van het commando + Elk script moet uitvoerbaar zijn door het systeem; dit wordt + meestal bereikt door gebruik te maken van het commando chmod en het instellen van de unieke - permissies 555. Op zijn minst moeten ook - de start en stop opties - zijn om de applicatie te starten en te stoppen. + permissies 555. Op zijn minst moeten ook de + start en stop opties + aanwezig zijn om de applicatie te starten en te stoppen. - Het simpelste opstartscript ziet er waarschijnlijk als - volgt uit: + Het simpelste opstartscript ziet er waarschijnlijk als volgt + uit: #!/bin/sh echo -n ' utility' @@ -441,26 +439,26 @@ exit 0 &prompt.root; /usr/local/etc/rc.d/utility start 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 rc.d. Dit wordt in de volgende paragraaf + 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 + rc.d. Dit wordt in de volgende paragraaf behandeld. Uitgebreide applicatieinstellingen - Nu &os; rc.d heeft, zijn de instellingen - van applicaties die mee moeten opstarten versimpeld en rijker aan - mogelijkheden. Door gebruik te maken van de sleutelwoorden die - in de paragraaf rc.d 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 + Nu &os; rc.d heeft, zijn de + instellingen van applicaties die mee moeten opstarten + versimpeld en rijker aan mogelijkheden. Door gebruik te maken + van de sleutelwoorden die in de paragraaf rc.d + 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 @@ -492,39 +490,37 @@ start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${utility_fla run_rc_command "$1" Dit script zorgt ervoor dat - utility wordt gestart na - de daemon dienst. Het biedt ook de mogelijkheid - voor het instellingen en volgen van het - PID of het process ID - bestand. + utility wordt gestart na de dienst + daemon. Het biedt ook de mogelijkheid voor + het instellingen en volgen van het PID of + het proces-ID bestand. Voor deze applicatie kan dan de volgende regel in /etc/rc.conf geplaatst worden: utility_enable="YES" - Deze methode maakt het volgende mogelijk: - makkelijker commandoregelopties manipuleren, importeren van + Deze methode maakt het volgende mogelijk: makkelijker + commandoregelopties manipuleren, importeren van standaardfuncties uit /etc/rc.subr, - compatibiliteit met de &man.rcorder.8; utility en levert - makkelijkere configuratie via het rc.conf - bestand. + compatibiliteit met het gereedschap &man.rcorder.8; en het + levert makkelijkere configuratie via het bestand + rc.conf. Diensten met diensten starten - Andere diensten, zoals POP3 server + 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. + 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 @@ -533,9 +529,9 @@ run_rc_command "$1" 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 + cron levert een unieke optie: in 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. @@ -561,7 +557,7 @@ run_rc_command "$1" Een zeer nuttig hulpprogramma in &os; is &man.cron.8;. De - cron daemon draait op de achtergrond en + daemon cron draait op de achtergrond en controleert voortdurend /etc/crontab. Ook controleert cron de map /var/cron/tabs, op zoek naar nieuwe @@ -582,15 +578,15 @@ run_rc_command "$1" Gebruikerscrontabs geven individuele gebruikers de - mogelijkheid om bepaalde terugkerende taken automatisch te - laten uitvoeren zonder dat root rechten - noodig zijn. Commando's in de crontab van een gebruiker - worden uitgevoerd met de rechten van de eigenaar. + mogelijkheid om bepaalde terugkerende taken automatisch te 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 + /etc/crontab (de systeemcrontab). Omdat er + al een systeemcrontab is, is het doorgaans niet nodig om een gebruikerscrontab voor root te maken. @@ -621,8 +617,8 @@ HOME=/var/log karakter # vooraf aan commentaar. Commentaar wordt gebruikt als uitleg en geheugensteun. Commentaar dient niet vermengd te worden met commando's, - anders wordt het commentaar opgevat als deel van het - commando. Blanco regels worden genegeerd. + anders wordt het commentaar opgevat als deel van het commando. + Blanco regels worden genegeerd. @@ -634,8 +630,8 @@ HOME=/var/log 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 + PATH ontbreekt moeten absolute paden gebruikt + worden. Als HOME ontbreekt, gebruikt cron de thuismap van de de gebruiker die cron aanroept. @@ -646,9 +642,9 @@ HOME=/var/log uur, mdag, maand, wdag, wie en commando. De - betekenissen liggen voor de hand: minute + betekenissen liggen voor de hand: minuut is het aantal minuten van het tijdstip waarop het commando - moet worden uitgevoerd; hour geeft het uur + moet worden uitgevoerd; uur 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 @@ -656,7 +652,7 @@ HOME=/var/log /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 + heeft deze optie niet. Het veld commando bevat het uit te voeren commando. @@ -667,16 +663,14 @@ HOME=/var/log 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;. + 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. + backslash \ karakter, om aan te geven dat ze op + de volgende regel vervolgd worden. @@ -702,18 +696,18 @@ HOME=/var/log Om een nieuwe crontab te installeren moet eerst een bestand in het juiste formaat gemaakt worden en - daarna moet het geiuml;nstalleerd worden met - crontab commando: + daarna moet het geiuml;nstalleerd worden met commando + crontab: &prompt.root; crontab crontabbestand In dit voorbeeld is crontabbestand de naam van een eerder gemaakt - crontabbestand. + crontab-bestand. Er bestaat ook een optie om een lijst van - geïnstalleerde crontab bestanden op - te vragen, namelijk de optie van + geïnstalleerde crontab-bestanden op te + vragen, namelijk de optie van crontab. Gebruikers die hun eigen crontabbestand willen schrijven @@ -750,7 +744,7 @@ HOME=/var/log 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 + hoe diensten die via een port of pakket zijn geïnstalleerd gestart worden met de scripts in /usr/local/etc/rc.d. &man.sshd.8; kan bijvoorbeeld als volgt herstart worden: @@ -758,15 +752,16 @@ HOME=/var/log &prompt.root; /etc/rc.d/sshd restart Deze procedure is vrijwel gelijk voor andere diensten. - Uiteraard worden diensten meestal automatisch tijdens het booten 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 + Uiteraard worden diensten meestal automatisch tijdens het + opstarten van de computer 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 natd_enable="NO" regel - is, kan NO gewoon in YES + 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. @@ -778,19 +773,19 @@ HOME=/var/log /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 + heeft in /etc/rc.conf. Als er een dienst gestart, gestopt of herstart moet worden, ongeacht de definities in /etc/rc.conf, moet het commando voorafgegaan worden door one. Dus om sshd te herstarten ongeacht - /etc/rc.conf setting, voldoet het volgende - commando: + de instellingen in /etc/rc.conf, voldoet het + volgende commando: &prompt.root; /etc/rc.d/sshd onerestart 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 + rc.d-script uit te voeren met de optie . Voor sshd: &prompt.root; /etc/rc.d/sshd rcvar @@ -799,7 +794,7 @@ $sshd_enable=YES De tweede regel (# sshd) is de uitvoer van sshd, geen - root console. + root-console. De optie wordt gebruikt om vast te stellen of een dienst gestart is. Om bijvoorbeeld te controleren @@ -809,12 +804,12 @@ $sshd_enable=YES sshd is running as pid 433. In sommige gevallen is het ook mogelijk om een dienst te - herstarten met de optie . Dan wordt er getracht een signaal te - 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. Deze optie wordt niet door - alle diensten ondersteund. + herstarten met de optie . Dan wordt er + getracht een signaal te 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. Deze optie wordt niet door alle + diensten ondersteund. Het rc.d-systeem wordt niet alleen gebruikt voor netwerkdiensten, maar ook voor het merendeel van de @@ -824,23 +819,23 @@ sshd is running as pid 433. Starting background file system checks in 60 seconds. - Dit script wordt dus gebruikt voor bestandssysteemcontrole - in de achtergrond, hetgeen alleen tijdens de systeemstart + Dit script wordt dus gebruikt voor bestandssysteemcontrole in + de achtergrond, hetgeen alleen tijdens de systeemstart gebeurt. 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. + RPC-gebaseerde diensten niet als de dienst + rpcbind (portmapper) nog niet draait. Om dit + te stroomlijnen wordt informatie over afhankelijkheden en andere + metagegevens 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 woorden moeten in alle opstartscripts staan - (ze zijn benodigd door &man.rc.subr.8; om het opstart - script te activeren)>: + De volgende woorden moeten in alle opstartscripts staan (ze + zijn benodigd door &man.rc.subr.8; om het opstartscript te + activeren): @@ -869,11 +864,11 @@ sshd is running as pid 433. systemen. Meer informatie over het rc.d-systeem - staat in &man.rc.8; en &man.rc.subr.8;. Als je geinteresseerd - bent in het schrijven van je eigen rc.d - script of om de huidige scripts te verbeteren is wellicht - dit artikel - interessant. + staat in &man.rc.8; en &man.rc.subr.8;. Als u geïnteresseerd + bent in het schrijven van uw eigen + rc.d-script of om de huidige scripts te + verbeteren is wellicht dit + artikel interessant. @@ -896,9 +891,9 @@ sshd is running as pid 433. 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. + geen netwerkverbinding heeft. Het toevoegen en instellen van een + netwerkkaart is een gebruikelijke taak voor een + &os;-beheerder. Het juiste stuurprogramma vinden @@ -910,27 +905,27 @@ sshd is running as pid 433. Voor het zoeken begint, moet duidelijk zijn om welke kaart - het gaat, welke chip erop zit en of het een PCI of ISA 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 + Compatibiliteitslijst voor de betreffende uitgave staan de kaarten die ondersteund worden. Als duidelijk is dat een kaart ondersteund wordt, moet - vastgesteld worden wat het geschikte stuurprogramma is. - In het bestand /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. + vastgesteld worden wat het geschikte stuurprogramma is. In het + bestand /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: + veelvoorkomende netwerkinterfaces zijn al aanwezig in de + algemene kernel GENERIC. In dat geval + wordt zo'n kaart al gevonden 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 @@ -948,8 +943,8 @@ ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto In dit voorbeeld zitten er twee kaarten in het systeem die het stuurprogramma &man.dc.4; gebruiken. - Als het stuurprogramma voor een NIC geen onderdeel is van - de GENERIC kernel, dan dient het juiste + Als het stuurprogramma voor een NIC geen onderdeel is van de + kernel GENERIC, dan dient het juiste stuurprogramma voor die NIC geladen te worden. Dit kan op twee manieren: @@ -958,10 +953,11 @@ ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto De meest eenvoudige manier is het laden van een kernelmodule voor een netwerkkaart met &man.kldload.8; of automatisch tijdens het opstarten van het systeem door de - benodigde regel toe te voegen aan /boot/loader.conf. - Niet alle NIC stuurprogramma's zijn als module beschikbaar. - Zo zijn er bijvoorbeeld geen modules beschikbaar voor ISA - kaarten. + benodigde regel toe te voegen aan + /boot/loader.conf. Niet alle + NIC-stuurprogramma's zijn als module beschikbaar. Zo zijn + er bijvoorbeeld geen modules beschikbaar voor + ISA-kaarten. @@ -973,68 +969,79 @@ ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto 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 kernel, is er geen reden om - een andere kernel te bouwen. + bij het opstarten wordt herkend door de kernel + GENERIC, is er geen reden om een andere + kernel te bouwen. - Gebruik maken van &windows; NDIS drivers + Gebruik maken van &windows; + NDIS-stuurpgrogramma's NDIS + NDISulator + &windows; drivers + Microsoft Windows - Microsoft Windows - device drivers + + + Microsoft Windows + + device drivers + KLD (kernel loadable object) - Helaas zijn er nog steeds veel leveranciers die geen schema's - leveren voor drivers aan de open source gemeenschap, omdat ze - deze informatie beschouwen als handels geheimen. Als gevolg - daarvan hebben de ontwikkelaars van &os; en andere projecten - twee keuzes: zelf de stuurprogramma's ontwikkelen door een - langdurig en pijnlijk proces door de huidige stuurprogramma's - te ontcijferen, of door gebruik te maken van de huidige binaire - bestanden voor het µsoft.windows; platform. De meeste - ontwikkelaars, inclusief diegeen die gekoppeld zijn aan &os;, - hebben voor het laatste gekozen. + Helaas zijn er nog steeds veel leveranciers die geen + schema's leveren voor stuurprogramma's aan de open-source + gemeenschap, omdat ze deze informatie beschouwen als + handelsgeheimen. Als gevolg daarvan hebben de ontwikkelaars + van &os; en andere projecten twee keuzes: zelf de + stuurprogramma's ontwikkelen door een langdurig en pijnlijk + proces van de huidige stuurprogramma's te ontcijferen, of door + gebruik te maken van de huidige binaire bestanden voor het + µsoft.windows; platform. De meeste ontwikkelaars, + inclusief diegeen die gekoppeld zijn aan &os;, hebben voor het + laatste gekozen. Dankzij de bijdragen van Bill Paul (wpaul) is er vanaf &os; 5.3-RELEASE native ondersteuning voor de Network Driver Interface Specification (NDIS). De &os; NDISulator (ook wel bekend als Project Evil) neemt een - &windows; binair stuurprogramma en doet net alsof deze in een - &windows; systeem draait. Omdat het &man.ndis.4; stuurprogramma - een &windows; binary gebruikt; is het alleen bruikbaar op &i386; - en amd64 systemen. + binair &windows; stuurprogramma en doet net alsof deze in een + &windows; systeem draait. Omdat het stuurprogramma + &man.ndis.4; een &windows; binary gebruikt; is het alleen + bruikbaar op &i386;- en amd64-systemen. - Het &man.ndis.4; stuurprogramma is ontwikkeld om - ondersteuning te geven aan PCI, CardBus en PCMCIA apparaten, - USB apparaten worden nog niet ondersteund. + Het stuurprogramma &man.ndis.4; is ontwikkeld om + ondersteuning te geven aan PCI-, CardBus- en + PCMCIA-apparaten, USB-apparaten worden nog niet + ondersteund. - Om gebruik te kunnen maken van de NDISulator heb je drie + Om gebruik te kunnen maken van de NDISulator heeft u drie dingen nodig: - De kernel bronbestanden + De bronbestanden van de kernel - Een &windowsxp; stuurprogramma (met de - .SYS extensie) + Een &windowsxp; stuurprogramma (met de extensie + .SYS) - Een &windowsxp; stuurprogramma configuratie bestand - (met de .INF extensie) + Een instellingenbestand van het &windowsxp; + stuurprogramma (met de extensie + .INF) - Lokaliseer de bestanden voor jouw specifieke kaart. Over + Lokaliseer de bestanden voor uw specifieke kaart. Over het algemeen kunnen deze gevonden worden op de bijgeleverde CD's of op de website van de leverancier. In de volgende voorbeelden maken we gebruik van @@ -1042,42 +1049,44 @@ ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto W32DRIVER.INF. - Let op, je kunt geen gebruik maken van een &windows;/i386 - stuurprogramma op &os;/amd64, hiervoor zul je een &windows;/amd64 - stuurprogramma moeten gebruiken om het werkend te - krijgen. + Let op, u kunt geen gebruik maken van een &windows;/i386 + stuurprogramma op &os;/amd64, hiervoor zult u een + &windows;/amd64 stuurprogramma moeten gebruiken om het + werkend te krijgen. De volgende stap is het compileren van het binaire - stuurprogramma in een laadbare kernel module. Om dit voor + stuurprogramma in een laadbare kernelmodule. Om dit voor elkaar te krijgen moet &man.ndisgen.8; gebruikt worden als root. - &prompt.root; ndisgen /path/to/W32DRIVER.INF -/path/to/W32DRIVER.SYS + &prompt.root; ndisgen /pad/naar/W32DRIVER.INF +/pad/naar/W32DRIVER.SYS - De &man.ndisgen.8; utility is interactief en zal vragen om - extra informatie als dat nodig is; het zal een kernel module - produceren in de huidige directory die als volgend gebruikt - kan worden: + Het gereedschap &man.ndisgen.8; is interactief en zal + vragen om extra informatie als dat nodig is; het zal een + kernelmodule produceren in de huidige map die als volgt + gebruikt kan worden: &prompt.root; kldload ./W32DRIVER.ko - Naast de gegenereerde kernel module, moeten ook - ndis.ko en de - if_ndis.ko modules geladen worden. Dit - zou automatisch moeten gebeuren als er een module geladen wordt - dit afhankelijk is van &man.ndis.4;. Als ze handmatig ingeladen - moeten worden gebruik dan de volgende commando's: + Naast de gegenereerde kernelmodule, moeten ook de modules + ndis.ko en + if_ndis.ko geladen worden. Dit zou + automatisch moeten gebeuren als er een module geladen wordt + dit afhankelijk is van &man.ndis.4;. Als ze handmatig + ingeladen moeten worden gebruik dan de volgende + commando's: &prompt.root; kldload ndis &prompt.root; kldload if_ndis - Het eerste commando laad het NDIS miniport stuurprogramma - wrapper, de tweede laad de daadwerkelijke netwerk interface. + Het eerste commando laadt de stuurprogrammawrapper voor de + NDIS miniport, de tweede laadt de daadwerkelijke + netwerkinterface. - Controleer nu &man.dmesg.8; om te zien of er ergens errors - voorkomen zijn. Als alles goed gegaan is zie je ongeveer het + Controleer nu &man.dmesg.8; om te zien of er ergens fouten + voorkomen. Als alles goed gegaan is ziet u ongeveer het volgende: ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1 @@ -1090,11 +1099,11 @@ ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps net zo gebruikt worden als elke andere netwerkkaart (bv. dc0). - Het systeem kan geconfigureerd worden zodat de NDIS modules - automatisch gestart worden tijdens het opstarten van het - systeem, net zoals bij andere modules. Kopieer eerst de - gegenereerde module W32DRIVER.ko naar de - /boot/modules directory. + Het systeem kan geconfigureerd worden zodat de + NDIS-modules automatisch gestart worden tijdens het opstarten + van het systeem, net zoals bij andere modules. Kopieer eerst + de gegenereerde module W32DRIVER.ko naar + de map /boot/modules. Voeg daarna de volgende regel toe aan /boot/loader.conf: @@ -1112,12 +1121,11 @@ ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps Nadat een geschikt stuurprogramma geladen is, moet de kaart - nog ingestelt worden. Mogelijk is dit al gebeurd door + nog ingesteld worden. Mogelijk is dit al gebeurd door sysinstall tijdens de installatie. - Om de instellen van de netwerkkaarten weer te geven - zien: + Om de instellen van de netwerkkaarten weer te geven: &prompt.user; ifconfig dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 @@ -1138,7 +1146,7 @@ tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 Op oudere versies van of &os; moet volgens &man.ifconfig.8; misschien de optie - gebruikt worden. In &man.ifconfig.8;zijn meer details over + 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. @@ -1149,23 +1157,23 @@ tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 - 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 + poortinterface; - lo0: het loopback - apparaat; + lo0: het + loopback-apparaat; @@ -1186,8 +1194,8 @@ tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 - UP betekent dat de kaart - ingesteld is en klaar voor gebruik; + UP betekent dat de kaart ingesteld is + en klaar is voor gebruik; @@ -1204,13 +1212,13 @@ tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 - Het heeft een geldig broadcastadres (in dit geval, + 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; + Het MAC-adres van de kaart (ether) is + 00:a0:cc:da:da:da; @@ -1218,36 +1226,36 @@ tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 (media: Ethernet autoselect (100baseTX <full-duplex>)). dc1 is ingesteld om met - 10baseT/UTP media te werken. Meet - informatie over de mogelijke media types staan in de + 10baseT/UTP-media te werken. Meer + informatie over de mogelijke mediatypes staan in de hulppagina's voor het betreffende stuurprogramma. - De status van de link (status) + De status van de verbinding (status) 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. + er geen Ethernetkabel in de kaart gestoken is. - Als de uitvoer &man.ifconfig.8; uitvoer er ongeveer zoals - hieronder uitziet, dan is de netwerkkaart nog niet - ingesteld: + Als de uitvoer &man.ifconfig.8; 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 - 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 in te stellen zijn + root-rechten nodig. De netwerkkaart kan + 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. 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: + netwerkkaart in een systeem een regel toegevoegd worden. In het + huidige voorbeeld zou dat het volgende kunnen zijn: 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" @@ -1255,7 +1263,7 @@ ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"dc0, dc1, enzovoort, moeten vervangen worden door de correcte stuurprogramma's voor de netwerkkaarten, zo ook de - IP adressen. In de handleiding van het + 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. @@ -1266,10 +1274,10 @@ ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"/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 + 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. @@ -1283,24 +1291,24 @@ ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP" - Als de kaart werkt, maar de performance is slecht, dan kan + Als de kaart werkt, maar de prestaties zijn 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 + dit continu gebeurt 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 + bekabeling gecontroleerd 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 + timeout foutmeldingen optreden. Als eerste moet + dan de netwerkkabel gecontroleerd 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. @@ -1310,7 +1318,7 @@ ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"netstat -rn moet - gecontroleerd worden en of er een geldige route is naar de + gecontroleerd worden of er een geldige route is naar de bestemming. Mocht dit niet het geval zijn, dan staat er meer informatie in . @@ -1319,18 +1327,18 @@ ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"ipfw activeert bij het opstarten zonder dat er firewallregels zijn gedefiniëerd, is het standaardbeleid om alle verkeer te - weigeren, zelfs pings! In staat - meer informatie. + weigeren, zelfs pings! In staat meer + informatie. - Er kan ook sprake zijn van onvoldoende prestaties doordat - de mediaselectie instelling niet optimaal is. In dergelijke + Er kan ook sprake zijn van onvoldoende prestaties doordat de + instelling van de mediaselectie niet optimaal is. In dergelijke gevallen is het mogelijk om de mediaselectie niet als - autoselect in te stellen, maar expliciet - aan te geven wat de mediaselectie moet zijn, bijvoorbeeld + 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 helpt, kan het zijn dat de problemen blijven. - Dan moeten nogmaals de netwerkinstellingen gecontroleerd worden - en geeft de &man.tuning.7; handleiding wellicht meer + 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. @@ -1340,17 +1348,17 @@ ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"virtuele hosts - IP aliassen + 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 + 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 + alias-adressen hebben. Normaliter worden dergelijke aliassen toegevoegd door aliasregels toe te voegen aan /etc/rc.conf. @@ -1368,24 +1376,24 @@ ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"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 + correct representeert. Elk ander adres binnen dit netwerk op 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. Het systeem moet ook - de adressen 10.1.1.1 tot en met - 10.1.1.5 en Een voorbeeld. Stel de interface + fxp0 is verbonden met twee netwerken, het + netwerk 10.1.1.0 met masker + 255.255.255.0 en het netwerk + 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 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 /etc/ppp - Instellingen voor zowel user- als kernel-ppp + Instellingen voor zowel gebruiker- als kernel-ppp programma's. @@ -1475,7 +1483,7 @@ ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" /usr/local/etc/rc.d - Start en stop scripts voor geïnstalleerde + Start- en stopscripts voor geïnstalleerde diensten. @@ -1483,7 +1491,7 @@ ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" /var/db Automatisch gemaakte systeemspecifieke - databasebestanden, zoals de packagedatabase, de + databasebestanden, zoals de pakketdatabase, de &man.locate.1; database, enzovoort. @@ -1520,9 +1528,9 @@ ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" nameserver - Het IP adres van een + Het IP-adres van een naamserver die ondervraagd moet worden voor - naam/IP conversie. De servers + naam/IP-conversie. De servers worden in volgorde geprobeerd en het maximale aantal is drie. @@ -1558,7 +1566,7 @@ nameserver 147.11.100.30 Als DHCP wordt gebruikt: &man.dhclient.8; overschrijft meestal resolv.conf met informatie - ontvangen van de DHCP server. + ontvangen van de DHCP-server. @@ -1567,7 +1575,7 @@ nameserver 147.11.100.30 hosts /etc/hosts is een eenvoudige - tekstdatabase uit de dagen van het oude internet. Het werkt + 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 @@ -1576,8 +1584,7 @@ nameserver 147.11.100.30 &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. - + een (zeer beperkte) lokale DNS cache. # $&os;$ # @@ -1597,13 +1604,13 @@ nameserver 147.11.100.30 #10.0.0.3 myfriend.my.domain myfriend # # Volgens RFC 1918 mogen de volgende IP netwerken gebruikt worden -# als private netwerken die niet met internet verbonden zijn: +# 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 # -# Als er toch verbinding moet zijn met internet, zijn echte +# 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 @@ -1634,7 +1641,7 @@ nameserver 147.11.100.30 syslog.conf is het instellingenbestand voor het programma &man.syslogd.8;. Het - geeft aan welke soorten syslog berichten + geeft aan welke soorten syslog-berichten er gelogd moeten worden en naar welke logboekbestanden, apparaten, gebruikers of machines. @@ -1662,7 +1669,7 @@ cron.* /var/log/cron # verwijder het commentaarkarakter om alle berichten naar # /var/log/all.log te schrijven. #*.* /var/log/all.log -# # verwijder het commentaarkarakter om alle liggen naar een andere +# # verwijder het commentaarkarakter om alle logs naar een andere # host in te schakelen met de naam loghost. #*.* @loghost # # verwijder het commentaarkarakter als inn draait. @@ -1683,8 +1690,8 @@ cron.* /var/log/cron newsyslog.conf newsyslog.conf is het - instellingenbestand voor &man.newsyslog.8;, een programma - dat op gezette tijden via &man.cron.8; wordt uitgevoerd. + 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 @@ -1700,7 +1707,7 @@ cron.* /var/log/cron hebben of op een bepaald periodiek tijdstip of een bepaalde datum. - # configuration file for newsyslog + # instellingenbestand voor newsyslog # $&os;$ # # filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num] @@ -1735,9 +1742,9 @@ cron.* /var/log/cron sysctl.conf lijkt veel op rc.conf. Waardetoekenning heeft weer de 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. + &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. Om te voorkomen dat er logregels geplaatst worden als processen crashen en om te voorkomen dat andere gebruikers @@ -1745,11 +1752,11 @@ cron.* /var/log/cron gebruiker, kunnen de volgende instellingen worden gezet in sysctl.conf: - #Do nog log fatal signal exits (e.g. sig 11) + #Log exits met fatale signalen niet (bv. sig 11) kern.logsigexit=0 -# Prevent users from seeing information about processes that -# are being run under another UID. +# Voorkom dat gebruikers informatie zien over processen die +# worden gedraaid onder een ander UID. security.bsd.see_other_uids=0 @@ -1766,14 +1773,14 @@ security.bsd.see_other_uids=0 &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 + 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 + Met &man.sysctl.8; kunnen meer dan vijfhonderd systeemvariabelen opgevraagd en ingesteld worden. - In essentie heeft &man.sysctl.8; twee funkties: het lezen en + In essentie heeft &man.sysctl.8; twee functies: het lezen en wijzigen van systeeminstellingen. Om alle leesbare variabelen te tonen: @@ -1793,7 +1800,7 @@ kern.maxproc: 1044 &prompt.root; sysctl kern.maxfiles=5000 kern.maxfiles: 2088 -> 5000 - Waarden van sysctl variabelen zijn doorgaans strings (tekst), + Waarden van sysctl-variabelen zijn doorgaans strings (tekst), getallen of booleans (1 als waar, 0 als onwaar). @@ -1816,28 +1823,28 @@ kern.maxfiles: 2088 -> 5000 &man.sysctl.8; alleen-lezen - In sommige gevallen is het wenselijk zijn om &man.sysctl.8; - waarden die alleen-lezen zijn toch te wijzigen. Hoewel dit soms + In sommige gevallen is het wenselijk om &man.sysctl.8;-waarden + die alleen-lezen zijn toch te wijzigen. Hoewel dit soms onontkoombaar is, kan het alleen bij een (her)start gedaan worden. Op sommige laptops is bijvoorbeeld het apparaat - &man.cardbus.4; niet in staat om geheugenregio's af te tasten, - met als gevolg foutmeldingen als: + &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;-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 staan in /boot/defaults/loader.conf. Om het bovenstaande probleem op te lossen moet in - in /boot/loader.conf/boot/loader.conf hw.pci.allow_unsupported_io_range=1 ingesteld worden. Dan werkt &man.cardbus.4; wel goed. @@ -1847,34 +1854,34 @@ device_probe_and_attach: cbb0 attach returned 12 Harde schijven optimaliseren - Sysctl variabelen + Sysctl-variabelen <varname>vfs.vmiodirenable</varname> vfs.vmiodirenable - De sysctl variabele vfs.vmiodirenable + De sysctl-variabele vfs.vmiodirenable kan de waarde 0 (uit) of 1 (aan) hebben. De standaardwaarde - 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 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. + 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 + 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 paginacache 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 paginagrootte is (typisch 4 K) in plaats van + 512  bytes. Het is aan te raden deze optie aan te laten + staan als gebruik gemaakt wordt 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. @@ -1882,16 +1889,16 @@ device_probe_and_attach: cbb0 attach returned 12 vfs.write_behind - De sysctl variabele vfs.write_behind + De sysctl-variabele vfs.write_behind staat standaard aan (1). Dit betekent dat - het bestandssysteem gegevens naar het medium gaat schrijven - op het moment dat er een volledig cluster aan data verzameld + het bestandssysteem gegevens naar het medium gaat schrijven op + het moment dat er een volledig cluster aan gegevens 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 prestaties. Dit kan echter - processen ophouden en onder sommige omstandigheden is het - wellicht beter deze sysctl uit te zetten. + 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. @@ -1899,23 +1906,22 @@ device_probe_and_attach: cbb0 attach returned 12 vfs.hirunningspace - De sysctl variabele vfs.hirunningspace + 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. + 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. - Het VM systeem zeer goed in staat zichzelf - automatisch te optimaliseren. + Er zijn verscheidene andere sysctl's voor buffercache en + VM-pagecache. Het wordt afgeraden deze te wijzigen. Het + VM-systeem is zeer goed in staat zichzelf automatisch te + optimaliseren. @@ -1923,14 +1929,14 @@ device_probe_and_attach: cbb0 attach returned 12 vm.swap_idle_enabled - De sysctl variabele + De sysctl-variabele vm.swap_idle_enabled is nuttig in grote - multi-user systemen met veel gebruikers die af- en aanmelden + meergebruikersystemen 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, + geheugenpagina's 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 @@ -1941,7 +1947,7 @@ device_probe_and_attach: cbb0 attach returned 12 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 + deze optie het mogelijk maken voor het VM-systeem om hele processen gemakkelijk in en uit het geheugen te halen. @@ -1951,25 +1957,25 @@ device_probe_and_attach: cbb0 attach returned 12 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 + uitzetten van IDE-schrijfcaching. Hierdoor neemt de + bandbraadte naar IDE-schijven af, maar het werd als noodzakelijk beschouwd vanwege ernstige problemen met gegevensinconsistentie die door harde schijfproducenten - geëintroduceerd waren. Het probleem is dat IDE schijven + 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 + klaar is. Door IDE-schrijfcaching wordt data niet alleen ongeordend geschreven, maar soms kan zelfs het schrijven van - sommige blokken voortdurend uitgesteld worden als er sprake - is van een hoge schijfbelasting. Een crash of stroomstoring - kan dan ernstige corruptie van het bestandssysteem - veroorzaken. 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 + sommige blokken voortdurend uitgesteld worden als er sprake is + van een hoge schijfbelasting. Een crash of stroomstoring kan + dan ernstige corruptie aan het bestandssysteem veroorzaken. + Daarom werd de standaardinstelling van &os; voor alle + zekerheid gewijzigd. Helaas was het resultaat een groot + verlies aan prestaties en na die uitgave 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, kan het die weer aangezet worden door + hw.ata.wc op 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 @@ -1990,10 +1996,10 @@ device_probe_and_attach: cbb0 attach returned 12 SCSI_DELAY - De SCSI_DELAY kernelinstelling kan + De kernelinstelling SCSI_DELAY kan gebruikt worden om de opstarttijd te versnellen. De standaardwaarde is nogal hoog en kan 15 - seconden vertraging veroorzaken. Met modernere SCSI systemen + seconden vertraging veroorzaken. Met modernere SCSI-systemen is 5 seconden al voldoende. Nieuwere versies van &os; (5.0 en hoger) gebruiken de opstartvariabele kern.cam.scsi_delay. Zowel deze als de @@ -2020,26 +2026,26 @@ device_probe_and_attach: cbb0 attach returned 12 &prompt.root; tunefs -n disable /filesystem 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. + worden als het aangekoppeld is. Softupdates aanzetten wordt dus + in het algemeen gedaan vanuit enkelegebruikermodus, voordat + partities aangekoppeld zijn. Softupdates zorgen voor een drastische verbetering van de - meta-data prestaties, met name het aanmaken en verwijderen van - bestanden, door gebruik van een geheugencache. Het wordt dan - 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. + prestaties met betrekking tot metagegevens, met name het + aanmaken en verwijderen van bestanden, door gebruik van een + geheugencache. Het wordt dan ook aangeraden om op alle + bestandssystemen softupdates te gebruiken. Er zijn twee nadelen + aan softupdates: softupdates garanderen 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 gaat wellicht meer werk verloren dan anders het + geval zou zijn. Daarnaast vertragen softupdates het vrijgeven + van bestandssysteemblokken. Als een bestandssysteem (zoals de + rootpartitie) 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 over softupdates @@ -2050,56 +2056,57 @@ device_probe_and_attach: cbb0 attach returned 12 details - Er zijn traditioneel twee methodes om de metadata van een - bestandssysteem terug naar de schijf te schrijven. Het - bijwerken van metadata houdt het bijwerken van van - niet-inhoudelijke data zoals inodes of mappen in. + Er zijn traditioneel twee methodes om de metagegevens van + een bestandssysteem terug naar de schijf te schrijven. Het + bijwerken van metagegevens houdt het bijwerken van van + niet-inhoudelijke gegevens zoals inodes of mappen in. - 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 - 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. Deze implementatie is ook helder en eenvoudig. - Het nadeel is echter dat het wijzigen van metadata een traag - 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. + Historisch gezien was het gebruikelijk om updates aan + metagegevens synchroon weg te schrijven. Als een map + bijvoorbeeld gewijzigd was, wachtte het systeem totdat de + verandering daadwerkelijk naar de schijf geschreven was. De + gegevensbuffers (de inhoud van een bestand) werden + doorgeschoven naar de 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, zijn de metagegevens nog altijd + consistent. Een bestand kan volledig gecreëerd zijn of + helemaal niet. Als de gegevensblokken 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. Deze implementatie is ook + helder en eenvoudig. Het nadeel is echter dat het wijzigen + van metagegevens een traag proces is. Een + rm -r 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 + De tweede mogelijkheid is om het bijwerken van + metagegevens 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 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 + 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 + onvoorspelbare toestand achter. Er is geen mogelijkheid om de + toestand van het bestandssysteem te onderzoeken als het + systeem weer opstart, want de gegevensblokken 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 @@ -2113,56 +2120,56 @@ device_probe_and_attach: cbb0 attach returned 12 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 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 + 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. + 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 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 + 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 + 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 + De gegevensblokken 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 + 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 + om na een crash te negeren dat het bestandssysteem niet schoon + is en het tot aankoppelen 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 @@ -2170,38 +2177,39 @@ device_probe_and_attach: cbb0 attach returned 12 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. + bestandssystemen kunnen dirty aangekoppeld + worden en het systeem kan gewoon verder opstarten naar + meergebruikermodus. 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 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 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 worden dat onvoldoende - vrije ruimte heeft om alle bestanden twee keer te kunnen - bevatten (bijvoorbeeld in /tmp). + (dat wil zeggen sneller dan met logging, + waarbij de metagegevens keer op 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 de + metagegevens of de bestandsinhoud nooit naar de schijf zijn + geschreven. Schijfruimte wordt pas vrijgegeven als de + bijwerkingen aan metagegevens en inhoudelijke + bestandsgegevens weggeschreven zijn, wat mogelijk pas enige + tijd na het uitvoeren van rm plaatsvindt. + Dit kan problemen veroorzaken als er grote hoeveelheden + gegevens naar een bestandssysteem geschreven worden dat + onvoldoende vrije ruimte heeft om alle bestanden twee keer te + kunnen bevatten (bijvoorbeeld in /tmp). @@ -2224,30 +2232,28 @@ device_probe_and_attach: cbb0 attach returned 12 kern.maxfiles kern.maxfiles kan worden verhoogd of - 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. + 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, het + geen achteraf te zien is met 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. - In oudere versies van &os;, werd de standaard waarde van - kern.maxfiles afgeleid van de - optie in het kernel configuratie - bestand. + In oudere versies van &os; werd de standaard waarde van + kern.maxfiles afgeleid van de optie + in het kernelconfiguratiebestand. 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. + kernel wordt gebouwd, is het een goed idee om deze kerneloptie + in te stellen afhankelijk van het gebruikt van een systeem + (maar niet te laag). Hoewel een produktieserver misschien + niet 256 gelijktijdige gebruikers heeft, kunnen de benodigde + systeembronnen het beste vergeleken worden met een + grootschalige webserver. De optie maxusers stelt de grootte van een aantal belangrijke systeemtabellen in. Dit aantal moet @@ -2258,21 +2264,22 @@ device_probe_and_attach: cbb0 attach returned 12 automatisch ingesteld tijdens het opstarten gebaseerd op de hoeveelheid beschikbare geheugen in het systeem en kan worden vastgesteld tijdens het draaien door te kijken naar de - alleen-lezen kern.maxusers sysctl. Sommige + alleen-lezen sysctl kern.maxusers. Sommige configuraties hebben grotere of kleinere waarden nodig van kern.maxusers, deze kunnen worden gezet - als een opstart variabele. Waardes van 64, 128 en 256 zijn + als een opstartvariabele. Waardes van 64, 128 en 256 zijn daarin niet ongewoon. We raden aan om niet boven de 256 te - gaan tenzij er heel veel filedescriptors benodigd zijn; veel - van de aanpasbaare waarden die standaard worden bepaald door - kern.maxusers kunnen individueel worden - overschreven tijdens het opstarten en/of tijdens het draaien - van het systeem in /boot/loader.conf - (zie de &man.loader.conf.5; handleiding of het - /boot/defaults/loader.conf bestand voor - een paar aanwijzingen) of zoals ergens anders beschreven in - dit document. Systemen die ouder zijn dan &os; 4.4 - moeten deze waardes zetten via de kernel &man.config.8; optie + gaan tenzij er heel veel bestandsdescriptors benodigd zijn; + veel van de aanpasbaare waarden die standaard worden bepaald + door kern.maxusers kunnen individueel + worden overschreven tijdens het opstarten en/of tijdens het + draaien van het systeem in + /boot/loader.conf (zie de handleiding + &man.loader.conf.5; of het bestand + /boot/defaults/loader.conf voor een paar + aanwijzingen) of zoals elders beschreven in dit document. + Systemen die ouder zijn dan &os; 4.4 moeten deze waarden + instellen via de kerneloptie &man.config.8; . Voor oudere versies stelt het systeem deze waarde zelf in @@ -2283,12 +2290,12 @@ device_probe_and_attach: cbb0 attach returned 12 maxusers in afhankelijk van de hoeveelheid geheugen in het systeem, met een minimum van 32 en een maximum van 384. - + Als het gewenst is om deze waarde zelf aan te geven, wordt - aangeraden om maxusers minstens op 4 te zetten, met - name als het X Window systeem in gebruik is of als er - software gecompileerd wordt. De reden hiervoor is dat de + aangeraden om maxusers minstens op 4 te + zetten, met name als het X Window systeem in gebruik is of als + er software gecompileerd wordt. De reden hiervoor is dat de belangrijkste tabel die door maxusers ingesteld wordt, het maximum aantal processen is, dat ingesteld wordt op 20 + 16 * maxusers, dus @@ -2314,7 +2321,7 @@ device_probe_and_attach: cbb0 attach returned 12 maxusers stelt geen grens aan het aantal gebruikers - dat op de machine kan aanmelden. Het stelt gewoon + dat zich op de machine kan aanmelden. Het stelt gewoon verschillende tabelgroottes in op redelijke waardes, uitgaande van het maximum aantal gebruikers dat waarschijnlijk de machine gebruikt en van het aantal @@ -2323,7 +2330,7 @@ device_probe_and_attach: cbb0 attach returned 12 gelijktijdige aanmeldingen op afstand en X-terminalvensters begrensd is pseudo-device pty - 16. In &os; 5.X kan dit getal + 16. In &os; 5.X kan dit getal genegeerd worden omdat daar het stuurprogramma &man.pty.4; auto-cloning is. Er kan eenvoudig gebruik worden gemaakt van de regel device pty @@ -2336,20 +2343,20 @@ device_probe_and_attach: cbb0 attach returned 12 kern.ipc.somaxconn - De sysctl variabele kern.ipc.somaxconn + De sysctl-variabele kern.ipc.somaxconn beparkt de grootte van de luisterwachtrij voor het accepteren - van nieuwe TCP verbindingen. De standaardwaarde van + van nieuwe TCP-verbindingen. De standaardwaarde van 128 is meestal te laag voor robuuste behandeling van nieuwe verbindingen in een zwaarbeladen - webserver omgeving. Voor zulke omgevingen wordt aangeraden + webserveromgeving. Voor zulke omgevingen wordt aangeraden deze waarde te verhogen tot 1024 of hoger. 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. + aan te passen. Grote luisterwachtrijen zijn ook beter in het + ontwijken van Ontzegging van Dienst (DoS) + aanvallen. @@ -2357,7 +2364,7 @@ device_probe_and_attach: cbb0 attach returned 12 Netwerkbeperkingen De kerneloptie NMBCLUSTERS bepaalt het - aantal netwerk Mbufs dat beschikbaar is voor een systeem. Een + 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 @@ -2365,33 +2372,33 @@ device_probe_and_attach: cbb0 attach returned 12 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 + ontvangstnetwerkbuffers 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 / + 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 &man.netstat.1; kan het 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 + 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 systeemaanroep &man.sendfile.2;, kan het nodig zijn het aantal - &man.sendfile.2; buffers te verhogen via de kerneloptie + &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 variabele + 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 variabele kern.maxusers, maar het kan nodig zijn om deze bij te stellen. @@ -2408,10 +2415,10 @@ device_probe_and_attach: cbb0 attach returned 12 net.inet.ip.portrange.* - 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 + De sysctl-variabelen + 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 @@ -2419,24 +2426,24 @@ device_probe_and_attach: cbb0 attach returned 12 net.inet.ip.portrange.last met standaardwaarden van respectievelijk 1024 en 5000. Gebonden poortreeksen worden gebruikt voor uitgaande verbindingen en - het is onder bepaalde omstandigheden mogelijk dat poorten - op raken. Dit gebeurt meestal in het geval van een zwaar - belaste webproxy. Poortbereik is niet van belang als vooral - diensten draaien die zich bezighouden met inkomende - verbindingen, zoals een normale webserver, of als het aantal - uitgaande verbindingen beperkt is, zoals bij een mailrelay. - Voor situaties waarin een tekort aan poorten dreigt, wordt + het is onder bepaalde omstandigheden mogelijk dat poorten op + raken. Dit gebeurt meestal in het geval van een zwaar belaste + webproxy. Poortbereik is niet van belang als vooral diensten + draaien die zich bezighouden met inkomende verbindingen, zoals + een normale webserver, of als het aantal 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. 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 niet - aanbevolen om net.inet.ip.portrange.first - te verlagen. + 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 niet aanbevolen om + net.inet.ip.portrange.first te + verlagen. @@ -2449,50 +2456,51 @@ device_probe_and_attach: cbb0 attach returned 12 net.inet.tcp.inflight.enable - 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. + De TCP-bandbreedtevertragingsproductlimitatie lijkt op + TCP/Vegas in NetBSD. Het kan aangezet worden door de + sysctl-variabele + 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 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 krijgen (geen debugging) en voor - produktiegebruik kan het instellen van + zelfs bij WAN-verbindingen met hoge snelheid (of elke andere + verbinding 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 krijgen (geen debugging) en + voor produktiegebruik kan het instellen van net.inet.tcp.inflight.min naar minstens - 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 + 6144 voordeel opleveren. Het instellen van + hoge minima kan effectief het beperken van bandbreedte + ondermijnen, afhankelijk van de verbinding. De mogelijkheid + tot limitering zorgt ervoor dat de hoeveelheid gegevens 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 + 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). + Round Trip tijden, met name over langzame + modems. Deze optie gaat alleen over datatransmissie (upload / + serverkant) en heeft geen effect gegevensontvangst (download / + cliëntkant). 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 + 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. @@ -2506,15 +2514,15 @@ device_probe_and_attach: cbb0 attach returned 12 <varname>kern.maxvnodes</varname> Een vnode is de interne representatie van een bestand of - een map. Het verlagen van het aantal beschikbare vnodes - voor het besturingssysteem leidt dus tot een daling van disk - I/O. Normaliter wordt dit door het besturingssysteem - afgehandeld en hoeft de instelling niet gewijzigd te worden. - Im sommige gevallen kan disk I/O de beperkende factor zijn en - kan het systeem alle beschikbare vnodes in gebruik hebben. - Dan dient deze instelling gewijzigd te worden. De - hoeveelheid inactief en beschikbaar RAM dient meegenomen te - worden in de beslissing. + een map. Het verlagen van het aantal beschikbare vnodes voor + het besturingssysteem leidt dus tot een daling van schijf-I/O. + Normaliter wordt dit door het besturingssysteem afgehandeld en + hoeft de instelling niet gewijzigd te worden. Im sommige + gevallen kan schijf-I/O de beperkende factor zijn en kan het + systeem alle beschikbare vnodes in gebruik hebben. Dan dient + deze instelling gewijzigd te worden. De hoeveelheid inactief + en beschikbaar RAM dient meegenomen te worden in de + beslissing. Het huidige aantal gebruikte vnodes kan als volgt bekeken worden: @@ -2534,8 +2542,8 @@ kern.maxvnodes: 100000 gehouden te worden. Als de waarde weer tot aan het maximum stijgt, dan moet kern.maxvnodes verder opgehoogd worden. Er dient een verschuiving op te treden in - het door &man.top.1; gerapporteerde geheugengebruik. Er - hoort meer geheugen actief te zijn. + het door &man.top.1; gerapporteerde geheugengebruik. Er hoort + meer geheugen actief te zijn. @@ -2552,23 +2560,21 @@ kern.maxvnodes: 100000 een wisselbestand maken op een bestaande (UFS of andere) partitie. - Voor informatie over het beveiligen van het wisselbestand, - welke opties hiervoor bestaan, en waarom dit gedaan zou moeten - worden, kijk dan in van het - handbook. + Kijk voor informatie over het beveiligen van het + wisselbestand, welke opties hiervoor bestaan, en waarom dit gedaan + zou moeten worden in van het + handboek. - Wisselbestand (partitie) op een nieuwe harde - schijf + 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. + 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 op te doen over hoe wisselbestandpartitie(s) het + beste ingedeeld kunnen worden. @@ -2576,18 +2582,18 @@ kern.maxvnodes: 100000 In het algemeen wordt swappen over NFS niet aangeraden behalve als het onmogelijk is om naar een lokale schijf te - swappen. NFS swappen wordt gelimiteerd door de hoeveelheid - beschikbare bandbreedte en belast het de NFS server. + swappen. NFS-swappen wordt gelimiteerd door de hoeveelheid + beschikbare bandbreedte en belast het de NFS-server. Wisselbestanden - 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. + Het is mogelijk om een bestand aan te maken van een bepaalde + grootte en dit als swap te gebruiken. In dit voorbeeld wordt + een bestand van 64 MB gebruikt, + /usr/swap0. Uiteraard kan een willekeurige + naam gebruikt worden. Een wisselbestand aanmaken op &os; @@ -2596,7 +2602,7 @@ kern.maxvnodes: 100000 De kernel moet het stuurprogramma voor de geheugenschijf (&man.md.4;) bevatten. Dat zit standaard - in de GENERIC kernel. + in de kernel GENERIC. device md # Memory "disks" @@ -2609,8 +2615,8 @@ kern.maxvnodes: 100000 - De correctie rechten op - /usr/swap0 instellen: + De correcte rechten op /usr/swap0 + instellen: &prompt.root; chmod 0600 /usr/swap0 @@ -2619,7 +2625,7 @@ kern.maxvnodes: 100000 Het wisselbestand opnemen in /etc/rc.conf: - swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. + swapfile="/usr/swap0" # Instellen op naam van wisselbestand als hulpwisselbestand gewenst is @@ -2652,22 +2658,20 @@ kern.maxvnodes: 100000 Het is belangrijk om hardwarebronnen op een efficiënte wijze te benutten. Voordat ACPI - geïntroduceerd werd was het lastig en onflexibel - om het energieverbruik en de thermische eigenschappen van een - systeem te beheersen. De hardware werd beheerst de - BIOS en dus had de gebruiker minder controle - en zichtbaarheid in de energiebeheer instellingen. Enige - gelimiteerde configuratie was mogelijk via - Advanced Power Management (APM). Energie en - bronnen beheer is een belangrijk onderdeel van moderne machines. - Het besturingssysteem moet bijvoorbeeld - systeemlimieten in de gaten houdt (en mogelijk een SMS sturen of - iets dergelijks) als de systeemtemperatuur onverwacht - toeneemt. + geïntroduceerd werd was het lastig en onflexibel om het + energieverbruik en de thermische eigenschappen van een systeem te + beheersen. De hardware werd beheerst de BIOS + en dus had de gebruiker minder controle en zichtbaarheid in de + energiebeheerinstellingen. Enige gelimiteerde configuratie was + mogelijk via Advanced Power Management (APM). + Energie- en bronnenbeheer is een belangrijk onderdeel van moderne + machines. 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 - worden referenties geleverd naar meer leesmateriaal. + In dit deel van het &os; handboek wordt uitgebreide informatie + verschaft over ACPI. Aan het einde worden + referenties geleverd naar meer leesmateriaal. Wat is ACPI? @@ -2679,16 +2683,16 @@ kern.maxvnodes: 100000 Advanced Configuration and Power Interface (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 + voorzien in een een standaardinterface voor hardwarebronnen- 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. + 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. + APM (Advanced Power Management). Centraal is + het verleggen van hardwarebeheer en -monitoring naar de OS-laag + in plaats van de zeer beperkte BIOS-laag. @@ -2696,10 +2700,10 @@ kern.maxvnodes: 100000 Met de Advanced Power Management (APM) faciliteit kan het energieverbruik van een systeem geregeld - worden op basis van de systeemactiviteit. Het APM BIOS wordt + 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 + specifiek voor dat betreffende hardwareplatform. Een + APM-stuurprogramma in het besturingssysteem regelt vervolgens de toegang tot de APM Software Interface, die het besturen van vermogensniveau mogelijk maakt. APM dient nog steeds gebruikt te worden met systemen die gefabriceerd zijn @@ -2709,32 +2713,31 @@ kern.maxvnodes: 100000 eerste wordt het energiebeheer verricht door een BIOS (afhankelijk van producent) en het besturingssysteem heeft daar 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 + 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 + 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. + 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 samenwerken. + Plug-n-play BIOS (PNPBIOS) was in veel + situaties onbetrouwbaar. PNPBIOS is 16-bitstechnologie, dus het + besturingssysteem moet 16-bit emulatie gebruiken om met + PNPBIOS-methoden te kunnen samenwerken. - Het &os; stuurprogramma APM is + Het &os;-stuurprogramma APM is gedocumenteerd in &man.apm.4;. @@ -2742,20 +2745,20 @@ kern.maxvnodes: 100000 <acronym>ACPI</acronym> instellen 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 + 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 meestal niet goed - werkt. Mocht er hinder ondervonden worden kan + werkt. Mocht er hinder ondervonden worden, dan 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 door - het zetten van hint.acpi.0.disabled="1" in + het instellen van hint.acpi.0.disabled="1" in /boot/loader.conf of in de &man.loader.8; prompt. @@ -2767,9 +2770,9 @@ kern.maxvnodes: 100000 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 + gebruikt worden om het systeem in slaapmodus te zetten met + &man.acpiconf.8; met de vlag en een optie + 1-5. De meeste gebruikers hebben alleen 1 of 3 nodig. De optie 5 verricht een soft-off, wat hetzelfde is als: @@ -2812,51 +2815,51 @@ kern.maxvnodes: 100000 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 + 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 + onvolledigheden in de subsystemen van de kernel van &os; en bugs + in de &intel; ACPI-CA interpreter blijven opduiken. - Deze tekst is bedoeld om de &os; ACPI - beheerders (maintainers) te helpen met het vinden - van de hoofdoorzaken van problemen die voorkomen en met het - debuggen en het vinden van een oplossing. + Deze tekst is bedoeld om u te helpen met het bijstaan van de + &os; ACPI beheerders met het vinden van de + hoofdoorzaken van problemen die u opmerkt en met het debuggen en + het vinden van een oplossing. 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. + Voordat een probleem wordt gemeld, moet het zeker zijn dat + de laatste BIOS versie draait en indien + beschikbaar de geïntregeerde controller firmware + versie. - Diegenen die meteen een probleem willen indienen, sturen - de volgende informatie naar Diegenen die meteen een probleem willen indienen, sturen de + volgende informatie naar freebsd-acpi@FreeBSD.org: Omschrijving van het foutieve gedrag, inclusief - systeemtype en model en alles wat de fout kan veroorzaken. + 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 &man.dmesg.8; uitvoer van boot + De uitvoer van &man.dmesg.8; van boot -v, inclusief foutmeldingen die gegenereerd worden als de fout optreedt. - De &man.dmesg.8; uitvoer van boot + De uitvoer van &man.dmesg.8; van boot -v met ACPI uitgeschakeld, indien het uitzetten van ACPI het probleem oplost. @@ -2865,7 +2868,7 @@ kern.maxvnodes: 100000 Uitvoer van sysctl hw.acpi. Dit is tevens een goede manier om uit te vinden welke - ACPI mogelijkheden een systeem + ACPI-mogelijkheden een systeem heeft. @@ -2879,38 +2882,39 @@ kern.maxvnodes: 100000 kopie van een ASL kan gemaakt worden met het volgende commando: - &prompt.root; acpidump -dt > name-system.asl + &prompt.root; acpidump -dt > naam-systeem.asl - (Vervang een aanmeldnaam door + (Vervang uw aanmeldnaam door $NAME en producent/model door $SYSTEM. Bijvoorbeeld: njl-FooCo6000.asl) - 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 + De meeste &os;-programmeurs lezen de &a.current;, 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 volledige 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. + als herinnering van bestaande problemen, niet als + rapportagesysteem. Mogelijk is een probleem al eens door iemand + anders gemeld. 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 prestatiebeheer, + computers die voldoen aan de ia32 (x86), ia64 (Itanium) of amd64 + (AMD) architecturen. De volledige standaard heeft vele + mogelijkheden zoals CPU-prestatiebeheer, energiebeheer, thermische zones, diverse batterijsystemen, ingebedde controllers en busnummering. De meeste systemen implementeren minder dan de volledige standaard. Een @@ -2921,35 +2925,31 @@ kern.maxvnodes: 100000 comlexiteit. Een ACPI-compliant systeem heeft - verscheidene componenten. Het BIOS is de - eerste en dan zijn er verscheidene tabellen in het geheugen - zoals FADT die zaken als de - APIC map (gebruikt voor - SMP) specificeren, beschikbaar gesteld door - verschillende producenten/verkopers. Daarnaast zijn er - specifieke eenvoudige instellingen en instellingenregisters, - ook allen specifiek voor de leverancier. Ook wordt er een - tabel van bytecode (de Differentiated System - Description Table DSDT) + verscheidene componenten. Het BIOS- en + chipsetverkopers bieden verscheidene vaste tabellen aan zoals + FADT in het geheugen die zaken als de + APIC-afbeelding (gebruikt voor + SMP), configuratieregisters, en eenvoudige + configuratiewaarden specificeren. Ook wordt er een tabel van + bytecode (de Differentiated System + Description Table of DSDT) geleverd die een op een boomstructuur lijkende namespace biedt - voor apparaten en apparaatobjectfuncties. + voor apparaten en methoden. 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 staat in ACPI-subsysteem te 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. + lijmcode 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. @@ -2977,31 +2977,30 @@ kern.maxvnodes: 100000 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 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. + 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 geïmplenteerd. - als eerste dienen de sysctl - items die iets met de slaapstand - te maken hebben gecontroleerd te worden. Hieronder staan de - resultaten voor een Thinkpad: + als eerste dienen de sysctl hw.acpi + 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 + S4OS en S5 te testen. Als gelijk was aan (1), dan zou er S4BIOS ondersteuning @@ -3015,7 +3014,7 @@ hw.acpi.s4bios: 0 nog S2 geïmplementeerd, maar het is ongeveer hetzelfde als S1. Daarna wordt S3 getest. Dit is het diepste - STR niveau en heeft uitgebreide + 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 @@ -3025,52 +3024,52 @@ hw.acpi.s4bios: 0 Om een probleem te kunnen isoleren helpt het om zoveel mogelijk stuurprogramma's uit de kernel te halen. Als dit - werkt, kan er teruggewerkt worden naar de driver die schuldig - is aan het falen. Meestal vertonen binaire stuurprogramma's - als nvidia.ko, X11 + werkt, kan er teruggewerkt worden naar het stuurpgrogramma dat + schuldig is aan het falen. Meestal vertonen binaire + stuurprogramma's als nvidia.ko, X11 beeldschermstuurprogramma's en USB de - 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 + 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 laden en - verwijderen van een driver. Als het beeldscherm er na + verwijderen van een stuurprogramma. Als het beeldscherm er na wakker worden vreemd uitziet, kan geprobeerd worden - naar nul - te zetten. Met langere of kortere - waarden voor kan - bekeken worden of dat helpt. + op nul 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 + 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. + mogelijk is uit te vinden over welk stuurpgroramma 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, + met andere stuurprogramma's zoals 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. + probleem met een stuurprogramma 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 + 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. @@ -3080,13 +3079,12 @@ hw.acpi.s4bios: 0 Meestal is het hangen van het systeem het gevolg van verloren interrupts of een interruptstorm. Chipsets kunnen een heleboel problemen hebben, afhankelijk van hoe het - BIOS interrupts instelt voor het - opstarten, of de APIC - (MADT) tabel correct is en de routering - van het System Control Interrupt - (SCI). + BIOS interrupts instelt voor het opstarten, + of de APIC (MADT) tabel + correct is en de routering van het System Control + Interrupt (SCI). - interrupt storms + interruptstorms Interruptstorms kunnen onderscheiden worden van verloren geraakte interrupts door de uitvoer van vmstat @@ -3097,7 +3095,7 @@ hw.acpi.s4bios: 0 hangen, is het wellicht nog mogelijk door te dringen tot de DDB (CTRL - ALTESC) + ALTESC) en show interrupts uit te voeren. @@ -3106,8 +3104,8 @@ hw.acpi.s4bios: 0 uitschakelen - De beste hoop in geval van interruptproblemen - is om APIC ondersteuning uit te zetten met + De beste hoop in geval van interruptproblemen is om + APIC-ondersteuning uit te zetten met hint.apic.0.disabled="1" in loader.conf. @@ -3117,36 +3115,36 @@ hw.acpi.s4bios: 0 Panics zijn relatief zeldzaam met ACPI 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. + 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 + ACPI-subsysteem geïsoleerd en kunnen + de verschillende -waarden uitgeprobeerd worden. In &man.acpi.4; staan enkele voorbeelden. 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. + probleem op waarbij een systeem spontaan weer opkomt nadat het + in slaapstand is gezet of geheel gestopt is. @@ -3154,13 +3152,13 @@ hw.acpi.s4bios: 0 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, + 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. + moeten soms geduld en de bereidheid om eventuele + patches uit te proberen hebben. @@ -3174,10 +3172,10 @@ hw.acpi.s4bios: 0 ASL - Het grootste probleem is dat BIOS - producenten vaak incorrecte (of gewoon foutieve) bytecode - leveren. Dit blijkt doorgaans uit kernelboodschappen - als: + Het grootste probleem is dat + BIOS-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 @@ -3187,20 +3185,20 @@ hw.acpi.s4bios: 0 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 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-code. De bytecode die + 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 + ASL-code opnieuw compileren en kijken of er + foutmeldingen optreden. Waarschuwingen kunnen doorgaans genegeerd worden, maar fouten zijn bugs die er meestal toe leiden dat ACPI niet correct werkt. Om ASL te hercompileren: @@ -3217,18 +3215,18 @@ hw.acpi.s4bios: 0 ASL - 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; + 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 + 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 + 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 @@ -3236,16 +3234,16 @@ hw.acpi.s4bios: 0 oplossing en om te helpen met het in kaart brengen van bepaald 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. + &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. ACPI - error messages + foutmeldingen Hieronder staat een lijst algemene foutmeldingen, hun @@ -3258,45 +3256,45 @@ hw.acpi.s4bios: 0 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 + hw.acpi.osname="Windows 2001" in te stellen + in /boot/loader.conf of andere gelijksoortige strings die in een ASL staan. - Ontbrekende return opdrachten + Ontbrekende return-opdrachten 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. 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. + expliciete 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. De standaard <acronym>AML</acronym> aanpassen Nadat eigen.asl aangepast is, kan - deze als volgt gecompileerd wordent: + deze als volgt gecompileerd worden: &prompt.root; iasl eigen.asl 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 + return-opdrachten) worden automatisch opgelost door de interpreter. - DSDT.aml is de standaardnaam voor - het bestand dat door iasl wordt - geproduceerd. Dit is in plaats van de foutieve versie uit - het BIOS (die nog steeds - aanwezig is in het flashgeneugen) te laden door + DSDT.aml is de standaardnaam voor het + bestand dat door iasl wordt 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: @@ -3309,8 +3307,7 @@ acpi_dsdt_name="/boot/DSDT.aml" - Debuguitvoer van <acronym>ACPI</acronym> - verkrijgen + Debuguitvoer van <acronym>ACPI</acronym> verkrijgen ACPI @@ -3325,12 +3322,12 @@ acpi_dsdt_name="/boot/DSDT.aml" Het stuurprogramma ACPI heeft een zeer - flexibele debugfaciliteit. Er kan zowel een set van + flexibele debugfaciliteit. Er kan zowel een verzameling 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-CA-componenten (ACPI_ALL_COMPONENTS) en + ACPI-hardware-ondersteuning (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 @@ -3339,18 +3336,18 @@ acpi_dsdt_name="/boot/DSDT.aml" 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;. + Een complete lijst van de individuele lagen en niveaus staat in + &man.acpi.4;. - Debuguitvoer staat staandaard niet aan. Door + Debuguitvoer staat standaard 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 + gebruikt (de normale situatie), dan hoeft slechts de module + acpi.ko opnieuw gecompileerd te worden: &prompt.root; cd /sys/modules/acpi/acpi @@ -3359,12 +3356,12 @@ 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 + 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 + ACPI-CA-componenten en alle + ACPI-hardware-stuurprogramma's (CPU, LID, enzovoort. Het niveau van uitvoerigheid is het laagst mogelijke. Er worden alleen fouten gemeld. @@ -3373,14 +3370,14 @@ make ACPI_DEBUG=1 debug.acpi.level="ACPI_LV_ERROR" 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. + 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.