diff --git a/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
index f496e3d438..80bb9e3333 100644
--- a/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
@@ -1,3407 +1,3407 @@
JimMockGeherstructureerd, gereorganiseerd en delen bijgewerkt door JordanHubbardOrigineel door Poul-HenningKampJohnPolstraNikClaytonRemkoLodderVertaald door SiebrandMazelandRenéLadan&os; updaten en upgradenOverzicht&os; wordt ontwikkeld tussen de verschillende versies in.
Sommige mensen prefereren om de officieel uitgegeven versies te
draaien, terwijl anderen gesynchroniseerd willen blijven met de
nieuwste ontwikkelingen. Zelfs officiële uitgaven echter
worden vaak bijgewerkt met veiligheids- en andere kritieke
reparaties. Ongeacht de gebruikte versie biedt &os; alle
noodzakelijke gereedschappen om uw systeem bijgewerkt te houden,
en maakt het het upgraden tussen versies ook gemakkelijk. Dit
hoofdstuk helpt om een keuze te maken of het wenselijk is het
ontwikkelsysteem te volgen of één van de uitgegeven
versies. De basisgereedschappen om uw systeem bijgewerkt te
houden worden ook gepresenteerd.Na het lezen van dit hoofdstuk weet de lezer:Welke gereedschappen gebruikt kunnen worden om het systeem
en de Portscollectie te updaten.Hoe een systeem bijgewerkt kan worden met
freebsd-update,
CVSup,
CVS of
CTM;Hoe de toestand van een geïnstalleerd systeem met een
bekende maagdelijke kopie te vergelijken.Hoe uw documentatie bijgewerkt te houden met
CVSup of documentatie-ports.De verschillen tussen de ontwikkeltakken &os.stable; en
&os.current;;Hoe een basissysteem opnieuw te compileren en
te herinstalleren met make buildworld,
enzovoort.Veronderstelde criteria:Een juist ingesteld netwerk ();Weten hoe software van derden te installeren ().Door dit hoofdstuk heen wordt cvsup
gebruikt om de broncode van &os; te verkrijgen en bij te werken.
Om het te gebruiken, dient u een port of pakket als net/cvsup-without-gui te
installeren. Als u &os; 6.2-RELEASE of nieuwer gebruikt,
kunt u dit vervangen door &man.csup.1; welke nu deel uitmaakt
van het basissysteem.TomRhodesGeschreven door ColinPercivalGebaseerd op notities aangeleverd door &os; Updateupdaten en upgradenfreebsd-updateupdating-upgradingHet toepassen van beveiligingspatches is een belangrijk
onderdeel van het beheren van computersoftware, met name het
besturingssysteem. Dit was voor een lange tijd geen gemakkelijk
proces op &os;. Er moesten patches op de broncode worden
toegepast, de code moest herbouwd worden tot binairen, en daarna
moesten de binairen worden geherinstalleerd.Dit is niet langer het geval aangezien &os; nu een gereedschap
heeft dat eenvoudigweg freebsd-update heet.
Dit gereedschap biedt twee gescheiden functies. Ten eerste
voorziet het in het toepassen van binaire beveiligings- en
errata-updates op het basissysteem van &os; zonder de eis om te
bouwen en te installeren. Ten tweede ondersteunt het gereedschap
kleine en grote uitgave-upgrades.Binaire updates zijn beschikbaar voor alle architecturen en
uitgaven die momenteel door het beveiligingsteam worden
ondersteund; voor sommige eigenschappen, zoals de upgrades van
het besturingssysteem &os;, zijn de laatste uitgave van
&man.freebsd-update.8; en &os; 6.3 nodig. Voordat naar
een nieuwe uitgave wordt ge-updated, dienen de huidige
uitgaveaankondigingen gelezen te worden aangezien ze belangrijke
informatie over de gewenste uitgave kunnen bevatten. De
aankondigingen kunnen op de volgende koppeling bekeken worden:
.Als er een crontab bestaat die de
mogelijkheden van freebsd-update gebruikt, moet
het uitgeschakeld worden voordat aan de volgende operatie wordt
begonnen.Het configuratiebestandSommige gebruikers willen het configuratiebestand
optimaliseren, waardoor het proces beter gecontroleerd kan
worden. De opties zijn goed gedocumenteerd, maar voor de
volgenden is wat extra uitleg nodig:# Componenten van het basissysteem die bijgewerkt moeten blijven
Components src world kernelDeze parameter bepaalt welke delen van &os; bijgewerkt
blijven. Standaard wordt de broncode bijgewerkt, het hele
basissysteem, en de kernel. Dezelfde componenten als tijdens de
installatie zijn beschikbaar, het toevoegen van bijvoorbeeld
"world/games" zou de spelpatches toepassen. Het gebruik van
"src/bin" zou de broncode in src/bin bijgewerkt houden.Het beste kan dit op de standaardwaarde blijven aangezien
het veranderen hiervan om specifieke items te bevatten de
gebruiker dwingt om alle items die bijgewerkt dienen te worden
op te noemen. Dit kan rampzalige gevolgen hebben aangezien de
broncode en de binairen asynchroon kunnen raken.# Paden die beginnen met iets wat overeenkomt met een regel in een IgnorePaths
# statement zullen genegeerd worden.
IgnorePathsVoeg paden, zoals
/bin of
/sbin toe om deze
specifieke mappen ongemoeid te laten tijdens het updateproces.
Deze optie kan gebruikt worden om te voorkomen dat
freebsd-update lokale wijzigingen
overschrijft.# Paden die beginnen met iets wat overeenkomt met een regel in een UpdateIfUnmodified
# statement zullen alleen worden bijgewerkt als de inhoud van het bestand niet is
# gewijzigd door de gebruiker (tenzij veranderingen zijn samengevoegd; zie beneden).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profileWerk configuratiebestanden in de aangegeven mappen alleen
bij als ze niet zijn gewijzigd. Alle veranderingen die door de
gebruiker zijn gemaakt maken het automatisch bijwerken van deze
bestanden ongeldig. Er is een andere optie,
KeepModifiedMetadata, die
freebsd-update instrueert om de veranderingen
tijdens het samenvoegen te bewaren.# Wanneer naar een nieuwe uitgave van &os; wordt ge-upgraded, worden lokale veranderingen van bestanden die overeenkomen met MergeChanges
# samengevoegd in de versie van de nieuwe uitgave.
MergeChanges /etc/ /var/named/etc/Lijst van mappen met instellingenbestanden waar
freebsd-update moet proberen om in samen te
voegen. Het proces van bestanden samenvoegen is een serie
van &man.diff.1;-patches die ongeveer gelijk is aan
&man.mergemaster.8; met minder opties, de samenvoegingen worden
ofwel geaccepteerd, of openen een tekstverwerker, of zorgen
ervoor dat freebsd-update afbreekt. Maak in
geval van twijfel een reservekopie van /etc en accepteer de
samenvoegingen. In staat meer
informatie over het commando mergemaster.# Map waarin de gedownloade updates en tijdelijke
bestanden
# die door een &os; Update worden gebruikt worden worden opgeslagen.
# WorkDir /var/db/freebsd-updateDit is de map waarin alle patches en tijdelijke bestanden
worden geplaatst. In het geval dat de gebruiker een
versie-upgrade uitvoert, dient deze locatie tenminste een
gigabyte aan vrije schijfruimte te hebben.# Wanneer tussen uitgaven wordt ge-upgraded, dient de lijst van Componenten dan
# strikt gelezen te worden (StrictComponents yes) of slechts als een lijst van componenten
# die geïnstalleerd *kunnen* worden en waarvan &os; Update uit dient te zoeken
# welke daadwerkelijk zijn geïnstalleerd en die te upgraden (StrictComponents no)?
# StrictComponents noWanneer ingesteld op yes, zal
freebsd-update aannemen dat de lijst
Components compleet is en zal het niet
proberen om wijzigingen buiten de lijst te maken. Effectief zal
freebsd-update proberen om elk bestand bij te
werken dat op de lijst Components staat.BeveiligingspatchesBeveiligingspatches staan op een verre machine en kunnen met
het volgende commando gedownload en geïnstalleerd
worden:&prompt.root; freebsd-update fetch
&prompt.root; freebsd-update installAls er kernelpatches zijn toegepast moet het systeem opnieuw
opgestart worden. Als alles goed is gegaan dient het systeem
gepatcht te zijn en kan freebsd-update als
een nachtelijke &man.cron.8;-taak gedraaid worden. Een regel
in /etc/crontab zou genoeg moeten zijn om
deze taak te volbrengen:@daily root freebsd-update cronDeze regel verklaart dat eenmaal per dag het commando
freebsd-update gedraaid zal worden. Op deze
manier, door het argument te gebruiken,
zal freebsd-update alleen kijken of er
updates bestaan. Als er patches bestaan, zullen ze automatisch
worden gedownload naar de plaatselijke schijf maar niet worden
toegepast. Er zal een email aan de gebruiker
root worden verstuurd zodat ze handmatig
geïnstalleerd kunnen worden.Als er iets misging, heeft freebsd-update
de mogelijkheid om de laatste verzamelingen veranderingen terug
te draaien met het volgende commando:&prompt.root; freebsd-update rollbackEenmaal voltooid, dient het systeem herstart te worden als
de kernel of enige kernelmodule is gewijzigd. Dit stelt &os; in
staat om de nieuwe binairen in het geheugen te laden.Het gereedschap freebsd-update kan alleen
de kernel GENERIC automatisch bijwerken. Als
een eigen kernel wordt gebruikt, moet het herbouwd en
geherinstalleerd worden nadat freebsd-update
klaar is met het installeren de rest van de updates.
freebsd-update zal echter de kernel
GENERIC in /boot/GENERIC detecteren en
bijwerken (als het bestaat), zelfs als het niet de huidige
(draaiende) kernel van het systeem is.Het is een goed idee om altijd een kopie van de kernel
GENERIC in /boot/GENERIC te bewaren. Het
kan van pas komen bij het vaststellen van een keur aan
problemen, en bij het uitvoeren van versie-upgrades met
freebsd-update zoals beschreven in
.Tenzij de standaardconfiguratie in
/etc/freebsd-update.conf is gewijzigd, zal
freebsd-update de bijgewerkte kernelbronnen
samen met de rest van de updates installeren. Het herbouwen en
herinstalleren van uw nieuwe eigen kernel kan daarna op de
gebruikelijke manier gedaan worden.De updates die via freebsd-update
verspreid worden hebben niet altijd betrekking op de kernel.
Het is niet nodig om uw eigen kernel te herbouwen als de
kernelbronnen niet zijn aangepast door het uitvoeren van
freebsd-update install.
freebsd-update install zal echter altijd
het bestand /usr/src/sys/conf/newvers.sh
bijwerken. Het huidige patchniveau (zoals aangegeven door het
-p-nummer gerapporteerd door uname
-r) wordt uit dit bestand gehaald. Het herbouwen
van uw eigen kernel, zelfs als er niets veranderd is, stelt
&man.uname.1; in staat om het huidige patchniveau van het
systeem accuraat te rapporteren. Dit is in het bijzonder
behulpzaam wanneer meerdere systemen onderhouden worden,
aangezien hierdoor snel de geïnstalleerde updates op elk
ervan kunnen worden nagegaan.Grote en kleine upgradesDit proces ruimt oude objectbestanden en bibliotheken op
waardoor de meeste applicaties van derde partijen kapot gaan.
Het wordt aangeraden dat alle geïnstalleerde poorten ofwel
verwijderd en geherinstalleerd worden of later ge-upgraded
worden met het hulpmiddel ports-mgmt/portupgrade. De meeste
gebruikers zullen willen proefdraaien met het volgende
commando:&prompt.root; portupgrade -afDit zorgt ervoor dat alles juist wordt geherinstalleerd.
Merk op dat het instellen van de omgevingsvariabele
BATCH op yes het antwoord
yes zal geven op alle prompts tijdens dit
proces, waardoor het niet nodig is om handmatig in het
bouwproces in te grijpen.Als een eigen kernel wordt gebruikt, is het upgradeproces
iets ingewikkelder. Een kopie van de kernel
GENERIC is nodig en dient in /boot/GENERIC geplaatst te
worden. Als de kernel GENERIC niet reeds op
het systeem aanwezig is, moet het met één van de
volgende methoden verkregen worden:Als er slechts eenmaal een eigen kernel is gebouwd, dan
is de kernel in /boot/kernel.old eigenlijk de
GENERIC. Hernoem deze map naar /boot/GENERIC.Aannemende dat fysieke toegang tot de machine mogelijk
is, kan een kopie van de kernel GENERIC
van het CD-ROM-medium worden geïnstalleerd. Laad de
installatieschijf en geef de volgende commando's:&prompt.root; mount /cdrom
&prompt.root; cd /cdrom/X.Y-RELEASE/kernels
&prompt.root; ./install.sh GENERICVervang X.Y-RELEASE
met de versie van de uitgave die u gebruikt. De kernel
GENERIC zal standaard in /boot/GENERIC worden
geïnstalleerd.Als al het bovenstaande niet lukt, kan de kernel
GENERIC herbouwd en geherinstalleerd
worden vanaf de broncode:&prompt.root; cd /usr/src
&prompt.root; env DESTDIR=/boot/GENERIC make kernel
&prompt.root; mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
&prompt.root; rm -rf /boot/GENERIC/bootOm deze kernel door freebsd-update
als GENERIC te laten herkennen, mag het
configuratiebestand voor GENERIC niet op
enige wijze veranderd zijn. Het is ook aan te raden dat het
zonder andere speciale opties wordt gebouwd (bij voorkeur
met een leeg /etc/make.conf).Opnieuw opstarten naar de kernel GENERIC
is in dit stadium niet nodig.Updates van grote en kleine versies kunnen worden uitgevoerd
door een uitgaveversie als doel aan
freebsd-update op te geven, het volgende
commando zal bijvoorbeeld updaten naar &os; 6.4:&prompt.root; freebsd-update -r 6.4-RELEASE upgradeNadat het commando is ontvangen, zal
freebsd-update het instellingenbestand en het
huidige systeem evalueren in een poging om de benodigde
informatie te verzamelen om het systeem te updaten. Een lijst
op het scherm zal aangeven welke componenten zijn gedetecteerd
en welke niet. Bijvoorbeeld:Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 6.3-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? yNu zal freebsd-update proberen om alle
bestanden die nodig zijn voor de upgrade te downloaden. In
sommige gevallen kan de gebruiker worden gevraagd wat te
installeren of hoe verder te gaan.Wanneer een eigen kernel wordt gebruikt, zal de bovenstaande
stap een waarschuwing geven die lijkt op de volgende:WARNING: This system is running a "MIJNKERNEL" kernel, which is not a
kernel configuration distributed as part of FreeBSD 6.3-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"Deze waarschuwing kan op dit moment veilig worden
genegeerd. De bijgewerkte kernel GENERIC
zal als tussenliggende stap in het upgradeproces worden
gebruikt.Nadat alle patches zijn gedownload naar het plaatselijke
systeem zullen ze worden toegepast. Dit proces kan afhankelijk
van de snelheid en werklast van de machine even duren. Hierna
zullen instellingenbestanden worden samengevoegd —
voor dit gedeelte van het proces is enige tussenkomst van de
gebruiker nodig aangezien een bestand kan worden samengevoegd of
omdat er een tekstverwerker op het scherm kan verschijnen om het
bestand handmatig samen te voegen. Het resultaat van elke
succesvolle samenvoeging zal aan de gebruiker worden getoond
naarmate het proces verder gaat. Een mislukte of genegeerde
samenvoegpoging zal het proces afbreken. Het is mogelijk voor
gebruikers om een reservekopie van /etc te maken en belangrijke
bestanden, zoals master.passwd of
group, later samen te voegen.Het systeem is nog niet veranderd, al het patchen en
samenvoegen gebeurt in een andere map. Wanneer alle patches
succesvol zijn toegepast, alle instellingenbestanden zijn
samengevoegd en het erop lijkt dat het proces soepel verloopt,
dienen de veranderingen verzegeld te worden door de
gebruiker.Als dit proces eenmaal voltooid is, kan de upgrade aan de
schijf toevertrouwd worden met het volgende commando.&prompt.root; freebsd-update installDe kernel en kernelmodules zullen als eerste gepatcht
worden. Nu moet de machine opnieuw opgestart worden. Als het
systeem een eigen kernel draaide, gebruik dan het commando
&man.nextboot.8; om de kernel voor de volgende keer dat
opgestart wordt in te stellen op /boot/GENERIC (welke is
bijgewerkt):&prompt.root; nextboot -k GENERICVoordat er met de kernel GENERIC wordt
opgestart, dient te worden gecontroleerd dat het alle
stuurprogramma's bevat om uw systeem juist te laten opstarten
(en met het netwerk te verbinden, als de machine die
bijgewerkt wordt van afstand wordt benaderd). In het
bijzonder, als de vorige kernel die draaide ingebouwde
functionaliteit bevatte die normaalgesproken door
kernelmodules wordt geleverd, zorg er dan voor dat deze
modules tijdelijk in de kernel GENERIC
worden geladen door de faciliteit
/boot/loader.conf te gebruiken. U kunt
er ook voor kiezen om niet-essentiële diensten, schijf-
en netwerkkoppelingen, enzovoorts uit te zetten totdat het
upgradeproces voltooid is.De machine dient nu te worden herstart met de bijgewerkte
kernel:&prompt.root; shutdown -r nowAls het systeem weer actief is, moet
freebsd-update nogmaals gestart worden.
De toestand van het proces is opgeslagen en dus zal
freebsd-update niet vooraan beginnen, maar
zal het alle oude gedeelde bibliotheken en objectbestanden
verwijderen. Geef het volgende commando om verder te gaan op
dit punt:&prompt.root; freebsd-update installAfhankelijk van het feit of er versienummers van
bibliotheken zijn opgehoogd, kunnen er slechts twee in plaats
van drie installatiefasen zijn.Alle software van derde partijen dient nu opnieuw gebouwd en
geïnstalleerd te worden. Dit is nodig omdat
geïnstalleerde software van bibliotheken afhankelijk kan
zijn die tijdens het upgradeproces zijn verwijderd. Het
commando ports-mgmt/portupgrade kan gebruikt
worden om dit proces te automatiseren. Dit proces kan met de
volgende commando's gestart worden:&prompt.root; portupgrade -f ruby
&prompt.root; rm /var/db/pkg/pkgdb.db
&prompt.root; portupgrade -f ruby18-bdb
&prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
&prompt.root; portupgrade -afVoltooi, nadat dit voltooid is, het upgradeproces met een
laatste aanroep naar freebsd-update. Geef
het volgende commando om alle losse eindjes in het upgradeproces
samen te knopen:&prompt.root; freebsd-update installAls de kernel GENERIC tijdelijk werd
gebruikt, is dit het moment om een nieuwe eigen kernel op de
gebruikelijke manier te bouwen en installeren.Start de machine opnieuw op in de nieuwe &os;-versie. Het
proces is voltooid.Het vergelijken van systeemtoestandenHet gereedschap freebsd-update kan
gebruikt worden om de toestand van de geïnstalleerde versie
van &os; met een bekende goede kopie te vergelijken. Deze optie
evalueert de huidige versie van systeemgereedschappen,
bibliotheken, en instellingenbestanden. Geef het volgende
commando om met de vergelijking te beginnen:&prompt.root; freebsd-update IDS >> uitvoerbestand.idsHoewel de commandonaam IDS is, is het
in geen geval een vervanging voor een indringdetectiesysteem
zoals security/snort.
Aangezien freebsd-update gegevens op schijf
opslaat, is de mogelijkheid om te knoeien duidelijk. Hoewel
deze mogelijkheid verminderd kan worden door de instelling
kern.securelevel te gebruiken en de
gegevens van freebsd-update op een
bestandssysteem dat alleen gelezen kan worden op te slaan
wanneer deze niet gebruikt worden, zou een betere oplossing
zijn om het systeem met een veilige schijf te vergelijken,
zoals een DVD of een veilig opgeslagen
externe USB-schijf.Het systeem zal nu geïnspecteerd worden, en er zal een
lijst van hun &man.sha256.1;-hashwaarden, zowel de bekende
waarde in de uitgave en de huidige geïnstalleerde waarde,
afgebeeld worden. Hierom wordt de uitvoer naar het bestand
uitvoerbestand.ids gezonden. Het scrollt
te snel voorbij om het met het oog te vergelijken, en het vult
al snel de gehele consolebuffer op.Deze regels zijn ook extreem lang, maar het uitvoerformaat
kan vrij eenvoudig geparsed worden. Geef, om bijvoorbeeld een
lijst van alle bestanden te krijgen die verschillen van die in
de uitgave, het volgende commando:&prompt.root; cat uitvoerbestand.ids | awk '{ print $1 }' | more
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.confDeze uitvoer is afgekapt, er bestaan veel meer bestanden.
Sommige van deze bestanden hebben natuurlijke veranderingen, het
/etc/passwd is gewijzigd omdat er
gebruikers aan het systeem zijn toegevoegd. In sommige gevallen
kunnen er andere bestanden zijn, zoals kernelmodules, die
verschillen aangezien freebsd-update ze
ge-updated kan hebben. Voeg, om bepaalde bestanden of mappen
uit te sluiten, deze toe aan de optie
IDSIgnorePaths in
/etc/freebsd-update.conf.Dit systeem kan gebruikt worden als deel van een uitgebreide
upgrademethode, afgezien van de eerder besproken versie.TomRhodesGeschreven door ColinPercivalGebaseerd op notities geleverd door Portsnap: een updategereedschap voor de Portscollectieupdaten en upgradenPortsnapupdaten en upgradenHet basissysteem van &os; bevat ook een gereedschap om de
Portscollectie bij te werken: het hulpmiddel &man.portsnap.8;.
Wanneer het wordt uitgevoerd, zal het een verbinding maken met een
verre site, de veilige sleutel controleren, en een nieuwe kopie
van de Portscollectie downloaden. De sleutel wordt gebruikt om de
integriteit van alle gedownloade bestanden te controleren, om er
zeker van te zijn dat ze niet tijdens het downloaden zijn
gewijzigd. Geef het volgende commando om de nieuwste versie van
de bestanden van de Portscollectie te downloaden:&prompt.root; portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 3 metadata files... done.
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
Applying patches... done.
Fetching 133 new ports or files... done.Dit voorbeeld laat zien dat &man.portsnap.8; verscheidene
patches heeft gevonden en deze met de huidige portsgegevens heeft
gecontroleerd. Het geeft ook aan dat het gereedschap eerder is
gedraaid, als het voor de eerste keer was gedraaid, had het
simpelweg de collectie gedownload.Wanneer &man.portsnap.8; succesvol een
fetch-operatie afrondt, bestaan de
Portscollectie en de vervolgpatches die de verificatie doorstaan
hebben op het plaatselijke systeem. De bijgewerkte bestanden
kunnen geïnstalleerd worden door het volgende te
typen:&prompt.root; portsnap extract
/usr/ports/.cvsignore
/usr/ports/CHANGES
/usr/ports/COPYRIGHT
/usr/ports/GIDs
/usr/ports/KNOBS
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/Makefile
/usr/ports/Mk/bsd.apache.mk
/usr/ports/Mk/bsd.autotools.mk
/usr/ports/Mk/bsd.cmake.mk
...Het proces is nu compleet, en applicaties kunnen met de
bijgewerkte Portscollectie worden geïnstalleerd of worden
bijgewerkt.Geef het volgende commando om de twee processen achter elkaar
te draaien:&prompt.root; portsnap fetch updateDe documentatie bijwerkenupdaten en upgradendocumentatieupdaten en upgradenNaast het basissysteem en de Portscollectie is documentatie
een integraal onderdeel van het besturingssysteem &os;. Hoewel
een actuele versie van de &os;-documentatie altijd beschikbaar is
op de &os; website, hebben
sommige gebruikers een langzame of helemaal geen permanente
netwerkverbinding. Gelukkig zijn er verschillende manieren om de
documentatie die bij elke uitgave wordt geleverd bij te werken
door een lokale kopie van de nieuwste &os;-documentatie bij te
houden.CVSup gebruiken om de documentatie bij te werkenDe bronnen en de geïnstalleerde kopie van de
&os;-documentatie kunnen met CVSup
worden bijgewerkt, waarbij een mechanisme wordt gebruikt dat
lijkt op degene die voor de broncode van het basissysteem wordt
gebruikt (c.f. ). Deze sectie
beschrijft:Hoe de documentatiegereedschappen, de gereedschappen die
nodig zijn om de &os;-documentatie vanuit de broncode te
herbouwen, te installeren.Hoe een kopie van de documentatiebronnen in /usr/doc te downloaden door
CVSup te gebruiken.Hoe de &os;-documentatie vanuit de broncode te herbouwen
en onder /usr/share/doc te
installeren.Sommige bouwopties die door het bouwsysteem van de
documentatie ondersteund worden, i.e. de opties die slechts
enkele van de verschillende vertalingen van de documentatie
bouwen of de opties die een specifiek uitvoerformaat
selecteren.CVSup en de documentatiegereedschappen installerenVoor het herbouwen van de &os;-documentatie vanuit de
broncode is een aardig grote verzameling gereedschappen nodig.
Deze gereedschappen zijn geen deel van het basissysteem van &os;
omdat ze een grote hoeveelheid schijfruimte nodig hebben en niet
voor alle &os;-gebruikers nuttig zijn; ze zijn alleen nuttig
voor die gebruikers die actief nieuwe documentatie voor &os;
schrijven of regelmatig hun documentatie vanuit de broncode
bijwerken.Alle benodigde gereedschappen zijn beschikbaar als deel van
de Portscollectie. De port textproc/docproj is een meester-port
die door het &os; Documentatieproject is ontwikkeld om de
installatie en toekomstige updates van deze gereedschappen
makkelijker te maken.Wanneer er geen &postscript;- of PDF-documentatie nodig
is, kan men overwegen om in plaats hiervan de port textproc/docproj-nojadetex te
installeren. Deze versie van de documentatiegereedschappen
bevat alles behalve de typesetting-engine
teTeX.
teTeX is een erg grote verzameling
van gereedschappen, dus kan het zinvol zijn om de installatie
ervan achterwege te laten als PDF-uitvoer niet echt nodig
is.Bekijk CVSup gebruiken voor
meer informatie over het installeren en gebruiken van
CVSup.De documentatiebroncode bijwerkenHet hulpmiddel CVSup kan een
schone kopie van de documentatiebroncode ophalen, door het
bestand
/usr/share/examples/cvsup/doc-supfile
als een configuratiesjabloon te gebruiken. Voor de standaard
update-host is in doc-supfile een nog in te
vullen waarde ingevuld, maar &man.cvsup.1; accepteert een
hostnaam via de opdrachtregel, dus kan de documentatiebroncode
van een van de CVSup-servers worden
opgehaald door het volgende te typen:&prompt.root; cvsup -h cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfileVerander cvsup.FreeBSD.org in de
dichtstbijzijnde CVSup-server. Zie
voor een complete lijst van
spiegelsites.De initiële download van de documentatiebroncode kan
een tijd duren. Laat het draaien totdat het voltooid is.Toekomstige updates van de documentatiebroncode kunnen
opgehaald worden door hetzelfde commando te draaien. Het
hulpmiddel CVSup downloadt en
kopieert alleen de updates sinds de laatste keer dat het
gedraaid werd, dus zou elke keer dat
CVSup gedraaid wordt na de eerste
complete keer redelijk snel moeten zijn.Nadat de broncode is uitgecheckt, wordt een alternatieve
manier om de documentatie bij te werken ondersteund door
Makefile van de map /usr/doc. Door
SUP_UPDATE, SUP_HOST, en
DOCSUPFILE in het bestand
/etc/make.conf in te stellen, is het
mogelijk om dit te draaien:&prompt.root; cd /usr/doc
&prompt.root; make updateEen typische verzameling van deze &man.make.1;-opties voor
/etc/make.conf is:SUP_UPDATE= yes
SUPHOST?= cvsup.FreeBSD.org
DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfileHet instellen van de waardes SUPHOST en
DOCSUPFILE met ?= staat
toe dat ze in de opdrachtregel van make overschreven worden.
Dit is de aangeraden manier om opties aan
/etc/make.conf toe te voegen, om te
voorkomen dat het bestand telkens wanneer er een andere waarde
van de optie getest moet worden bewerkt moet worden.Instelbare opties van de documentatiebroncodeHet bijwerk- en bouwsysteem van de &os;-documentatie
ondersteunt enkele opties die het proces om de documentatie
alleen gedeeltelijk bij te werken, of om specifieke vertalingen
te bouwen, makkelijker maken. Deze opties kunnen of als
systeemwijde opties in het bestand
/etc/make.conf worden ingesteld, of als
opdrachtregelopties aan het hulpmiddel &man.make.1; worden
doorgegeven.De volgende opties zijn er enkelen van:DOC_LANGDe lijst van te bouwen en te installeren talen en
coderingen, bijvoorbeeld
en_US.ISO8859-1 voor alleen de Engelse
documentatie.FORMATSEen enkel formaat of een lijst van uitvoerformaten die
gebouwd moeten worden. Momenteel worden
html, html-split,
txt, ps,
pdf, en rtf
ondersteund.SUPHOSTDe hostnaam van de CVSup
server die gebruikt wordt tijdens het bijwerken.DOCDIRWaar de documentatie te installeren. Dit staat
standaard op /usr/share/doc.Bekijk &man.make.conf.5; voor meer make-variabelen die als
systeemwijde opties in &os; worden ondersteund.Voor meer make-variabelen die die door het bouwsysteem van
de &os;-documentatie ondersteund worden, wordt naar het &os; Documentation
Project Primer for New Contributors verwezen.De &os;-documentatie vanuit de broncode installerenWanneer er een actueel snapshot van de documentatiebroncode
is opgehaald in /usr/doc,
is alles gereed om de geïnstalleerde documentatie bij te
werken.Het volledig bijwerken van alle talen die in de
Makefile-optie DOC_LANG zijn gedefinieerd kan
worden gedaan door te typen:&prompt.root; cd /usr/doc
&prompt.root; make install cleanAls make.conf is ingesteld met de
juiste opties voor DOCSUPFILE,
SUPHOST, en SUP_UPDATE,
dan kan de installatiestap worden gecombineerd met het bijwerken
van de documentatiebroncode door te typen:&prompt.root; cd /usr/doc
&prompt.root; make update install cleanAls alleen het bijwerken van een specifieke taal gewenst is,
dan kan &man.make.1; worden aangeroepen in een taalspecifieke
submap van /usr/doc,
i.e.:&prompt.root; cd /usr/doc/en_US.ISO8859-1
&prompt.root; make update install cleanDe te installeren uitvoerformaten kunnen worden
gespecificeerd door de make-variabele FORMATS
in te stellen, i.e.:&prompt.root; cd /usr/doc
&prompt.root; make FORMATS='html html-split' install cleanMarcFonvieilleGebaseerd op het werk van Documentatieports gebruikenUpdaten en upgradendocumentatiepakketUpdaten en upgradenIn de vorige sectie werd er een methode voor het bijwerken
van de &os;-documentatie vanaf de broncode gepresenteerd. Het
bijwerken gebaseerd op broncode is echter niet voor alle
&os;-systemen haalbaar of praktisch. Voor het bouwen van de
documentatiebronnen zijn een redelijk grote verzameling van
gereedschappen, de documentatie
gereedschapskist, een bepaald niveau van bekendheid
met CVS en checkouts van broncode
vanuit een reservoir nodig, en een aantal handmatige stappen om
de uitgecheckte broncode te bouwen. In deze sectie wordt een
alternatieve manier beschreven om de geïnstalleerde
kopiën van de &os;-documentatie bij te werken; een die de
Ports Collectie gebruikt en het mogelijk maakt om:Voorgebouwde versies van de documentatie te downloaden
en te installeren, zonder iets lokaal te hoeven bouwen (op
deze manier wordt de noodzaak voor een installatie van de
gehele documentatie-gereedschapskist voorkomen).De documentatiebronnen te bouwen en ze via het
ports-raamwerk te bouwen (de stappen van het uitchecken en
bouwen worden iets eenvoudiger gemaakt).Deze twee methoden om de &os;-documentatie bij te werken
worden ondersteund door een verzameling van
documentatie-ports die maandelijks door
het &a.doceng; worden bijgewerkt. Deze zijn vermeld in de &os;
Ports Collectie onder de virtuele categorie docs.Documentatie-ports bouwen en installerenDe documentatie-ports gebruiken het bouwraamwerk van de
ports om het bouwen van documentatie eenvoudiger te maken. Ze
automatiseren het proces van het uitchecken van de broncode
van de documentatie, het draaien van &man.make.1; met de
juiste omgevingsinstellingen en opdrachtregelopties, en ze
maken de installatie of deïnstallatie van documentatie
net zo eenvoudig als de installatie van elke andere &os;-port
of -pakket.Als een extra eigenschap registreren de
documentatie-ports, wanneer ze lokaal zijn gebouwd, een
afhankelijkheid naar de ports van de
documentatie-gereedschapskist, zodat
de laatste ook automatisch is geïnstalleerd.De organisatie van de documentatie-ports is als volgt:Er is een meester-port, misc/freebsd-doc-en, waar de
bestanden van de documentatie-ports gevonden kunnen worden.
Het is de basis van alle documentatie-ports. Standaard
bouwt het alleen de Engelstalige documentatie.Er is een alles-in-één
port, misc/freebsd-doc-all, en het
bouwt en installeert alle documentatie in alle beschikbare
talen.Ten slotte is er een slaaf-port voor
elke vertaling, b.v. misc/freebsd-doc-hu voor de
documenten in het Hongaars. Ze zijn allemaal afhankelijk
van de meester-port en installeren de vertaalde
documentatie van de respectievelijke taal.Gebruik de volgende commando's (als
root) om een documentatieport vanaf de
broncode te installeren:&prompt.root; cd /usr/ports/misc/freebsd-doc-en
&prompt.root; make install cleanDit zal de Engelstalige documentatie in gesplitst
HTML-formaat (hetzelfde als dat op wordt gebruikt) in de
map /usr/local/share/doc/freebsd
bouwen en installeren.Algemene knoppen en optiesEr zijn vele opties om het standaardgedrag van de
documentatie-ports aan te passen. Het volgende is slechts
een korte lijst:WITH_HTMLStaat bouwen van het HTML-formaat toe: een enkel
HTML-bestand per document. De opgemaakte documentatie
wordt naar gelang in een bestand genaamd
article.html, of
book.html, met afbeeldingen
opgeslagen.WITH_PDFStaat bouwen van het &adobe; Portable Document
Format toe, te gebruiken met &adobe; &acrobat.reader;,
Ghostscript, of andere
PDF-lezers. De opgemaakte documentatie wordt naar
gelang opgeslagen in een bestand genaamd
article.pdf of
book.pdf opgeslagen.DOCBASEWaar de documentatie te installeren. Standaard is
dit /usr/local/share/doc/freebsd.Merk op dat de standaard doelmap afwijkt van de
map die door de CVSup-methode
wordt gebruikt. Dit komt omdat er een port wordt
geïnstalleerd, en ports worden normaliter onder
de map /usr/local
geïnstalleerd. Dit kan veranderd worden door
de variabele PREFIX toe te
voegen.Hier is een kort voorbeeld over hoe de bovengenoemde
variabelen te gebruiken om de Hongaarse documentatie in
Portable Document Format te installeren:&prompt.root; cd /usr/ports/misc/freebsd-doc-hu
&prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install cleanDocumentatiepakketten gebruikenVoor het bouwen van de documentatie-ports vanaf broncode,
zoals beschreven in de vorige sectie, is een lokale
installatie van de documentatie-gereedschapskist en wat
schijfruimte voor het bouwen van de ports nodig. Wanneer de
bronnen voor het installeren van de documentatie-gereedschapskist
niet aanwezig zijn, of wanneer het bouwen vanaf broncode te
veel schijfruimte in beslag neemt, is het nog steeds mogelijk
om de vooraf gebouwde versies van de documentatie-ports te
installeren.Het &a.doceng; bereidt maandelijkse versies van de &os;
documentatiepakketten voor. Deze binaire pakketten kunnen met
elk van de meegeleverde pakketgereedschappen, zoals
&man.pkg.add.1;, &man.pkg.delete.1;, enzovoorts gebruikt
worden.Wanneer binaire pakketten worden gebruikt, zal de &os;
documentatie in alle beschikbare
formaten voor de gegeven taal geïnstalleerd worden.Het volgende commando bijvoorbeeld zal het nieuwste vooraf
gebouwde pakket van de Hongaarse documentatie installeren:&prompt.root; pkg_add -r hu-freebsd-docPakketten hebben het volgende naamformaat welke afwijkt
van de naam van de overeenkomstige port:
taal-freebsd-doc.
Hier is taal het korte formaat
van de taalcode, i.e. hu voor Hongaars,
of zh_cn voor Vereenvoudigd Chinees.Documentatieports bijwerkenVoor het bijwerken van een eerder geïnstalleerde
documentatieport is elk gereedschap voor het bijwerken van
ports geschikt. Het volgende commando bijvoorbeeld werkt de
geïnstalleerde Hongaarse documentatie bij via het
gereedschap ports-mgmt/portupgrade door alleen
pakketten te gebruiken:&prompt.root; portupgrade -PP hu-freebsd-docPavLucistnikGebaseerd op informatie geleverd door Docsnap gebruikenupdaten en upgradenDocsnapupdaten en upgradenDocscnap is een
&man.rsync.1;-reservoir voor het bijwerken van
geïnstalleerde &os;-documentatie op een relatief
gemakkelijke en snelle manier. Een
Docsnap server volgt
de documentatiebroncode en bouwt ze elk uur in HTML-formaat. De
port textproc/docproj is
niet nodig met Docsnap aangezien er
alleen patches voor de gebouwde documentatie bestaan.De enige benodigdheid om deze techniek te gebruiken is de
port of het pakket net/rsync. Gebruik het volgende
commando om het toe te voegen:&prompt.root; pkg_add -r rsyncDocsnap is eigenlijk ontwikkeld
om de documentatie die in /usr/share/doc is
geïnstalleerd bij te werken, maar de volgende voorbeelden
kunnen ook voor andere mappen worden gebruikt. Voor
gebruikersmappen heeft het geen
root-rechten nodig.Geef het volgende commando om de documentatie bij te
werken:&prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap /usr/share/docEr is momenteel slechts één
Docsnap-server; de bovengenoemde
host docsnap.sk.FreeBSD.org.Gebruik hier niet de vlag omdat er
tijdens make installworld wat dingen in
/usr/share/doc worden
geïnstalleerd, die dan per ongeluk verwijderd zouden
worden. Gebruik in plaats daarvan dit commando om op te
ruimen:&prompt.root; rsync -rltvz --delete docsnap.sk.FreeBSD.org::docsnap/??_??\.\* /usr/share/docHet volgende commando dient gebruikt te worden als er een
deelverzameling van de documentatie, bijvoorbeeld
alleen de Engelse documentatie, bijgewerkt moet worden:&prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap/en_US.ISO8859-1 /usr/share/doc
]]>
Een ontwikkelingstak volgen-CURRENT-STABLEEr zijn twee ontwikkeltakken voor &os;: &os.current; en
&os.stable;. Deze sectie licht beiden toe en beschrijft hoe een
systeem bijgewerkt te houden met elke tak. &os.current; wordt
eerst behandeld, daarna &os.stable;.Bijblijven met &os;Bedenk dat &os.current; het nieuwste van het
nieuwste is van &os; ontwikkeling. Van &os.current;
gebruikers wordt verwacht dat ze veel technische kennis hebben
en capabel zijn om zelfstandig lastige systeemproblemen op te
lossen. Nieuwe gebruikers van &os; kunnen het beste twee keer
nadenken alvorens het te installeren.Wat is &os.current;?momentopname&os.current; is de laatste werkende set broncode voor
&os;. Dit bevat werk in uitvoering, experimentele
wijzigingen en overgangsmechanismes die mogelijk wel of niet
meegenomen worden in de volgende officiële uitgave van
het besturingssysteem. Alhoewel veel &os;-ontwikkelaars de
broncode van &os.current; dagelijks compileren, zijn er
periodes dat de broncode niet compileerbaar is. Deze
problemen worden zo snel mogelijk gerepareerd, maar het is
mogelijk dat &os.current; een ramp veroorzaakt in plaats van
dat het de gewenste functionaliteit levert. Dit ligt geheel
aan het moment waarop de broncode is opgehaald.Wie heeft &os.current; nodig?&os.current; is beschikbaar voor drie primaire
aandachtsgroepen:Leden van de &os;-gemeenschap die actief werken aan
een deel van de broncode voor wie current
een echte eis is.Leden van de &os;-gemeenschap die actief testen en
tijd hebben om problemen op te lossen om zeker te stellen
dat &os.current; zo gezond als mogelijk is. Er zijn ook
mensen die actuele suggesties maken over wijzigingen
en de algemene richting van &os; en die patches
opsturen om deze te implementeren.Diegenen die alleen een oogje in het zeil willen
houden of de huidige bronnen gebruiken ter referentie
(bijvoorbeeld voor het lezen en
niet het draaien). Deze mensen geven ook regelmatig
commentaar of dragen bij in de code.Wat is &os.current; niet?Een snelle manier om pre-release versies te krijgen
omdat bekend is dat er een aantal leuke nieuwe
mogelijkheden in zitten en het leuk is deze als eerste te
gebruiken. Het als eerste gebruiken van nieuwe
mogelijkheden betekent ook de eerste zijn die nieuwe bugs
ontdekt.Een snelle manier om bugfixes te krijgen. Elke
willekeurige versie van &os.current; heeft waarschijnlijk
net zoveel nieuwe bugs als dat er bugs opgelost
zijn.Op welke manier dan ook
officieel ondersteund. We doen onze best
om mensen echt te helpen in één van de drie
legitieme &os.current; groepen maar er is
simpelweg niet genoeg tijd om
technische ondersteuning te leveren. Dit is niet omdat
we gemene en vervelende mensen zijn die anderen niet
willen helpen (we zouden niet eens aan &os; werken als
we dat durfden). De ontwikkelaars kunnen simpelweg geen
honderd berichten per dag beantwoorden
én aan &os; werken. Bij de
keuze tussen het verbeteren van &os; en vragen
beantwoorden over experimentele code, kiezen
ontwikkelaars voor het eerste.&os.current; gebruiken-CURRENTgebruikenNeem een abonnement op de mailinglijsten
&a.current.name; en &a.svn-src-head.name;. Dit is niet
alleen een goed idee, het is
essentieel. Geen berichten ontvangen
van de lijst &a.current.name;
betekent geen commentaar zien dat mensen maken over de
huidige staat van het systeem en dus waarschijnlijk
struikelen over problemen die anderen al gevonden en
opgelost hebben. Nog belangrijker is het missen van
belangrijke informatie die kritisch kan zijn voor een
systeem.De lijst &a.svn-src-head.name; biedt de mogelijkheid
de wijzigingsboodschap te zien voor elke wijziging die
gemaakt wordt, samen met relevante informatie over
mogelijke bijwerkingen.Ga om op deze lijsten of één van de
andere beschikbare lijsten te abonneren naar
&a.mailman.lists.link; en klik op de gewenste lijst.
Instructies over de rest van de procedure zijn daar
beschikbaar. Als u geïnteresseerd bent in het volgen
van veranderingen voor de gehele broncodeboom, raden wij u
aan een abonnement te nemen op de &a.svn-src-all.name;
lijst.Haal de broncode van een &os;
mirrorsite. Dit kan op
de volgende twee manieren:cvsupcron-CURRENTSynchroniseren met CVSupGebruik het programma cvsup met de
supfile genaamd
standard-supfile uit
/usr/share/examples/cvsup. Dit
is de geadviseerde methode, omdat de gehele collectie
in één keer wordt binnengehaald en
daarna alleen hetgeen wat gewijzigd is. Veel mensen
draaien cvsup vanuit de
cron en houden daarmee hun
broncode automatisch bijgewerkt. De voorbeeld
supfile dient aangepast te
worden om cvsup in te
stellen voor uw omgeving.Het voorbeeld
standard-supfile is bedoeld om
een specifieke beveiligingstak van &os; te volgen,
niet &os.current;. U moet dit bestand bewerken en
de volgende regel vervangen:*default release=cvs tag=RELENG_X_Ydoor deze:*default release=cvs tag=.Voor een gedetailleerde uitleg over bruikbare
tags wordt naar de sectie CVS Tags van het
Handboek verwezen.-CURRENTSynchroniseren met CTMGebruik de CTM faciliteit.
Bij een slechte verbinding, dure
connecties of alleen e-mail toegang, is
CTM een optie. Het werkt
echter lastig en geeft mogelijk corrupte bestanden.
Dit zorgt ervoor dat het zelden gebruikt wordt, dat
de kans verhoogt dat het niet werkt voor redelijk
lange periodes. Het advies is
CVSup te
gebruiken.Als de broncode wordt opgehaald om te draaien en niet
alleen om naar te kijken, haal dan
alles op van &os.current; en niet
alleen geselecteerde delen. De reden hiervoor is dat
verschillende delen van de code afhangen van updates
op andere plekken en het compileren van een onderdeel
gegarandeerd problemen oplevert.-CURRENTcompilerenVoordat &os.current; gecompileerd wordt is het
raadzaam om de Makefile in
/usr/src aandachtig te bekijken.
Het is handig om de eerste keer op zijn minst de kernel en de
wereld opnieuw te bouwen als
onderdeel van het updateproces. Via de
&a.current; en /usr/src/UPDATING is
het mogelijk op de hoogte te blijven van mogelijke
wijzigingen in de opstartprocedures die soms nodig zijn
tussen verschillende versies.Wees actief! Ervaringen van &os.current;-gebruikers
zijn belangrijk, zeker als het gaat om suggesties voor
verbeteringen of bugfixes. Suggesties met bijbehorende
code worden enthousiast ontvangen!&os; stabiel houdenWat is &os.stable;?-STABLE&os.stable; is de ontwikkeltak waaruit grote releases
gemaakt worden. Wijzigingen in deze tak gaan in een ander
tempo en met de algemene aanname dat ze eerst in &os.current;
worden ingebracht ter test. Dit is nog
steeds een ontwikkeltak, echter dit betekent dat
op elk gegeven moment de code voor &os.stable; wel of niet
geschikt is voor een speciaal doel. Het is simpelweg een
andere ontwikkelomgeving en geen bron voor
eindgebruikers.Wie heeft &os.stable; nodig?Bij interesse in het bijhouden van of bijdragen aan het
&os;-ontwikkelproces, speciaal als het gerelateerd is aan de
volgende versie van &os;, is het volgen van &os.stable; het
overwegen waard.Ondanks dat security fixes ook in de &os.stable;-tak
komen, hoeft dit niet per se. In elke
beveiligingswaarschuwing voor &os; wordt uitgelegd uit hoe
het probleem opgelost kan worden voor de release die het
betreft.
Dit is niet helemaal waar. Oude releases van &os;
kunnen niet eeuwig ondersteund worden, ook al duurt
ondersteuning vele jaren. Een volledige beschrijving van
het huidige beveiligingsbeleid voor oudere releases van
&os; staat op http://www.FreeBSD.org/security/.
Het volgen van de volledige ontwikkeltak alleen om
veiligheidsredenen levert ongetwijfeld ongewenste wijzigingen
op.Ondanks het voornemen ervoor te zorgen dat de
&os.stable;-tak compileert en altijd draait, wordt dit niet
gegarandeerd. Terwijl code ontwikkeld wordt in &os.current;
voordat die in &os.stable; verwerkt wordt, draaien meer
mensen &os.stable; dan &os.current;, dus het is onontkoombaar
dat bugs en randgevallen soms in &os.stable; gevonden worden
die niet in &os.current; bekend waren.Om deze redenen wordt niet
aangeraden &os.stable; blindelings te volgen en het is extra
belangrijk geen productieservers bij te werken naar
&os.stable; zonder de code te testen in een
testomgeving.Als de mogelijkheden om dit te doen niet beschikbaar
zijn, dan is het advies de meest recente release van &os; te
draaien en dan de binaire update methode te hanteren om bij
te werken tussen verschillende releases.&os.stable; gebruiken&os.stable;gebruikenNeem een abonnement op de lijst &a.stable.name;.
Deze biedt informatie over onderdelen van de build die
mogelijk verschijnen in &os.stable; of eventuele andere
kwesties die speciale aandacht vereisen. Ontwikkelaars
kondigen in deze mailinglijst ook aan wanneer ze
overwegen om een controversiële fix of aanpassing
willen maken, waardoor de gebruikers een kans hebben om
te reageren als ze goede redenen hebben tegen de
voorgestelde wijziging.Wordt lid van de relevante
SVN-lijst voor de tak die u
volgt. Als u bijvoorbeeld de tak 7-STABLE volgt, wordt u
lid van de &a.svn-src-stable-7.name; lijst. Dit stelt u
in staat om het commit-log-bericht te bekijken voor elke
verandering die is gemaakt, tezamen met relevante
informatie over mogelijke bijwerkingen.Ga om te abonneren op deze lijsten, of
één van de andere beschikbare lijsten
naar &a.mailman.lists.link; en klik op de lijst waarop
een abonnement gewenst is. Instructies over de rest van
de procedure zijn daar beschikbaar. Als u
geïnteresseerd bent in het volgen van veranderingen
voor de gehele broncodeboom, raden wij u aan een
abonnement te nemen op de &a.svn-src-all.name;
lijst.Kijk op de webpagina Snapshots om een
systeem te installeren van een maandelijkse snapshot
van &os.stable;. Het is ook mogelijk om de meest recente
&os.stable; release te installeren van de mirrorsites. Volg de
onderstaande instructies om een systeem bij te werken
naar de meest recente &os.stable; broncode.Als al een vorige release van &os; draait en
bijgewerkt moet worden via de broncodes dan kan dat via
de &os; mirrorsites. Dit
kan op één van de twee volgende
manieren:cvsupcron&os.stable;synchroniseren met CVSupGebruik het programma cvsup met de
supfilestable-supfile uit de map
/usr/share/examples/cvsup.
Dit is de aanbevolen methode omdat het hiermee
mogelijk is de volledige collectie te downloaden en
daarna alleen hetgeen wat veranderd is. Veel mensen
draaien cvsup vanuit de
cron om de broncodes automatisch
bij te werken. Het voorbeeld van de
supfile dient aangepast en
ingesteld te worden voor de omgeving waarin het
instellingenbestand gebruikt wordt.&os.stable;synchroniseren met CTMGebruik CTM als er geen
snelle, goedkope verbinding is met internet. Dan is
dit de methode om te gebruiken.Als er snelle on-demand toegang nodig is tot de
broncode en bandbreedte is geen overweging, gebruik dan
cvsup of ftp.
Gebruik anders CTM.&os.stable;compilerenLees alvorens &os.stable; te compileren goed de
Makefile in
/usr/src. Het is handig om de
eerste keer op zijn minst de
kernel en de wereld opnieuw te
bouwen als onderdeel van het updateproces. Via
de &a.stable; en /usr/src/UPDATING
is het mogelijk op de hoogte te blijven van mogelijke
wijzigingen in de opstartprocedures die soms nodig zijn
tussen verschillende releases.Broncode synchroniserenEr zijn verschillende manieren om een internet (of e-mail)
verbinding te gebruiken om bij te blijven met elk onderdeel van
de &os; projectbronnen of alle onderdelen, afhankelijk van
het interessegebied. De primaire diensten zijn Anonieme CVS en
CTM.Ondanks dat het mogelijk is om alleen delen van de
broncode bij te werken, is de enige ondersteunde methode
de totale broncode bijwerken en zowel userland (alle
programma's die in gebruikersruimte draaien, zoals
programma's in /bin en
/sbin) als de kernel opnieuw compileren.
Als alleen delen van de broncode worden bijgewerkt, alleen de
kernel of alleen het userland, resulteert dat vaak in
problemen. Deze problemen kunnen verschillen van
compileerfouten tot kernel panics of corruptie van
gegevens.CVSanoniemAnonieme CVS en
CVSup gebruiken het
pull model om broncode bij te werken. In
het geval van CVSup start de gebruiker
(of een cron script) het programma
cvsup waarbij het communiceert met een
cvsupd server om bestanden bij te werken. De
ontvangen updates zijn op de minuut nauwkeurig en ze komen alleen
wanneer dat is ingesteld. Updates kunnen eenvoudig beperkt
worden tot specifieke bestanden of mappen uit een
interessegebied. Updates worden automatisch gegenereerd door een
server, aan de hand van wat is ingesteld.
Anonieme CVS is veel eenvoudiger dan
CVSup omdat dat alleen een uitbreiding
is van CVS die de mogelijkheid biedt
om wijzigingen direct van een CVS repository op afstand te halen.
CVSup kan dit veel efficiënter
doen, maar anonieme CVS is makkelijker
in het gebruik.CTMCTM aan de andere kant maakt geen
vergelijking tussen de aanwezige bronnen en die op de master
server. In plaats daarvan wordt een script uitgevoerd dat
wijzigingen in bestanden ziet sinds de vorige keer dat is
bijgewerkt en die meerdere keren per dag worden uitgevoerd op de
master CTM machine. Elke ontdekte wijziging wordt gecomprimeerd,
krijgt een volgnummer toegekend en wordt gecodeerd voor
verzending via e-mail (in leesbare ASCII). Deze CTM
delta's kunnen dan aangeleverd worden aan
&man.ctm.rmail.1; die ze automatisch decodeert, controleert en
toepast in de gebruikerskopie van de bronnen. Dit proces is
veel efficiënter dan CVSup en
claimt minder systeembronnen omdat het model
push in plaats van
pull is.Er zijn andere nadelen. Als per ongeluk een deel van het
archief wordt verwijderd, kan CVSup
dat detecteren en het beschadigde deel repareren.
CTM doet dit niet en als een deel van
de broncode wordt verwijderd (en er geen backup is), dan moet er
opnieuw begonnen worden (vanaf de meest recente CVS base
delta en moet alles opnieuw opgebouwd worden
met CTM. Met
Anonymous CVS kan simpelweg het
slechte deel verwijderd worden alvorens weer te
synchroniseren.De wereld opnieuw bouwenworld opnieuw bouwenZodra de lokale broncode gesynchroniseerd is met een
bepaalde versie van &os; (&os.stable;, &os.current;, enzovoort)
kan de broncode gebruikt worden om een systeem te
herbouwen.Maak een backupHet kan niet vaak genoeg verteld worden hoe belangrijk het
is om een backup te maken van een systeem
vóór deze taak uit te
voeren. Ook al is het opnieuw bouwen van de wereld vrij simpel
(als deze instructies gevolgd worden), er worden ongetwijfeld
ooit fouten gemaakt, misschien zelfs in de broncode, die het
onmogelijk maken om een systeem op te starten.Wees ervan verzekerd dat er een backup gemaakt is en dat er
een reparatiediskette of cd-rom bij de hand is. Deze wordt
waarschijnlijk nooit gebruikt maar better safe than
sorry.Abonneer op de juiste mailinglijstenmailinglijstDe &os.stable; en &os.current; takken zijn van nature
in ontwikkeling. Mensen die bijdragen
aan &os; zijn menselijk en foutjes ontstaan regelmatig.Soms zijn deze foutjes onschadelijk, ze geven dan hooguit
een nieuwe diagnostische waarschuwing weer. Maar de wijziging
kan ook catastrofaal zijn en ervoor zorgen dat een systeem niet
meer opstart of bestandssystemen vernietigt (of erger).Als problemen zoals deze voorkomen wordt er een
heads up naar de juiste mailinglijst gestuurd,
waarin uitgelegd wordt wat het probleem is en welke systemen
het raakt. Er wordt een all clear bericht
gestuurd als het probleem is opgelost.&os.stable; of &os.current; volgen zonder de &a.stable; of
&a.current; te volgen is vragen om problemen.Gebruik geen make worldVeel oudere documentatie raadt aan om make
world te gebruiken. In dat geval worden er
belangrijke stappen overgeslagen en gebruik het commando alleen
als er voldoende kennis over aanwezig is. In bijna alle
omstandigheden is make world verkeerd en
de procedure die hier beschreven is hoort in plaats daarvan
gebruikt te worden.De universele wijze om een systeem bij te werkenOm uw systeem bij te werken, dient u
/usr/src/UPDATING te controleren op
eventuele pre-buildworld stappen die nodig zijn voor uw versie
van de broncode en daarna de procedure te gebruiken die hier
beschreven staat.Deze bijwerkstappen nemen aan dat u nu een oude versie van
&os; gebruikt, die uit een oude compiler, een oude kernel, een
oude wereld en oude instellingenbestanden bestaat. Onder
wereld worden de binairen, bibliotheken, en
programmeerbestanden van het kernsysteem verstaan. De compiler
is deel van wereld, maar heeft enkele speciale
aandachtspunten.We nemen ook aan dat u reeds de broncode van een nieuwer
systeem heeft verkregen. Bekijk, als de bronnen op een bepaald
systeem ook oud zijn, voor uitgebreide
hulp over het synchroniseren ervan naar een nieuwere
versie.Het bijwerken van het systeem vanaf de broncode is wat
subtieler dan het op het eerste gezicht lijkt, en de
ontwikkelaars van &os; vonden het in de loop der jaren nodig om
de aangeraden methode redelijk drastisch te veranderen met het
aan het licht komen van nieuwe soorten onontwijkbare
afhankelijkheden. De rest van deze sectie beschrijft de
rationale achter de huidige aanbevolen bijwerkmethode.Elke succesvolle bijwerkmethode krijgt te maken met de
volgende punten:Het kan voorkomen dat de oude compiler de nieuwe kernel
niet kan compileren. (Oude compilers bevatten soms bugs.)
De nieuwe kernel dient dus met de nieuwe compiler gebouwd te
worden. In het bijzonder moet de nieuwe compiler gebouwd
worden voordat de nieuwe kernel gebouwd wordt. Dit betekent
niet per se dat de nieuwe compiler
geïnstalleerd moet worden voordat
de nieuwe kernel gebouwd wordt.De nieuwe wereld kan afhankelijk zijn van mogelijkheden
van de nieuwe kernel. Dus moet de nieuwe kernel worden
geïnstalleerd voordat de nieuwe wereld wordt
geïnstalleerd.De eerste twee gevallen zijn de basis voor de methode
buildworld,
buildkernel,
installkernel,
installworld die we in de volgende
paragrafen beschrijven. Dit is geen uitputtende lijst van alle
redenen waarom het huidige aanbevolen bijwerkproces de voorkeur
verdient. Wat minder voor de hand liggende redenen worden
hieronder genoemd:Het kan zijn dat de oude wereld niet correct draait op
de nieuwe kernel, dus moet de nieuwe wereld onmiddellijk na
het installeren van de nieuwe kernel geïnstalleerd
worden.Sommige instellingen moeten veranderd worden voordat de
nieuwe wereld wordt geïnstalleerd, maar anderen kunnen
de oude wereld kapot maken. Vandaar dat over het algemeen
twee verschillende bijwerkstappen voor de instellingen nodig
zijn.Voor het grootste gedeelte houdt het bijwerkproces zich
alleen bezig met het vervangen of toevoegen van bestanden;
bestaande oude bestanden worden niet verwijderd. Dit kan in
sommige gevallen problemen geven. Als een gevolg zal de
bijwerkprocedure soms aangeven dat bepaalde bestanden
tijdens bepaalde stappen handmatig verwijderd dienen te
worden. Dit kan in de toekomst eventueel geautomatiseerd
worden.Deze zorgen hebben tot het volgende aanbevolen bijwerkproces
geleid. Merk op dat het gedetailleerde proces voor bepaalde
updates aanvullende stappen nodig kan hebben, maar dit
kernproces zou de komende tijd ongewijzigd moeten
blijven:make buildworldDit compileert eerst de nieuwe compiler en enkele
aanverwante gereedschappen, daarna wordt de nieuwe compiler
gebruikt om de rest van de nieuwe wereld te compileren. Het
resultaat komt in /usr/obj te staan.make buildkernelIn tegenstelling tot de oude aanpak, die &man.config.8;
en &man.make.1; gebruikt, gebruikt dit de
nieuwe compiler die in /usr/obj verblijft. Dit
beschermt u tegen mismatches tussen de compiler en de
kernel.make installkernelPlaatst de nieuwe kernel en kernelmodules op de schijf,
waardoor het mogelijk wordt om met de nieuw bijgewerkte
kernel op te starten.Start opnieuw op in enkele-gebruikersmodus.De enkele-gebruikersmodus minimaliseert problemen met
het bijwerken van software die al draait. Het minimaliseert
ook problemen die opduiken door een oude wereld op een
nieuwe kernel te draaien.mergemaster Dit voert wat initiële updates aan
instellingenbestanden uit ter voorbereiding op de nieuwe
wereld. Het kan bijvoorbeeld nieuwe gebruikersgroepen aan
het systeem, of nieuwe gebruikersnamen aan de
wachtwoorddatabase toevoegen. Dit is vaak nodig wanneer er
nieuwe groepen of speciale accounts voor systeemgebruikers
zijn toegevoegd sinds de laatste keer bijwerken, zodat de
stap installworld zonder problemen
de nieuw geïnstalleerde namen van systeemgebruikers of
systeemgroepen kan gebruiken.make installworldKopieert de wereld van /usr/obj. U heeft nu een
nieuwe kernel en een nieuwe wereld op schijf staan.mergemasterNu kunt u de overgebleven instellingenbestanden
bijwerken, aangezien u een nieuwe wereld op schijf heeft
staan.Start opnieuw op.Een volledige nieuwe start van de machine is nodig om de
nieuwe kernel en de nieuwe wereld met nieuwe
instellingenbestanden te laden.Merk op dat als u van de ene uitgave van dezelfde tak van
&os; bijwerkt naar een recentere uitgave van dezelfde tak, i.e.
van 7.0 naar 7.1, dat deze procedure dan niet absoluut nodig is,
aangezien het onwaarschijnlijk is dat u serieuze problemen
krijgt met de compiler, kernel, gebruikersland en
instellingenbestanden. De oudere aanpak met make
world gevolgd door het
bouwen en installeren van een nieuwe kernel kan voor kleine
updates goed genoeg zijn.Maar mensen die deze procedure niet volgen tijdens het
bijwerken tussen grote uitgaven kunnen wat problemen
verwachten.Het is ook goed om op te merken dat veel upgrades (i.e.
4.X naar 5.0) wat specifieke
aanvullende stappen nodig hebben (bijvoorbeeld het hernoemen of
verwijderen van specifieke bestanden voorafgaand aan
installworld). Lees het bestand
/usr/src/UPDATING zorgvuldig, met name het
einde, waar het huidig aangeraden bijwerkproces expliciet wordt
beschreven.Deze procedure is in de loop der tijd veranderd aangezien de
ontwikkelaars zagen dat het onmogelijk was om bepaalde
mismatch-problemen volledig te voorkomen. Hopelijk blijft de
huidige procedure voor een lange tijd stabiel.Het bijwerken van &os; 3.X of
eerdere uitgaven is wat lastiger; lees
UPDATING zorgvuldig door als u zo'n soort
upgrade moet uitvoeren.Samengevat is de huidige aanbevolen manier om &os; vanaf
broncode bij te werken:&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; shutdown -r nowEr zijn een aantal zeldzame gevallen waarin
mergemaster -p nog een keer moet draaien
voor de stap met buildworld. Deze
staan beschreven in UPDATING. In het
algemeen kan deze stap echter zonder risico worden
overgeslagen als er niet tussen een of meer hoofdversies
wordt bijgewerkt.Nadat installkernel succesvol is
afgerond, dient er in single-user modus opgestart te worden
(met boot -s vanaf de loaderprompt). Draai
dan:&prompt.root; adjkerntz -i
&prompt.root; mount -a -t ufs
&prompt.root; mergemaster -p
&prompt.root; cd /usr/src
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; rebootLees verdere uitlegDe hierboven beschreven volgorde is alleen een korte
samenvatting. Ook de volgende secties lezen geeft een beter
beeld van elke stap, met name als er een op maat gemaakte
kernelinstelling wordt gebruikt./usr/src/UPDATING lezenLees voor verder te gaan
/usr/src/UPDATING (of het gelijknamige
bestand waar de kopie van de broncode ook staat). Dit bestand
kan belangrijke informatie bevatten over mogelijke problemen of
specificeert de volgorde waarin bepaalde commando's gestart
moeten worden. Als UPDATING tegenstrijdig
is met wat hier wordt beschreven, heeft
UPDATING voorrang.UPDATING lezen is geen acceptabele
vervanging voor het abonneren op de correcte mailinglijst
zoals eerder beschreven. De twee vullen elkaar aan en zijn
niet exclusief./etc/make.conf controlerenmake.confControleer
/usr/share/examples/etc/make.conf
en /etc/make.conf. Het
eerste bestand bevat standaard definities, waarvan de meeste
uitgecommentarieerd zijn. Om hiervan gebruik te maken als het
systeem opnieuw opgebouwd wordt vanuit de broncode, moeten ze
toegevoegd worden aan /etc/make.conf.
Bedenk dat alles wat toegevoegd wordt aan
/etc/make.conf ook gebruikt wordt bij elk
make commando. Het is dus verstandig om
daar redelijke waardes in te vullen voor een systeem.Een typische gebruiker wil waarschijnlijk de regels
CFLAGS en NO_PROFILE uit
/usr/share/examples/etc/make.conf
kopieren naar /etc/make.conf en het
commentaar verwijderen.Bekijk de andere definities (COPTFLAGS,
NOPORTDOCS, enzovoort) en bepaal of deze
relevant zijn./etc bijwerkenDe map /etc bevat een groot deel van
de systeeminstellingen en scripts die gestart worden tijdens de
systeemstart. Sommige van deze scripts verschillen van versie
tot versie in &os;.Sommige van de instellingenbestanden worden dagelijks
gebruikt voor het draaien van een systeem. In het bijzonder
/etc/group.Er zijn gevallen geweest waarbij het installatiegedeelte
van make installworld een aantal
gebruikersnamen of groepen verwachtte. Als er een upgrade
wordt uitgevoerd is het waarschijnlijk dat deze gebruikers of
groepen niet bestaan. Dit levert problemen op bij upgraden.
In sommige gevallen controleert make
buildworld of deze gebruikers of groepen
bestaan.Een voorbeeld hiervan is het toevoegen van de gebruiker
smmsp. Gebruikers hadden een falend
installatieproces toen &man.mtree.8; probeerde om
/var/spool/clientmqueue te
creëren.&man.mergemaster.8; kan in voorbereidende modus gedraaid
worden als de optie wordt meegegeven. Dan
worden alleen de bestanden vergeleken die essentieel zijn voor
het succes van buildworld of
installworld:&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -pIn paranoide beheerdersmodus kan er
gecontroleerd worden welke bestanden op een systeem eigendom
zijn van de groep die wordt hernoemd of verwijderd:&prompt.root; find / -group GID -printDit commando toont alle bestanden die eigendom zijn van
de groep GID (een groepsnaam of
een numeriek groeps-ID).Systeem naar single-user modus brengensingle-user modusHet kan zijn dat een systeem in single-user modus
gecompileerd moet worden. Buiten het duidelijke voordeel dat
de operatie iets sneller verloopt, is het voordeel dat bij een
herinstallatie van een systeem een aantal belangrijke
systeembestanden waaronder binaire systeembestanden,
bibliotheken, include bestanden, enzovoort, worden aangepast,
iets wat op een actief systeem vragen om problemen is (zeker
als er actieve gebruikers op een systeem aanwezig zijn).multi-user modusEen andere methode is het systeem compileren in multi-user
modus en daarna naar single-user modus gaan voor de
installatie. Bij deze methode moeten de volgende stappen
gevolgd worden. Het overschakelen naar single-user modus kan
uitgesteld worden tot en met
installkernel of
installworld.Een supergebruiker kan als volgt een draaiend systeem naar
single-user modus overgeschakelen:&prompt.root; shutdown nowAls alternatief kan tijdens het opstarten de optie
worden gekozen. Het systeem start dan
in single-user modus. Op de shell prompt moet dan worden
ingegeven:&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -aHierdoor worden de bestandssystemen gecontroleerd,
/ met lees en schrijf rechten opnieuw
gemount, worden alle andere UFS bestandssystemen die in
/etc/fstab staan gemount en wordt swap
ingeschakeld.Als de CMOS-klok ingesteld is naar de lokale tijd en
niet naar GMT (dit is waar als het resultaat van
&man.date.1; niet de correcte tijd en zone weergeeft), dan
is het misschien handig om het volgende commando te
starten:&prompt.root; adjkerntz -iDit zorgt ervoor dat de lokale tijdzoneinstellingen
correct ingesteld worden. Zonder deze instelling kunnen er
later problemen ontstaan./usr/obj verwijderenAls delen van een systeem opnieuw gebouwd worden, worden ze
standaard geplaatst in mappen onder
/usr/obj. Deze mappen schaduwen de mappen
onder /usr/src.Het proces make buildworld kan versneld
worden en problemen met afhankelijkheden kunnen voorkomen
worden als deze map wordt verwijderd.Sommige bestanden onder /usr/obj
hebben mogelijk de optie niet aanpassen
ingesteld (zie &man.chflags.1;) die eerst verwijderd moet
worden:&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *Broncode van het basissysteem hercompilerenUitvoer bewarenHet is een goed idee om de uitvoer van &man.make.1; te
bewaren in een ander bestand. Als er iets misgaat is er een
kopie van de foutmelding aanwezig. Hoewel dit misschien niet
helpt in de diagnose van wat er fout is gegaan, kan het
anderen helpen als het probleem wordt aangegeven in
een &os; mailinglijst.De makkelijkste manier om dit te doen is door het
commando &man.script.1; te gebruiken, met een parameter
die de naam specificeert waar de uitvoer naartoe moet. Dit
moet direct gedaan worden vóór het herbouwen
van de wereld, zodat het proces klaar is moet
exit worden ingegeven:&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET… compile, compile, compile …
&prompt.root; exit
Script done, …Bewaar de uitvoer in deze stap niet
in /tmp. Deze map wordt mogelijk
opgeschoond tijdens de volgende herstart. Een betere plaats
om dit bestand te bewaren is de map
/var/tmp (zoals in het vorige voorbeeld)
of in de thuismap van root.Basissysteem compilerenGa naar de map /usr/src, tenzij de
broncode ergens anders staat, in welk geval naar die map
gegaan moet worden:&prompt.root; cd /usr/srcmakeOm de wereld opnieuw te bouwen moet het commando
&man.make.1; gebruikt worden. Dit commando leest zijn
instructies uit het bestand Makefile,
dat beschrijft hoe de programma's die samen &os; vormen
moeten worden gebouwd, in welke volgorde ze gebouwd moeten
worden, enzovoort.Het algemene formaat van de commandoregel die gebruikt
moet worden is als volgt:&prompt.root; make -x -DVARIABELEdoelIn dit voorbeeld is de optie
een optie die
wordt meegegeven aan &man.make.1;. In de hulppagina voor
&man.make.1; staat een voorbeeld van de opties die meegegeven
kunnen worden.
geeft een variabele door aan Makefile.
Het gedrag van Makefile wordt
beïnvloed door deze variabele. Dit zijn dezelfde
variabelen die ingesteld worden in
/etc/make.conf. Deze optie biedt een
alternatief om deze opties in te stellen.&prompt.root; make -DNO_PROFILE doelHet bovenstaande commando is een andere manier om aan te
geven dat geprofileerde bibliotheken niet gebouwd moeten
worden en correspondeert met de onderstaande regel in
/etc/make.conf:NO_PROFILE= true # Avoid compiling profiled librariesdoel geeft &man.make.1; aan
wat er gedaan moet worden. Elke
Makefile definieert een aantal van
verschillende doelen en het gekozen doel bepaalt wat er
gebeurt.Sommige doelen staan vermeld in het bestand
Makefile, maar zijn niet geschikt om
direct te starten. Integendeel, deze worden gebruikt door
het bouwproces om de benodigde stappen onder te
verdelen.In veel gevallen hoeven er geen parameters te worden
meegegeven aan &man.make.1; en dus ziet de commando regel er
als volgt uit:&prompt.root; make doelWaar doel een van de vele
bouw opties is. De eerste target moet echter altijd
buildworld zijn.Zoals de namen impliceren bouwt
buildworld een compleet nieuwe boom
onder /usr/obj en
installworld, een andere target,
installeert deze boom op de huidige machine.Het hebben van verschillende opties is handig om twee
redenen. Als eerste biedt het
de mogelijkheid om de bouw veilig te doen met de wetenschap
dat geen enkel draaiend onderdeel van een systeem geraakt
wordt. De bouw is zelf ondersteunend.
Hierdoor kan veilig in multi-user modus
buildworld gedraaid worden. Het
wordt echter nog steeds aangeraden om
installworld in single-user modus te
starten.Ten tweede geeft het de mogelijkheid om NFS-mounts te
gebruiken om meerdere machines in het netwerk bij te werken.
Als er drie machines zijn, A,
B en C, die bijgewerkt
moeten worden, dan kunnen make buildworld
en make installworld gedraaid worden op
A waarna B en
C een NFS-mount kunnen opzetten naar
/usr/src en
/usr/obj op machine A
waarna make installworld gedraaid kan
worden op B en C om de
resultaten de installeren.Alhoewel het doel world nog wel
bestaat wordt het gebruik ervan sterk
afgeraden.Voer het volgende commando uit:&prompt.root; make buildworldHet is mogelijk om de optie mee te
geven aan make, wat resulteert in meerdere
processen die tegelijkertijd draaien. Dit heeft het meeste
effect op machines met meerdere processoren. Echter, omdat
het compilatieproces meer IO-gericht is dan processorgericht,
kan het ook nuttig zijn op systemen met één
processor.Start als volgt op een systeem met één
processor:&prompt.root; make -j4 buildworld&man.make.1; draait dan maximaal 4 processen
tegelijkertijd. In het algemeen blijkt uit de mailinglijsten
dat dit de beste resultaten geeft.Als er meerdere processoren in een systeem zitten en
gebruik gemaakt wordt van een SMP kernel, probeer dan waardes
tussen de 6 en 10 en bekijk hoe het systeem reageert.Doorlooptijdworld opnieuw bouwendoorlooptijdVeel factoren bepalen de doorlooptijd van het bouwen van
een boom, maar redelijk recente machines doen er maar 1 tot
2 uur over om de &os.stable; boom te bouwen.
zonder extra trucjes. Een &os.current; boom kan wat langer
duren.Nieuwe kernel compileren en installerenkernelcompilerenOm volledig gebruik te maken van het nieuwe systeem moet de
kernel opnieuw gecompileerd worden. Dit is bijna altijd nodig
omdat sommige geheugenstructuren mogelijkerwijs veranderd zijn
en programma's als &man.ps.1; en &man.top.1; niet werken totdat
de kernel en de broncode dezelfde versie hebben.De simpelste en makkelijkste manier om dit te doen is
om een kernel te maken die gebaseerd is op
GENERIC. Ondanks dat
GENERIC mogelijk niet alle benodigde
apparaten heeft voor een systeem, hoort het alles te bevatten
dat nodig is om een systeem te starten in single-user modus.
Dit is een goede test op de correcte werking van een nieuw
systeem. Na het opstarten van GENERIC en
een systeemcontrole kan erna een nieuwe kernel gebouwd worden
gebaseerd op een aangepast kernelinstellingenbestand.Op &os; is het belangrijk om de
wereld opnieuw te bouwen
voordat een nieuwe kernel gebouwd wordt.Als een aangepaste kernel gemaakt moet worden en er reeds
een instellingenbestand aanwezig is, gebruik dan
KERNCONF=MYKERNEL
als volgt:&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNELLet op dat als kern.securelevel een
waarde hoger dan 1 heeft ofnoschg of gelijksoortige opties geplaatst
zijn op het binaire kernelbestand, is het misschien nodig om
terug te gaan naar single-user modus om
installkernel uit te voeren. In
andere gevallen moet het mogelijk zijn om deze commando's
zonder problemen uit te voeren in multi-user modus. Zie
&man.init.8; voor meer informatie over
kern.securelevel en &man.chflags.1; voor
informatie over diverse bestandsopties.Opnieuw opstarten in single-user modussingle-user modusStart met de instructies in in single-user modus op om te
testen of de nieuwe kernel werkt.Nieuwe binaire systeembestanden installerenNa het draaien van make buildworld kan
nu installworld gebruikt worden om de
nieuwe binaire systeembestanden te installeren.Voer de volgende commando's uit:&prompt.root; cd /usr/src
&prompt.root; make installworldAls er variabelen gespecificeerd zijn op de commandoregel
van make buildworld moeten dezelfde
variabelen gebruikt worden op de commandoregel van
make installworld. Dit is niet per se
waar voor opties zoals , die nooit
gebruikt mogen worden met
installworld.Als bijvoorbeeld het volgende commando is
uitgevoerd:&prompt.root; make -DNO_PROFILE buildworldDan moet het resultaat geïnstalleerd worden
met:&prompt.root; make -DNO_PROFILE installworldAnders wordt geprobeerd geprofileerde bibliotheken te
installeren die niet gebouwd zijn tijdens de fase
make buildworld.Bestanden bijwerken die niet bijgewerkt zijn door
make installworldHet herbouwen van de wereld werkt bepaalde mappen niet
bij (in het bijzonder /etc,
/var en /usr) met
nieuwe of gewijzigde instellingenbestanden.De simpelste manier om deze bestanden bij te werken is door
&man.mergemaster.8; te gebruiken, maar het is ook mogelijk
dit handmatig te doen. Welke manier er ook gekozen wordt, zorg
er altijd voor dat een backup van /etc
beschikbaar is voor het geval er iets misgaat.TomRhodesBijgedragen door mergemastermergemasterHet hulpprogramma &man.mergemaster.8; is een Bourne script
dat helpt bij het bepalen van de verschillen tussen de
instellingenbestanden in /etc en de
instellingenbestanden in de broncodeboom
/usr/src/etc. Deze methode wordt
aangeraden om instellingenbestanden van een systeem bijgewerkt
te houden met de bestanden die in de broncodeboom staan.Het programma wordt gestart met
mergemaster op de commandoregel en geeft dan
resultaten weer. mergemaster bouwt dan een
tijdelijke root omgeving vanaf / en vult
deze met diverse instellingenbestanden voor een systeem. Deze
bestanden worden vergeleken met de bestanden die
geïnstalleerd zijn op een systeem. Op dit punt worden de
bestanden getoond die verschillen in het &man.diff.1;-formaat,
met een voor toegevoegde of gewijzigde
regels en een voor regels die verwijderd of
vervangen zijn. In de hulppagina voor &man.diff.1; staat meer
informatie over de syntaxis van &man.diff.1; en hoe
bestandsverschillen getoond worden.&man.mergemaster.8; toont dan elk bestand dat verschilt en
op dit moment is er de mogelijkheid om of het nieuwe bestand te
verwijderen (ofwel het tijdelijke bestand), het tijdelijke
bestand te installeren zonder enige wijzigingen, het verwerken
van het oude bestand in het nieuwe bestand of de resultaten van
&man.diff.1; nogmaals te tonen.Als gekozen wordt om het tijdelijke bestand te verwijderen,
geeft dit &man.mergemaster.8; aan dat het huidige bestand niet
gewijzigd dient te worden en de nieuwe versie verwijderd kan
worden. Deze optie wordt niet aangeraden, behalve als er geen
reden is om het huidige bestand aan te passen. Op ieder moment
kunnen hulpteksten getoond worden door ? in te
geven op de prompt van &man.mergemaster.8;. Als een bestand
wordt overgeslagen, dan wordt het weer getoond als alle overige
bestanden verwerkt zijn.Bij de keuze om het ongewijzigde tijdelijke bestand te
installeren wordt het huidige bestand vervangen door het
nieuwe. Voor de meeste ongewijzigde bestanden is dit de beste
optie.Als ervoor gekozen wordt om de wijzigingen te verwerken
wordt er een tekstverwerker gestart die de inhoud van beide
bestanden toont. De verschillen kunnen verwerkt worden terwijl
beide bestanden naast elkaar op het scherm staan. Hier kunnen
delen gekozen worden die gezamenlijk een nieuw bestand
opleveren. Als de bestanden zij aan zij vergeleken worden,
wordt met de toets l de inhoud links
geselecteerd en met de toets r de inhoud
rechts geselecteerd. Het eindresultaat bestaat uit delen van
beide bestanden die erna geinstalleerd kunnen worden. Deze
optie wordt voornamelijk gebruikt voor bestanden die gewijzigd
zijn door de beheerder.Als ervoor gekozen wordt om de &man.diff.1; resultaten nog
een keer te tonen, worden dezelfde verschillen getoond
zoals &man.mergemaster.8; deed voordat een optie gevraagd
werd.Zodra &man.mergemaster.8; klaar is met de systeembestanden
worden er andere opties getoond. &man.mergemaster.8; kan
vragen of het wachtwoordbestand opnieuw gebouwd moet worden.
Als laatste wordt een optie getoond om
alle overgebleven tijdelijke bestanden te verwijderen.Handmatig bijwerkenBij handmatig bijwerken kunnen de bestanden van
/usr/src/etc niet zomaar naar
/etc gekopieerd worden om een werkend
systeem te krijgen. Sommige van deze bestanden moeten eerst
geïnstalleerd worden. Dit omdat de map
/usr/src/etcgeen
kopie is van /etc. Daarnaast staan er
in /etc bestanden die niet in
/usr/src/etc staan.Als &man.mergemaster.8; gebruikt wordt (zoals
aangeraden), kan doorgegaan worden met het volgende
onderdeel.De simpelste manier om met de hand bij te werken, is de
bestanden in een nieuwe map installeren en daarna naar
verschillen tussen de bestanden te zoeken.Backup maken van /etcOndanks dat, in theorie, niets in deze map automatisch
wordt aangepast, is het altijd beter om daar zeker van te
zijn. Dus kopieer de bestaande /etc
naar een veilige locatie. Zoals bijvoorbeeld met het
volgende commando:&prompt.root; cp -Rp /etc /etc.old maakt een recursieve kopie,
bewaart tijden, eigenaarschap,
enzovoort op bestanden.Er moet een dummyset van mappen gemaakt worden om de
nieuwe /etc en andere bestanden in te
installeren. /var/tmp/root is een
redelijke keuze en er zijn hier een aantal benodigde
submappen aanwezig:&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distributionDit maakt de benodigde mappenstructuur en installeert de
bestanden. Een groot deel van de submappen die gemaakt zijn
in /var/tmp/root zijn leeg en moeten
verwijderd worden. De simpelste manier om dit te doen
is:&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/nullDit verwijderd alle lege mappen. De standaardfout wordt
omgeleid naar /dev/null om
waarschuwingen te voorkomen over mappen die niet leeg
zijn./var/tmp/root bevat nu alle
bestanden die geplaatst zouden moeten worden op de juiste
locaties in /. Er moet nu in de
bestanden gekeken worden om te bepalen of deze verschillen
met de huidige betanden.Let op dat sommige van de bestanden die
geïnstalleerd zijn in /var/tmp/root
beginnen met een .. Op het moment van
schrijven hebben alleen shell opstartscripts in
/var/tmp/root en
/var/tmp/root/root dit, maar er kunnen
ook andere zijn. Zorg ervoor dat ls -a
gebruikt wordt om deze bestanden te zien.De simpelste manier om twee bestanden te vergelijken is
&man.diff.1; gebruiken:&prompt.root; diff /etc/shells /var/tmp/root/etc/shellsDit toont de verschillen tussen de huidige
/etc/shells en de nieuwe
/var/tmp/root/etc/shells. Gebruik dit
om te bepalen of de wijzigingen gemigreerd moeten worden of
dat het oude bestand gekopieërd moet worden.Voeg aan de naam van de nieuwe rootmap
(/var/tmp/root) een tijdsindicatie toe
zodat makkelijk verschillen tussen versies bepaald kunnen
wordenAls de wereld regelmatig wordt herbouwd moeten
bestanden in /etc ook regelmatig
bijgewerkt moeten worden, wat een vervelend werkje kan
zijn.Dit proces kan versneld worden door een kopie te
bewaren van de bestanden die gemigreerd zijn naar
/etc. De volgende procedure geeft een
idee over hoe dit gedaan kan worden.Maak de wereld zoals normaal. Als
/etc en de andere mappen
bijgewerkt moeten worden, geef dan de doelmap een naam
gebaseerd op de huidige datum. Op 14 februari 1998
wordt dat als volgt gedaan:&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distributionMigreer de wijzigingen van deze map zoals hierboven
beschreven.Verwijder de map
/var/tmp/root-19980214niet na afronden.Als de laatste versie van de broncode gedownload en
opnieuw gemaakt is, volg stap 1. Dit geeft een nieuwe
map die wellicht
/var/tmp/root-19980221 heet (als
er een week zit tussen het bijwerken).De verschillen die gemaakt zijn in de
tussenliggende week kunnen nu getoond worden door met
&man.diff.1; een recursieve diff te maken tussen de
twee mappen:&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221Vaak is dit een kleinere set aan verschillen dan
tussen /var/tmp/root-19980221/etc
en /etc. Omdat de set
verschillen kleiner is, is het makkelijker om deze te
migreren naar de map /etc.De oudste van de twee
/var/tmp/root-*-mappen kan nu
verwijderd worden:&prompt.root; rm -rf /var/tmp/root-19980214Herhaal dit proces elke keer als er wijzigingen
gemigreerd moeten worden naar
/etc.Met &man.date.1; kan het maken van de mappen
geautomatiseerd worden:&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`HerstartenDit was het. Na een controle of alles op de juiste plaats
staat kan het systeem herstart worden. Dan kan met een simpele
&man.shutdown.8;:&prompt.root; shutdown -r nowKlaarHet &os; systeem is nu succesvol bijgewerkt.
Gefeliciteerd!Als er dingen misgingen is het makkelijk om een deel van
het systeem opnieuw te bouwen. Als bijvoorbeeld per ongeluk
/etc/magic verwijderd is als onderdeel
van de upgrade of door het samenvoegen van
/etc, dan werkt &man.file.1; niet meer.
Dat kan als volgt opgelost worden:&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all installVragenMoet de wereld opnieuw gemaakt worden voor elke
wijziging?Op deze vraag bestaat geen eenvoudig antwoord, omdat
dit afhangt van de aard van de wijziging. Als
bijvoorbeeld net CVSup is
gedraaid en de onderstaande bestanden zijn bijgewerkt,
dan is het waarschijnlijk niet de moeite waard om de
volledige wereld te herbouwen:src/games/cribbage/instr.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkDan is het handiger om naar de juiste submappen te
gaan, daar make all install uit te
voeren en dat is het zo'n beetje. Maar als er iets
wezenlijks is veranderd, bijvoorbeeld
src/lib/libc/stdlib, dan dient ofwel
de wereld herbouwd te worden of tenminste die delen die
statisch gelinkt zijn (en ook al het andere dat statisch
gelinkt is en onderdeel is van een systeem).Uiteindelijk beslist een beheerder zelf. Misschien
vindt die het prettig iedere twee weken de wereld te
herbouwen terwijl de wijzigingen in die twee weken
binnenkomen. Een andere beheerder herbouwt alleen die
onderdelen die veranderd zijn en vertrouwt erop dat hij
alle afhankelijkheden in de gaten heeft.Natuurlijk hangt het ook af van de keuze hoe vaak het
wenselijk is bij te werken en of &os.stable; of
&os.current; wordt bijgehouden.Het compileren gaat fout met veel meldingen van
signal 11 (of andere signalnummers). Wat is er aan de
hand?signal 11Dit wijst meestal op hardwareproblemen. Het
(her)bouwen van de wereld is een prima manier om een
stresstest op hardware uit te voeren en hierdoor komen
vaak geheugenproblemen bovendrijven. Die resulteren vaak
in een compiler die op mysterieuze wijze overlijdt na het
ontvangen van vreemde signalen.Dit probleem is nog duidelijker als na het herstarten
van de make het proces opnieuw stopt op een ander
punt.Hier biedt niets anders uitkomst dan componenten in
een systeem wisselen om uit te zoeken welk component er
faalt.Kan /usr/obj verwijderd worden
na afloop?Het korte antwoord is ja./usr/obj bevat alle
objectbestanden die tijdens het compileren zijn gemaakt.
Normaliter is een van de eerste stappen in het
make buildworld proces deze map
verwijderen en een verse start maken. In dit geval heeft
het behouden van /usr/obj na het
afronden weinig zin en geeft het ook nogal wat extra
vrije schijfruimte (ongeveer 340 MB).Als er veel kennis aanwezig is bij een beheerder, dan
kan make buildworld aangegeven worden
deze stap over te slaan. Hierdoor draaien volgende
builds veel sneller, omdat veel broncode niet opnieuw
gecompileerd hoeft te worden. De andere kant van de
medaille is dat er subtiele afhankelijkheidsproblemen
kunnen ontstaan, waardoor een build op bijzondere wijze
kan falen. Hierdoor onstaat regelmatig ruis op &os;
mailinglijsten als er iemand klaagt dat zijn build faalt,
terwijl hij zich niet realiseert dat dit komt doordat hij
zijn updateproces niet volgens het boekje heeft
uitgevoerd.Kunnen onderbroken builds gecontinueerd
worden?Dit hangt af van hoever een systeem was voordat een
probleem gevonden werd.Normaal gesproken (en dit is
geen vaste regel) maakt het proces make
buildworld nieuwe kopieën van essentiele
hulpprogramma's (zoals &man.gcc.1; en &man.make.1;) en de
systeembibliotheken. Deze hulpprogramma's en
bibliotheken worden daarna geïnstalleerd. De nieuwe
hulpprogramma's en bibliotheken worden daarna gebruikt om
zichzelf opnieuw op te bouwen en wederom te installeren.
Het complete systeem (nu met gewone programma's zoals
&man.ls.1; en &man.grep.1;) wordt daarna opnieuw gebouwd
met de nieuwe systeembestanden.Als een systeem in de laatste fase zit (wat uit de
uitvoer blijkt) kan dit redelijk veilig gedaan
worden:… fix the problem …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN allDit maakt het werk van de vorige make
buildworld niet ongedaan.Als het onderstaande bericht in de uitvoer van
make buildworld staat, dan is het
redelijk veilig om het te doen:--------------------------------------------------------------
Building everything..
--------------------------------------------------------------Als dat bericht er niet is, of er is onzekerheid
over, dan is het altijd beter om de build opnieuw te
starten vanaf het begin.Kan kan de wereld bouwen versneld worden?Draai in single-user modus;Zet de mappen /usr/src en
/usr/obj op aparte
bestandssystemen die op aparte schijven staan. Hang
deze schijven als mogelijk aan aparte
schijfcontrollers;Nog beter, verspreid de bestandssystemen over
meerdere schijven via het apparaat &man.ccd.4;
(concatenated disk driver);Zet profiling uit (voeg
NO_PROFILE=true toe aan
/etc/make.conf). Het is zeer
waarschijnlijk niet nodig;Voer ook CFLAGS toe aan
/etc/make.conf met iets als
. De optimalisatie
is veel langzamer en het
optimalisatieverschil tussen en
is meestal verwaarloosbaar.
laat de compiler gebruik maken
van pipes in plaats van tijdelijke bestanden voor
communicatie, wat schijfacties scheelt (ten koste van
geheugengebruik);Geef de optie
mee
aan &man.make.1; om meerdere processen parallel te
laten lopen. Dit helpt in de meeste gevallen,
onafhankelijk of er gewerkt wordt op een systeem met
één of meerdere processoren;Het bestandssysteem dat
/usr/src bevat, kan (opnieuw)
gemount worden met de optie .
Dit voorkomt dat het bestandssysteem de
toegangsmomenten registreert. Deze informatie is
waarschijnlijk toch niet nodig.&prompt.root; mount -u -o noatime /usr/srcIn dit voorbeeld wordt aangenomen dat
/usr/src op zijn eigen
bestandssysteem staat. Als dit niet het geval is
(bijvoorbeeld als het onderdeel is van
/usr), dan moet het mountpunt
voor dat bestandssysteem gebruikt moeten worden
en niet /usr/src;Het bestandssysteem dat
/usr/obj gevat kan (opnieuw)
worden gemount met de optie .
Dit zorgt ervoor dat schrijfacties naar een schijf
asynchroon plaatsvinden. In andere woorden: de
schrijfactie wordt direct uitgevoerd en de gegevens
worden later naar de schijf geschreven. Dit stelt
het systeem in staat om data geclusterd weg te
schrijven, wat een grote prestatieverbetering kan
opleveren.Houd er rekening mee dat deze optie het
bestandssysteem kwetsbaarder maakt. Met deze optie
is er een vergrote kans dat, indien er een
stroomstoring optreed, het bestandssysteem in een
niet meer te herstellen staat komt als de machine
herstart.Als op dit bestandssysteem alleen
/usr/obj staat, is dit geen
probleem. Als er andere belangrijke gegevens op
hetzelfde bestandssysteem staan, zorg er dan voor
dat er verse backups zijn voordat deze optie
aangezet wordt.&prompt.root; mount -u -o async /usr/objZorg ervoor, zoals al eerder is aangegeven, dat
als /usr/obj niet op een eigen
bestandssysteem staat, het juiste mountpunt wordt
gebruikt.Wat te doen als er iets mis gaat?Zorg ervoor dat het systeem geen rommel meer bevat
van eerdere builds. Het volgende helpt daarbij:&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandirInderdaad, make cleandir moet twee
keer gedraaid worden.Herstart daarna het complete proces vanaf
make buildworld.Als er nog steeds problemen zijn, stuur dan de
foutmelding en de uitvoer van uname -a
naar de &a.questions;. Wees bereid aanvullende vragen
over het systeem te beantwoorden!MikeMeyerBijgedragen door Meerdere machines bijwerkenNFSmeerdere machines installerenAls er meerdere machines zijn die dezelfde broncode
bijhouden, lijkt het downloaden van alle broncode en alles overal
opnieuw bouwen zonde van de bronnen: harde schijfruimte, netwerk
bandbreedte, en processorbelasting. Dit klopt en de oplossing is
om alles op één machine te doen terwijl de overige
machines het uitgevoerde werk benaderen via NFS. Nu wordt een
methode beschreven waarmee dit gedaan kan worden.BenodigdhedenAls eerste moet er een groep van machines gekozen worden
die dezelfde set aan binaire bestanden zal draaien, hier een
bouwgroep. Elke machine kan een eigen
afwijkende kernel hebben maar moet dezelfde binaire
gebruikersbestanden draaien. Uit die groep moet een machine
gekozen worden die de bouwmachine wordt.
Dit wordt de machine waar de wereld en kernel op gebouwd
worden. In het meest ideale geval is dit een snelle machine
die genoeg processorkracht vrij heeft om make
buildworld en make buildkernel
te draaien. Er moet ook een machine gekozen worden die de
testmachine wordt waarop alle bijgewerkte
software wordt test voordat die in productie wordt genomen.
Dit moet een machine zijn die voor langere
tijd down mag zijn. Dit kan de bouwmachine zijn maar dat hoeft
niet per se.Alle machines in deze bouwgroep moeten ingesteld worden om
/usr/obj en /usr/src
vanaf dezelfde machine te mounten op hetzelfde punt. In het
meest ideale geval zijn dit twee verschillende schijven op de
bouwmachine, maar ze kunnen ook door middel van NFS op die
machine gemount zijn. Als er meerdere bouwgroepen zijn, dan
moet /usr/src op één
bouwmachine staan en door middel van NFS gemount worden op de
overige machines.Zorg er als laatste voor dat
/etc/make.conf en
/etc/src.conf op alle machines in de
bouwgroep het eens zijn met de bouwmachine. Dat betekent dat
de bouwmachine alle delen van het basissysteem moet bouwen die
elke machine in de bouwgroep installeert. Ook heeft elke
bouwmachine zijn kernelnaam ingesteld met
KERNCONF in
/etc/make.conf en de bouwmachine moet ze
allemaal hebben in KERNCONF, zijn eigen
kernel eerst. De bouwmachine moet de instellingenbestanden
voor elke machine in
/usr/src/sys/arch/conf
hebben als deze machine de kernels voor de overige machines
gaat bouwen.BasissysteemNu kan één systeem alles bouwen. Bouw de
kernel en wereld zoals beschreven in op de bouwmachine, maar installeer
niets. Zodra de bouw klaar is, moet op de testmachine de
kernel geïnstalleerd en getest worden. Als deze machine
/usr/src en /usr/obj
mount via NFS, moet na een herstart in single-user modus het
netwerk ingeschakeld worden zodat de mounts opnieuw gemaakt
kunnen worden. De makkelijkste manier om dit te doen is om te
starten in multi-user modus en daar
shutdown now starten om in single-user modus
te komen. Eenmaal daar aangekomen kunnen de nieuwe kernel en
de wereld geïnstalleerd worden en kan daarna normaal
mergemaster gestart worden. Zodra dit klaar
is, kan de machine opnieuw gestart worden om naar multi-user
modus terug te keren.Nadat zeker is dat alles op de testmachine correct werkt,
kan dezelfde procedure gebruikt worden om de nieuwe software op
elke machine te installeren in de bouwgroep.PortsDezelfde ideeën kunnen gebruikt worden voor de ports.
De eerste kritieke stap is om /usr/ports
te mounten op alle machines in de bouwgroep. Daarna kan
/etc/make.conf correct ingesteld worden
om de distfiles te delen. De variabele
DISTDIR moet wijzen naar een gedeelde map
waarin geschreven kan worden door de gebruiker waar
root naar wijst in de NFS mounts. Op elke
machine moet WRKDIRPREFIX naar een lokale
bouwmap wijzen. Als er pakketten gebouwd en gedistribueerd
worden moet PACKAGES naar een map wijzen
gelijkvormig aan de instelling voor
DISTDIR.
diff --git a/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
index 7e5535d63b..66fcb3bd97 100644
--- a/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
@@ -1,1661 +1,1691 @@
JimMockBijgewerkt en opnieuw gestructureerd door JakeHambyOorspronkelijk bijgedragen door RenéLadanVertaald door De &os;-kernel instellenSamenvattingkerneleen aangepaste kernel bouwenDe kernel is de kern van het &os;-besturingssysteem en is
verantwoordelijk voor het geheugenbeheer, het opleggen van
beveiligingsregels, het aansturen van het netwerk, de toegang tot
schijven en nog veel meer. Hoewel steeds meer in &os; dynamisch
instelbaar wordt, is het af en toe nodig om de kernel opnieuw in
te stellen en te compileren.Na het lezen van dit hoofdstuk weet de lezer:Waarom het nodig is om een aangepaste kernel te bouwen;
Hoe een nieuw kernelinstellingenbestand te schrijven of
een bestaand kernelinstellingenbestand aan te passen;Hoe het kernelinstellingenbestand te gebruiken om een
nieuwe kernel aan te maken en te bouwen;Hoe een nieuwe kernel te installeren;Hoe problemen op te lossen als er iets verkeerd gaat.
Alle opdrachten die in dit hoofdstuk als voorbeeld zijn
gegeven moeten als root uitgevoerd worden om
te slagen.Redenen om een aangepaste kernel te bouwenTraditioneel heeft &os; zoals dat heet een
monolitische kernel gehad. Dit betekent dat de
kernel één groot programma was, een vaste lijst
van apparaten ondersteunde en als het gewenst was om het gedrag
van de kernel te veranderen, moest er een nieuwe kernel
gecompileerd worden en moest daarna de computer opnieuw gestart
worden met de nieuwe kernel.Vandaag de dag beweegt &os; zich snel naar een model waar
veel van de functionaliteit van de kernel in modules zit die
dynamisch in en uit de kernel kunnen worden geladen, naargelang
dat noodzakelijk is. Dit stelt de kernel in staat om zich aan
nieuwe hardware aan te passen die plotseling beschikbaar komt
(zoals PCMCIA-kaarten in een laptop) of om nieuwe functionaliteit
in zich op te nemen die niet noodzakelijk was toen de kernel
oorspronkelijk werd gecompileerd. Dit staat bekend als een
modulaire kernel.Desondanks is het nog steeds nodig om enkele dingen van de
kernel statisch in te stellen. In sommige gevallen komt dit
doordat de functionaliteit zo diep geworteld zit in de kernel dat
het niet dynamisch laadbaar gemaakt kan worden. In andere
gevallen kan het simpelweg komen doordat nog niemand de tijd
heeft genomen om een dynamisch laadbare kernelmodule voor die
functionaliteit te schrijven.Het bouwen van een aangepaste kernel is een van de meest
- belangrijke beproevingen die bijna elke BSD-gebruiker moet
+ belangrijke beproevingen die geavanceerde BSD-gebruikers moet
doorstaan. Hoewel dit proces veel tijd in beslag neemt, levert
het veel voordelen op voor een &os; systeem. In tegenstelling
tot de GENERIC-kernel, die vele typen
hardware moet ondersteunen, ondersteunt een aangepaste kernel
alleen de hardware van de computer waar hij voor gemaakt is. Dit
biedt een aantal voordelen, zoals:Een snellere opstarttijd. Aangezien de kernel alleen de
hardware zoekt die zich in het systeem bevindt, kan de tijd
die het systeem nodig heeft om op te starten aanzienlijk
korter worden;Minder geheugengebruik. Een aangepaste kernel gebruikt
vaak minder geheugen dan de
- GENERIC-kernel, wat van belang is
- aangezien de kernel zich altijd in het echte geheugen moet
- bevinden. Om deze reden is een aangepaste kernel geknipt
+ GENERIC-kernel door ongebruikte mogelijkheden
+ en apparaatstuurprogramma's weg te laten. Dit is van belang
+ aangezien de kernelcode altijd in het fysieke geheugen aanwezig
+ blijft, waardoor dit geheugen niet door applicaties gebruikt kan
+ worden. Om deze reden is een aangepaste kernel geknipt
voor een systeem met een kleine hoeveelheid RAM;Aanvullende hardware-ondersteuning. Een aangepaste
kernel kan ingebouwde ondersteuning bieden voor apparaten die
zich niet in de GENERIC-kernel bevinden,
zoals geluidskaarten.TomRhodesGeschreven door De systeemhardware vindenAlvorens in de kernelconfiguratie te duiken, zou het
verstandig zijn om een inventarisatie van de hardware van de
machine te maken. In het geval dat &os; niet het primaire
besturingssysteem is, kan de inventarisatielijst eenvoudig worden
gemaakt door de configuratie van het huidige besturingssysteem te
bekijken. De Device Manager van
µsoft; bijvoorbeeld bevat normaliter belangrijke informatie
over geïnstalleerde apparaten. De Device
Manager bevindt zich in het controlepaneel.Sommige versies van µsoft.windows; hebben een icoon
System dat een scherm weer zal geven
waarmee Device Manager kan worden
benaderd.Als er geen ander besturingssysteem op de machine staat, moet
de beheerder deze informatie handmatig vinden. Eén manier
is om de gereedschappen &man.dmesg.8; en &man.man.1; te gebruiken.
De meeste apparaatstuurprogramma's van &os; hebben een
handleiding, die de ondersteunde hardware noemen, en tijdens het
opstarten wordt gevonden hardware getoond. De volgende regels
geven bijvoorbeeld aan dat het stuurprogramma voor
psm een muis heeft gevonden:psm: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0Dit stuurprogramma zal in het eigen kernelinstellingenbestand
opgenomen moeten worden of worden geladen met &man.loader.conf.5;.
Soms geven de gegevens van dmesg alleen de
systeemboodschappen weer in plaats van de uitvoer van de
opstartonderzoeken. In deze gevallen kan de uitvoer worden
verkregen door het bestand
/var/run/dmesg.boot te bekijken.Een andere methode om hardware te vinden is door
&man.pciconf.8; te gebruiken welke meer gedetailleerde uitvoer
geeft. Bijvoorbeeld:ath0@pci0:3:0:0: class=0x20000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'AR5212 Atheros AR5212 802.11abg wireless'
class = network
subclass = ethernetDit beetje uitvoer, verkregen met
pciconf geeft aan dat het
stuurprogramma ath een draadloos
Ethernetapparaat heeft gevonden. Het gebruik van
man ath zal de
handleiding voor &man.ath.4; teruggeven.Wanneer de vlag aan &man.man.1; wordt
gegeven kan deze nuttige informatie geven. Met het bovenstaande
kan dit gedaan worden:&prompt.root; man -k Atherosom een lijst handleidingen te krijgen die dat ene woord
bevatten:ath(4) - Atheros IEEE 802.11 wireless network driver
ath_hal(4) - Atheros Hardware Access Layer (HAL)Gewapend met een inventarisatielijst van de hardware zou het
proces van het bouwen van een eigen kernel minder angstaanjagend
moeten lijken.Kernel stuurprogramma's, subsystemen, en moduleskernelstuurprogramma's / modules / subsystemenBekijk, voordat er een eigen kernel gebouwd wordt, de redenen
om dit te doen. Als er de noodzaak is voor specifieke
hardwareondersteuning, kan dit reeds beschikbaar zijn als een
module.Kernelmodules staan in de map /boot/kernel en kunnen dynamisch in
de draaiende kernel worden geladen met &man.kldload.8;. De
meeste, als niet alle, kernelstuurprogramma's hebben een
specifieke module en een handleiding. De laatste sectie merkte
bijvoorbeeld het draadloze Ethernetstuurprogramma
ath op. Van dit stuurprogramma staat de
volgende informatie in de handleiding:Plaats de volgende regel in &man.loader.conf.5; om
het stuurprogramma tijdens het opstarten als een module te laden:
if_ath_load="YES"Zoals aangegeven, zal het toevoegen van de regel
if_ath_load="YES" aan
/boot/loader.conf deze module dynamisch
laden tijdens het opstarten.In sommige gevallen is er geen geassocieerde module. Dit
geldt het vaakst voor bepaalde subsystemen en zeer belangrijke
stuurprogramma's, het fast file system (FFS)
bijvoorbeeld is een verplichte optie in de kernel, net zoals
netwerkondersteuning (INET). Helaas is de enige manier om te zien
of een stuurprogramma nodig is naar de module zelf zoeken.Het is nogal eenvoudig om ingebouwde ondersteuning voor een
apparaat of optie te verwijderen en met een kapotte kernel
opgezadeld te zitten. Als bijvoorbeeld het stuurprogramma
&man.ata.4; uit het kernelinstellingenbestand gehaald wordt,
zal een systeem dat ATA
schijfstuurprogramma's gebruikt niet opstarten zonder een regel
aan loader.conf toe te voegen. Kijk bij
twijfel of de module aanwezig is en laat ondersteuning dan
gewoon in de kernel.Bouwen en installeren van een aangepaste kernelkernelbouwen / installerenEerst wordt er een overzicht gegeven van de mappen waarin de
kernel gebouwd wordt. Alle genoemde mappen staan onder de map
/usr/src/sys, die ook toegankelijk is via
de padnaam /sys. Er zijn hier een aantal
mappen aanwezig die de verschillende delen van de kernel
representeren, maar de meest belangrijke hiervan zijn
arch/conf, waarin
de kernelinstellingen bewerkt worden en
compile, waarin de aangepaste kernel gebouwd
wordt. arch representeert hier
één van i386,
alpha, amd64,
ia64, powerpc,
sparc64 of pc98 (een
alternatieve ontwikkelingstak van PC-hardware die populair is in
Japan). Alles binnen de map van een bepaalde architectuur is er
alleen voor die architectuur. De rest van de code is
machine-onafhankelijk en hetzelfde op alle platformen waarnaar
&os; eventueel overgezet kan worden. De indeling van de
mapstructuur is logisch: alle ondersteunde apparaten,
bestandssystemen en opties staan in een eigen submap.Dit hoofdstuk veronderstelt dat de i386-architectuur in de
voorbeelden gebruikt wordt. Als dit voor de lezer anders is,
moeten de juiste aanpassingen aan de padnamen worden gemaakt voor
de architectuur van zijn systeem.Als de map /usr/src/sysniet aanwezig is op een systeem, dan is de
kernelbroncode niet geïnstalleerd. De eenvoudigste manier
om dit te doen is door sysinstall te draaien
als root en
Configure, dan
Distributions, dan
src, dan
base en
sys te kiezen. Als
sysinstall ongewenst is en er toegang
is tot een officiële &os; CD-ROM, is de
broncode ook vanaf de opdrachtregel te installeren:&prompt.root; mount /cdrom
&prompt.root; mkdir -p /usr/src/sys
&prompt.root; ln -s /usr/src/sys /sys
&prompt.root; cat /cdrom/src/sys.[a-d]* | tar -xzvf -
&prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf -Daarna kan vanuit de map
arch/conf het
instellingenbestand GENERIC naar de naam
voor de aangepaste kernel gekopieerd worden. Bijvoorbeeld:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC MIJNKERNELTraditioneel bestaat deze naam geheel uit hoofdletters en als
er meerdere &os;-machines worden beheerd met verschillende
hardware is het een goed idee om het te vernoemen naar de
hostnaam van de machine. Omwille van dit voorbeeld wordt het
MIJNKERNEL
genoemd.Het kernelinstellingenbestand direct onder
/usr/src opslaan kan een slecht idee zijn.
In geval van problemen kan het verleidelijk zijn om
/usr/src te verwijderen en opnieuw te
beginnen. Nadat dit gedaan is kost het vaak maar enkele
seconden om te realiseren dat het instellingenbestand voor de
aangepaste kernel verwijderd is. Ook moet
GENERIC niet gewijzigd worden, omdat het
tijdens de volgende keer dat de broncodeboom bijgewerkt
wordt, overschreven kan worden waarbij de wijzigingen
in de kernelinstellingen verloren gaan.Het kan gewenst zijn om het kernelinstellingenbestand
ergens anders op te slaan en een symbolische link naar het
bestand in de map
i386 aan te
maken:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; mkdir /root/kernels
&prompt.root; cp GENERIC /root/kernels/MIJNKERNEL
&prompt.root; ln -s /root/kernels/MIJNKERNELNu moet
MIJNKERNEL met de
favoriete tekstverwerker bewerkt worden. Voor beginners is
waarschijnlijk alleen de tekstverwerker
vi beschikbaar, die te ingewikkeld is
om hier te beschrijven, maar goed is beschreven in vele boeken in
de bibliografie. &os; biedt
ook de eenvoudigere tekstverwerker ee,
die voor een beginner de keuze bij uitstek is. De
commentaarregels in het begin kunnen gewijzigd worden om de
persoonlijke instellingen of de veranderingen die gemaakt zijn ten
opzichte van GENERIC weer te geven.&sunos;Voor degenen die een kernel op &sunos; of een andere BSD
hebben gebouwd zal veel van dit bestand bekend voorkomen.
Echter, voor degenen die van een ander besturingssysteem zoals
DOS komen, kan het instellingenbestand
GENERIC overdonderend overkomen, dus moeten
de beschrijvingen in de sectie Het Instellingenbestand
zorgvuldig opgevolgd worden.Als de broncodeboom
gesynchroniseerd is met de nieuwste broncode van het
&os;-project, moet altijd
/usr/src/UPDATING gelezen worden voordat
enige bijwerkstappen worden genomen. Dit bestand beschrijft
alle belangrijke zaken en gebieden binnen de broncodestructuur
die speciale aandacht nodig hebben.
/usr/src/UPDATING komt altijd overeen met
de lokale versie van de &os;-broncode en is daarom meer
bijgewerkt met nieuwe informatie dan dit handboek.Nu moet de broncode voor de kernel gecompileerd worden.Een kernel bouwenGa naar de map /usr/src:&prompt.root; cd /usr/srcCompileer de kernel:&prompt.root; make buildkernel KERNCONF=MIJNKERNELInstalleer de nieuwe kernel:&prompt.user; make installkernel KERNCONF=MIJNKERNELDe volledige broncode van &os; is nodig om de kernel te
bouwen.Bij het bouwen van een aangepaste kernel worden standaard
alle kernelmodules ook herbouwd. Om de
kernel sneller bij te werken en alleen de aangepaste modules
te bouwen kan /etc/make.conf aangepast
worden voordat de kernel wordt gebouwd:MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfsMet deze variabele wordt een lijst van te bouwen modules
ingesteld die gebouwd moeten worden in plaats van allen.WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfsDeze variabele stelt een lijst in van modules die moeten
worden uitgesloten van het bouwproces. Andere variabelen die
mogelijk ook nuttig zijn in het proces van het bouwen van een
kernel staan beschreven in de handleiding voor
&man.make.conf.5;./boot/kernel.oldDe nieuwe kernel wordt naar de map /boot/kernel gekopieerd als
/boot/kernel/kernel en de oude kernel wordt
verplaatst naar /boot/kernel.old/kernel. Nu
moet het systeem afgesloten worden en opnieuw worden opgestart om
gebruik te maken van de nieuwe kernel. Er zijn wat instructies
voor problemen
oplossen aan het einde van dit hoofdstuk, die erg nuttig
kunnen zijn als er iets misgaat. Vergeet niet om het gedeelte te
lezen waarin staat uitgelegd hoe te herstellen als de nieuwe
kernel niet
opstart.Andere bestanden die te maken hebben met het opstartproces,
zoals de boot &man.loader.8; en instellingen worden opgeslagen
in /boot. Modules van derde partijen of
eigen modules kunnen in /boot/kernel opgeslagen worden,
alhoewel gebruikers erop bedacht moeten zijn dat het erg
belangrijk is dat de modules synchroon worden gehouden met de
gecompileerde kernel. Modules die niet bedoeld zijn om met de
gecompileerde kernel te draaien kunnen voor instabiliteit of
onjuistheden zorgen.JoelDahlBijgewerkt voor &os; 6.X door Het instellingenbestandkernelNOTESNOTESkernelinstellingenbestandHet algemene formaat van een instellingenbestand is vrij
eenvoudig. Elke regel bevat een sleutelwoord en
één of meer argumenten. Omwille van de eenvoud
bevatten de meeste regels maar één argument. Alles
wat na een # komt, wordt als commentaar
beschouwd en genegeerd. De volgende gedeelten beschrijven elk
sleutelwoord, in het algemeen in dezelfde volgorde als
GENERIC, alhoewel sommige samenhangende
sleutelwoorden gegroepeerd zijn in een enkel gedeelte (zoals
Netwerken) zelfs al staan ze verspreid in het bestand
GENERIC.
Een uitputtende lijst van architectuurafhankelijke opties en
apparaten staat in het bestand NOTES, dat in
dezelfde map staat als het bestand GENERIC.
Architectuuronafhankelijke opties staan in
/usr/src/sys/conf/NOTES.
+ Sinds &os; 5.0 is er een nieuwe directief
+ include beschikbaar om te gebruiken in
+ instellingenbestanden. Hiermee kan een ander instellingenbestand logisch
+ in het huidige worden opgenomen, waardoor het eenvoudig wordt om kleine
+ veranderingen relatief aan een bestaand bestand te onderhouden. Als u
+ bijvoorbeeld een GENERIC kernel nodig heeft met
+ slechts een klein aantal aanvullende opties of stuurprogramma's, hoeft u
+ hiermee slechts een delta ten opzichte van GENERIC te onderhouden:
+
+ include GENERIC
+ident MIJNKERNEL
+
+options IPFIREWALL
+options DUMMYNET
+options IPFIREWALL_DEFAULT_TO_ACCEPT
+options IPDIVERT
+
+ Veel beheerders zullen aanzienlijke voordelen in dit model zien
+ vergeleken met de vroegere gewoonte om instellingenbestanden vanuit het
+ niets te schrijven: het lokale instellingenbestand zal alleen lokale
+ verschillen uitdrukken ten opzichte van een GENERIC
+ kernel en wanneer upgrades worden uitgevoerd zullen nieuwe mogelijkheden
+ die aan GENERIC zijn toegevoegd ook aan de lokale
+ kernel worden toegevoegd tenzij dit expliciet verhinderd wordt met
+ nooptions of nodevice. De rest van
+ dit hoofdstuk behandelt de inhoud van een typisch instellingenbestand en
+ de verschillende rollen die opties en apparaten spelen.
+
Draai het volgende commando als root om
een bestand te bouwen dat alle beschikbare opties bevat, wat
- normaliter gedaan wordt voor testdoeleinden gedaan wordt:
+ normaliter voor testdoeleinden gedaan wordt:
&prompt.root; cd /usr/src/sys/i386/conf && make LINTkernelinstellingenbestandHet volgende is een voorbeeld van het
kernelinstellingenbestand GENERIC met
aanvullend commentaar omwille van de helderheid. Dit voorbeeld
is redelijk gelijk aan de versie in
/usr/src/sys/i386/conf/GENERIC.kerneloptiesmachinemachine i386Dit is de architectuur van de machine. Het moet
één van alpha,
amd64, i386,
ia64, pc98,
powerpc of sparc64
zijn.kerneloptiescpucpu I486_CPU
cpu I586_CPU
cpu I686_CPUBovenstaande optie geeft het type CPU aan dat in een systeem
zit. De CPU-regel kan meerdere keren voorkomen (als bijvoorbeeld
onbekend is of I586_CPU of
I686_CPU gebruikt moet worden), maar voor een
aangepaste kernel is het beter om alleen de aanwezige CPU aan te
geven. Als er twijfel bestaat over het type CPU, kan het bestand
/var/run/dmesg.boot worden bekeken voor de
opstartberichten.kerneloptiesidentident GENERICDit is de identificatie van de kernel. Dit moet veranderd
worden in de naam van de kernel, dus
MIJNKERNEL als de
instructies van de voorgaande voorbeelden gevolgd zijn. De waarde
in de string ident wordt afgebeeld wanneer de
kernel opstart, dus is het handig om de nieuwe kernel een andere
naam te geven als deze apart moet worden gehouden van de
gebruikelijke kernel (als er bijvoorbeeld een experimentele kernel
gebouwd wordt).#Om apparaatbindingen statisch in te compileren in plaats van via /boot/device.hints.
#hints "GENERIC.hints" # Standaardlocatie voor devices.&man.device.hints.5; wordt gebruikt om opties van de
programma's die de apparaten aansturen in te stellen. De
standaardplaats die &man.loader.8; controleert tijdens het
opstarten is /boot/device.hints. Met de
optie hints is het mogelijk om deze
aanwijzingen statisch in de kernel te compileren, waardoor er
geen noodzaak is om een bestand device.hints
in /boot aan te maken.makeoptions DEBUG=-g # Bouw kernel met gdb(1) debugsymbolen.Het normale bouwproces van &os; voegt debuginformatie toe
wanneer de kernel met de optie gebouwd wordt,
wat debuginformatie doorgeeft aan &man.gcc.1;.options SCHED_4BSD # 4BSD taakplannerDe traditionele en standaard taakplanner voor &os;. Laat dit
staan.options PREEMPTION # Zet kernelthreadpreëmptie aanSta toe dat threads in de kernel worden gepreëmpt door
threads met een hogere prioriteit. Het help bij interactiviteit
en staat toe dat interruptthreads eerder draaien in plaats van te
moeten wachten.options INET # internetwerkenNetwerkondersteuning. Laat dit aanstaan, zelfs als een
verbinding met een netwerk niet gepland is. De meeste
programma's hebben tenminste een teruglusnetwerk nodig (dat wil
zeggen het maken van netwerkverbindingen binnen de PC), dus dit
is eigenlijk verplicht.options INET6 # IPv6 communicatieprotocollenDit zet de IPv6-communicatieprotocollen aan.options FFS # Berkeley Fast BestandssysteemDit is het basisbestandssysteem voor de harde schijf. Laat
dit erin staan als er vanaf de harde schijf wordt
opgestart.options SOFTUPDATES # Schakel FFS Softupdates ondersteuning inDeze optie zet softupdates in de kernel aan en helpt om de
schijftoegang voor schrijven te verhogen. Zelfs als deze
functionaliteit door de kernel geleverd wordt, moet die voor
specifieke schijven worden aangezet. Bekijk de uitvoer van
&man.mount.8; om te zien of softupdates aanstaat voor de
systeemschijven. Als de optie soft-updates
niet zichtbaar is, dient deze geactiveerd te worden met behulp
van &man.tunefs.8; voor bestaande bestandssystemen of
&man.newfs.8; voor nieuwe bestandssystemen.options UFS_ACL # Ondersteuning voor toegangscontrolelijstenMet deze optie wordt de ondersteuning voor
toegangscontrolelijsten aangezet. Hiervoor zijn uitgebreide
attributen en UFS2 nodig. Een en ander wordt
in detail beschreven in .
ACL's staan standaard aan en moeten niet
uitgezet worden in de kernel als ze al eerder op een
bestandssysteem zijn gebruikt, omdat dit de
toegangscontrolelijsten verwijdert en hierdoor de manier waarop
bestanden beschermd worden op onvoorspelbare wijze verandert.
options UFS_DIRHASH # Verbeter prestaties in grote mappenDeze optie bevat functionaliteit om schijfoperaties op grote
mappen te versnellen, ten koste van extra geheugen. Deze staat
normaalgesproken, zoals voor een grote server of interactief
werkstation, aan en wordt uitgezet als &os; op een kleiner
systeem wordt gebruikt waar geheugen het belangrijkste en
schijfsnelheid minder belangrijk is, zoals voor een
firewall.options MD_ROOT # MD is een potentieel rootapparaatDeze optie zet ondersteuning aan voor een virtuële
schijf die in het geheugen wordt geïmplementeerd en als
rootapparaat wordt gebruikt.kerneloptiesNFSkerneloptiesNFS_ROOToptions NFSCLIENT # Netwerk Bestandssysteem Client
options NFSSERVER # Netwerk Bestandssysteem Server
options NFS_ROOT # NFS bruikbaar als /, NFSCLIENT nodigHet netwerkbestandssysteem. Dit kan weggelaten worden tenzij
er gepland is om partities te aan te koppelen van een &unix;
bestandsserver over TCP/IP.kerneloptiesMSDOSFSoptions MSDOSFS # MSDOS BestandssysteemHet &ms-dos; bestandssysteem. Dit kan veilig weggelaten
worden, tenzij er gepland is om een DOS-geformatteerde partitie
van de harde schijf tijdens het opstarten aan te koppelen. Het
wordt automatisch geladen als er voor de eerste keer een
DOS-partitie wordt aangekoppeld, zoals boven beschreven.
Bovendien geeft de uitstekende software emulators/mtools toegang tot
DOS-floppies zonder dat ze aangekoppeld en afgekoppeld moeten
worden en heeft het MSDOSFS helemaal niet
nodig.options CD9660 # ISO 9660 BestandssysteemHet ISO 9960-bestandssysteem voor CD-ROMs. Commentarieer dit
uit als er geen CD-ROM drive aanwezig is of als er slechts af en
toe gegevens-CD-ROMs aangekoppeld worden (aangezien het dynamisch
geladen wordt als er voor de eerste keer een gegevens-CD-ROM
aangekoppeld wordt). Audio-CD's hebben dit bestandssysteem niet
nodig.options PROCFS # Procesbestandssysteem (vereist PSEUDOFS)Het procesbestandssysteem. Dit is een als-of
bestandssysteem, aangekoppeld op /proc, dat
programma's als &man.ps.1; in staat stelt om meer informatie over
de draaiende processen te geven. Het is in de meeste
omstandigheden niet nodig om PROCFS te
gebruiken, omdat de meeste debug- en monitorgereedschappen zijn
aangepast om zonder PROCFS te draaien:
installaties koppelen dit bestandssysteem standaard niet aan.
options PSEUDOFS # Pseudo-bestandssysteem raamwerk6.X kernels die PROCFS gebruiken moeten ook
ondersteuning voor PSEUDOFS opnemen.options GEOM_GPT # GUID Partitietabellen.Met deze optie kan een groot aantal partities op een enkele
schijf aanwezig zijn.options COMPAT_43 # Compatibel met BSD 4.3 [ERIN HOUDEN!]Compatibiliteit met 4.3BSD. Laat dit aanstaan. Sommige
programma's gedragen zich vreemd als dit uitgecommentarieerd
wordt.options COMPAT_FREEBSD4 # Compatibel met &os; 4Deze optie is nodig op &os; 5.X &i386; en Alpha systemen
om ondersteuning te bieden aan applicaties die gecompileerd zijn
op oudere versies van &os; en gebruik maken van oudere
systeemaanroep-interfaces. Het is aanbevolen dat deze optie
gebruikt wordt op alle &i386; en Alpha systemen die mogelijk
oudere applicaties draaien. Voor platformen die pas in 5.X
ondersteuning verwierven, zoals ia64 en &sparc64;, is deze optie
niet nodig.options COMPAT_FREEBSD5 # Compatibel met &os;5Deze optie is vereist in &os; 6.X en hoger om
toepassingen die op &os; 5.X zijn gecompileerd en
systeemaanroepinterfaces van &os; 5.X gebruiken te
ondersteunen.options SCSI_DELAY=5000 # Vertraging (in ms) voordat SCSI wordt ondergezocht.Dit zorgt ervoor dat de kernel vijf seconden wacht voordat die
elk SCSI-apparaat in het systeem onderzoekt. Als er alleen
IDE-harde schijven zijn, kan deze optie genegeerd worden, anders
kan geprobeerd worden dit getal te verlagen, om het opstarten te
versnellen. Uiteraard moet deze waarde weer verhoogd worden als
&os; problemen heeft om de SCSI-apparaten te herkennen.options KTRACE # ktrace(1) ondersteuningDit schakelt kernelondersteuning voor het volgen processen
in, wat handig is tijdens debuggen.options SYSVSHM # SYSV-stijl gedeeld geheugenDeze optie biedt System V gedeeld geheugen. Meestal
wordt dit wegens de XSHM-uitbreiding in X gebruikt, waar door
vele grafische programma's automatisch gebruik van wordt gemaakt
voor extra snelheid. Als X gebruik wordt, is het raadzaam om dit
op te nemen.options SYSVMSG # SYSV-stijl berichtwachtrijenDit biedt ondersteuning voor System V berichten. Ook
deze optie voegt slechts een paar honderd bytes aan de kernel
toe.options SYSVSEM # SYSV-stijl semaforenDit biedt ondersteuning voor System V semaforen. Het
wordt minder vaak gebruikt, maar voegt slechts een paar honderd
bytes aan de kernel toe.De optie van het commando &man.ipcs.1;
geeft een lijst van alle processen die een van deze
System V faciliteiten gebruikt.options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensiesDit biedt real-time-uitbreidingen die in de 1993 &posix; zijn
toegevoegd. Bepaalde applicaties in de Portscollectie gebruiken
deze (zoals &staroffice;).options KBD_INSTALL_CDEV # installeer een CDEV-ingang in /devDeze optie is nodig om apparaatknooppunten voor het
toetsenbord aan te maken in /dev.options ADAPTIVE_GIANT # Giant mutex is adaptief.Giant is de naam van een wederzijds uitsluitingsmechanisme
(een sleep mutex) dat een grote verzameling kernelbronnen
beschermt. Vandaag de dag is dit een onacceptabele
prestatie-bottleneck die actief door sloten wordt vervangen die
individuele bronnen beschermen. De optie
ADAPTIVE_GIANT zorgt ervoor dat Giant in de
verzamelingen van mutexen wordt opgenomen waar actief wordt
opgespind. Dit betekent dat wanneer een thread de Giant-mutex
wil nemen, maar die reeds door een thread op een andere CPU
genomen is, de eerste thread blijft draaien en wacht tot er een
slot vrijkomt. Normaalgesproken zou de thread weer gaan slapen
en wachten op de volgende kans om te draaien. Laat dit er in
geval van twijfel instaan.Merk op dat in &os; 8.0-CURRENT en later alle mutexen
standaard adaptief zijn, tenzij ze expliciet op niet-adaptief
zijn gezet door met de optie
NO_ADAPTIVE_MUTEXES te compileren. Een
gevolg is dat Giant nu standaard adaptief is, en dat de optie
ADAPTIVE_GIANT uit de kernelinstellingen is
verwijderd.kerneloptiesSMPdevice apic # I/O APICHet apic-apparaat zet de ondersteuning voor I/O-APIC voor het
afleveren van interrupts aan. Het apic-apparaat kan zowel in UP-
als in SMP-kernels gebruikt worden, maar is noodzakelijk voor
SMP-kernels. Voeg options SMP toe om
ondersteuning voor meerdere processoren op te nemen.Het apic-apparaat bestaat alleen in de i386-architectuur,
deze instelregel dient niet op andere architecturen gebruikt te
worden.device eisaNeem dit op voor een EISA-moederbord. Dit zet ondersteuning
voor zelfdetectie en -instelling aan voor alle apparaten op de
EISA-bus.device pciNeem dit op voor een PCI-moederbord. Dit zet ondersteuning
voor zelfdetectie van PCI-kaarten en gatewaying van
PCI-naar-ISA-bus aan.# Floppy drives
device fdcDit is de controller voor de floppydrive.# ATA- en ATAPI-apparaten
device ataDit stuurprogramma biedt ondersteuning aan alle ATA- en
ATAPI-apparaten. Er is slechts één device
ata-regel nodig om de kernel alle PCI
ATA/ATAPI-apparaten te laten ontdekken op moderne
machines.device atadisk # ATA schijvenDit is samen met device ata nodig voor ATA
schijven.device ataraid # ATA RAID schijvenDit is samen met device ata nodig voor ATA
RAID-schijven.
device atapicd # ATAPI CD-ROM drivesDit is samen met device ata nodig voor
ATAPI CD-ROM drives.device atapifd # ATAPI floppy drivesDit is samen met device ata nodig voor
ATAPI floppydrives.device atapist # ATAPI tape drivesDit is samen met device ata nodig voor
ATAPI tapedrives.options ATA_STATIC_ID # Statische apparaatnummeringDit zorgt ervoor dat de controller statisch nummert. Zonder
deze optie worden nummers dynamisch toegewezen.# SCSI Controllers
device ahb # EISA AHA1742 familie
device ahc # AHA2940 en onboard AIC7xxx apparaten
options AHC_REG_PRETTY_PRINT # Print registerbitvelden in
# debuguitvoer. Voegt ~128k
# aan stuurprogramma toe.
device ahd # AHA39320/29320 en onboard AIC79xx apparaten
options AHD_REG_PRETTY_PRINT # Print registerbitvelden in
# debuguitvoer. Voegt ~215k
# aan stuurprogramma toe.
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic familie
#device ispfw # Firmware voor QLogic HBAs- normaliter een module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (nieuwere chipsets + die van `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50SCSI controllers. Commentarieer de regels uit voor apparaten
die niet in het systeem aanwezig zijn. Als het een systeem met
alleen IDE apparaten betreft, kunnen ze allemaal weggelaten
worden. De regels met *_REG_PRETTY_PRINT zijn
debugopties voor hun respectievelijke stuurprogramma's.# SCSI randapparaten
device scbus # SCSI bus (nodig voor SCSI)
device ch # SCSI media changers
device da # Direct Access (schijven)
device sa # Sequential Access (tape, enzovoort)
device cd # CD
device pass # Passthrough apparaat (directe SCSI-toegang)
device ses # SCSI Omgevingsdiensten (en SAF-TE)SCSI-aanhangsels. Ook hier geldt dat apparaten die niet
aanwezig zijn uitgecommentarieerd kunnen worden, of als alleen
IDE-hardware aanwezig aanwezig is, ze allemaal weggelaten kunnen
worden.Het USB-stuurprogramma &man.umass.4; en enkele andere
stuurprogramma's gebruiken het SCSI-subsysteem, alhoewel ze
geen echte SCSI-apparaten zijn. Daarom mag SCSI-ondersteuning
niet verwijderd worden als dit soort stuurprogramma's in de
kernelinstellingen worden opgenomen.# RAID controllers met interfaces naar het SCSI subsysteem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI en Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - Zie NOTES voor opties
device hptmv # Highpoint RocketRAID 182x
device rr232x # Highpoint RocketRAID 232x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough voor aac (heeft CAM nodig)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 famile
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAIDOndersteunde RAID-controllers. Als een van deze niet
aanwezig is, kan deze uitgecommentarieerd of verwijderd
worden.# atkbdc0 bestuurt het toetsenbord en de PS/2 muis
device atkbdc # AT toetsenbordcontrollerDe toetsenbordcontroller (atkbdc) biedt
I/O-diensten aan voor het AT-toetsenbord en het PS/2-type van
aanwijsapparaten. Deze controller is noodzakelijk voor het
toetsenbordstuurprogramma (atkbd) en het
PS/2-aanwijsapparaatstuurprogramma
(psm).device atkbd # AT toetsenbordHet stuurprogramma atkbd biedt samen met
de controller atkbdc toegang tot het
AT84-toetsenbord of het uitgebreide AT-toetsenbord dat verbonden
is met de controller voor het AT-toetsenbord.device psm # PS/2 muisDit apparaat kan gebruikt worden als de muis in de
PS/2-muispoort wordt geplugd.device kbdmux # toetsenbordmultiplexerBasisondersteuning voor multiplexing van toetsenborden. Als u
niet van plan bent om meerdere toetsenborden op het systeem te
gebruiken, kunt u deze regel veilig verwijderen.device vga # VGA videokaart stuurprogrammaHet stuurprogramma voor de videokaart.
device splash # Splash screen en screensaver ondersteuningEen splash-scherm tijdens het opstarten! Screensavers hebben
deze optie ook nodig.# syscons is het standaard consolestuurprogramma, lijkt op een SCO console
device scsc is het standaard consolestuurprogramma
en lijkt op een SCO-console. Aangezien de meeste programma's die
met een volledig scherm werken de console via een
terminaldatabase zoals termcap benaderen,
moet het niet uitmaken of dit of vt, het
VT220-compatibele consolestuurprogramma,
gebruikt wordt. Wanneer er aangemeld wordt, dient de variabele
TERM op scoansi gezet worden
indien programma's die met een volledig scherm werken problemen
hebben om met dit console te draaien.# Schakel dit in voor het pcvt (VT220 compatibele) consolestuurprogramma
#device vt
#options XSERVER # ondersteuning voor X server op een vt console
#options FAT_CURSOR # begin met een blokcursorDit is een VT220-compatibel consolestuurprogramma,
achterwaarts compatibel met de VT100/102. Het werkt goed op
enkele laptops die hardware-incompatibiliteiten hebben met
sc. Ook dient de variabele
TERM op vt100 of
vt220 gezet te worden bij het aanmelden. Dit
stuurprogramma kan ook nuttig zijn wanneer er verbinding wordt
gemaakt met een groot aantal verschillende machines in een
netwerk, waarbij de ingangen termcap of
terminfo voor het apparaat
sc vaak niet beschikbaar zijn.
vt100 is op bijna elk platform
beschikbaar.device agpNeem dit op als er een AGP-kaart in het systeem aanwezig is.
Dit zet ondersteuning voor AGP aan, en ondersteuning voor AGP
GART voor borden die deze mogelijkheden hebben.APM# Ondersteuning voor energiebeheer (zie NOTES voor meer opties)
#device apmOndersteuning voor geavanceerd energiebeheer (Advanced Power
Management). Dit is nuttig voor laptops, alhoewel dit
standaard uitgeschakeld is in GENERIC.# Schakel suspend/resume ondersteuning voor de i8254 in.
device pmtimerHet stuurprogramma voor het timerapparaat voor
energiebeheergebeurtenissen, zoals APM en ACPI.# PCCARD (PCMCIA) ondersteuning.
# PCMCIA en cardbus bridge ondersteuning.
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) busOndersteuning voor PCMCIA. Dit is wenselijk voor
laptopgebruikers.# Serial (COM) poorten
device sio # 8250, 16[45]50-gebaseerde seriële poortenDit zijn de seriële poorten waarnaar in de wereld van
&ms-dos;/&windows; verwezen wordt als
COM-poorten.Als er een intern modem op COM4 en
een seriële poort op COM2
aanwezig is, moet het IRQ van het modem in 2 worden veranderd
(om duistere technische redenen geldt dat IRQ2 = IRQ9) om er
vanuit &os; toegang toe te krijgen. Als er een multipoort
seriële kaart aanwezig is, staat in &man.sio.4; meer
informatie over de juiste waarden die aan
/boot/device.hints toegevoegd moeten
worden. Sommige videokaarten (vaak gebaseerd op S3 chips)
gebruiken IO-adressen van de vorm 0x*2e8, en
omdat vele goedkope serieële kaarten de 16-bits
IO-adresruimte niet volledig decoderen, botsen ze met deze
kaarten waardoor de COM4-poort
praktisch onbruikbaar is.Elke serieële poort moet een uniek IRQ hebben (tenzij
er gebruik wordt gemaakt van een van de multipoortkaarten
waarbij gedeelde interrupts ondersteund worden), dus kunnen de
standaard IRQ's voor COM3 en
COM4 niet gebruikt worden.# Parallelle poort
device ppcDit is de interface voor de parallelle poort op de
ISA-bus.device ppbus # Parallelle poortbus (verplicht)Biedt ondersteuning voor de parallelle poortbus.device lpt # PrinterOndersteuning voor parallelle poort-printers.Alle van de bovenstaande drie zijn noodzakelijk om
ondersteuning voor parallelle printers aan te zetten.device plip # TCP/IP over parallelDit is het stuurprogramma voor de parallelle
netwerkinterface.device ppi # Parallelle poort interface apparaatDe algemene I/O (geek-poort) + IEEE1284 I/O.#device vpo # scbus en da verplichtzipdriveDit is voor een Iomega Zipdrive. Hiervoor is ondersteuning
voor scbus en da nodig. De
beste prestaties worden gehaald met poorten in EPP
1.9-modus.#device pucDit dient uitgecommentarieerd te worden indien er een
domme seriële of parallelle PCI-kaart
aanwezig is die ondersteund wordt door het &man.puc.4;
verbindingsstuurprogramma.# PCI Ethernet NIC's.
device de # DEC/Intel DC21x4x (Tulip)
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device ixgb # Intel PRO/10GbE Ethernet Card
device txp # 3Com 3cR990 (Typhoon)
device vx # 3Com 3c590, 3c595 (Vortex)Verscheidene PCI-netwerkkaartstuurprogramma's. Degenen die
niet in het systeem aanwezig zijn kunnen uitgecommentarieerd of
verwijderd worden.# PCI Ethernet NIC's die de MII bus controller code gebruiken.
# NB: 'device miibus' moet behouden blijven om deze NIC's te kunnen gebruiken!
device miibus # MII bus ondersteuningOndersteuning voor MII-bus is noodzakelijk voor sommige PCI
10/100 Ethernet-NICs, namelijk voor diegenen die MII-geldige
transceivers gebruiken of interfaces voor transceiverbesturing
implementeren die als een MII werken. Door device
miibus aan de kernelinstellingen toe te voegen wordt
de ondersteuning voor de generieke miibus-API en voor alle
PHY-stuurprogramma's opgenomen, waaronder een generieke voor
PHYs die niet specifiek door een individueel stuurprogramma
worden behandeld.device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 en verschillende gelijkwerkenden
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device lge # Level 1 LXT1001 gigabit Ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device nge # NatSemi DP83820 gigabit Ethernet
device nve # nVidia MCP on-board Ethernet Networking
device pcn # AMD Am79C97x PCI 10/100 (voorrang op 'lnc')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 EPIC)
device ge # VIA VT612x gigabit Ethernet
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang, Cyclone)Stuurprogramma's die gebruik maken van de MII
bus-controllercode.# ISA Ethernet NIC's. Inclusief pccard NIC's.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' heeft 'device miibus' nodig
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 kaarten
device ex # Intel EtherExpress Pro/10 en Pro/10+
device ep # Etherlink III-gebaseerde kaarten
device fe # Fujitsu MB8696x-gebaseerde kaarten
device ie # EtherExpress 8/16, 3C507, StarLAN 10, etc.
device lnc # NE2100, NE32-VL Lance Ethernet kaarten
device sn # SMC's 9000 serie Ethernet chips
device xe # Xircom pccard Ethernet
# ISA apparaten die de oude ISA shims gebruiken
#device leISA Ethernetstuurprogramma's. In
/usr/src/sys/i386/conf/NOTES
staan details over welke kaarten door welk stuurprogramma
ondersteund worden.# Draadloze NIC kaarten
device wlan # 802.11 ondersteuningGenerieke 802.11 ondersteuning. Deze regel is vereist voor
draadloos netwerken.device wlan_wep # 802.11 WEP-ondersteuning
device wlan_ccmp # 802.11 CCMP-ondersteuning
device wlan_tkip # 802.11 TKIP-ondersteuningCrypto-ondersteuning voor 802.11-apparaten. Deze regels zijn
nodig als u van plan bent om versleuteling en
802.11i-beveiligingsprotocollen te gebruiken.device an # Aironet 4500/4800 802.11 draadloze NIC's.
device ath # Atheros PCI/CardBus NICs
device ath_hal # Atheros HAL (Hardware Access Layer)
device ath_rate_sample # SampleRate verzendsnelheidbeheer voor ath
device awi # BayStack 660 en anderen
device ral # Ralink Technologies RT2500 draadloze NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 draadloze NIC's.
#device wl # Oudere niet-802.11 Wavelan draadloze NIC.Ondersteuning voor verscheidene draadloze kaarten.# Pseudo-apparaten
device loop # Netwerk teruglussenDit is het generieke teruglusapparaat voor TCP/IP. Als
telnet of FTP op localhost (ook bekend als
127.0.0.1) gebruikt wordt, loopt
dat via dit apparaat. Dit is verplicht.
device random # Entropy apparaatCryptografisch veilige willekeurige getallengenerator.device ether # Ethernet ondersteuningether is allen noodzakelijk als er een
Ethernetkaart aanwezig is. Het bevat code voor het generieke
Ethernetprotocol.device sl # Kernel SLIPsl dient voor SLIP-ondersteuning. Dit is
bijna geheel overgenomen door PPP, wat eenvoudiger is op te
zetten, beter geschikt is voor modem-naar-modem-verbindingen en
krachtiger is.device ppp # Kernel PPPDit dient voor PPP-ondersteuning van inbelverbindingen door
de kernel. Er is ook een versie van PPP als gebruikersapplicatie
geïmplementeerd die tun gebruikt en meer
flexibiliteit en mogelijkheden biedt zoals demand-bellen.device tun # Packet tunnel.Dit wordt gebruikt door de gebruikers-PPP-software. In
PPP staat meer informatie.
device pty # Pseudo-ttys (telnet, etc.)Dit is een pseudo-terminal of gesimuleerde
aanmeldpoort. Die wordt gebruikt door binnenkomende sessies van
telnet en rlogin, door
xterm en voor sommige andere
applicaties zoals Emacs.device md # GeheugenschijvenPseudo-apparaten die een schijf in het geheugen implementeren.
device gif # IPv6 en IPv4 tunnelenDit implementeert IPv6-over-IPv4-tunneling,
IPv4-over-IPv6-tunneling, IPv4-over-IPv4-tunneling en
IPv6-over-IPv6-tunneling. Het apparaat gif is
zelfklonend en zal naar behoefte
apparaatknooppunten aanmaken.device faith # IPv6-naar-IPv4-relay (vertaling)Dit pseudo-apparaat onderschept pakketten die ernaar
verzonden worden en leidt ze om naar het IPv4/IPv6-vertaaldaemon.
# Het `bpf' apparaat schakelt de Berkeley Pakketfilter in.
# Wees bewust van de administratieve consequenties die dit heeft!
# 'bpf' is nodig bij gebruik van DHCP.
device bpf # Berkeley pakketfilterDit is het Berkeley Pakketfilter. Dit pseudo-apparaat staat
netwerkinterfaces toe om in luistermodus gezet te worden, zodat
elk pakket op een uitzendnetwerk (bijvoorbeeld een Ethernet)
onderschept wordt. Deze pakketten kunnen naar schijf onderschept
en/of onderzocht worden met het programma &man.tcpdump.1;.Het apparaat &man.bpf.4; wordt ook gebruikt door
&man.dhclient.8; om het IP-adres van de standaardrouter
(gateway) te verkrijgen, enzovoorts. Als DHCP gebruikt wordt,
dient dit ingeschakeld te blijven.# USB-ondersteuning
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (verplicht)
#device udbp # USB Double Bulk Pipe apparaten
device ugen # Generic
device uhid # Human Interface Devices
device ukbd # Toetsenbord
device ulpt # Printer
device umass # Schijven/Massaopslag - heeft scbus en da nodig
device ums # Muis
device ural # Ralink Technology RT2500USB draadloze NICs
device urio # Diamond Rio 500 MP3 speler
device uscanner # Scanners
# USB Ethernet, heeft mii nodig
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB EthernetOndersteuning voor verscheidene USB-apparaten.# FireWire ondersteuning
device firewire # FireWire bus code
device sbp # SCSI over FireWire (scbus en da nodig)
device fwe # Ethernet over FireWire (niet-standaard!)Ondersteuning voor verscheidene Firewire-apparaten.Meer informatie en aanvullende apparaten die door &os;
ondersteund worden staan in
/usr/src/sys/i386/conf/NOTES.Instellingen bij veel geheugen
(PAE)Physical Address Extensions
(PAE)veel geheugenSommige machines (PAE) hebben meer
geheugen nodig dan limiet van 4 gigabyte op User+Kernel Virtual
Adress (KVA) ruimte. Vanwege deze limiet
voegde Intel ondersteuning toe voor toegang tot 36-bits fysieke
adresruimte in de &pentium; Pro en nieuwere lijn van
CPU's.De Physical Address Extension (PAE)
mogelijkheden van de &intel; &pentium; Pro en nieuwere CPU's
staan geheugenhoeveelheden toe tot 64 gigabyte. &os; biedt
ondersteuning voor deze mogelijkheid via de kernelinsteloptie
, die beschikbaar is in alle recent
uitgegeven versies van &os;. Vanwege de beperkingen van de
geheugenarchitectuur van Intel wordt er geen onderscheid
gemaakt tussen geheugen boven of beneden 4 gigabytes. Geheugen
dat boven de 4 gigabytes is toegewezen wordt gewoon bij het
beschikbare gevoegd.Om ondersteuning voor PAE in de kernel
aan te zetten, dient de volgende regel aan het
kernelinstellingenbestand te worden toegevoegd:options PAEDe ondersteuning voor PAE in &os; is
alleen beschikbaar voor &intel; IA-32-processoren. Ook dient
opgemerkt te worden dat ondersteuning voor
PAE nog niet wijdverbreid getest is en
als betakwaliteit beschouwd dient te worden vergeleken met
andere stabiele kenmerken van &os;.Ondersteuning voor PAE in &os; heeft
enige beperkingen:Een proces kan niet meer dan 4 gigabyte VM-ruimte
krijgen;Apparaatstuurprogramma's die geen gebruik maken van de
&man.bus.dma.9;-interface zullen gegevenscorruptie
veroorzaken in een kernel die PAE aan
heeft staan en hun gebruik wordt afgeraden. Om deze reden
wordt er de kernelinstellingenbestand voor de
PAE-kernel geleverd met &os;, dat alle
stuurprogramma's uitsluit waarvan niet bekend is dat ze
werken in een kernel die PAE aan heeft
staan;Sommige systeeminstellingen bepalen het
geheugenbronverbruik aan de hand van de hoeveelheid
beschikbaar fysiek geheugen. Zulke instellingen kunnen
onnodig veel toewijzen vanwege de grote hoeveelheid
geheugen in een PAE systeem. Een
voorbeeld hiervan is de sysctl
, die het maximum aantal
vnodes dat in de kernel aanwezig mag zijn beheert. Het is
aan te raden om deze en andere van dit soort instellingen
aan te passen aan een redelijke waarde;Het kan nodig zijn om de virtuele kerneladresruimte
(KVA) te vergroten of om het aantal
kernelbronnen dat veel gebruikt wordt (zie boven) te
verminderen om zo uitputting van KVA te
voorkomen. De kerneloptie kan
gebruikt worden om de KVA-ruimte te
vergroten.Om prestatie- en stabiliteitsredenen is het aan te raden om
&man.tuning.7; te raadplegen. &man.pae.4; bevat bijgewerkte
informatie over de ondersteuning voor PAE in
&os;.Problemen oplossenEr zijn vier probleemcategoriën die op kunnen treden
tijdens het bouwen van een aangepaste kernel:config faaltAls het commando &man.config.8; faalt bij het verwerken
van de kernelbeschrijving, is er waarschijnlijk ergens een
eenvoudige fout gemaakt. Gelukkig geeft &man.config.8; het
nummer van de regel weer waarmee het problemen had, dus kan
snel de regel gevonden worden waarin de fout zit.
In het onderstaande voorbeeld dient gecontroleerd te worden
of het sleutelwoord juist is ingevoerd door het met de
kernel GENERIC of een andere
referentie te vergelijken:config: line 17: syntax errormake faaltAls make faalt, duidt dit meestal op
een fout in de kernelbeschrijving die niet erg genoeg is om
door &man.config.8; opgemerkt te worden. De instellingen
dienen nogmaals nagekeken te worden. Als het probleem nog
steeds niet is op te lossen, stuur dan een mail naar de
&a.questions; met de kernelinstellingen. Dat leidt meestal
snel tot een diagnose.De kernel start niet opAls de nieuwe kernel niet opstart of de apparaten
niet herkent is kalmte geboden. &os; heeft een uitstekend
mechanisme om van niet-compatibele kernels te herstellen.
De gewenste kernel om mee op te starten kan vanuit de &os;
boot loader gekozen worden. Als het systeemopstartmenu
verschijnt, kan deze gekozen worden.
Selecteer de optie Escape to a loader prompt,
nummber zes. Typ op de prompt unload kernel
en daarna boot
/boot/kernel.old/kernel
of de bestandsnaam van een andere kernel die correct
opstart. Als de kernelinstellingen gewijzigd worden, is
het altijd aan te raden om een kernel bij de hand te houden
waarvan bekend is dat die juist werkt.Nadat er met een goede kernel is opgestart, kan het
instellingenbestand gecontroleerd worden en geprobeerd
worden om de kernel nogmaals te bouwen. Een behulpzame
bron is het bestand /var/log/messages,
dat onder andere alle kernelberichten van alle keren dat er
succesvol is opgestart vastlegt. Ook geeft &man.dmesg.8;
alle kernelberichten weer van de huidige
opstartprocedure.Als er problemen zijn met het bouwen van een kernel,
dient een GENERIC, of een andere
kernel waarvan bekend is dat die werkt, bewaard te worden
onder een andere naam die niet verwijderd wordt als de
volgende kernel gebouwd wordt. Er kan niet op
kernel.old vertrouwd worden omdat
bij de installatie van een nieuwe kernel
kernel.old overschreven wordt met de
laatst geïnstalleerde kernel, die niet hoeft te
werken. Ook dient de werkende kernel zo snel mogelijk
naar de juiste plaats /boot/kernel verplaatst te
worden, omdat anders commando's als &man.ps.1; eventueel
onjuist werken. Hiervoor dient simpelweg de map met de
goede kernel hernoemd te worden:&prompt.root; mv /boot/kernel /boot/kernel.slecht
&prompt.root; mv /boot/kernel.goed /boot/kernelDe kernel werkt, maar &man.ps.1; werkt niet meerAls er een andere versie van de kernel is
geïnstalleerd dan degene waarmee de
systeemgereedschappen gebouwd zijn, bijvoorbeeld een kernel
voor -CURRENT op een -RELEASE-systeem, werken vele
systeemstatuscommando's als &man.ps.1; en &man.vmstat.8;
niet langer. De wereld moet opnieuw gecompileerd en
geïnstalleerd worden en met dezelfde broncodestructuur
als de kernel zijn gebouwd. Dit is een van de redenen
waarom het normaliter geen goed idee is om een afwijkende
versie van de kernel ten opzichte van de rest van de wereld
te gebruiken.
diff --git a/nl_NL.ISO8859-1/books/handbook/mirrors/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/mirrors/chapter.sgml
index 24dd9110df..5709380d4e 100644
--- a/nl_NL.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/mirrors/chapter.sgml
@@ -1,3334 +1,3344 @@
&os; verkrijgenCD-ROM en DVD uitgeversWinkelproducten in doos&os; is beschikbaar in een doos (&os; CD-ROMs, additionele
software en gedrukte documentatie) bij verschillende
verkopers:CompUSA
WWW: Frys Electronics
WWW: CD-ROMs en DVD's&os; CD-ROMs en DVD's zijn te koop bij veel online
winkels:&os; Mall, Inc.700 Harvest Park Ste FBrentwood, CA94513Verenigde Staten
Telefoon: +1 925 240-6652
Fax: +1 925 674-0821
E–mail: info@freebsdmall.com
WWW: Dr. Hinner EDVSt. Augustinus-Str. 10D-81825MünchenDuitsland
Telefoon: (089) 428 419
WWW: Ikarios22-24 rue Voltaire92000NanterreFrankrijk
WWW: JMC SoftwareIerland
Telefoon: 353 1 6291282
WWW: The Linux EmporiumHilliard House, Lester WayWallingfordOX10 9TAVerenigd Koninkrijk
Telefoon: +44 1491 837010
Fax: +44 1491 837016
WWW: Linux+ DVD MagazineLewartowskiego 6Warsaw00-190Polen
Telefoon: +48 22 860 18 18
E–mail: editors@lpmagazine.org
WWW: Linux System Labs Australia21 Ray DriveBalwyn NorthVIC - 3104Australië
Telefoon: +61 3 9857 5918
Fax: +61 3 9857 8974
WWW: LinuxCenter.RuGalernaya Street, 55Saint-Petersburg190000Rusland
Telefoon: +7-812-3125208
E–mail: info@linuxcenter.ru
WWW: DistributeursWederverkopers die &os; CD-ROM producten willen verkopen
kunnen contact opnemen met een distributeur:Cylogistics809B Cuesta Dr., #2149Mountain View, CA94040Verenigde Staten
Telefoon: +1 650 694-4949
Fax: +1 650 694-4953
E–mail: sales@cylogistics.com
WWW: Ingram Micro1600 E. St. Andrew PlaceSanta Ana, CA92705-4926Verenigde Staten
Telefoon: 1 (800) 456-8000
WWW: Kudzu, LLC7375 Washington Ave. S.Edina, MN55439Verenigde Staten
Telefoon: +1 952 947-0822
Fax: +1 952 947-0876
E–mail: sales@kudzuenterprises.comLinuxCenter.RuGalernaya Street, 55Saint-Petersburg190000Rusland
Telefoon: +7-812-3125208
E–mail: info@linuxcenter.ru
WWW: Navarre Corp7400 49th Ave SouthNew Hope, MN55428Verenigde Staten
Telefoon: +1 763 535-8333
Fax: +1 763 535-0341
WWW: FTP sitesDe officiële broncode voor &os; is beschikbaar via
anoniem toegankelijke FTP in de hele wereld via vele mirrorsites.
De site
heeft een goede verbinding en staat veel verbindingen toe, maar
het is waarschijnlijk beter om een mirrorsite te zoeken die
dichterbij is (zeker als het doel is ook een
soort mirrorsite op te zetten).De &os; mirrorsites
database is beter bijgewerkt dan die in het
Handboek omdat die lijst uit DNS komt in plaats van een met de
hand ingevoerde lijst.&os; is beschikbaar via de onderstaande anonieme FTP mirror
sites. Bij het kiezen van anonieme FTP voor het verkrijgen van
&os; wordt aangeraden een site die dichtbij ligt te kiezen. De
mirrorsites die in de lijst staan als Primaire
Mirrorsites hebben meestal het complete &os; archief
(alle beschikbare versies voor alle architecturen) maar downloads
zijn waarschijnlijk sneller van een site die in het land of de
regio van de gebruiker staat. De regionale sites hebben de
meeste recente versies voor de meest populaire architecturen,
maar hebben wellicht niet het complete archief. Alle sites geven
toegang via anonieme FTP, maar een aantal sites hebben ook andere
toegangsmogelijkheden. De toegangsmogelijkheden voor iedere site
staan tussen haakjes achter de hostnaam.
&chap.mirrors.ftp.inc;
BitTorrentBitTorrentDe ISO-afbeeldingen voor de basis-CD's van de uitgaven zijn
beschikbaar via BitTorrent. Een verzameling torrent-bestanden om
de afbeeldingen binnen te halen is beschikbaar op http://torrents.freebsd.org:8080De software voor de BitTorrent-cliënt is beschikbaar via
de port net-p2p/py-bittorrent,
of als voorgecompileerd pakket.Nadat de ISO-afbeelding met BitTorrent is gedownload, kan het
op CD of DVD gebrand worden zoals beschreven in .Anonieme CVSInleidingCVSanoniemAnonieme CVS (of ook wel bekend als
anoncvs) is een functie die beschikbaar is
met de hulpprogramma's die bij &os; zitten om te synchroniseren
met een elders aanwezig CVS depot. Het staat gebruikers van
&os; onder andere toe om zonder bijzondere rechten alleen-lezen
operaties uit te voeren op een van de officiële anoncvs
servers van het &os; project. Om het te kunnen gebruiken dient
de omgevingsvariabele CVSROOT zo ingesteld te
worden dat hij wijst naar de gewenste anoncvs server, dient het
bekende wachtwoord anoncvs bij het commando
cvs login opgegeven te worden en kan daarna
&man.cvs.1; gebruikt worden om het te benaderen als ieder
lokaal aanwezig depot.Het commando cvs login slaat de
wachtwoorden die voor aanmelden bij de CVS server op in een
bestand met de naam .cvspass in de map
HOME. Als dit bestand niet bestaat, is het
mogelijk dat er een foutmelding wordt gegeven als
cvs login de eerste keer wordt gebruikt.
Dat kan opgelost worden door een leeg bestand
.cvspass te maken en dan opnieuw aan te
melden.Hoewel de diensten CVSup en
anoncvs beiden vrijwel dezelfde functie
invullen, zijn er redenen die de keuze voor de
synchronisatiemethode beïnvloeden. In een notendop is
CVSup veel efficiënter in het
gebruik van netwerkbronnen en is het de meest geavanceerde van
de twee, maar daar staat iets tegenover. Voor het gebruik van
CVSup moet eerst een speciale client
geïnstalleerd en ingesteld worden voordat er bits kunnen
gaan stromen en dat kan dan alleen in de redelijk grote brokken
die in CVSupcollections heten.Anoncvs kan daarentegen gebruikt
worden om alles te bekijken van een individueel bestand tot aan
een specifiek programma (als ls of
grep) door aan de naam van de CVS module
te refereren. Ook anoncvs is alleen
geschikt voor alleen-lezen operaties op het CVS depot, dus als
het de bedoeling is om lokaal ontwikkelwerk en hetzelfde depot
met delen uit het &os; project te combineren, dan biedt alleen
CVSup daar een oplossing
voor.Anonieme CVS gebruikenHet instellen van &man.cvs.1; om gebruik te maken van
een Anoniem CVS depot is een kwestie van het instellen van de
omgevingsvariabele CVSROOT op een van de
anoncvs servers van het &os; project. Op
het moment van schrijven zijn de volgende servers
beschikbaar:Frankrijk:
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
(pserver (wachtwoord anoncvs), ssh
(geen wachtwoord)Japan:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
Gebruik cvs login en gebruik als
wachtwoord anoncvsTaiwan:
:pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
(pserver (gebruik cvs login en
vul een willekeurig wachtwoord in wanneer daarom
gevraagd wordt), ssh (geen wachtwoord))SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pubVS:
freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
(alleen ssh - geen wachtwoord)SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu
SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pubVS:
anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (alleen ssh2 - geen
wachtwoord)SSH2 HostKey: 2048 4d:59:19:7b:ea:9b:76:0b:ca:ee:da:26:e2:3a:83:b8 ssh_host_dsa_key.pubOmdat met CVS vrijwel iedere versie die ooit beschikbaar is
geweest uitgecheckt kan worden, is het van
belang op de hoogte te zijn van de &man.cvs.1; vlag voor
revisie () en welke waarden zie zoal kan
aannemen in het &os; Project depot.Er zijn twee soorten labels (tags): revisielabels en
taklabels (branch). Een revisielabel refereert aan een
specifieke revisie. De betekenis blijft van dag tot dag
gelijk. Aan de andere kant refereert een taklabel aan de
laatste revisie in een bepaalde ontwikkellijn op een bepaald
moment. Omdat een taklabel niet refereert aan een specifieke
revisie, kan die morgen anders zijn dan vandaag. bevat revisielabels waar
gebruikers in geïnteresseerd kunnen zijn. Nogmaals: deze
zijn allemaal niet geldig voor de Portscollectie omdat de
Portscollectie geen meerdere ontwikkel takken kent.Als een specifiek taklabel wordt aangegeven, worden als
alles goed gaat, de laatste revisies uit een bepaalde
ontwikkellijn ontvangen. Als er een oudere versie opgehaald
moet worden, kan dat door met de vlag een datum aan te geven. In &man.cvs.1; staan
meer details.VoorbeeldenHoewel het sterk wordt aangeraden eerst de hulppagina's
voor &man.cvs.1; grondig door te lezen, volgen hier een aantal
snelle voorbeelden die feitelijk aangeven hoe Anonieme CVS
gebruikt kan worden.SSH gebruiken om de src/ tree uit
te checken:&prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.Iets uitchecken uit -CURRENT (&man.ls.1;):&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginOp de prompt, voer een willekeurig wachtwoord inwachtwoord.
&prompt.user; cvs co lsSSH gebruiken om de src/
structuur uit te checken:&prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.De versie van &man.ls.1; in de 6-STABLE tak
uitchecken:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginOp de prompt, voer een willekeurig wachtwoord inwachtwoord.
&prompt.user; cvs co -rRELENG_6 lsEen lijst wijzigingen maken (als unified diffs) voor
&man.ls.1;&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginOp de prompt, voer een willekeurig wachtwoord inwachtwoord.
&prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE lsUitzoeken welke modulenamen gebruikt kunnen
worden:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginOp de prompt, voer een willekeurig wachtwoord inwachtwoord.
&prompt.user; cvs co modules
&prompt.user; more modules/modulesAndere bronnenDe volgende bronnen kunnen bijdragen aan een beter begrip
van CVS:CVS
Tutorial van Cal Poly.CVS Home,
de CVS gemeenschap voor ontwikkeling en
ondersteuning.CVSweb
is de &os; Project webinterface voor CVS.CTM gebruikenCTMCTM is een methode om een map
elders gesynchroniseerd te houden met een centrale. Het is
ontwikkeld voor gebruik met de &os; broncode, hoewel sommigen het
ook voor andere doeleinden handig vinden. Er bestaat op dit
moment weinig tot geen documentatie over het proces van het maken
van delta's. Voor informatie over het gebruik van
CTM kan het beste contact gezocht
worden met de &a.ctm-users.name; mailinglijst.Waarom CTM gebruiken?CTM geeft een lokale kopie van
de &os; broncode. Die is in een aantal smaken
beschikbaar. Of het gaat om slechts één tak of
de complete CVS structuur, CTM kan
het bieden. CTM is gewoon gemaakt
voor actieve ontwikkelaars die met &os; werken, maar geen of
een slechte Internetverbinding hebben of gewoon automatisch de
laatste wijzigingen willen ontvangen. De meest actieve takken
kennen op z'n hoogst drie delta's per dag. Het is het
overwegen waard om ze per automatische mail te laten sturen.
De grootte van de updates wordt altijd zo klein mogelijk
gehouden. Meestal kleiner dan 5 K en soms (in tien
procent van de gevallen) is het 10–50 K. In
uitzonderlijke gevallen komt het voor dat een mail van
100 K of meer wordt gestuurd.Het is wel van belang op de hoogte te zijn van de valkuilen
die een rol spelen bij het direct werken met broncode in plaats
van met een voorverpakte release. Dit geldt nog meer als wordt
gewerkt met de current code. Het lezen van
Bijblijven met &os; wordt sterk
aangeraden.Wat is er nodig om CTM te
gebruiken?Voor het gebruik van CTM zijn
twee dingen nodig: het CTM
programma en de initiële delta's om de applicatie te
voeden en naar een current niveau te
komen.CTM is al onderdeel van &os;
sinds versie 2.0 is uitgebracht en is te vinden in
/usr/src/usr.sbin/ctm, als de broncode
aanwezig is.De delta's voor
CTM kunnen op twee manieren komen:
met FTP of per e-mail. De volgende FTP sites bieden
ondersteuning voor CTM:Er staan er nog meer in de paragraaf mirrors.FTP de relevante map en download het bestand
README vanaf daar.Voor delta's via e-mail:Er dient een abonnement genomen te worden op een van de
CTM distributielijsten.
&a.ctm-cvs-cur.name; ondersteunt de complete CVS structuur.
&a.ctm-src-cur.name; ondersteunt het hoofd van de ontwikkeltak.
&a.ctm-src-4.name; ondersteunt de 4.X release tak, enzovoort.
Om te abonneren kan geklikt worden op de bovenstaande links of
via &a.mailman.lists.link; kan in een lijst geklikt worden op
de lijst waarvoor waarvoor een abonnement gewenst is. De
lijstpagina bevat instructies over hoe te abonneren.Na het ontvangen van CTM updates
per mail, kan ctm_rmail gebruikt worden voor
het uitpakken en verwerken. ctm_rmail kan
zelfs direct vanuit /etc/aliases gebruikt
worden om het proces volledig automatisch te laten verlopen.
In de hulppagina van ctm_rmail staan meer
details.Welke methode ook gebruikt wordt voor de
CTM delta's, het is belangrijk een
abonnement te nemen op de &a.ctm-announce.name; mailinglijst.
In de toekomst worden alleen op die lijst aankondigingen
gedaan over het CTM systeem.
Abonneren kan door op de link hierboven te klikken en de
instructies te volgen.CTM de eerste keer
gebruikenVoordat de CTM delta's gebruikt
kunnen worden, moet er een startpunt voor bepaald
worden.Eerst moet bepaald worden wat er al is. Het is mogelijk te
beginnen vanuit een lege map. Dan moet een
initiële Empty delta gebruikt worden om een
door CTM ondersteunde structuur te
starten. Het is de bedoeling dat deze start
delta's ooit voor het gemak op de CD-ROM komen te staan, maar
dit is nog niet het geval.Omdat de structuren tientallen megabytes groot zijn, heeft
het de voorkeur om al met iets te beginnen. Als er een
-RELEASE CD-ROM beschikbaar is, kan de initiële broncode
gekopieerd of uitgepakt worden. Dit bespaart nogal wat
dataverkeer.De start delta's kunnen herkend worden aan
de X die aan het nummer is toegevoegd
(bijvoorbeeld src-cur.3210XEmpty.gz). De
nummering achter de X komt overeen met de
oorsprong van het initiële zaad.
Empty is een lege map. Er wordt in het
algemeen iedere honderd delta's een basistransitie voor
Empty gemaakt. Die zijn trouwens groot: 70
tot 80 Megabytes gzip data is normaal voor
de XEmpty delta's.Als er een delta als startpunt is gekozen, zijn ook alle
delta's met hogere volgnummers nodig.CTM in het dagelijks leven
gebruikenOm de delta's toe te passen:&prompt.root; cd /where/ever/you/want/the/stuff
&prompt.root; ctm -v -v /where/you/store/your/deltas/src-xxx.*CTM begrijpt delta's in
gzip formaat, dus het niet nodig om eerst
gunzip te gebruiken. Dat spaart
diskruimte.Tenzij het zeker is van de veiligheid van het proces, doet
CTM niets met de structuur. Om een
delta te verifiëren kan ook de vlag
gebruikt worden en dan komt
CTM ook niet aan een structuur. Dan
wordt alleen de integriteit van de delta gecontroleerd en of
die zonder problemen op de huidige structuur kan worden
toegepast.CTM kent nog meer opties die in
de hulppagina's worden besproken.Meer is er niet. Iedere keer dat er een delta wordt
ontvangen, moet die door CTM gehaald
worden om de broncode bijgewerkt te houden.Delta's kunnen het beste niet verwijderd worden als het
lastig is ze opnieuw te downloaden. Dan kunnen ze het beste
bewaard worden voor het geval er eens iets gebeurt. Zelfs als
er alleen floppy's beschikbaar zijn, is het wellicht verstandig
die te gebruiken met fdwrite.Lokale wijzigingen behoudenEen ontwikkelaar wil graag experimenteren met bestanden in
de structuur en die bestanden veranderen.
CTM ondersteunt lokale wijzigingen
in beperkte mate: alvorens te kijken of bestand
foo bestaat, zoekt het eerst naar
foo.ctm. Als dat bestand bestaat, past
CTM de wijzigigen daarop toe in
plaats van op foo.Dit gedrag biedt een eenvoudige mogelijkheid om lokale
wijzigingen bij te houden. Dat kan dus door bestanden die
gewijzigd gaan worden te kopiëren naar een bestand met
dezelfde naam met de toevoeging .ctm. Dan
kan er vrijelijk gespeeld worden met de code, terwijl
CTM het bestand
.ctm bijwerkt.Andere interessante mogelijkheden van
CTMUitvinden wat precies wordt veranderd met
bijwerkenHet is mogelijk een lijst met wijzigingen te maken die
CTM zou maken op het broncodedepot
met de optie .Dit is nuttig als het gewenst is om een logboek bij te
houden van de wijzigingen, de te wijzigen bestanden voor- of
na te bewerken op welke manier dan ook, of als de gebruiker
gewoon een beetje paranoïde is.Back-ups maken vóór bijwerkenSoms kan het wenselijk zijn om een back-up te maken van
alle bestanden die gewijzigd gaan worden door een
CTM update.Met back-upt
CTM alle bestanden die gewijzigd
gaan worden door een CTM delta
naar back–upbestand.Te wijzigen bestanden door bijwerken beperkenSoms is het wenselijk de reikwijdte voor een
CTM update te beperken of kan het
wenselijk zijn om maar een paar bestanden bij te werken uit
een aantal delta's.Een lijst met bestanden die
CTM mag bewerken kan aangegeven
worden met de opties en
en het opgeven van regular
expressions.Om bijvoorbeeld een bijgewerkte kopie van
lib/libc/Makefile te maken uit de
verzameling met opgeslagen CTM
delta's, kan het volgende commando uitgevoerd worden:&prompt.root; cd /where/ever/you/want/to/extract/it/
&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*Voor ieder te wijzigen bestand in een
CTM delta worden de opties
en toegepast in de
volgorde waarin ze op de commandoregel staan. Het bestand
wordt alleen door CTM verwerkt als
het passend is bevonden na het toepassen van alle parameters
in en .Toekomstige plannen voor
CTMDie zijn er:Een of andere vorm van authenticatie in het
CTM systeem bouwen zodat
vervalste CTM updates
afgevangen kunnen worden;De opties voor CTM opruimen
omdat ze verwarrend zijn geworden.Nog meerEr zijn ook delta's voor de
portscollectie, maar daar is nog niet zo
veel belangstelling voor.CTM mirrorsCTM/&os; is op de volgende
mirrorsites via anonieme FTP beschikbaar. Als voor
CTM anonieme FTP wordt gebruikt,
heeft het de voorkeur een site die in geografische zin dichtbij
is te gebruiken.Bij problemen kan contact gezocht worden met de
&a.ctm-users.name; mailinglijst.Californië, Bay Area, officiële bronZuid-Afrika, back-upserver voor oude delta'sTaiwan/R.O.C.Als er geen mirror dichtbij is of als die incompleet is,
kan een zoekmachine als alltheweb gebruikt
worden.CVSup gebruikenInleidingCVSup is een softwarepakket voor
het verspreiden en bijwerken van broncodestructuren vanaf een
master CVS depot op een andere server. De &os; broncode wordt
beheerd in een broncode depot op een centrale ontwikkelmachine
in Californië. Met CVSup
kunnen &os; gebruikers op eenvoudige wijze hun broncode
bijwerken.CVSup gebruikt een zogenaamd
pull model voor het bijwerken. In het
pull-model vraagt iedere client de server om updates als die
nodig zijn. De server wacht passief op een verzoek om updates
van zijn clients. Alle updates worden dus op initiatief van de
client gedaan. De server stuurt nooit ongevraagde updates.
Gebruikers moeten de CVSup client
handmatig draaien om te updaten of een cron
taak instellen om op regelmatige basis bij te werken.De term CVSup, op de gegeven
wijze geschreven, doelt op het complete softwarepakket. De
belangrijkste componenten zijn de client
cvsup, die op de machine van een gebruiker
draait, en de server cvsupd, die op alle
&os; mirrorsites draait.In de &os; documentatie en op de mailinglijsten zijn
referenties aan sup te vinden.
Sup was de voorloper van
CVSup en diende hetzelfde doel.
CVSup wordt op dezelfde manier
gebruikt als sup en gebruikt zelfs bestanden met instellingen
die ook te gebruiken zijn met sup.
Sup wordt niet langer gebruikt in
het &os; project omdat CVSup sneller
en flexibeler is.De csup applicatie is een
herschreven versie van CVSup in de
C taal. Het grootste voordeel ervan is dat het sneller is en
dat het niet afhankelijk is van de Modula-3 taal, dus dat hoeft
niet geïnstalleerd te worden als afhankelijkheid. Sterker nog
als gebruik wordt gemaakt van &os; 6.2 of later, wordt
de applicatie standaard meegeleverd, oudere versies hebben dit
echter niet, maar deze kunnen simpel de
net/csup port installeren
of een vooraf gecompileerd pakket. Als je echter complete
repositories wilt schaduwen, is CVSup
nog steeds noodzakelijk. Als ervoor gekozen is om
csup te gebruiken, sla dan de
installatie stappen voor CVSup over
en vervang de referenties naar CVSup
met csup terwijl de rest van het
artikel gevolgd wordt.InstallatieDe meest eenvoudige wijze van installatie van
CVSup is met het voorgecompileerde
pakket net/cvsup uit de
&os; pakkettencollectie. Als het
gewenst is, kan CVSup ook uit de
broncode gebouwd worden in net/cvsup. De net/cvsup port is afhankelijk van
het Modula-3 systeem en dat kan wel even duren en er is ook
nogal wat schijfruimte voor nodig om het te downloaden en te
bouwen.Als CVSup gebruikt gaat
worden op een machine waarop geen
&xfree86; of
&xorg; staat, zoals een server,
dan dient de port waar geen
CVSup GUI bij
zit geïnstalleerd te worden: net/cvsup-without-gui.Als csup geïnstalleerd
moet worden op &os; 6.1 of eerder, kan gebruik gemaakt
worden van een van te voren gecompileerd
net/csup pakket van de
&os; pakkettencollectie, of als
de voorkeur wordt gegeven aan het volledig compileren van
csup, kan gebruik gemaakt worden
van de net/csup port.CVSup instellingenDe werking van CVSup wordt
gestuurd door een bestand met instellingen met de naam
supfile. Er staan een aantal
supfiles als voorbeeld in de map /usr/share/examples/cvsup/.De informatie in een supfile
beantwoordt de volgende vragen voor
CVSup:Welke bestanden
moeten ontvangen worden?Welke versies daarvan
moeten ontvangen worden?Waar moeten ze
vandaan komen?Waar moeten ze komen
te staan?Waar moet
cvsup zijn statusbestanden
bijhouden?In de volgende paragrafen wordt een
supfile bestand opgebouwd door
achtereenvolgens alle gestelde vragen te beantwoorden. Als
eerste wordt de algemene structuur van een
supfile beschreven.Een supfile is een tekstbestand.
Commentaar begint met een # en loopt tot het
einde van de regel. Lege regels en regels die alleen
commentaar bevatten worden genegeerd.Iedere regel die overblijft slaat op een groep bestanden
die ontvangen moet worden. De regel begint met de naam van een
collectie, een logische groep bestanden op de
server. De naam van de collectie geeft de server aan welke
bestanden er gestuurd moeten worden. Na de naam van de
collectie komen er geen of meer velden die gescheiden worden
door witruimte. Die velden beantwoorden de hierboven gestelde
vragen. Er zijn twee soorten velden: vlagvelden en
waardevelden. Een vlagveld bestaat uit een alleenstaand
sleutelwoord, bijvoorbeeld delete of
compress. Een waardeveld begint ook met
een sleutelwoord, maar het sleutelwoord wordt direct (zonder
witruimte) gevolgd door = en een tweede
woord. release=cvs is bijvoorbeeld een
waardeveld.In een supfile wordt meestal
aangegeven dat er meerdere collecties ontvangen moeten worden.
Het is mogelijk om een supfile te
structureren door expliciet alle relevante velden aan te geven
voor iedere collectie, maar dat maakt de regels in de
supfile nogal lang en het is onhandig
omdat de meeste velden hetzelfde zijn voor alle collecties in
een supfile.
CVSup biedt een systeem met
standaardinstellingen om dit probleem te omzeilen. Regels die
beginnen met de speciale pseudo-collectienaam
*default kunnen gebruikt worden om
standaarden in te stellen voor de collecties die er in de
supfile achteraan komen. Een
standaardwaarde kan voor individuele collecties overschreven
worden door een andere waarde in de collectie zelf aan te
geven. Standaarden kunnen ook middenin het bestand gewijzigd
of aangevuld worden met extra *default
regels.Na deze achtergronden wordt er nu een
supfile samengesteld voor het ontvangen en
bijwerken van de hoofd broncodestructuur van &os;-CURRENT.Welke bestanden moeten
ontvangen worden?De bestanden die via CVSup
beschikbaar zijn, zijn beschikbaar in groepen die
collecties heten. De beschikbare collecties
staan beschreven in de volgende paragraaf. In dit
voorbeeld is het de bedoeling dat de hele hoofd
broncodestructuur voor &os; wordt ontvangen. Daar is
één grote collectie voor:
src-all. De eerste stap in het maken
van een supfile is het opsommen van de
gewenste collecties, één per regel (in dit
geval maar één regel):src-allWelke versies daarvan
moeten ontvangen worden?Met CVSup kan vrijwel iedere
versie van de broncode die ooit heeft bestaan opgehaald
worden. Dat kan omdat de cvsupd
server direct vanaf het CVS depot werkt, dat alle versies
bevat. Er kan aangegeven welke ontvangen moeten worden met
de waardevelden tag= en
.Voorzichtigheid is geboden bij het correct aangeven
van velden met tag=. Sommige labels
zijn alleen geldig voor bepaalde collecties of bestanden.
Als ze incorrect worden aangeven of als er een spelfout
wordt gemaakt in een label, verwijdert
CVSup bestanden waarvan dat
waarschijnlijk niet de bedoeling is. Het label
tag=. dient eigenlijk
alleen gebruikt te worden voor de
ports-* collecties.Het veld tag= benoemt een symbolisch
label in het depot. Er zijn twee soorten labels:
revisielabels en taklabels. Een revisielabel refereert aan
een specifieke revisie. De betekenis blijft altijd
hetzelfde. Een taklabel refereert echter aan de laatste
revisie van een gegeven ontwikkellijn op een gegeven
moment. Omdat een taklabel niet refereert aan een
specifieke revisie, kan het morgen iets anders betekenen
dan vandaag. beschrijft de meest
interessante taklabels. Als er in het instellingenbestand
van CVSup een label wordt
aangegeven, moet dat vooraf gegaan worden door
tag= (RELENG_4 zal
tag=RELENG_4 worden). Voor de
Portscollectie is alleen tag=.
relevant.Labels dienen exact zo ingegeven te worden als ze
staan beschreven. CVSup kan
geen onderscheid maken tussen geldige en ongeldige
labels. Als er een spelfout in een label wordt gemaakt,
doet CVSup alsof er een geldig
label is ingegeven dat aan geen enkel bestand refereert.
Dan zal CVSup de bestaande
broncode wissen.Bij het aangeven van een taklabel wordt meestal de
laatste versie van de bestanden voor een bepaalde
ontwikkellijn ontvangen. Om een oudere versie te
ontvangen kan in het veld een datum
opgegeven worden. In &man.cvsup.1; staat hoe dat
werkt.Om bijvoorbeeld &os;-CURRENT te ontvangen dient het
volgende aan het begin van supfile
toegevoegd te worden:*default tag=.Er ontstaat een belangrijk speciaal geval als er geen
velden met tag= of
date= worden aangegeven. In dat geval
worden de eigenlijke RCS bestanden direct uit het CVS depot
van de server ontvangen in plaats van dat een bepaalde
versie wordt ontvangen. Ontwikkelaars geven in het
algemeen de voorkeur aan deze optie. Door zelf een kopie
van de broncode op hun systeem te hebben, krijgen ze de
mogelijkheid om zelf door eerdere versies van bestanden te
bladeren en de geschiedenis ervan te bekijken. Dit
voordeel kost wel veel schijfruimte.Waar moeten ze vandaan
komen?Het veld host= wordt gebruikt om
cvsup aan te geven waar de updates
vandaan moeten komen. Dat kan van elke CVSup mirrorsite, hoewel
er wordt aangeraden een site die geografisch dichtbij ligt
te kiezen. In dit voorbeeld wordt een fictieve &os;
distributiesite gebruikt, cvsup99.FreeBSD.org:*default host=cvsup99.FreeBSD.orgIn een werkelijke situatie dient de hostnaam gewijzigd
te worden in een host die echt bestaat voordat
CVSup gaat draaien. Iedere keer
dat cvsup wordt gestart, kan er een
andere host op de commandoregel opgegeven worden met de
optie .Waar moeten ze komen te
staan?Het veld prefix= geeft
cvsup aan waar de ontvangen bestanden
terecht moeten komen. In dit voorbeeld worden de bestanden
direct in de hoofd broncodestructuur
/usr/src geplaatst. De map
src is al impliciet in de gekozen
collecties, vandaar dat het onderstaande de juiste
instelling is:*default prefix=/usrWaar moet
cvsup zijn statusbestanden
bijhouden?De CVSup client houdt
statusbestanden bij in een map die base
wordt genoemd. Die bestanden helpen
CVSup efficiënter te
werken door bij te houden welke updates al eerder zijn
ontvangen. Hier wordt de standaard basemap gebruikt,
/var/db:*default base=/var/dbDe bovenstaande instelling wordt standaard gebruikt als
die niet wordt aangegeven in de
supfile, dus hij is eigenlijk niet
nodig.Als de basemap niet al bestaat, moet die gemaakt
worden. De cvsup client weigert te
draaien als de basemap niet bestaat.Allerlei supfile
instellingen:Er is nog een regel die in een
supfile moet staan:*default release=cvs delete use-rel-suffix compressrelease=cvs geeft de server aan dat
de informatie uit het &os; hoofd CVS depot moet komen. Dat
is eigenlijk altijd het geval, maar er zijn mogelijkheden
die buiten het bereik van dit handboek vallen.delete geeft
CVSup het recht om bestanden te
verwijderen. Dit moet altijd aangegeven worden zodat
CVSup de broncode altijd kan
bijwerken. CVSup gaat
voorzichtig om met het verwijderen van bestanden waar het
verantwoordelijk voor is. Extra bestanden in de structuur
worden met rust gelaten.use-rel-suffix is nogal
geheimzinnig. Voor de nieuwsgierigen staat er meer over in
&man.cvsup.1;. Anders kan het gewoon ingesteld worden
zonder erover na te denken.compress schakelt het gebruikt van
gzip compressie in voor het communicatiekanaal. Als de
verbinding een E1 of sneller is, hoeft er geen compressie
gebruikt te worden. Anders helpt het aanzienlijk.Alles combinerend:Hieronder staat de hele supfile
uit het voorbeeld:*default tag=.
*default host=cvsup99.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress
src-allHet bestand refuseZoals hierboven al is aangegeven, gebruikt
CVSup een pull
methode. Dat betekent eigenlijk dat er een
verbinding wordt gemaakt met de
CVSup server en die zegt dan:
Dit kan er van mij gedownload worden..., en
dan antwoordt de client met: Oké, ik wil dit en
dat en zus en zo. Met de standaardinstellingen haalt
de CVSup client alle bestanden die
bij een collectie en het label horen dat in het bestand met
de instellingen is opgegeven. Maar dat is niet altijd
wenselijk, in het bijzonder als de doc,
ports of www
structuren worden gesynchroniseerd. De meeste mensen kunnen
geen vier of vijf talen lezen en die hebben de taalspecifieke
bestanden dus niet nodig. Als de Portscollectie met
CVSup wordt opgehaald, is het
mogelijk om iedere collectie apart aan te geven (bijvoorbeeld
ports-astrology,
ports-biology, enzovoort, in plaats van
eenvoudigweg ports-all). Maar omdat
de doc en www
structuren geen taalspecifieke collecties hebben, moet er
gebruik gemaakt worden van een van de vele mooie
mogelijkheden van CVSup: het
bestand refuse.Het bestand refuse geeft
CVSup in feite aan dat niet ieder
bestand uit een collectie opgehaald moet worden. Het geeft
dus aan dat de client bepaalde bestanden van de server moet
weigeren. Het bestand
refuse staat in (of kan gemaakt worden
in)
base/sup/.
base staat ingesteld in
supfile. De standaardlocatie voor
base is
/var/db. De standaardplaats voor
refuse is dus
/var/db/sup/refuse.Het bestand refuse heeft een erg
eenvoudige opmaak. Het bevat de namen van de bestanden die
niet gedownload mogen worden. Als een gebruiker bijvoorbeeld
geen andere talen spreekt dan Engels en Nederlands, maar
de Nederlandse vertaling van de documentatie hoeft niet
binnengehaald te worden, dan kan het volgende in het bestand
refuse gezet worden:doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/hu_*
doc/it_*
doc/ja_*
doc/mn_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*Dit gaat zo door voor de andere talen. De volledige
lijst staat in het &os;
CVS depot.Met deze handige eigenschap kunnen gebruikers met
langzamere verbindingen of zij die per minuut voor hun
Internetverbinding betalen waardevolle tijd besparen omdat er
geen bestanden meer gedownload worden die nooit gebruikt
worden. Meer informatie over refuse
bestanden en andere leuke mogelijkheden van
CVSup staat in de
handleiding.CVSup draaienNu kan het bijwerken beginnen. Het commando is best wel
eenvoudig:&prompt.root; cvsup supfileDe supfile
is de naam van het supfile bestand dat
gebruikt moet worden. Aangenomen dat er X11 draait op een
machine, toont cvsup een GUI venster met
wat knoppen om de bekende acties uit te voeren. Het proces
start na het klikken op de knop
go.Omdat in dit voorbeeld de werkelijke structuur in
/usr/src wordt bijgewerkt, moet het
programma als root uitgevoerd worden,
zodat cvsup de rechten heeft die het nodig
heeft om de bestanden bij te werken. Het is voorstelbaar dat
de benodigde rechten, het net gemaakte bestand met instellingen
en het voor de eerste keer draaien van een programma zorgt voor
wat onrust. Daarom is het mogelijk proef te draaien zonder
dat er bestanden gewijzigd worden. Dat kan door ergens een
lege map te maken en een extra argument mee te geven op de
commandoregel:&prompt.root; mkdir /var/tmp/dest
&prompt.root; cvsup supfile /var/tmp/destDe opgegeven map is de bestemming voor alle
bestandsupdates. CVSup bekijkt wel
de bestanden in /usr/src, maar wijzigt ze
niet. Alle updates belanden in
/var/tmp/dest/usr/src.
CVSup werkt ook de statusbestanden
niet bij als het op deze wijze wordt uitgevoerd. De nieuwe
versies van de bestanden worden naar de aangegeven map
geschreven. Als er maar leestoegang is tot
/usr/src, hoeft een gebruiker zelfs geen
root te zijn bij het uitvoeren van dit
experiment.Als er geen X11 draait of als het niet wenselijk is een GUI
te gebruiken, dan kunnen daarvoor opties op de commandoregel
meegegeven worden bij het draaien van
cvsup:&prompt.root; cvsup -g -L 2 supfileDe optie geeft
CVSup aan dat de GUI niet gebruikt
hoeft te worden. Dit gebeurt automatisch als X11 niet draait,
maar anders moet het aangegeven worden.De optie geeft
CVSup aan dat details getoond
moeten worden over alle bestanden die bijgewerkt worden. Er
zijn drie niveaus van uitvoerigheid, van
tot . Standaard is het 0, wat betekent
dat er geen enkel bericht wordt getoond, met uitzondering van
foutmeldingen.Er zijn nog veel andere opties beschikbaar. Met
cvsup -H wordt een lijst met korte uitleg
getoond. Beschrijvingen met meer details staan in de
handleiding.Als het bijwerken op de gewenste manier loopt, kan het
regulier draaien van CVSup met
&man.cron.8; ingesteld worden. Natuurlijk hoort
CVSup zonder GUI te draaien als het
programma vanuit de &man.cron.8; draait.CVSup
bestandscollectiesDe via CVSup beschikbare
bestandscollecties zijn hiërarchisch georganiseerd. Er
zijn een paar grote collecties en die zijn opgedeeld in
kleinere subcollecties. Het ontvangen van een collectie is
hetzelfde als het ontvangen van alle subcollecties. De
hiërarchische relatie tussen de collecties wordt
hieronder aangegeven door het niveau van inspringen.De meest gebruikte collecties zijn
src-all en ports-all. De
andere collecties worden door kleine groepen mensen gebruikt
voor bijzondere doeleinden en sommige mirrorsites hebben ze
niet allemaal.cvs-all release=cvsHet &os; CVS hoofddepot, inclusief de cryptografische
code.distrib release=cvsBestanden die betrekking hebben op het
verspreiden en spiegelen van &os;.doc-all release=cvsBroncode voor het &os; Handboek en andere
documentatie, zonder de bestanden voor de &os;
website.ports-all release=cvsDe &os; Portscollectie.Als ports-all (het
complete portssysteem) niet bijgewerkt hoeft te
worden, maar enkele van de onderstaande
subcollecties, dan moet
altijd ook de
ports-base subcollectie
bijgewerkt worden! Als er iets wijzigt in de
infrastructuur van de ports waar
ports–base voor staat,
is het vrijwel zeker dat die wijzigingen heel
snel door echte ports gebruikt
gaan worden. Dus als alleen de
echte ports bijgewerkt worden en
als die gebruik maken van nieuwe mogelijkheden,
dan is de kans groot dat het bouwen daarvan
foutloopt met een vage foutmelding. Het
eerste dat gedaan moeten
worden is ervoor zorgen dat de
ports-base subcollectie is
bijgewerkt.Bij het zelf bouwen van een lokale kopie van
ports/INDEXmoetports-all geaccepteerd worden
(de hele port structuur). Het bouwen van
ports/INDEX met een
gedeeltelijke structuur wordt niet ondersteund.
Zie ook de FAQ.ports-accessibility
release=cvsSoftware voor minder valide
gebruikers.ports-arabic
release=cvsOndersteuning voor de Arabische
taal.ports-archivers
release=cvsArchiveringshulpmiddelen.ports-astro
release=cvsAstronomie ports.ports-audio
release=cvsGeluidsondersteuning.ports-base
release=cvsDe infrastructuur van de Portscollectie.
Bestanden uit de mappen
Mk/ en
Tools/ van
/usr/ports.Zie ook de belangrijke
waarschuwing hierboven: deze
subcollectie dient
altijd bijgewerkt te
worden als er een onderdeel van de &os;
Portscollectie wordt bijgewerkt!ports-benchmarks
release=cvsBenchmarks.ports-biology
release=cvsBiologie.ports-cad
release=cvsComputer aided design programma's.ports-chinese
release=cvsOndersteuning voor de Chinese
taal.ports-comms
release=cvsCommunicatiesoftware.ports-converters
release=cvsKaraktercode omzetters.ports-databases
release=cvsDatabases.ports-deskutils
release=cvsDingen die op een bureaublad stonden
voordat computers waren uitgevonden.ports-devel
release=cvsOntwikkelhulpmiddelen.ports-dns
release=cvsDNS gerelateerde software.ports-editors
release=cvsEditors.ports-emulators
release=cvsEmulatoren voor
besturingssystemen.ports-finance
release=cvsMonetaire, financiële en
gerelateerde applicaties.ports-ftp
release=cvsFTP client en server programma's.ports-games
release=cvsSpelletjes.ports-german
release=cvsOndersteuning voor de Duitse taal.ports-graphics
release=cvsGrafische programma's.ports-hebrew
release=cvsOndersteuning voor de Hebreeuwse
taal.ports-hungarian
release=cvsOndersteuning voor de Hongaarse
taal.ports-irc
release=cvsInternet Relay Chat
hulpprogramma's.ports-japanese
release=cvsOndersteuning voor de Japanse
taal.ports-java
release=cvs&java; programma's.ports-korean
release=cvsOndersteuning voor de Koreaanse
taal.ports-lang
release=cvsProgrammeertalen.ports-mail
release=cvsMailsoftware.ports-math
release=cvsNumerieke rekensoftware.ports-mbone
release=cvsMBone applicaties.ports-misc
release=cvsVerschillende programma's.ports-multimedia
release=cvsMultimedia software.ports-net
release=cvsNetwerksoftware.ports-net-im
release=cvsBerichtenuitwisseling.ports-net-mgmt
release=cvsNetwerkbeheersoftware.ports-net-p2p
release=cvsPeer to Peer Netwerkenports-news
release=cvsUSENET news software.ports-palm
release=cvsSoftwareondersteuning voor
Palm
apparatuur.ports-polish
release=cvsOndersteuning voor de Poolse taal.ports-ports-mgmt
release=cvsProgramma's om ports en pakketten te
beheren.ports-portuguese
release=cvsOndersteuning voor de Portugese
taal.ports-print
release=cvsPrintsoftware.ports-russian
release=cvsOndersteuning voor de Russische
taal.ports-science
release=cvsWetenschappelijk.ports-security
release=cvsBeveiligingsprogramma's.ports-shells
release=cvsCommandoregelshells.ports-sysutils
release=cvsSysteemprogramma's.ports-textproc
release=cvsTekstverwerkingsprogramma's (zonder
desktop publishing).ports-ukrainian
release=cvsOndersteuning voor de Oekraïense
taal.ports-vietnamese
release=cvsOndersteuning voor de Viëtnamese
taal.ports-www
release=cvsSoftware gerelateerd aan het Wereldwijde
Web.ports-x11
release=cvsPorts voor het X windowsysteem.ports-x11-clocks
release=cvsX11 klokken.ports-x11-drivers
release=cvsX11-stuurprogramma'sports-x11-fm
release=cvsX11 bestandsbeheerders.ports-x11-fonts
release=cvsX11 lettertypen en
lettertypeprogramma's.ports-x11-toolkits
release=cvsX11 hulpprogramma's.ports-x11-servers
release=cvsX11 servers.ports-x11-themesX11 thema's.ports-x11-wm
release=cvsX11 vensterbeheerprogramma's.projects-all release=cvsBroncode's voor de &os; projecten
repository.src-all release=cvsDe hoofdbroncode van &os;, inclusief de
cryptografische code.src-base
release=cvsVerschillende bestanden bovenin de
/usr/src
structuur.src-bin
release=cvsGebruikersprogramma's die wellicht nodig
zijn in single-user modus
(/usr/src/bin).src-cddl
release=cvsProgramma's en bibliotheken die uitgegeven
zijn onder de CDDL licentie
(/usr/src/cddl).src-contrib
release=cvsProgramma's en bibliotheken van buiten
het &os; project die vrijwel ongewijzigd
gebruikt worden
(/usr/src/contrib).src-crypto release=cvsCryptografische programma's en
bibliotheken van buiten het &os; project, die
vrijwel ongewijzigd worden gebruikt
(/usr/src/crypto).src-eBones release=cvsKerberos en DES
(/usr/src/eBones). Niet
gebruikt in recente uitgaves van &os;.src-etc
release=cvsBestanden met systeeminstellingen
(/usr/src/etc).src-games
release=cvsSpelletjes
(/usr/src/games).src-gnu
release=cvsProgramma's die onder de GNU Public
License vallen
(/usr/src/gnu).src-include
release=cvsHeaderbestanden
(/usr/src/include).src-kerberos5
release=cvsKerberos5 beveiligingspakket
(/usr/src/kerberos5).src-kerberosIV
release=cvsKerberosIV beveiligingspakket
(/usr/src/kerberosIV).src-lib
release=cvsBibliotheken
(/usr/src/lib).src-libexec
release=cvsSysteemprogramma's die meestal door
andere programma's worden uitgevoerd
(/usr/src/libexec).src-release
release=cvsBestanden die nodig zijn voor het
maken van een &os; release
(/usr/src/release).src-release
release=cvsStatisch gelinkte programma's voor nood
onderhoud, zie &man.rescue.8;
(/usr/src/rescue).src-sbin release=cvsSysteemprogramma's voor single-user modus
(/usr/src/sbin).src-secure
release=cvsCryptografische bibliotheken en
commando's
(/usr/src/secure).src-share
release=cvsBestanden die tussen meerdere systemen
gedeeld kunnen worden
(/usr/src/share).src-sys
release=cvsDe kernel
(/usr/src/sys).src-sys-crypto
release=cvsCryptografische kernelcode
(/usr/src/sys/crypto).src-tools
release=cvsVerschillende hulpprogramma's voor het
onderhoud van &os;
(/usr/src/tools).src-usrbin
release=cvsGebruikersprogramma's
(/usr/src/usr.bin).src-usrsbin
release=cvsSysteemprogramma's
(/usr/src/usr.sbin).www release=cvsDe broncode voor de &os; website.distrib release=selfDe instellingenbestanden van de
CVSup server zelf. Gebruikt
door de CVSup
mirrorsites.gnats release=currentDe GNATS bug-tracking database.mail-archive release=current&os; mailinglijstarchief.www release=currentDe voorbewerkte &os; websitebestanden (niet de
broncode). Gebruikt door WWW mirrorsites.Voor meer informatieDe CVSup FAQ en andere
informatie over CVSup is te vinden
op De CVSup Homepage.De meeste &os;–gerelateerde discussie over
CVSup vindt plaats op de
&a.hackers;. Daar worden nieuwe versies van de software
aangekondigd, net als op de &a.announce;.Voor vragen en foutrapporten moet een kijkje genomen worden
op
de CVSup FAQCVSup sitesCVSup servers voor &os; draaien
op de onderstaande sites.
&chap.mirrors.cvsup.inc;
CVS labelsBij het ophalen of bijwerken van broncode met
cvs of
CVSup moet een revisielabel meegegeven
worden. Een revisielabel refereert aan een specifieke lijn in
de &os; ontwikkeling of aan een specifiek moment in de tijd. Het
eerste type heet taklabel (branch tag) en het
tweede type heet releaselabel (release
tag).TaklabelsDeze zijn, met uitzondering van HEAD
(dat altijd een geldig label is), alleen van toepassing op de
src/ structuur. De
ports/, doc/ en
www/ structuren kennen geen takken.HEADSymbolische naam voor de hoofdlijn van &os;-CURRENT.
Ook de standaard als geen revisie is aangegeven.In CVSup wordt dit label
aangegeven met een . (dat is dus geen
interpunctie, maar een echt .
karakter).In CVS is dit de standaard als er geen revisielabel
is aangegeven. Het is meestal
geen goed idee om een checkout of
update van CURRENT broncode op een STABLE machine te
doen, tenzij dat expliciet de bedoeling is.RELENG_7De ontwikkellijn voor &os;-7.X, ook bekend als
&os; 7-STABLE.
+
+ RELENG_7_2
+
+
+ De uitgavetak voor &os;-7.2, alleen gebruikt voor
+ beveiligingswaarschuwingen en andere kritische
+ aanpassingen.
+
+
+
RELENG_7_1De uitgavetak voor &os;-7.1, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_7_0De uitgavetak voor &os;-7.0, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_6De ontwikkellijn voor &os;-6.X, ook bekend als
&os; 6-STABLE.RELENG_6_4De uitgavetak voor &os;-6.4, alleen gebruikt voor
beveiligingsadviezen en andere kritieke reparaties.RELENG_6_3De uitgavetak voor &os;-6.3, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_6_2De releasetak voor &os;-6.2, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_6_1De releasetak voor &os;-6.1, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_6_0De releasetak voor &os;-6.0, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_5De ontwikkellijn voor &os;-5.X, ook bekend als
&os; 5-STABLE.RELENG_5_5De releasetak voor &os;-5.5, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_5_4De releasetak voor &os;-5.4, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_5_3De releasetak voor &os;-5.3, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_5_2De releasetak voor &os;-5.2 en &os;-5.2.1, alleen
gebruikt voor beveiligingswaarschuwingen en andere
kritische aanpassingen.RELENG_5_1De releasetak voor &os;-5.1, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_5_0De releasetak voor &os;-5.0, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4De ontwikkellijn voor &os;-4.X, ook bekend als &os;
4-STABLE.RELENG_4_11De releasetak voor &os;-4.11, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_10De releasetak voor &os;-4.10, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_9De releasetak voor &os;-4.9, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_8De releasetak voor &os;-4.8, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_7De releasetak voor &os;-4.7, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_6De releasetak voor &os;-4.6 en &os;-4.6.2,
alleen gebruikt voor beveiligingswaarschuwingen en andere
kritische aanpassingen.RELENG_4_5De releasetak voor &os;-4.5, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_4De releasetak voor &os;-4.4, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_3De releasetak voor &os;-4.3, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_3De ontwikkellijn voor &os;-3.X, ook bekend als
3.X-STABLE.RELENG_2_2De ontwikkellijn voor &os;-2.2.X, ook bekend als
2.2-STABLE. Deze tak is sterk verouderd.ReleaselabelsDeze labels refereren aan een specifiek moment in de tijd
waarop een versie van &os; is uitgegeven. Het proces om tot
een release te komen is gedetailleerder beschreven in de
Release Engineering
Informatie en Release
Proces documenten. De src structuur gebruikt
labelnamen die beginnen met RELENG_ labels.
De ports en doc structuren gebruiken labels
waarvan de naam begint met het label
RELEASE. De www tenslotte, is niet
gemarkeerd met een bijzondere naam bij releases.RELENG_7_2_0_RELEASE&os; 7.2RELENG_7_1_0_RELEASE&os; 7.1RELENG_7_0_0_RELEASE&os; 7.0RELENG_6_4_0_RELEASE&os; 6.4RELENG_6_3_0_RELEASE&os; 6.3RELENG_6_2_0_RELEASE&os; 6.2RELENG_6_1_0_RELEASE&os; 6.1RELENG_6_0_0_RELEASE&os; 6.0RELENG_5_5_0_RELEASE&os; 5.5RELENG_5_4_0_RELEASE&os; 5.4RELENG_4_11_0_RELEASE&os; 4.11RELENG_5_3_0_RELEASE&os; 5.3RELENG_4_10_0_RELEASE&os; 4.10RELENG_5_2_1_RELEASE&os; 5.2.1RELENG_5_2_0_RELEASE&os; 5.2RELENG_4_9_0_RELEASE&os; 4.9RELENG_5_1_0_RELEASE&os; 5.1RELENG_4_8_0_RELEASE&os; 4.8RELENG_5_0_0_RELEASE&os; 5.0RELENG_4_7_0_RELEASE&os; 4.7RELENG_4_6_2_RELEASE&os; 4.6.2RELENG_4_6_1_RELEASE&os; 4.6.1RELENG_4_6_0_RELEASE&os; 4.6RELENG_4_5_0_RELEASE&os; 4.5RELENG_4_4_0_RELEASE&os; 4.4RELENG_4_3_0_RELEASE&os; 4.3RELENG_4_2_0_RELEASE&os; 4.2RELENG_4_1_1_RELEASE&os; 4.1.1RELENG_4_1_0_RELEASE&os; 4.1RELENG_4_0_0_RELEASE&os; 4.0RELENG_3_5_0_RELEASE&os;-3.5RELENG_3_4_0_RELEASE&os;-3.4RELENG_3_3_0_RELEASE&os;-3.3RELENG_3_2_0_RELEASE&os;-3.2RELENG_3_1_0_RELEASE&os;-3.1RELENG_3_0_0_RELEASE&os;-3.0RELENG_2_2_8_RELEASE&os;-2.2.8RELENG_2_2_7_RELEASE&os;-2.2.7RELENG_2_2_6_RELEASE&os;-2.2.6RELENG_2_2_5_RELEASE&os;-2.2.5RELENG_2_2_2_RELEASE&os;-2.2.2RELENG_2_2_1_RELEASE&os;-2.2.1RELENG_2_2_0_RELEASE&os;-2.2.0AFS sitesEr draaien AFS servers voor &os; op de volgende sites:ZwedenHet pad naar de bestanden is:
/afs/stacken.kth.se/ftp/pub/FreeBSD/stacken.kth.se # Stacken Computer Club, KTH, Sweden
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.seBeheerder: ftp@stacken.kth.sersync sitesDe volgende sites bieden &os; aan via het protocol rsync.
Het programma rsync werkt vrijwel
hetzelfde als &man.rcp.1;, maar kent meer mogelijkheden en
gebruikt het rsync remote-update protocol, dat alleen verschillen
tussen twee groepen bestanden overbrengt, waardoor het
synchroniseren via een netwerk drastisch wordt versneld. Dit
kan het beste gedaan worden als er een mirrorsite voor de
&os; FTP server of het &os; CVS depot draait. De
rsync suite is voor veel
besturingssystemen beschikbaar. Voor &os; kan het pakket of de
port uit net/rsync
geïnstalleerd worden.Tsjechiërsync://ftp.cz.FreeBSD.org/Beschikbare collecties:ftp: een gedeeltelijke mirror van de &os;
FTP server.&os;: een volledige mirror van de &os; FTP
server.Nederlandrsync://ftp.nl.FreeBSD.org/Beschikbare collecties:&os;: een volledige mirror
van de &os; FTP server.Ruslandrsync://cvsup4.ru.FreeBSD.org/Beschikbare collecties:FreeBSD-gnats: De GNATS bug-tracking database.Taiwanrsync://ftp.tw.FreeBSD.org/rsync://ftp2.tw.FreeBSD.org/rsync://ftp6.tw.FreeBSD.org/Beschikbare collecties:FreeBSD: een volledige mirror van de &os;
FTP server.Verenigd Koninkrijkrsync://rsync.mirrorservice.org/Beschikbare collecties:sites/ftp.freebsd.org: een volledige mirror van
de &os; FTP server.Verenigde Staten van Amerikarsync://ftp-master.FreeBSD.org/Deze server mag alleen gebruikt worden door &os;
primaire mirrorsites.Beschikbare collecties:&os;: het masterarchief van de &os;
FTP server.acl: de &os; master ACL
lijst.rsync://ftp13.FreeBSD.org/Beschikbare collecties:&os;: een volledige mirror van de &os; FTP
server.
diff --git a/nl_NL.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml b/nl_NL.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml
index abc7584eef..981d8176cf 100644
--- a/nl_NL.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml
+++ b/nl_NL.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml
@@ -1,2085 +1,2085 @@
&os; begrippenlijstDeze begrippenlijst bevat de termen en acroniemen die binnen
de &os; gemeenschap en documentatie worden gebruikt.AACLACPIAMDAMLAPIAPICAPMAPOPASLATAATMACPI Machinetaal
AML
Pseudocode die wordt geïnterpreteerd door een
virtual machine binnen een
ACPI-compliant besturingssysteem die een
laag biedt tussen de onderliggende hardware en de
gedocumenteerde interface van het
OS.ACPI Brontaal
ASL
De programmeertaal AML is hierin
geschreven.Toegangscontrole Lijst
ACL
Een lijst toestemmingen gekoppeld aan een object, meestal
òfwel een bestand òfwel een netwerkapparaat.
Advanced Configuration and Power Interface
ACPI
Een specificatie die een abstractie biedt van de
interface die de hardware aan het besturingssysteem biedt,
zodat het besturingssysteem niets hoeft te weten over de
onderliggende hardware om er het maximale uit te halen.
ACPI is een evolutie en opvolger van de
functionaliteit die daarvoor door APM,
PNPBIOS en andere technologieën werd
geleverd en faciliteert in de controle van stroomverbruik,
de slaapstand, het in- en uitschakelen van apparaten,
etc.Application Programming Interface
API
Een verzameling procedures, protocollen en gereedschappen
dat de canonieke interactie van één of meer
programmadelen specificeert; hoe, wanneer en waarom ze
samenwerken, en welke gegevens ze delen of bewerken.Advanced Power Management (Geavanceerd Energie Beheer)
APM
Een API dat het besturingssysteem in
staat stelt om samen te werken met het BIOS
om zo energiebeheer na te streven. APM is
voor de meeste toepassingen ingehaald door de veel generiekere
en krachtigere ACPI-specificatie.Advanced Programmable Interrupt Controller
APIC
Advanced Technology Attachment
ATA
Asynchronous Transfer Mode
ATM
Authenticated Post Office Protocol
APOP
Automatic Mount Daemon
AMD
Een daemon die automatisch een bestandssysteem mount
als een bestand of map wordt geraadpleegd.BBARBINDBIOSBSDBase Address RegisterDe registers die bepalen op welk adresbereik een
PCI-apparaat zal reageren.Basic Input/Output System
BIOS
De definitie van BIOS hangt enigszins
af van de context. Sommige mensen verwijzen ernaar als de
ROM-chip met een basisverzameling routines
om een interface tussen software en hardware te bieden.
Anderen verwijzen ernaar als de verzameling routines die de
chip bevat die helpen het systeem op te starten. Sommigen
kunnen er ook naar verwijzen als het scherm dat gebruikt wordt
om het opstartproces te configureren. Het
BIOS is PC-specifiek maar andere systemen
hebben iets soortgelijks.Berkeley Internet Name Domain
BIND
Een implementatie van de DNS
protocollen.Berkeley Software Distributie
BSD
Deze naam heeft de Computer Systems Research Group
(CSRG) van de The University of California in
Berkeley gegeven aan de verbeteringen en aanpassingen
die ze hebben gemaakt aan AT&T's 32V &unix;. &os; is een
afstammeling van het werk van de CSRG.Bikeshed BuildingEen fenomeen waar blijkt dat veel mensen een mening
geven over een eenvoudig onderwerp terwijl er weinig of
geen discussie ontstaat over een complex onderwerp. Op
FAQ
is meer te lezen over het ontstaan van de term.CCDCHAPCLIPCOFFCPUCTSCVSCarrier Detect
CD
Een RS232C signaal dat aangeeft dat er
een drager is ontdekt.Central Processing Unit (Centrale Verwerkingseenheid)
CPU
Ook bekend als de processor. Dit zijn de hersenen van de
computer waar alle berekeningen plaatsvinden. Er zijn een
aantal verschillende architecturen met verschillende
instructieverzamelingen. Onder de bekendere bevinden zich de
Intel-x86 en afgeleiden, Sun SPARC, PowerPC, en Alpha.Challenge Handshake Authentication Protocol
CHAP
Een methode om een gebruiker te authenticeren, gebaseerd
op een geheim gedeeld tussen te cliënt en de server.
Classical IP over
ATM
CLIP
Clear To Send
CTS
Een RS232C signaal dat het andere
systeem toestemming geeft om gegevens te sturen.Common Object File Format
COFF
Concurrent Versions System
CVS
Een versiebeheersysteem, dat een methode biedt om te
werken met vele verschillende revisies van bestanden en deze
bij te houden. CVS biedt de mogelijkheid om individuele
veranderingen te extraheren, samen te voegen, en terug te
draaien, en het biedt te mogelijkheid om bij te houden welke
veranderingen waren gemaakt, door wie en om welke reden.
DDACDDBDESDHCPDNSDSDTDSRDTRDVMRPDiscretionary Access Control
DAC
Data Encryption Standard
DES
Een methode om informatie te versleutelen, traditioneel
gebruikt als de methode om &unix;-wachtwoorden te versleutelen
en als de functie &man.crypt.3;.Data Set Ready
DSR
Een RS232C signaal verzonden van het
modem naar de computer of terminal om een bereidheid om
gegevens te versturen en te ontvangen aan te geven.Data Terminal Ready
DTR
Een RS232C signaal verzonden van de
computer of terminal naar het modem om een bereidheid om
gegevens te versturen en ontvangen aan te geven.Debugger
DDB
Een interactieve in-kernel faciliteit om de toestand van
een systeem te onderzoeken, vaak gebruikt nadat een systeem
gecrasht is om de gebeurtenissen rondom de storing te bepalen.
Differentiated System Description Table
DSDT
Een ACPI tabel die
basisconfiguratie-informatie over het basissysteem biedt.
Distance-Vector Multicast Routing Protocol
DVMRP
Domain Name System
DNS
Het systeem dat menselijk leesbare hostnamen (i.e.
mail.example.net) omzet in Internetadressen en andersom.
Dynamic Host Configuration Protocol
DHCP
Een protocol dat dynamisch IP-adressen aan een computer
(host) toekent wanneer het er een vraagt van de server. De
adrestoekenning wordt een lease genoemd.EECOFFELFESPEncapsulated Security Payload
ESP
Executable and Linking Format
ELF
Extended COFF
ECOFF
FFADTFATFAT16FTPFile Allocation Table
FAT
File Allocation Table (16-bit)
FAT16
File Transfer Protocol
FTP
Een lid van de familie van hoogniveau protocollen
geïmplementeerd bovenop TCP dat
gebruikt kan worden om bestanden over een
TCP/IP netwerk te versturen.Fixed ACPI Description
Table
FADT
GGUIGiantDe naam van het wederzijdse uitsluitingsmechanisme
(een sleep mutex) die veel kernelbronnen
beschermt. Hoewel in de dagen dat er op een machine maar
enkele tientallen processen draaiden, er één
netwerkkaart in zat en echt maar één processor,
een eenvoudig sleutelmechanisme toereikend was, is het in
de huidige tijden een onaanvaardbare beperking voor
prestaties. &os; ontwikkelaars werken actief om het te
vervangen door sloten die individuele bronnen beschermen
waardoor er meer ruimte komt voor parallelisme voor zowel
machines met één als meerdere processoren.Grafische Gebruikersinterface
GUI
Een systeem waarin gebruiker en compiter interacteren
door mideel van afbeeldingen.HHTMLHUPHangUp
HUP
HyperText Markup Language
HTML
De opmaaktaal voor webpagina's.II/OIASLIMAPIPIPFWIPPIPv4IPv6ISPIP Firewall
IPFW
IP Versie 4
IPv4
Versie 4 van het IP protocol, dat 32
bits gebruikt voor adressering. Deze versie wordt nog steeds
het meest gebruikt, maar het wordt langzaam vervangen door
IPv6.IP Versie 6
IPv6
Het nieuwe IP protocol. Uitgevonden
omdat de adresruimte in IPv4 opraakt.
Gebruikt 128 bits voor adressering.Invoer/Uitvoer
I/O
Intel’s ASL
compiler
IASL
Intel’s compiler voor de conversie van
ASL naar AML.Internet Message Access Protocol
IMAP
Een protocol om emailberichten op een mailserver te
benaderen, gekarakteriseerd doordat de berichten normaliter op
de server worden gehouden in tegenstelling tot te worden
gedownload naar de mailleescliënt.Internet Printing Protocol
IPP
Internet Protocol
IP
Het pakketverstuurprotocol dat het basisprotocol op het
Internet is. Oorspronkelijk ontwikkeld op het Ministerie van
Defensie van de Verenigde Staten en een extreem belangrijk
deel van de TCP/IP stack. Zonder het
Internet Protocol zou het Internet niet zijn geworden wat het
vandaag is. Zie voor meer informatie
RFC 791.Internet Service Provider
ISP
Een bedrijf dat toegang biedt tot het Internet.KKAMEJapans voor schildpad. De term KAME wordt
in computerkringen gebruikt om te verwijzen naar het KAME Project, dat werkt
aan de implementatie van IPv6.KDCKLDKSEKVAKbpsKernel &man.ld.1;
KLD
Een methode om dynamisch functionaliteit in een
&os;-kernel te laden zonder het systeem opnieuw te starten.
Kernel Planningsentiteiten
KSE
Een door de kernel ondersteund threading systeem. Op de
project
homepage staan meer details.Kernel Virtueel Adres
KVA
Key Distribution Center (Sleutel Distributiecentrum)
KDC
Kilo Bits Per Seconde
Kbps
Gebruikt om bandbreedte te meten (hoeveel gegevens kunnen
een gegeven punt in een gespecificeerde hoeveelheid tijd
passeren). Alternatieven voor de Kilo prefix omvatten Mega,
Giga, Tera, enzovoorts.LLANLORLPDLine Printer Daemon (Lijnprinter Daemon)
LPD
Local Area Network (Lokaal Netwerk)
LAN
Een netwerk gebruik in een lokaal gebied, bijvoorbeeld
kantoor, huis, enzovoorts.Lock Order Reversal
LOR
De &os; kernel gebruikt een aantal bronsloten om
tussen die bronnen te bemiddelen. In de &os; current kernels
zit een run-time slotdiagnosesysteem, &man.witness.4;, dat in
release versies wordt verwijderd, waarmee potentiele
deadlocks vanwege slotfouten opgespoord kunnen worden.
&man.witness.4; is redelijk conservatief en daarom zijn
vals-positieven mogelijk. Een echte positief geeft aan dat
in het slechtste geval op dat punt een deadlock had
plaatsgevonden..Echte positieve LOR's worden meestal snel opgelost, dus
is het verstandig &a.current.url; en
Voorgekomen LOR's Seen te bekijken alvorens te
mailen naar mailinglijsten.MMACMADTMFCMFP4MFSMITMLSMOTDMTAMUAMail Transfer Agent
MTA
Een toepassing gebruikt om email te versturen. Een
MTA maakte traditioneel deel uit van het
basissysteem van BSD. Tegenwoordig zit Sendmail in het
basissysteem, maar er zijn vele andere MTAs,
zoals postfix, qmail en Exim.Mail User Agent
MUA
Een toepassing die door gebruikers wordt gebruikt om email
af te beelden en te schrijven.Mandatory Access Control
MAC
Massachusetts Institute of Technology
MIT
Merge From Current (Samenvoegen vanuit Current)
MFC
Functionaliteit of een patch samenvoegen vanuit de
-CURRENT tak of een andere, meestal -STABLE.Merge From Perforce (Samenvoegen vanuit Perforce)
MFP4
Het samenvoegen van functionaliteit of een patch vanuit
het Perforce repository naar de -CURRENT tak.Merge From Stable (Samenvoegen vanuit Stable)
MFS
In het &os ontwikkelproces wordt een wijziging gecommit
in de -CURRENT tak om deze te testen voordat deze wordt
samengevoegd naar -STABLE. In bijzondere gevallen gaat een
wijziging eerst naar -STABLE en wordt dan pas samengevoegd
naar -CURRENT.Deze term wordt ook gebruikt als een patch wordt
samengevoegd uit -STABLE naar een beveiligingstak.Message Of The Day (Bericht van de Dag)
MOTD
Een bericht, meestal getoond bij aanmelden, dat vaak
gebruikt wordt om informatie aan gebruikers te geven.Multi-Level Security (Meerlaagse Beveiliging)
MLS
Multiple APIC Description Table
MADT
NNATNDISulatorNFSNTFSNTPNetwork Address Translation (Netwerkadresvertaling)
NAT
Een techniek waarbij IP pakketten
worden herschreven tijdens de weg door een gateway, zodat
vele machines achter de gateway effectief een enkel
IP adres kunnen delen.Network File System (Netwerkbestandssysteem)
NFS
New Technology File System (Nieuwe Technologie
Bestandssysteem)
NTFS
Een bestandssysteem dat door µsoft; is ontwikkeld en
beschikbaar is voor haar New Technology
besturingssystemen als &windows2k;, &windowsnt; en
&windowsxp;.Network Time Protocol (Netwerk Tijdprotocol)
NTP
Een middel om klokken over een netwerk te synchroniseren.
OOBEODMROSOn-Demand Mail Relay
ODMR
Operating System (Besturingssysteem)
OS
Een verzameling programma's, bibliotheken en
gereedschappen die toegang geeft tot de hardwarebronnen van
een computer. Tegenwoordig variëren besturingssystemen
van simplistische ontwerpen die slechts één
programma tegelijk kunnen draaien dat slechts
één apparaat benadert, tot volledige
meergebruikers-, meertaaks- en meerprocessystemen, waarbij elk
van hen tientallen verschillende toepassingen draaien.Overtaken By Events
OBE
Geeft aan dat een voorgestelde verandering (zoals een
Problem Report of een feature request) niet langer relevant
of van toepassing is vanwege bijvoorbeeld veranderingen aan
&os;, wijzigingen in netwerkstandaarden, overbodig worden van
hardware, enzovoort.Pp4PAEPAMPAPPCPCNSFDPDFPIDPOLAPOPPOP3PPDPPPPPPoAPPPoEPPP over
ATM
PPPoA
PPP over
Ethernet
PPPoE
PRPXEPassword Authentication Protocol (Wachtwoord
Authenticatieprotocol)
PAP
PerforceEen broncodebeheerproduct gemaakt door Perforce Software dat
geavanceerder is dan CVS. Hoewel niet opensource, is het
kosteloos te gebruiken voor opensourceprojecten zoals &os;.
Sommige &os;-ontwikkelaars gebruiken een Perforce
repository als een ontwikkelgebied voor code die te
experimenteel voor de -CURRENT tak wordt geacht.Personal Computer
PC
Personal Computer Network File System Daemon (PC
Netwerkbestandssysteem Daemon)
PCNFSD
Physical Address Extensions (Fysieke
Adresuitbreidingen)
PAE
Een methode voor het inschakelen van toegang tot
64 GB RAM op systemen die fysieke
een 32-bit brede adresruimte hebben (en daarom zonder PAE een
limiet van 4 GB zouden hebben).Pluggable Authentication Modules
PAM
Point-to-Point Protocol
PPP
Pointy Hat (Punthoed)Een mythisch hoofddeksel dat rondgaat tussen &os;
committers die een kapotte build veroorzaken, aflopende
revisienummers veroorzaken of op een andere manier problemen
veroorzaken in de broncode. Alle committers
who breaks the build, makes revision numbers
go backwards, or creates any other kind of havoc in
the source base. Alle committers die ook maar iets waard
zijn, hebben meestal snel een kast vol. Het gebruik is
(bijna altijd) grappig bedoeld.Portable Document Format
PDF
Post Office Protocol
POP
Post Office Protocol Version 3
POP3
Een protocol om emailberichten op een mailserver te
benaderen, gekarakteriseerd doordat berichten normaliter
worden gedownload van de server naar de cliënt, in
tegenstelling tot op de server te blijven staan.PostScript Printer Description
PPD
Preboot eXecution Environment
PXE
Principle Of Least Astonishment (Principe van Kleinste
Verbazing)
POLA
In de evolutie van &os; moeten zichtbare wijzigingen voor
gebruikers vooral geen grote verrassing zijn. Het
willekeurig reorganiseren van bijvoorbeeld de
opstartvariabelen van het systeem in
/etc/defaults/rc.conf is in strijd met
POLA. Ontwikkelaart houden rekening met
POLA bij het uitvoeren van
systeemwijzigingen die zichtbaar zijn voor gebruikers.Problem Report
PR
Een beschrijving van een probleem dat gevonden is in
òfwel de broncode òfwel de documentatie van
&os;. Zie Writing &os;
Problem Reports.Proces ID
PID
Een nummer dat bij een uniek proces op een systeem hoort,
waarmee het geïdentificeerd kan worden en ervoor zorgt
dat er acties op uitgevoerd kunnen worden.Project EvilDe werktitel van de NDISulator,
geschreven door Bill Paul, die het zo heeft genoemd omdat
het zo verschikkelijk is, vanuit een filosofisch standpunt,
dat een dergelijk iets nodig is. De
NDISulator is een speciale module voor
compatibiliteit met µsoft; &windows; NDIS miniport
netwerkstuurprogramma's voor &os;/i386. Dit is meestal de
enige manier om kaarten te gebruiken waarvoor de broncode
voor het stuurprogramma niet openbaar is. Meer is te vinden
in
src/sys/compat/ndis/subr_ndis.c.RRARAIDRAMRDRFCRISCRPCRS232CRTSRandom Access Memory
RAM
Received Data
RD
Een RS232C pin of draad waarop gegevens
worden ontvangen.Recommended Standard 232C
RS232C
Een standaard voor communicatie tussen seriële
apparaten.Reduced Instruction Set Computer
RISC
Een benadering van processorontwerp waarbij de bewerkingen
die de hardware kan uitvoeren versimpeld en zo generiek
mogelijk zijn. Dit kan leiden tot lager energieverbruik,
minder transistors en in sommige gevallen, betere prestaties
en verhoogde codedichtheid. Voorbeelden van RISC processoren
omvatten de Alpha, &sparc;, &arm;, en &powerpc;.Redundant Array of Inexpensive Disks
RAID
Remote Procedure Call
RPC
repocopyRepository CopyHet direct kopiëren van bestanden binnen het CVS
repository.Zonder een repocopy, als een bestand gekopieerd of
verplaatst moest worden, zou de committer cvs
add draaien om het bestand op de nieuwe plaats te
zetten, en vervolgens cvs rm op het oude
bestand als de oude kopie werd verwijderd.Het nadeel van deze methode is dat de geschiedenis (i.e.
de ingangen in de CVS logs) van het bestand niet gekopieerd
werd naar de nieuwe plaats. Aangezien het &os; Project deze
geschiedenis zeer bruikbaar acht, wordt in plaats hiervan vaak
een repocopy gebruikt. Dit is een proces waarbij een van de
repository meisters de bestanden direct binnen het repository
kopiëren, in plaats van het programma &man.cvs.1; te
gebruiken.Request For Comments
RFC
Een verzameling documenten die Internetstandaarden,
protocollen, enzovoorts definiëren. Zie www.rfc-editor.org.
Ook gebruikt als algemene term wanneer iemand een
verandering voorstelt en terugkoppeling wil.Request To Send
RTS
Een RS232C signaal dat verzoekt dat het
verre systeem begint met het versturen van gegevens.Router Advertisement
RA
SSCISCSISGSMBSMPSMTPSMTP AUTHSSHSTRSVNSMTP Authentication
SMTP AUTH
Server Message Block
SMB
Signal Ground
SG
Een RS232 pin of draad die de
aardereferentie voor het signaal is.Simple Mail Transfer Protocol
SMTP
Secure Shell
SSH
Small Computer System Interface
SCSI
Subversion
SVN
Subversion is een versiebeheersysteem, vergelijkbaar met
CVS, maar met een uitgebreidere lijst mogelijkheden.Suspend To RAM
STR
Symmetric MultiProcessor
SMP
System Control Interrupt
SCI
TTCPTCP/IPTDTFTPTGTTSCTicket-Granting Ticket
TGT
Time Stamp Counter
TSC
Een profiling counter die in moderne
&pentium; processoren zit die het aantal kloktikken telt van
de kernfrequentie.Transmission Control Protocol
TCP
Een protocol dat bovenop (b.v.) het IP
protocol zit en garandeert dat pakketten in een betrouwbare en
ordelijke manier worden afgeleverd.Transmission Control Protocol/Internet Protocol
TCP/IP
De term oor de combinatie van het TCP
protocol dat over het IP protocol draait.
Veel van het Internet draait op TCP/IP.
Transmitted Data
TD
Een RS232C pin of draad waarover
gegevens worden verstuurd.Trivial FTP
TFTP
UUDPUFS1UFS2UIDURLUSBUniform Resource Locator
URL
Een methode om een bron aan te wijzen, zoals een document
op het Internet en een manier om die bron te
identificeren.Unix File System Version 1
UFS1
Het originele bestandssysteem van &unix;, soms het
Berkeley Fast File System genoemd.Unix File System Version 2
UFS2
Een uitbreiding op UFS1,
geïntroduceerd in &os; 5-CURRENT.
UFS2 voegt blokpointers van 64 bits
(hiermee de 1T-grens doorbrekende), ondersteuning voor
uitgebreide opslag van bestanden en andere mogelijkheden
toe.Universal Serial Bus
USB
Een hardware-standaard die gebruikt wordt om een grote
verscheidenheid aan computerapparatuur met een universele
interface te verbinden.User ID
UID
Een uniek nummer dat wordt toegewezen aan een gebruiker
of een computer waarmee bronnen en rechten die zijn
toegewezen kunnen worden geïdentificeerd.User Datagram Protocol
UDP
Een simpel, onbetrouwbaar datagramprotocol dat gebruikt
wordt om gegevens op een TCP/IP-netwerk uit te wisselen.
UDP biedt geen foutcontrole en -correctie
zoals TCP dat doet.VVPNVirtual Private Network
VPN
Een manier om een publieke telecommunicatie zoals het
Internet te gebruiken om toegang op afstand aan een
gelokaliseerd netwerk, zoals een
bedrijfs-LAN, te bieden.