diff --git a/nl_NL.ISO8859-1/books/handbook/Makefile b/nl_NL.ISO8859-1/books/handbook/Makefile index df3409fb3a..53eef664a0 100644 --- a/nl_NL.ISO8859-1/books/handbook/Makefile +++ b/nl_NL.ISO8859-1/books/handbook/Makefile @@ -1,262 +1,265 @@ # # $FreeBSD$ -# $FreeBSDnl: nl_NL.ISO8859-1/books/handbook/Makefile,v 1.11 2004/12/15 00:15:19 siebrand Exp $ -# Gebaseerd op: 1.91 (sortof) +# $FreeBSDnl: nl_NL.ISO8859-1/books/handbook/Makefile,v 1.14 2005/08/15 20:54:56 siebrand Exp $ +# Gebaseerd op: 1.95 (sortof) # # Build the FreeBSD Dutch Handbook. # # ------------------------------------------------------------------------ # # Handboekspecifieke variabelen # # WITH_PGPKEYS De gedrukte verie van het handboek geeft standaard # alleen PGP vingerafdrukken weer. Als het gewenst # is dat de complete sleutel wordt weergegeven dan # dient deze variabele insteld te worden. De optie # heeft geen invloed op de HTML formaten. # # Handboekspecifieke doelen # # pgpkeyring Dit doel leest de inhoud van pgpkeys/chapter.sgml # en schrijft dan alle PGP sleutels naar stdout. # De uitvoer kan omgeleid worden naar een bestand # en verspreid worden als een publieke sleutelring # van FreeBSD ontwikkelaars die eenvoudig in # PGP/GPG ingelezen kan worden. # # ------------------------------------------------------------------------ .PATH: ${.CURDIR}/../../share/sgml/glossary/ MAINTAINER=remko@FreeBSD.org DOC?= book FORMATS?= html-split HAS_INDEX= true WITH_GLOSSARY?= INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= IMAGES_EN = advanced-networking/isdn-bus.eps IMAGES_EN+= advanced-networking/isdn-twisted-pair.eps IMAGES_EN+= advanced-networking/natd.eps IMAGES_EN+= advanced-networking/net-routing.pic IMAGES_EN+= advanced-networking/static-routes.pic +IMAGES_EN+= geom/striping.pic IMAGES_EN+= install/adduser1.scr IMAGES_EN+= install/adduser2.scr IMAGES_EN+= install/adduser3.scr IMAGES_EN+= install/boot-mgr.scr IMAGES_EN+= install/console-saver1.scr IMAGES_EN+= install/console-saver2.scr IMAGES_EN+= install/console-saver3.scr IMAGES_EN+= install/console-saver4.scr IMAGES_EN+= install/desktop.scr IMAGES_EN+= install/disklabel-auto.scr IMAGES_EN+= install/disklabel-ed1.scr IMAGES_EN+= install/disklabel-ed2.scr IMAGES_EN+= install/disklabel-fs.scr IMAGES_EN+= install/disklabel-root1.scr IMAGES_EN+= install/disklabel-root2.scr IMAGES_EN+= install/disklabel-root3.scr IMAGES_EN+= install/disk-layout.eps IMAGES_EN+= install/dist-set.scr IMAGES_EN+= install/dist-set2.scr IMAGES_EN+= install/docmenu1.scr IMAGES_EN+= install/ed0-conf.scr IMAGES_EN+= install/ed0-conf2.scr IMAGES_EN+= install/edit-inetd-conf.scr IMAGES_EN+= install/fdisk-drive1.scr IMAGES_EN+= install/fdisk-drive2.scr IMAGES_EN+= install/fdisk-edit1.scr IMAGES_EN+= install/fdisk-edit2.scr IMAGES_EN+= install/ftp-anon1.scr IMAGES_EN+= install/ftp-anon2.scr IMAGES_EN+= install/hdwrconf.scr IMAGES_EN+= install/keymap.scr IMAGES_EN+= install/main1.scr IMAGES_EN+= install/mainexit.scr IMAGES_EN+= install/main-std.scr IMAGES_EN+= install/main-options.scr IMAGES_EN+= install/main-doc.scr IMAGES_EN+= install/main-keymap.scr IMAGES_EN+= install/media.scr IMAGES_EN+= install/mouse1.scr IMAGES_EN+= install/mouse2.scr IMAGES_EN+= install/mouse3.scr IMAGES_EN+= install/mouse4.scr IMAGES_EN+= install/mouse5.scr IMAGES_EN+= install/mouse6.scr IMAGES_EN+= install/mta-main.scr IMAGES_EN+= install/net-config-menu1.scr IMAGES_EN+= install/net-config-menu2.scr IMAGES_EN+= install/nfs-server-edit.scr IMAGES_EN+= install/ntp-config.scr IMAGES_EN+= install/options.scr IMAGES_EN+= install/pkg-cat.scr IMAGES_EN+= install/pkg-confirm.scr IMAGES_EN+= install/pkg-install.scr IMAGES_EN+= install/pkg-sel.scr IMAGES_EN+= install/probstart.scr IMAGES_EN+= install/routed.scr IMAGES_EN+= install/security.scr IMAGES_EN+= install/sysinstall-exit.scr IMAGES_EN+= install/timezone1.scr IMAGES_EN+= install/timezone2.scr IMAGES_EN+= install/timezone3.scr IMAGES_EN+= install/userconfig.scr IMAGES_EN+= install/userconfig2.scr IMAGES_EN+= install/xf86setup.scr IMAGES_EN+= mail/mutt1.scr IMAGES_EN+= mail/mutt2.scr IMAGES_EN+= mail/mutt3.scr IMAGES_EN+= mail/pine1.scr IMAGES_EN+= mail/pine2.scr IMAGES_EN+= mail/pine3.scr IMAGES_EN+= mail/pine4.scr IMAGES_EN+= mail/pine5.scr IMAGES_EN+= install/example-dir1.eps IMAGES_EN+= install/example-dir2.eps IMAGES_EN+= install/example-dir3.eps IMAGES_EN+= install/example-dir4.eps IMAGES_EN+= install/example-dir5.eps IMAGES_EN+= security/ipsec-network.pic IMAGES_EN+= security/ipsec-crypt-pkt.pic IMAGES_EN+= security/ipsec-encap-pkt.pic IMAGES_EN+= security/ipsec-out-pkt.pic IMAGES_EN+= vinum/vinum-concat.pic IMAGES_EN+= vinum/vinum-mirrored-vol.pic IMAGES_EN+= vinum/vinum-raid10-vol.pic IMAGES_EN+= vinum/vinum-raid5-org.pic IMAGES_EN+= vinum/vinum-simple-vol.pic IMAGES_EN+= vinum/vinum-striped-vol.pic IMAGES_EN+= vinum/vinum-striped.pic # Images from the cross-document image library IMAGES_LIB= callouts/1.png IMAGES_LIB+= callouts/2.png IMAGES_LIB+= callouts/3.png IMAGES_LIB+= callouts/4.png IMAGES_LIB+= callouts/5.png IMAGES_LIB+= callouts/6.png IMAGES_LIB+= callouts/7.png IMAGES_LIB+= callouts/8.png IMAGES_LIB+= callouts/9.png IMAGES_LIB+= callouts/10.png # # SRCS lists the individual SGML files that make up the document. Changes # to any of these files will force a rebuild # # SGML content -SRCS= book.sgml +SRCS= audit/chapter.sgml +SRCS+= book.sgml SRCS+= colophon.sgml SRCS+= freebsd-glossary.sgml SRCS+= advanced-networking/chapter.sgml SRCS+= basics/chapter.sgml SRCS+= bibliography/chapter.sgml SRCS+= config/chapter.sgml SRCS+= boot/chapter.sgml SRCS+= cutting-edge/chapter.sgml SRCS+= desktop/chapter.sgml SRCS+= disks/chapter.sgml SRCS+= eresources/chapter.sgml SRCS+= firewalls/chapter.sgml +SRCS+= geom/chapter.sgml SRCS+= install/chapter.sgml SRCS+= introduction/chapter.sgml SRCS+= kernelconfig/chapter.sgml SRCS+= l10n/chapter.sgml SRCS+= linuxemu/chapter.sgml SRCS+= mac/chapter.sgml SRCS+= mail/chapter.sgml SRCS+= mirrors/chapter.sgml SRCS+= multimedia/chapter.sgml SRCS+= network-servers/chapter.sgml SRCS+= pgpkeys/chapter.sgml SRCS+= ports/chapter.sgml SRCS+= ppp-and-slip/chapter.sgml SRCS+= preface/preface.sgml SRCS+= printing/chapter.sgml SRCS+= security/chapter.sgml SRCS+= serialcomms/chapter.sgml SRCS+= users/chapter.sgml SRCS+= vinum/chapter.sgml SRCS+= x11/chapter.sgml # Entities SRCS+= chapters.ent SYMLINKS= ${DESTDIR} index.html handbook.html # Turn on all the chapters. CHAPTERS?= ${SRCS:M*chapter.sgml} SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./} SGMLFLAGS+= -i chap.freebsd-glossary # XXX The Handbook build currently overflows some internal, hardcoded # limits in pdftex. Until we split the Handbook up, build the PDF # version using ps2pdf instead of pdftex. PS2PDF?= ${PREFIX}/bin/ps2pdf book.tex-pdf: ${TOUCH} book.tex-pdf book.pdf: book.ps ${PS2PDF} book.ps book.pdf pgpkeyring: pgpkeys/chapter.sgml @${JADE} -V nochunks ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC} # # Handbook-specific variables # .if defined(WITH_PGPKEYS) JADEFLAGS+= -V withpgpkeys .endif URL_RELPREFIX?= ../../../.. DOC_PREFIX?= ${.CURDIR}/../../.. .for p in ftp cvsup SRCS+= mirrors.sgml.${p}.inc CLEANFILES+= mirrors.sgml.${p}.inc CLEANFILES+= mirrors.sgml.${p}.inc.tmp .endfor SRCS+= eresources.sgml.www.inc CLEANFILES+= eresources.sgml.www.inc CLEANFILES+= eresources.sgml.www.inc.tmp .include "${DOC_PREFIX}/share/mk/doc.project.mk" .for p in ftp cvsup mirrors.sgml.${p}.inc: ${XML_MIRRORS} ${XSL_MIRRORS} ${XSLTPROC} ${XSLTPROCOPTS} \ -o $@.tmp \ --param 'type' "'$p'" \ --param 'proto' "'$p'" \ --param 'target' "'handbook/mirrors/chapter.sgml'" \ ${XSL_MIRRORS} ${XML_MIRRORS} ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>,;s,,,'\ < $@.tmp > $@ || (${RM} -f $@ && false) ${RM} -f $@.tmp .endfor eresources.sgml.www.inc: ${XML_MIRRORS} ${XSL_MIRRORS} ${XSLTPROC} ${XSLTPROCOPTS} \ -o $@.tmp \ --param 'type' "'www'" \ --param 'proto' "'http'" \ --param 'target' "'handbook/eresources/chapter.sgml'" \ ${XSL_MIRRORS} ${XML_MIRRORS} ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>,;s,,,'\ < $@.tmp > $@ || (${RM} -f $@ && false) ${RM} -f $@.tmp diff --git a/nl_NL.ISO8859-1/books/handbook/audit/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/audit/chapter.sgml new file mode 100644 index 0000000000..95e5ca8fef --- /dev/null +++ b/nl_NL.ISO8859-1/books/handbook/audit/chapter.sgml @@ -0,0 +1,107 @@ + + + + + + + + + + + Tom + Rhodes + Written by + + + + + Siebrand + Mazeland + Vertaald door + + + + + Kernelgebeurtenissen auditen + + + * Overzicht + + AUDIT + + + kernelgebeurtenissen auditen + + MAC + + + Wordt vertaald + + + + * Sleutelbegrippen - Woordenlijst + + Wordt vertaald + + + + * Auditondersteuning installeren + + Wordt vertaald + + + + * Auditen instellen + + + * Auditen bestandssyntaxis + + Wordt vertaald + + + + * Instellingenbestanden + + + * Bestand <filename>audit_control</filename> + + Wordt vertaald + + + + * Bestand <filename>audit_user</filename> + + Wordt vertaald + + + + + + * Gebeurtenisaudit beheer + + Wordt vertaald + + + * Audit logboekbestanden roteren + + Wordt vertaald + + + diff --git a/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml index f7fe63ce6b..c76f6da818 100644 --- a/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml @@ -1,2882 +1,2881 @@ Chris Shumway Herschreven door Remko Lodder Vertaald door &unix; beginselen Overzicht Het volgende hoofdstuk behandelt de basiscommando's en functionaliteit van het &os; besturingssysteem. Veel van dit materiaal is relevant voor elk &unix; achtig besturingssysteem. Als de lezer reeds bekend is met het materiaal, hoeft dit hoofdstuk niet gelezen te worden. Lezer die nog niet eerder met &os; te maken hebben gehad wordt aangeraden door te lezen. Na het lezen van dit hoofdstuk weet de lezer: Hoe virtuele consoles in &os; gebruikt kunnen worden; Hoe &unix; bestandspermissies werken en hoe bestandsvlaggen in &os; werken; Hoe het standaard &os; bestandssysteem eruit ziet; Hoe een &os; harde schijf is ingedeeld; Hoe bestandssystemen gemount en ge-unmount worden; Wat processen, daemons en signalen zijn; Wat een shell is en hoe de standaard omgevingsvariabelen veranderd kunnen worden; Hoe elementaire tekstverwerkers te gebruiken; Wat apparaten en apparaatmountpunten zijn; Welk binair formaat &os; gebruikt; Hoe handleidingen te gebruiken meer informatie. Virtuele consoles en terminals Virtuele consoles terminals &os; kan op diverse manieren gebruikt worden. Één van deze manieren is het typen van commando's in een tekstterminal. Veel van de flexibiliteit en kracht van een &unix; besturingssysteem is gemakkelijk beschikbaar als je &os; op deze manier gebruikt. Dit onderdeel beschrijft wat terminals en consoles zijn en hoe je deze kan gebruiken in &os;. De console console Als &os; niet is ingesteld om automatisch een grafische omgeving te starten tijdens het opstarten, geeft het systeem een login prompt als het gestart is. Dit gebeurt direct nadat de startscripts klaar zijn. Er wordt iets als het volgende getoond: Additional ABI support:. Local package initialization:. Additional TCP options:. Fri Sep 20 13:01:06 EEST 2002 &os;/i386 (pc3.example.org) (ttyv0) login: De meldingen op het scherm kunnen wellicht iets anders zijn op een systeem, maar het zal iets soortgelijks zijn. De laatste twee regels zijn de regels waar het nu over gaat. De voorlaatste regel toont: &os;/i386 (pc3.example.org) (ttyv0) Deze regel bevat enkele informatie over het systeem dat net gestart is: dit is een &os; console, draaiend op een Intel of soortgelijke processor op de x86 architectuur. Dit betekent i386. Let op: ook al draait &os; niet op een Intel 386 processor, toch is dit een i386. Het is niet het type processor, maar de processor architectuur. De naam van de machine (elke &unix; machine heeft een naam) is pc3.example.org en dit is de console van het systeem, de ttyv0 terminal. De laatste regel is altijd: login: Dit is het deel waar een gebruikersnaam ingevuld moet worden om aan te melden op &os;. Het volgende deel beschrijft hoe dat werkt. Aanmelden op &os; &os; is een multi-user en multi-processing systeem. Dit is de formele beschrijving die meestal gegeven wordt aan een systeem dat gebruikt wordt door meerdere personen die gelijktijdig verschillende programma's draaien op één enkele machine. Elk multi-user systeem heeft een manier nodig om een gebruiker van alle andere gebruikers te kunnen onderscheiden. In &os; (en alle andere &unix; achtige besturingssystemen), wordt dit bereikt door te eisen dat elke gebruiker moet aanmelden op het systeem voordat hij/zij programma's kan draaien. Elke gebruiker heeft een unieke naam (de gebruikersnaam) en een persoonlijke, geheime sleutel (het wachtwoord). &os; vraagt om deze twee gegevens voordat het een gebruiker toegestaat om programma's te draaien. startup scripts Direct nadat &os; is opgestart en de opstartscripts Opstart scripts zijn programma's die automatisch gestart worden tijdens het opstarten. Het hoofddoel van deze programma's is om dingen goed te zetten zodat alle andere programma's ook kunnen draaien, en om services te starten die je geconfigureerd hebt om bruikbare zaken in de achtergrond te doen. afgerond zijn, wordt een prompt getoond dat vraagt om een geldige aanmeldnaam op te geven. login: In dit voorbeeld wordt aangenomen de gebruikersnaam john is. Als na deze prompt john wordt getype en op Enter wordt gedrukt, verschijnt hierna een prompt om het wachtwoord in te voeren: login: john Password: Nu kan john's wachtwoord ingevoerd worden en op Enter gedrukt worden. Het wachtwoord wordt niet getoond! Daarover hoeft geen zorg te bestaan. Het is voldoende om te zeggen dat dit om veiligheidsredenen gedaan wordt. Als het juiste wachtwoord is ingegeven, is er aangemeld bij op &os; en in het systeem klaar om alle beschikbare commando's uit te voeren. Na het aanmelden is de MOTD of het bericht van de dag zichtbaar, gevolgd door een commandoprompt (een #, $ of een % karakter). Dit geeft aan dat er succesvol is aangemeld op &os;. Meerdere consoles &unix; programma's draaien in één console is prima, maar &os; kan veel programma's tegelijk draaien. Om maar één console te hebben waar commando's ingetypt kunnen worden zou zonde zijn van een besturingssysteem als &os; waar meerdere programma's tegelijkertijd op kunnen draaien. Hier kunnen virtuele consoles van pas komen. &os; kan ingesteld worden om verschillende virtuele consoles te tonen. Met toetscombinaties kan van de ene console naar de gewisseld worden. Elke console heeft zijn eigen uitvoerkanaal, en &os; zorgt ervoor dat alle toetsenbordinvoer en monitoruitvoer goed wordt gezet als er van de ene console naar de volgende wordt gewisseld. In &os; kunnen speciale toetscombinaties gebruikt worden om te wisselen naar een ander virtueel console. Een redelijk technische en accurate beschrijving van alle details over de &os; console en toetsenborddrivers staan in de hulppagina's van &man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; en &man.kbdcontrol.1;. Hier wordt niet verder op ingegaan, maar de geïnteresseerde lezer kan altijd de hulppagina's raadplegen voor meer details en een grondige uitleg over hoe alles werkt. In &os; kan AltF1, AltF2 tot en met AltF8 gebruikt worden om te wisselen naar een ander virtueel console. Als wordt gewisseld van de ene naar de andere console zorgt &os; dat de uitvoer bewaard blijft. Het resultaat is een illusie van het hebben van meerdere schermen en toetsenborden die gebruikt kunnen worden om commando's in te voeren om &os; te laten draaien. De programma's die in de ene virtuele console draaien, stoppen niet als de console niet zichtbaar is. Ze blijven doordraaien als naar een andere virtuele console wordt gewisseld. Het bestand <filename>/etc/ttys</filename> De standaardinstelling van &os; start op met acht virtuele consoles. Dit is echter geen vaste waarde en een installatie kan eenvoudig aangepast worden, zodat het systeem gestart wordt met meer of minder virtuele consoles. De hoeveelheid en instellingen van de virtuele consoles worden ingesteld in /etc/ttys. /etc/ttys kan gebruikt worden om virtuele consoles in te stellen. Elke niet-commentaar regel in dit bestand (regels die niet beginnen met een # karakter) bevat instellingen voor een terminal of virtuele console. De standaardversie van dit bestand die meegeleverd wordt met &os; stelt negen virtuele consoles in en activeert er acht. Dit zijn de regels die beginnen met ttyv: # naam getty type status commentaar # ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure ttyv2 "/usr/libexec/getty Pc" cons25 on secure ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure Een uitgebreide beschrijving van elke kolom in dit bestand en alle mogelijke opties voor virtuele consoles staan in de &man.ttys.5; hulppagina gebruiken. Single-user console In staat een gedetailleerde beschrijving van de single-user modus. Het is belanrijk te melden dat er in single-user modus maar één console is. Er zijn geen virtuele consoles beschikbaar. De instellingen van de single-user modus console staan ook in /etc/ttys . De regel begint met console: # name getty type status commentaar # # Als een console gemarkeerd is als "insecure", zal het init script om het root-wachtwoord # vragen wanneer het in single-user mode komt. console none unknown off secure Zoals het commentaar boven de console regel aangeeft, kan in deze regel het woord secure gewijzigd worden in insecure. In dat geval vraagt &os; bij het opstarten in single-user modus nog steeds om een root-wachtwoord. Pas op als dit wordt veranderd in insecure. Als het wachtwoord van de gebruiker root zoek is, wordt het opstarten in single-user modus lastig. Het is nog steeds mogelijk, maar het kan vrij moeilijk zijn voor iemand die &os; niet zo goed kent met betrekking tot het opstarten en de programma's die daarbij gebruikt worden. Rechten UNIX &os;, direct afgeleid van BSD &unix;, is gebaseerd op verschillende belangrijke &unix; concepten. Het meest bekende is dat &os; een multi-user systeem is. Het systeem kan meerdere gebruikers behandelen die tegelijkertijd totaal verschillende dingen doen. Het systeem is verantwoordelijk voor het netjes delen en beheren voor aanvragen voor hardware, randapparatuur, geheugen en cpu tijd tussen elke gebruiker. Omdat het systeem in staat is om meerdere gebruikers te ondersteunen, heeft alles wat door het systeem beheerd wordt een set van rechten die aangeeft wie mag lezen, schrijven en de bron mag uitvoeren. Deze rechten zijn opgeslagen in drie octetten, die weer in drie stukjes onderverdeeld zijn: één voor de eigenaar van het bestand, één voor de groep waar het bestand toe behoort en één voor de overigen. De numerieke weergave werkt als volgt: Rechten Bestandsrechten Waarde Recht Maprecht 0 Niet lezen, niet schrijven, niet uitvoeren --- 1 Niet lezen, niet schrijven, uitvoeren --x 2 Niet lezen, schrijven, niet uitvoeren -w- 3 Niet lezen, schrijven, uitvoeren -wx 4 Lezen, niet schrijven, niet uitvoeren r-- 5 Lezen, niet schrijven, uitvoeren r-x 6 Lezen, schrijven, niet uitvoeren rw- 7 Lezen, schrijven, uitvoeren rwx ls mappen De optie kan gebruikt worden met &man.ls.1; om een lange lijst met de inhoud van een map te zien die een kolom heeft met informatie over bestandsrechten voor de eigenaar, groep en de rest. ls -l in een willekeurige map kan het volgende laten zien: &prompt.user; ls -l total 530 -rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile -rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt ... Zo ziet de eerste kolom van ls -l eruit: -rw-r--r-- Het eerste (meest linkse) karakter geeft aan of dit een reguliere bestand is, een map, een speciaal karakter component(!), een socket of een andere pseudo-file component(!). In dit geval betekent de - dat het een regulier bestand is. De volgende drie karakters, rw- in dit voorbeeld, geven de rechten voor de eigenaar van het bestand. De drie karakters r--erna geven de rechten van voor de groep van het bestand. De overige drie karakters r-- tonen de rechten voor de rest. Een streepje betekent dat de rechten uitgeschakeld zijn. In het geval van dit bestand zijn de rechten zo ingesteld dat de eigenaar kan lezen en schrijven naar het bestand, de groep het bestand kan lezen, en de rest kan het bestand alleen lezen. Volgens de tabel hierboven worden de rechten 644, waar de cijfers de drie stukjes van de rechten aangeven. Dit is allemaal leuk en aardig, maar hoe controleert het systeem dan rechten voor apparaten? &os; behandelt de meeste hardware apparaten als bestanden die door programma's kunnen worden geopend en gelezen, en waar data naar toe kan worden geschreven, net zoals elk ander bestand. Deze speciale apparaat bestanden worden bewaard in de map /dev. Mappen worden ook behandeld als bestanden. Ze hebben lees, schrijf en uitvoerbare rechten. De uitvoerbare vlag voor een map heeft een klein verschil qua betekenis dan die voor gewone bestanden. Als een map als uitvoerbaar gemarkeerd is, betekent het dat erin gekeken mag worden. Het is dus mogelijk om te wisselen naar de map met cd (wissel van map). Dit betekent ook dat in de map bestanden benaderd kunnen worden waarvan de naam bekend is. Dit is natuurlijk afhankelijk van de rechten op het bestand zelf. In het bijzonder, om een lijst van de map te kunnen maken, moet een gebruiker leesrechten op de map hebben. Om een bestand te verwijderen zijn de naam van het bestand en schrijf en uitvoerrechten op de map nodig waarin het bestand zich bevindt. Er zijn meer rechtenvlaggen, maar die worden slechts gebruikt in speciale gevallen, zoals bij setuid binaries en sticky mappen. Meer informatie over bestandsrechten en hoe die aangepast kunnen worden staat in &man.chmod.1;. Tom Rhodes Bijgedragen door Symbolische rechten rechten symbolisch Symbolische rechten, soms ook wel symbolische expressies, gebruiken karakters in plaats van octale getallen om rechten aan bestanden en mappen te geven. Symbolische expressies gebruiken de volgende opbouw: (wie) (actie) (permissies), waar de volgende waardes beschikbaar zijn: Optie Letter Vertegenwoordigt (wie) u Gebruiker (wie) g Groepseigenaar (wie) o Overigen (wie) a Iedereen (wereld) (actie) + Rechten toevoegen (actie) - Rechten verwijderen (actie) = Stel deze rechten in (recht) r Lezen (recht) w Schrijven (recht) x Uitvoeren (recht) t Sticky bit (recht) s Verander UID of GID Deze waardes worden gebruikt met &man.chmod.1;, net zoals eerder, alleen nu met letters. Het volgende commando kan gebruikt worden om de overige gebruikers toegang tot BESTAND te ontzeggen: &prompt.user; chmod go= BESTAND Er kan een door komma's gescheiden lijst geleverd worden als meer dan één wijziging aan een bestand moet worden uitgevoerd. Het volgende commando past de rechten voor de groep en de wereld aan door de schrijfrechten te ontnemen om daarna iedereen uitvoerrechten te geven: &prompt.user; chmod go-w,a+x BESTAND Tom Rhodes Geschreven door &os; bestandsvlaggen Naast de bestandsrechten die hiervoor zijn besproken, biedt &os; ondersteuning voor bestandsvlaggen. Deze vlaggen bieden een aanvullend beveiligingsniveau en controle over bestanden, maar niet over mappen. Bestandsvlaggen voegen een extra niveau van controle over bestanden, waardoor verzekerd kan worden dat in sommige gevallen zelfs root een bestand niet kan verwijderen. Bestandsvlaggen worden gewijzigd met het hulpprogramma &man.chflags.1;, dat een eenvoudige interface heeft. Om bijvoorbeeld de systeemvlag niet verwijderdbaar in te stellen op het bestand file1: &prompt.root; chflags sunlink file1 Om de vlag niet verwijderbaar weer te verwijderen kan het voorgaande command met no voor worden uitgevoerd: &prompt.root; chflags nosunlink file1 Om de vlaggen op een bestand te bekijken, kan &man.ls.1; met de vlaggen gebruikt worden: &prompt.root; ls -lo file1 De uitvoer hoort er ongeveer als volgt uit te zien: -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1 Een aantal vlaggen kan alleen ingesteld of verwijderd worden door de gebruiker root. In andere gevallen kan de eigenaar van een bestand vlaggen instellen. Meer informatie voor beheerders staat in &man.chflags.1; en &man.chflags.2;. Mappenstructuur mappenstructuur De &os; mappenstructuur is erg belangrijk om het systeem goed te leren kennen. Het belangrijkste concept om greep op te krijgen is die van de rootmap, /. Deze map is de eerste die gemount wordt tijdens het opstarten en bevat het basissysteem dat nodig is om het besturingssysteem gereed te maken voor multi-user taken. De rootmap bevat ook mountpunten - voor elk ander bestandssysteem dat misschien gemountd + voor elk ander bestandssysteem dat misschien gemount wordt. Een mountpunt is een map waar extra bestandssystemen aan gemount kunnen worden. Standaard mountpunten bevatten /usr, /var, /tmp, /mnt en /cdrom. Naar deze mappen wordt meestal verwezen in /etc/fstab, een tabel met bestandssystemen en mountpunten ter referentie voor het systeem. De meeste bestandssystemen in /etc/fstab worden automatisch gemount tijdens het opstarten door het script &man.rc.8;, behalve als ze de optie hebben. Details staan beschreven in . Een complete beschrijving over het bestandssysteem staat in &man.hier.7;. Hier wordt volstaan met een overzicht van de voorkomende mappen. Map Omschrijving / Rootmap van het bestandssysteem. /bin/ Gebruikersapplicaties, belangrijk voor zowel single user als multi-user omgevingen. /boot/ Programma's en instellingenbestanden die gebruikt worden tijdens het opstarten van het besturingssysteem. /boot/defaults/ Bestanden met standaardinstellingen voor opstarten;, zie &man.loader.conf.5;. /dev/ Apparaatnodes;, zie &man.intro.4;. /etc/ Bestanden met systeeminstellingen en scripts. /etc/defaults/ Bestanden met standaard systeeminstellingen;, zie &man.rc.8;. /etc/mail/ Instellingenbestanden voor mail transport programma's zoals &man.sendmail.8;. /etc/namedb/ Instellingenbestanden voor named, zie &man.named.8;. /etc/periodic/ Scripts die dagelijks, wekelijks en maandelijks via &man.cron.8; worden uitgevoerd, zie &man.periodic.8;. /etc/ppp/ Instellingenbestanden voor ppp, zie &man.ppp.8;. /mnt/ Lege map, veel gebruikt door systeembeheerders als tijdelijk mountpunt voor opslagruimtes. /proc/ Process bestandssysteem;, zie &man.procfs.5; en &man.mount.procfs.8;. /rescue/ Statisch gelinkte programma's voor noodherstel, zie &man.rescue.8;. /root/ Thuismap van de gebruiker root. /sbin/ Systeemprogramma's en administratieprogramma's belangrijk voor zowel single-user en multi-user omgevingen. /stand/ Programma's die gebruikt worden in een standalone omgeving. /tmp/ Tijdelijke bestanden, meestal een op &man.mfs.8; geheugen gebaseerd bestandssysteem (de inhoud van /tmp wordt meestal NIET bewaard tijdens het rebooten). /usr/ Hier bevindt zich het leeuwendeel van alle hulpprogramma's en gewone programma's. /usr/bin/ Standaard programma's, programmeertools. /usr/include/ Standaard C invoegbestanden. /usr/lib/ Functiebibliotheken. /usr/libdata/ Diverse databestanden voor hulpprogramma's. /usr/libexec/ Systeemdaemons en systeemhulpprogramma's (uitgevoerd door andere programma's). /usr/local/ Lokale programma's, bibliotheken, etc. Wordt ook gebruikt als standaard locatie voor de &os; ports. Binnen /usr/local, wordt de algemene layout bepaald door &man.hier.7;, dat ook voor /usr wordt gebruikt. Uitzonderingen is de map man, die direct onder /usr/local ligt in plaats van onder /usr/local/share, en de documentatie voor ports is te vinden in share/doc/port. /usr/obj/ Architectuur afhankelijke doelstructuur voor resultaten van de bouw van /usr/src. /usr/ports De &os; Portscollectie (optioneel). /usr/sbin/ Systeemdaemons en systeemhulpprogramma's (uitgevoerd door gebruikers). /usr/share/ Architectuur onafhankelijke bestanden. /usr/src/ BSD en/of lokale broncodebestanden. /usr/X11R6/ Uitvoerbare bestanden en bibliotheken, etc, voor de X11R6 distributie (optioneel). /var/ Multifunctionele logboek-, tijdelijke, transparante en spool bestanden. /var/log/ Diverse logboekbestanden van het systeem. /var/mail/ Postbusbestanden van gebruikers. /var/spool/ Diverse printer- en mailsysteemspoolingmappen. /var/tmp/ Tijdelijke bestanden die bewaard worden bij een herstart van het systeem. /var/yp NIS maps. Organisatie van schijven De kleinste vorm van organisatie die &os; gebruikt om bestanden te vinden is de bestandsnaam. Bestandsnamen zijn hoofdlettergevoelig, wat betekent dat readme.txt en README.TXT twee verschillende bestanden zijn. &os; gebruikt de extensie niet (.txt) van een bestand om te bepalen of het bestand een programma, een document of een vorm van data is. Bestanden worden bewaard in mappen. Een map kan leeg zijn of - of honderden bestanden bevatten. Een map kan ook andere mappen + honderden bestanden bevatten. Een map kan ook andere mappen bevatten, wat het mogelijk maakt om een hiërarchie van mappen te maken. Dit maakt het veel makkelijker om data te organiseren. Bestanden en mappen worden aangegeven door het bestand of de map aan te geven, gevolgd door een voorwaardse slash, /, gevolgd door andere mapnamen die nodig zijn. Als map foo de map bar bevat, die op zijn beurt het bestand readme.txt bevat, dan wordt de volledige naam of pad naar het bestand foo/bar/readme.txt. Mappen en bestanden worden bewaard op een bestandssysteem. Elk bestandssysteem bevat precies één map op het hoogste niveau die de rootmap van het bestandssysteem heet. Deze rootmap kan op zijn beurt andere mappen bevatten. Tot zover is dit waarschijnlijk hetzelfde als voor elk ander besturingssysteem. Er zijn een paar verschillen. &ms-dos; gebruikt bijvoorbeeld een \ om bestanden en mappen te scheiden, terwijl &macos; gebruik maakt van :. - &os; gebruikt geen schijfletters, of andere schijfnamennamen - in het pad. &os; gebruikt geen + &os; gebruikt geen schijfletters, of andere schijfnamen in + het pad. &os; gebruikt geen c:/foo/bar/readme.txt. Eén bestandssysteem wordt aangewezen als root bestandssysteem, waar naar wordt verwezen met /. Elk ander bestandssysteem wordt daarna gemount onder het root bestandssysteem. Hoeveel schijven er ook aan een &os; systeem - hangen, het lijkt als elke map zich op dezelfde schijf + hangen, het lijkt alsof elke map zich op dezelfde schijf bevindt. Stel er zijn drie bestandssystemen met de namen A,B en C. Elk bestandssysteem heeft één root map die twee andere mappen bevat, A1 en A2 (zo ook voor de andere twee: B1, B2, C1 en C2). A wordt het root besturingsysteem. Met ls, dat de inhoud van de map kan tonen, zijn de twee mappen A1 en A2 te zien. De mappenstructuur ziet er als volgend uit: / | +--- A1 | `--- A2 Een bestandssysteem moet gemount worden in een map op een ander bestandssysteem. Als nu bestandssysteem B wordt gemount onder de map A1 vervangt B A1 en zien de mappingen in B er als volgt uit: / | +--- A1 | | | +--- B1 | | | `--- B2 | `--- A2 Elk bestand dat in de mappen B1 en - B2 directories aanwezig is, kan benaderd - worden met het pad /A1/B1 of - /A1/B2. Elk bestand dat in - /A1 stond is tijdelijk verborgen en komt - tevoorschijn als Bis + B2 aanwezig is, kan benaderd worden met het + pad /A1/B1 of /A1/B2. + Elk bestand dat in /A1 stond is tijdelijk + verborgen en komt tevoorschijn als Bis ge-unmountvan A. Als B gemount is onder A2 ziet de diagram er als volgt uit: / | +--- A1 | `--- A2 | +--- B1 | `--- B2 en de paden zouden dan respectievelijk /A2/B1 en /A2/B2 zijn. Bestandssystemen kunnen op elkaar worden gemount. Doorgaand op het vorige voorbeeld kan het bestandssysteem C gemount worden bovenop de map B1 in het bestandssysteem B. Dit resulteert in: / | +--- A1 | `--- A2 | +--- B1 | | | +--- C1 | | | `--- C2 | `--- B2 Of C kan direct onder het bestandssysteem A gemount worden, onder de map A1: / | +--- A1 | | | +--- C1 | | | `--- C2 | `--- A2 | +--- B1 | `--- B2 Hoewel het niet gelijk is, lijkt het op het gebruik van join in &ms-dos;. Beginnende gebruikers hoeven zich hier gewoonlijk niet mee bezig te houden. Normaal gesproken worden bestandssystemen gemaakt als &os; wordt geïnstalleerd en er wordt besloten waar ze gemount worden. Meestal worden ze ook niet - gewijzigd tot de een nieuwe schijf aan een systeem wordt + gewijzigd tot er een nieuwe schijf aan een systeem wordt toegevoegd. Het is mogelijk om één groot root bestandssysteem te hebben en geen andere. Deze benadering heeft voordelen en nadelen. Voordelen van meerdere bestandssystemen Verschillende bestandssystemen kunnen verschillende mount opties hebben. Met een goede voorbereiding kan het root bestandssysteem bijvoorbeeld als alleen-lezen gemount worden, waardoor het onmogelijk wordt om per ongeluk kritische bestanden te verwijderen of te bewerken. Het scheiden van andere bestandssystemen die beschrijfbaar zijn door gebruikers, zoals /home van andere bestandssystemen stelt de beheerder in staat om ze nosuid te mounten. Deze optie voorkomt dat suid/guid bits op uitvoerbare bestanden effectief gebruikt kunnen worden, waardoor de beveiliging mogelijk beter wordt. &os; optimaliseert automatisch de layout van bestanden op een bestandssysteem, afhankelijk van hoe het bestandssysteem wordt gebruikt. Een bestandsysteem dat veel bestanden bevat waar regelmatig naar geschreven wordt, wordt anders geoptimaliseerd dan een bestandssysteem dat minder maar grotere bestanden bevat. Door het gebruik van één groot bestandssysteem werkt de optimalisatie niet. &os;'s bestandssystemen zijn erg robuust als er bijvoorbeeld een stroomstoring is, hoewel een stroomstoring op een kritiek moment nog steeds kan leiden tot schade aan de structuur van het bestandssysteem. Door het verdelen van data over meerdere bestandssystemen, is de kans groter dat het systeem nog opstart, wat terugzetten van een backup makkelijker maakt als dat nodig is. Voordeel van één bestandssysteem Bestandssystemen hebben een vaste grootte. Als bij de installatie van &os; een bestandssysteem wordt gemaakt, is het later mogelijk dat de partitie groter gemaakt moet worden. Dit is niet zo makkelijk zonder een backup, het opnieuw maken van het bestandssysteem met gewijzigde grootte en het terugzetten van de gebackupte data. &os; 4.4 en latere versies hebben &man.growfs.8;, waarmee de grootte van het bestandssysteem is aan te passen terwijl het draait. Bestandssystemen worden opgeslagen in partities. Dit betekent niet hetzelfde als de algemene betekenis van de term partitie (bijvoorbeeld, &ms-dos; partitie), vanwege &os;'s &unix; achtergrond. Elke partitie wordt geïdentificeerd door een letter van a tot en met h. Elke partitie kan slechts één bestandssysteem hebben, wat betekent dat bestandssystem vaak omschreven worden aan de hand van hun mountpunt in de bestandssysteem hiërarchie of de letter van de partitie waar ze in opgeslagen zijn. &os; gebruikt ook schijfruimte voor wisselbestanden. Wisselbestanden geven &os; virtueel geheugen. Dit geeft de computer de mogelijkheid om net te doen alsof er veel meer geheugen in de machine aanwezig is dan werkelijk het geval is. Als &os; geen geheugen meer heeft, verplaatst het data die op dat moment niet gebruikt wordt naar de wisselbestanden en plaatst het terug als het wel nodig is (en zet iets anders in ruil daarvoor - terug. + terug). Aan sommige partities zijn bepaalde conventies gekoppeld. Partitie Conventie a Bevat meestal het root bestandssysteem b Bevat meestal de swapruimte c Heeft meestal dezelfde grootte als de hele harde schijf. Dit geeft hulpprogramma's de mogelijkheid om op een complete schijf te werken (voor bijvoorbeeld een bad block scanner) om te werken op de c partitie. Meest wordt hierop dan ook geen bestandssysteem gecreeërd. d Partitie d had vroeger een speciale betekenis, maar die is verdwenen. Tegenwoordig werken sommige hulpprogramma's raar als ze verteld worden dat ze moeten werken op partitie d, dus sysinstall maakt normaal gesproken partitie d niet. Elke partitie die een bestandssysteem bevat is opgeslagen in wat &os; noemt een slice. Slice is &os;'s term voor wat meeste mensen partities noemen. Dit komt wederom door &os;'s &unix; achtergrond. Slices zijn genummerd van 1 tot en met 4. slices partities gevaarlijk toegewijd Slicenummers volgen de apparaatnamen, voorafgegaan door een s die begint bij 1. Dus da0s1 is de eerste slice op de eerste SCSI drive. Er kunnen maximaal vier fysieke slices op een schijf staan, maar er kunnen logische slices in fysieke slices van het correcte type staan. Deze uitgebreide slices zijn genummerd vanaf 5. Dus ad0s5 is de eerste uitgebreide slice op de eerste IDE schijf. Deze apparaten worden gebruikt door bestandssystemen waarvan verwacht wordt dat ze een slice in beslag nemen. Slices, gevaarlijk toegewijde (dangerously dedicated) fysieke drivers en andere drives bevatten partities, die worden weergegeven door letters vanaf a tot h. Deze letter wordt achter de apparaatnaam geplakt. Dus da0a is de a partitie op de eerste da drive, die gevaarlijk toegewijd is. ad1s3e is de vijfde partitie op de derde slice van de tweede IDE schijf. Elke schijf op het systeem wordt geïdentificeerd. Een schijfnaam start met een code die het type aangeeft en dan een nummer dat aangeeft welke schijf het is. In tegenstelling tot bij slices, start het nummeren van schijven bij 0. Standaardcodes staan beschreven in . Bij een referentie aan een partitie verwacht &os; ook dat aan de slice en schijf refereert die de partitie bevat wordt gerefereerd en als naar een slice wordt verwezen moet ook de schijfnaam genoemd worden. Dit kan door de schijfnaam, s, het slice nummer en de partitieletter aan te geven. Voorbeelden staan in . In staat een conceptmodel van een schijflayout die een en ander verduidelijkt. Voordat &os; geïnstalleerd kan worden moeten eerst de schijfslices gemaakt worden en daarna moeten de partities op de slices voor &os; gemaakt worden. Daarna wordt op elke partitie het bestandssysteem (of wisselbestand) gemaakt en als laatste wordt besloten waar het filesysteem gemount wordt. Schijf apparaatcodes Code Betekenis ad ATAPI (IDE) schijf da SCSI directe toegang schijf acd ATAPI (IDE) CDROM cd SCSI CDROM fd Floppydisk
Voorbeeld schijf-, slice- en partitienamen Name Betekenis ad0s1a De eerste partitie (a) op de eerste slice (s1) op de eerste IDE schijf (ad0). da1s2e De vijfde partitie (e) op de tweede slice (s1) op de tweede SCSI schijf (da1). Conceptmodel van een schijf Het onderstaande diagram geeft aan hoe &os; de eerste IDE schijf in het systeem ziet. Stel dat de schijf 4 GB groot is en dat deze twee 2 GB slices (&ms-dos; partities) bevat. De eerste slice bevat een &ms-dos; schijf, C: en de tweede slice bevat een &os; installatie. Deze &os; installatie heeft drie partities en een partitie met een wisselbestand. De drie partities hebben elk een bestandssysteem. Partitie a wordt gebruikt voor het root bestandssysteem, e voor de map /var en f voor de map /usr. .-----------------. --. | | | | DOS / Windows | | : : > Eerste slice, ad0s1 : : | | | | :=================: ==: --. | | | Partitie a, gemount als / | | | > gerefereerd als ad0s2a | | | | | :-----------------: ==: | | | | Partitie b, gebruikt als swap | | | > gerefereerd als ad0s2b | | | | | :-----------------: ==: | Partitie c, geen | | | Partition e, gebruikt als /var > bestandssysteem, bevat | | > gerefereerd als ad0s2e | alle &os; slices, | | | | ad0s2c :-----------------: ==: | | | | | : : | Partitie f, gebruikt als /usr | : : > gerefereerd als ad0s2f | : : | | | | | | | | --' | `-----------------' --'
Mounten en unmounten van bestandssystemen Het bestandssysteem wordt het best weergegeven als een boom, met de stam als /. /dev, /usr en de andere map in root zijn takken die weer hun eigen takken kunnen hebben, zoals /usr/local, etc. root bestandssysteem Er zijn verschillende redenen om sommige van deze mappen op aparte bestandssystemen te plaatsen. /var bevat de mappen log/, spool/ en verschillende types tijdelijke bestanden en kan volraken. Het laten vollopen van het root bestandssysteem is geen goed idee, dus het splitsen van /var van /is vaak de favoriet. Een andere vaak voorkomende reden om bepaalde mapbomen op aparte bestandssystemen te plaatsen, is om ze op verschillende fysieke schrijven te zetten of gescheiden virtuele schijven zoals gemounte Netwerk bestandssystemen of cd-rom drives. Het bestand <filename>fstab</filename> bestandssystemen gemount met fstab Tijdens het opstartproces, worden bestandssystemen die vermeld staan in /etc/fstab automatisch gemount (tenzij ze vermeld staan met ). /etc/fstab bevat een lijst van regels die aan het volgende formaat voldoen: apparaat /mountpunt fstype opties dumpfreq passno apparaat Een apparaatnaam (die moet bestaan) zoals uitgelegd in . mountpunt Een map (die moet bestaan) waarop het bestandssysteem gemount moet worden. fstype Het bestandssysteem type dat aan &man.mount.8; gegeven wordt. Het standaard &os; bestandssysteem is ufs. opties - Dit is of voor lezen en + Dit is of voor lezen en schrijven bestandssytemen, of voor alleen lezen, gevolgd door elke andere optie die mogelijk nodig is. Een standaard optie is voor bestandssystemen die niet automatisch gemount worden tijdens het opstarten. Andere opties staan in &man.mount.8;. dumpfreq Dit wordt gebruikt door &man.dump.8; om te bepalen welke bestandssystemen gedumpt moeten worden. Als het veld niet is ingevuld, wordt aangenomen dat er een nul staat. passno Dit bepaalt in welke volgorde bestandssystemen gecontroleerd moeten worden. Bestandssystemen die overgeslagen moeten worden moeten hun passno waarde op nul hebben staan. Voor het root bestandssysteem (dat voor alle andere gecontroleerd moet worden) moet passno op één staan en passno waarden voor andere bestandssystemen moeten een waarde hebben groter dan één. Als bestandssysteem dezelfde passno waarde hebben probeert &man.fsck.8; deze bestandssystemen tegelijkertijd te controleren. In &man.fstab.5; staat meer informatie over de opmaak van /etc/fstab en de mogelijke opties. Het commando <command>mount</command> bestandssystemen mounten &man.mount.8; wordt gebruikt om bestandsystemen te mounten. De meest eenvoudige vorm is: &prompt.root; mount apparaat mountpunt Alle opties voor het commando staat in &man.mount.8;, maar de meest voorkomende zijn: Mountopties Mount alle bestandssystemen die in /etc/fstab staan, behalve die gemarkeerd staan als noauto, uitgesloten zijn door de optie of die al gemount zijn. Doe alles behalve het echt aanroepen van de mount systeemopdracht. Deze optie is handig in samen met de optie om te bepalen wat &man.mount.8; eigenlijk probeert te doen. Forceert het mounten van een niet schoon bestandssysteem (gevaarlijk) of forceert het innemen van schrijftoegang als de mountstatus van een bestandssysteem wijzigt van lezen en schrijven naar alleen lezen. Mount het bestandssysteem alleen lezen. Dit is identiek aan de optie ( voor &os; versies ouder dan 5.2) voor de optie . fstype Mount het opgegeven bestandssysteem als het opgegeven type bestandssysteem of mount alleen bestandssystemen van het aangegeven type als ook de optie is opgegeven. ufs is het standaard bestandssysteem. Werk mountopties van het bestandssysteem bij. Geef uitgebreide informatie (verbose). Mount het bestandssysteem lezen en schrijven. De optie accepteert een door komma's gescheiden lijst van opties, waaronder de volgende: nodev - Intrepeteer geen speciale apparaten op het + Interpreteer geen speciale apparaten op het bestandssysteem. Dit is een nuttige veiligheidsoptie. noexec Sta geen uitvoerbare bestanden toe op dit bestandssysteem. Ook dit is een nuttige veiligheidsoptie. nosuid - Intrepeteer geen setuid of setgid opties op het + Interpreteer geen setuid of setgid opties op het bestandssysteem. Ook dit is een nuttige veiligheidsoptie. Het commando <command>umount</command> bestandssystemen unmounten &man.umount.8; heeft een mountpunt, een apparaatnaam, of als parameter. Alle vormen kunnen de optie hebben om een bestandsysteem te forceren te unmounten en de optie voor uitgebreide informatie. De optie is meestal geen goed idee. Forceren dat een bestandssysteem geunmount wordt kan de computer laten crashen of data op het bestandssysteem beschadigen. De opties en worden gebruikt om alle bestandssystemen te unmounten, mogelijk nader gespecificeerd door de optie met daarachter op welke typen bestandssystemen het betrekking heeft. Voor de optie geldt dat deze niet probeert het root bestandssysteem te unmounten. Processen &os; is een multi-tasking besturingssysteem. Dit betekent dat het lijkt alsof er meer dan één proces tegelijkertijd draait. Elk programma dat draait wordt een proces genoemd. Elk commando dat wordt uitgevoerd start op zijn minst één nieuw proces en er zijn systeemprocessen die continu draaien om het systeem functioneel te houden. Elk proces wordt geïdentificeerd door een nummer dat process ID of PID heet, en net zoals bij bestanden heeft elk proces één eigenaar en groep. De eigenaars- en groepsinformatie wordt gebruikt om te bepalen welke bestanden en apparaten het proces mag openen, waarbij gebruik wordt gemaakt van de bestandsrechten die eerder zijn behandeld. Veel processen - hebben ook een ouderproces (parent proces). Het ouderproces is - het proces het ze door gestart is. Als commando's in een shell - worden ingevoerd, start de shell een proces en elk commando dat - draait is ook een proces. De uitzondering hierop is het - speciale proces &man.init.8;. init is altijd - het eerste proces, dus het PID is altijd 1. + hebben ook een ouderproces (parent process). Een ouderproces is + een proces dat het nieuwe proces heeft gestart. Als commando's + in een shell worden ingevoerd, start de shell een proces en elk + commando dat draait is ook een proces. De uitzondering hierop is + het speciale proces &man.init.8;. init is + altijd het eerste proces, dus het PID is altijd 1. init wordt automatisch gestart door de kernel als &os; opstart. Twee commando's die erg handig zijn om te zien welke processen er draaien zijn &man.ps.1; en &man.top.1;. ps wordt gebruikt om een statische lijst op te vragen van de processen die op het moment van uitvoeren draaien en kan hun PID, geheugengebruik, de startende commandoregel, enzovoort, tonen. top geeft alle draaiende processen weer en werkt de status elke paar seconden bij zodat interactief wordt weergegeven wat een computer aan het doen is. Standaard laat ps alleen zien welke commando's draaien waarvan de gebruiker die het uitvoert de eigenaar is: &prompt.user; ps PID TT STAT TIME COMMAND 298 p0 Ss 0:01.10 tcsh 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) 37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) 48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi 48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) 72210 p0 R+ 0:00.00 ps 390 p1 Is 0:01.14 tcsh 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y 6688 p3 IWs 0:00.00 tcsh 10735 p4 IWs 0:00.00 tcsh 20256 p5 IWs 0:00.00 tcsh 262 v0 IWs 0:00.00 -tcsh (tcsh) 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish In het bovenstaande voorbeeld is de uitvoer van &man.ps.1; georganiseerd in een aantal kolommen. PID is het proces ID. PIDs worden toegekend vanaf 1 en lopen op tot 99999. Als ze allemaal zijn gebruikt, worden ze hergebruikt. De TT kolom toont de tty vanwaar het programma draait en wordt nu buiten beschouwing gelaten. STAT toont de huidige staat van het programma en ook deze kolom wordt buiten beschouwing gelaten. TIME is de hoeveelheid tijd die het programma gedraaid heeft op de CPU. Dit is meestal niet de verstreken tijd vanaf het moment dat het programma is gestart. Veel programma's wachten omdat er alleen gebruik wordt gemaakt van de CPU als er iets voor het programma te doen is. Als laatste is COMMAND de commandoregel die gebruikt is om het programma te starten. &man.ps.1; ondersteunt een aantal opties die de informatie wijzigen die wordt weergegeven. Één van de meest nuttige combinaties is auxww. De optie toont informatie over alle draaiende processen, niet alleen die van de gebruiker die is aangemeld. De optie toont de gebruikersnaam van de proceseigenaar, evenals geheugengebruik. De optie toont informatie over daemonprocessen en met de optie laat &man.ps.1; de volledige commandoregel zien, in plaats van een mogelijk afgekorte regel omdat die te lang is om op het scherm te passsen.. De uitvoer van &man.top.1; is hetzelfde: &prompt.user; top last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 47 processes: 1 running, 46 sleeping CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Swap: 256M Total, 38M Used, 217M Free, 15% Inuse PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm 48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt ... De uitvoer is gesplitst in twee secties. De kop (de eerste vijf regels) toont het laatst uitgegeven PID, de gemiddelde systeembelasting (hoe druk is een systeem), de uptime van het systeem (tijd verstreken sinds laatste reboot) en de huidige tijd. De andere cijfers in de kop tonen hoeveel processen er draaien (in dit geval 47) , hoeveel geheugen en swap er gebruikt wordt en hoeveel processortijd het systeem besteed aan verschillende taakgroepen. Daaronder staat een serie van kolommen die soortgelijke informatie bevatten als de uitvoer van &man.ps.1;. Zo zijn het PID, de gebruikersnaam, de hoeveelheid processortijd en het commando dat gebruikt is om het proces te starten te zien. &man.top.1; laat standaard ook zien hoeveel geheugen er gebruikt wordt door een proces. Dit staat in twee kolommen waarbij in de eerste kolom het maximale geheugengebruik wordt getoond en in de tweede kolom het huidige geheugengebruik. Maximale gebruik is de hoeveelheid geheugen die het proces nodig had in de tijd dat het bestaat en het residente gebruik is hoeveel er op het moment van weergeven gebruikt wordt. In dit voorbeeld is zichtbaar dat &netscape; bijna 30 MB RAM nodig had, maar op het moment van uitvoeren 9 MB verbruikt. &man.top.1; werkt het beeld automatisch iedere twee seconden bij. Dat kan gewijzigd worden met de optie . Daemons, signalen en het stoppen van processen Als een gebruiker een editor draait is het makkelijk om de editor te besturen, te vertellen om bestanden te openen, etc. Dit kan omdat de editor de mogelijkheden geeft om dat te doen en omdat de editor gekoppeld is aan een terminal. Sommige programma's zijn niet ontworpen om te draaien met continue gebruikersinvoer, dus als zij de kans krijgen ontkoppelen zij zich van de terminal. Een webserver reageert bijvoorbeeld de hele dag op webaanvragen en heeft eigenlijk geen input van een lokale gebruiker nodig. Programma's die email van locatie naar locatie transporteren zijn een ander voorbeeld. Deze programma's heten daemons. Daemons waren karakters in de Griekste mythologie, goed noch slecht, ze waren dienende geesten die op grote schaal nuttige dingen deden voor de mensheid. Net zoals de huidige webservers en mailservers nuttige dingen doen. Dit is waarom de mascotte voor BSD al lang een vrolijk kijkende daemon met puntoren en een drietand is. Er is een overeenkomst om programma's die meestal draaien als daemon te voorzien van het achtervoegsel d. BIND is de Berkeley Internet Name Daemon (het echte programma heet named), de Apache webserver heet httpd, de printerspooldriver heet lpd, etc. Deze overeenkomst geldt niet altijd. De hoofd maildaemon voor Sendmail heet bijvoorbeeld sendmail en niet maild. Soms is communicatie met een daemon nodig. Deze communicatie heet signaleren (signals). Er kan met een daemon (of met elk ander draaiend proces) - gecommunicaeerd worden door er een signaal naartoe te sturen. Er + gecommuniceerd worden door er een signaal naartoe te sturen. Er zijn een verschillende signalen. Sommige hebben een specifieke bedoeling, andere worden geïntrepeteerd door de applicatie. In de documentatie van de applicatie staat hoe de applicatie signalen intrepeteert. Er kan alleen een signaal naar een proces gezonden worden waar de uitvoerende gebruiker eigenaar van is. - Als met &man.kill.1; of &man.kill.1;een signaal naar een proces + Als met &man.kill.1; of &man.kill.2; een signaal naar een proces van een andere gebruiker wordt gestuurd, wordt de toegang geweigerd. De enige uitzondering hierop is de root gebruiker, die signalen naar processen van alle gebruikers kan sturen. &os; stuurt soms ook signalen naar applicaties. Als een applicatie slecht geschreven is en hij probeert geheugen te benaderen waar hij niet naartoe mag, stuurt &os; het proces een Segmentation Violation signaal (SIGSEGV). Als een applicatie de systeemaanroep &man.alarm.3; heeft gebruikt om na een bepaalde periode een alarm te ontvangen, wordt er een Alarm signaal heen gestuurd (SIGALRM), etc. Twee signalen kunnen gebruikt worden om een proces te stoppen: SIGTERM en SIGKILL. SIGTERM is de nette manier om een proces te killen. Het proces kan het signaal afvangen, begrijpen dat de eigenaar wil dat het wordt afgesloten, wellicht logboekbestanden sluiten die geopend zijn en alle onderhanden activiteiten afhandelen. In een aantal gevallen kan een proces SIGTERM negeren: als het midden in een taak zit die niet beëindigd kan worden. SIGKILL mag niet worden genegeerd door een proces. Dit is het Wat je ook aan het doen bent, stop er nu mee signaal. Na een SIGKILL stopt &os; het proces meteen. Dit is niet geheel waar. Er zijn een aantal dingen die niet onderbroken kunnen worden. Als het proces bijvoorbeeld een bestand probeert uit te lezen dat op een andere computer in het netwerk staat en de andere computer is verdwenen (uitgezet of het netwerk heeft een fout), dan wordt er gezegd dat het proces niet onderbroken kan worden. Uiteindelijk loopt het proces uit de tijd, meestal na twee minuten. Zodra het uit de tijd loopt, wordt het proces alsnog gestopt. Andere veelgebruikte signalen zijn SIGHUP, SIGUSR1 en SIGUSR2. Dit zijn algemeen bruikbare signalen en verschillende applicaties zullen verschillend reageren als ze verstuurd worden. Stel dat het bestand met instellingen voor de webserver is aangepast. Dan moet aan de webserver verteld worden dat die de instellingen opnieuw moet lezen. Hiervoor zou httpd gestopt en gestart kunnen worden, maar dit resulteert in een korte onderbreking van de webserverdienst, wat ongewenst kan zijn. De meeste daemons zijn geschreven om te reageren op het SIGHUP signaal door het opnieuw inlezen van het instellingenbestand. Dus in plaats van het stoppen en herstarten van httpd kan het SIGHUP signaal gezonden worden. Omdat er geen standaard manier is om op deze signalen te reageren, reageren verschillende daemons anders. Het is verstandig eerst de documentatie van de daemon in kwestie te lezen. Zoals onderstaand voorbeeld laat zien, worden signalen door &man.kill.1; verzonden. Het versturen van een signaal naar een proces Dit voorbeeld toont hoe een signaal naar &man.inetd.8; wordt verstuurd. Het bestand met instellingen voor inetd is /etc/inetd.conf en inetd leest dit bestand opnieuw in als er een SIGHUP wordt verstuurd. Eerst moet het proces ID worden opgezocht van het proces waar een signaal naar verzonden moeten worden. Dit kan door &man.ps.1; en &man.grep.1; te gebruiken. &man.grep.1; wordt gebruikt om in de uitvoer te zoeken en te kijken naar de string die de gebruiker opgeeft. Dit commando wordt gedraaid als een normale gebruiker en &man.inetd.8; wordt gedraaid onder de gebruiker root, dus aan &man.ps.1; moet de optie meegegeven worden. &prompt.user; ps -ax | grep inetd 198 ?? IWs 0:00.00 inetd -wW Dus PID van &man.inetd.8; is 198. In sommige gevallen kan grep inetd ook voorkomen in de uitvoer. Dit komt door de manier waarop &man.ps.1; de lijst van draaiende processen moet vinden. Met &man.kill.1; kan het signaal verzonden worden. Omdat &man.inetd.8; wordt gedraaid door root moet &man.su.1; gebruikt worden om root te worden. &prompt.user; su Password: &prompt.root; /bin/kill -s HUP 198 Zoals zovaak met &unix; commando's, geeft &man.kill.1; geen uitvoer als het succesvol uitgevoerd is. Als een signaal wordt verzonden naar een proces waarvan de gebruiker niet zelf de eigenaar is, dan is de melding: kill: PID: Operation not permitted. Als het PID verkeerd wordt ingevuld, wordt het signaal naar het verkeerde proces verzonden, wat slecht kan zijn, of, als de gebruiker geluk heeft, wordt het verzonden naar een PID dat momenteel niet in gebruik is, waarop de foutmelding kill: PID: No such process verschijnt. Waarom <command>/bin/kill</command> gebruiken? Veel shells leveren kill als ingebouwd commando. Dat betekent dat de shell het signaal direct verstuurt in plaats van door het starten van /bin/kill. Dit kan erg nuttig zijn, maar verschillende shells hebben een verschillende opdrachtregel voor het specificeren van de naam van het signaal dat verstuurd moet worden. In plaats van ze allemaal te leren, is het eenvoudiger om gewoon /bin/kill PID te gebruiken. Andere signalen versturen werkt bijna hetzelfde door TERM of KILL op de commandoregel te vervangen door wat nodig is. Het stoppen van willekeurige processen op een systeem is meestal een slecht idee. In het bijzonder bij &man.init.8; met proces ID 1. Het draaien van /bin/kill -s KILL 1 is een snelle manier om een systeem uit te zetten. Argumenten die aan &man.kill.1; worden meegegeven moeten altijd twee keer gecontroleerd worden voordat op Enter gedrukt wordt. Shells shells commandoregel In &os; wordt een groot deel van het alledaagse werk gedaan vanuit een omgeving met een commandoregel die shell heet. - De grootste taak van een sheel is om commando's van het + De grootste taak van een shell is om commando's van het invoerkanaal op te vangen en deze uit te voeren. Veel shells hebben ook functies ingebouwd om mee te helpen om alledaagse taken zoals bestandsbeheer, bestandsglobbing, bestanden wijzigen vanaf de commandoregel, commandomacro's schrijven en uitvoeren en omgevingsvariabelen instellen en wijzigen. &os; heeft een aantal shells bijgeleverd zoals sh, de Bourne Shell - en tcsh, de verbeterede C-shell. Er zijn veel + en tcsh, de verbeterde C-shell. Er zijn veel andere shells beschikbaar in de &os; Portscollectie zoals zsh en bash. Welke shell gebruiken? Dit is een kwestie van smaak. Een C–programmeur voelt zich misschien prettiger bij een C–achtige shell, zoals tcsh. Een voormalig &linux; gebruiker of iemand die niet veel ervaring heeft met een &unix; commandoregel interface wil misschien bash proberen. Elke shell heeft zijn eigen unieke eigenschappen die wel of niet werken voor een bepaalde gebruiker. Een standaard optie in een shell is bestandsnaam completie. Door het intikken van de eerste paar letters van een commando of bestandsnaam, kan de shell opdracht gegeven worden om automatisch de rest het commando of bestandsnaam toe te voegen met de Tab toets op het toetsenbord. Stel dat er twee bestanden zijn met de namen foobar en foo.bar en foo.bar moet verwijderd worden. Dan kan op het toetsenbord rm fo[Tab].[Tab] ingevoerd worden. De shell geeft rm foo[BEEP].bar weer. De [BEEP] geeft aan dat de shell in staat was om de bestandsnaam te completeren omdat er meer dan één soortgelijk bestand was. foobar en foo.bar beginnen met fo, maar het was in staat om het af te maken tot foo. Na het invoeren van een . en daarna Tab, is de shell in staat om de rest van de bestandsnaam aan te vullen. omgevingsvariabelen Een andere optie van de shell is het gebruik van omgevingsvariabelen. Omgevingsvariabelen zijn variabele sleutelparen die opgeslagen zijn in de omgevingsruimte van een shell. Deze ruimte kan uitgelezen worden door elk programma dat door de shell wordt uitgevoerd en bevat dus veel programmainstellingen. Hieronder staat een lijst van standaard - omgevingsvariabelen en wat ze beteken: + omgevingsvariabelen en wat ze betekenen: omgevingsvariabelen Variabele Omschrijving USER Gebruikersnaam van de gebruiker die is aangemeld. PATH Een lijst van mappen, gescheiden door een : voor het zoeken naar binaire bestanden. DISPLAY Netwerknaam van het X11 scherm om verbinding mee te maken, indien beschikbaar. SHELL De huidige shell. TERM De naam van de huidige gebruikersterminal. Gebruikt om de mogelijkheden van de terminal te bepalen. TERMCAP Databaseregel met terminal escape codes voor het uitvoeren van diverse terminalfuncties. OSTYPE Type besturingssysteem, bijvoorbeeld &os;. MACHTYPE De CPU architectuur waar het systeem op draait. EDITOR De teksteditor waar de gebruiker de voorkeur aan geeft. PAGER De tekstpager waar de gebruiker de voorkeur aan geeft. MANPATH Lijst van mappen gescheiden door een : voor het zoeken naar handleidingen. Bourne shells Het instellen van omgevingsvariabelen verschilt van shell tot shell. In de C–achtige shells zoals tcsh en csh moet setenv gebruikt worden om omgevingsvariabelen in te stellen. In Bourne-shells zoals sh en bash moet export gebruikt worden om de omgevingsvariabelen in te stellen. Om bijvoorbeeld de omgevingsvariabele EDITOR te wijzigen naar /usr/local/bin/emacs onder csh of tcsh moet het volgende gedaan worden: &prompt.user; setenv EDITOR /usr/local/bin/emacs In Bourne shells is dat: &prompt.user; export EDITOR="/usr/local/bin/emacs" Met de meeste shells kunnen de omgevingsvariabelen ook weergegeven worden door een $ karakter voor de variabelenaam te plaatsen op de commandoregel. echo $TERM zou weergeven wat er in $TERM gezet is, omdat de shell $TERM uitbreid en het resultaat doorgeeft aan echo. Shells kennen veel speciale karakters, die meta-karakters heten, als speciale weergaves van data. De meest voorkomende is het karakter * karakter, dat elk karakter in een bestandsnaam voorstelt. Deze speciale meta-karakters kunnen gebruikt worden om bestandsnaamglobbing te doen. Door bijvoorbeeld echo * in te voeren, is het resultaat bijna hetzelfde als door het uitvoeren van ls, omdat de shell alle bestanden die van toepassing zijn aan echo geeft om ze daarna te tonen. Om te voorkomen dat de shell deze speciale tekens verwerkt, kunnen ze uitgeschakeld worden door er het backslash karakter (\) voor te plaatsen. echo $TERM print de inhoud van TERM naar het scherm. echo \$TERM print $TERM zoals het geschreven is. Shell wijzigen De makkelijkste manier om de shell te wijzigen is door het chsh commando te gebruiken. Door chsh te starten wordt de editor gestart die in de EDITOR omgevingsvariable staat. Als deze niet is ingesteld, wordt vi gestart. In de editor kan de regel waarop Shell: staat gewijzigd worden. Aan chsh kan ook de optie meegegeven worden. Dit stelt de shell in, zonder dat een editor gebruikt hoeft te worden. Als de shell bijvoorbeeld gewijzigd moet worden in bash, kan dat als volgt: &prompt.user; chsh -s /usr/local/bin/bash Dit kan ook door chsh zonder parameters te starten en de regel met daarin de shell te wijzigen. De te gebruiken shell moet - geregistreerd zijn in /etc/ssh. Als een - shell uit de Portscollectie + geregistreerd zijn in /etc/shells. Als + een shell uit de Portscollectie is geïnstalleerd, is dit meestal automatisch gebeurd. Als de shell met de hand is geïnstalleerd moet het onderstaande gedaan worden. Als bijvoorbeeld bash met de hand geïnstalleerd is in /usr/local/bin, dient het onderstaande te gebeuren: &prompt.root; echo "/usr/local/bin/bash" >> /etc/shells Hierna kan chsh weer gedraaid worden. Teksteditors teksteditors editors Een groot deel van de instellingen in &os; wordt gemaakt door het bewerken van tekstbestanden. Hierdoor is het een goed idee om bekend te zijn met een tekstverwerker. &os; heeft er een paar in het basissysteem en veel anderen zijn beschikbaar via de Portscollectie. ee editors ee De makkelijkste en simpelste editor om te leren is de editor ee, wat easy editor betekent. Om ee te starten, moet op de commandoregel ee bestandsnaam ingevoerd worden, waar bestandsnaam de naam is van het bestand dat bewerkt moet worden. Om bijvoorbeeld /etc/rc.conf te bewerken, wordt ee /etc/rc.conf ingegeven. Eenmaal in ee worden alle manipulatie commando's die de editor heeft weergegeven aan de bovenkant van het scherm. Het karakter dakje ^ staat voor de toets CTRL op het toetsenbord, dus ^e vormt de toetscombinatie Ctrle . Om uit ee te komen wordt op de toets Esc gedrukt en daar kan gekozen worden om de editor te verlaten. De editor vraagt dan of de wijzigingen bewaard moeten worden als het bestand veranderd is. vi editors vi Emacs editors Emacs &os; heeft ook uitgebreidere tekstverwerkers, zoals vi, in het basissysteem en andere editors als Emacs en vim maken onderdeel uit van de &os; Portscollectie (editors/emacs en editors/vim). Deze editors leveren veel meer functionaliteit en kracht maar zijn lastiger om te leren. Als echter veel met tekstverwerking gedaan wordt, is het leren van een krachtige editor als vim of Emacs verstandig omdat deze uiteindelijk veel tijd kan besparen. Apparaten en apparaatnodes Apparaat is een term die meestal wordt gebruikt voor hardwareonderdelen in een systeem, zoals schijven, printers grafische kaarten en toetsenborden. Als &os; opstart laat het vooral zien welke apparaten gedetecteerd worden. Deze opstartmeldingen kunnen nagekeken worden door het bestand /var/run/dmesg.boot te bekijken. acd0 is bijvoorbeeld de eerste IDE cd-rom drive, terwijl kbd0 staat voor het toetsenbord. Veel van deze apparaten moeten in een &unix; besturingssysteem benaderd worden via speciale bestanden die apparaatnodes heten en te vinden zijn in de map /dev. Apparaatnodes maken Als een nieuw apparaat wordt toegevoegd aan een systeem of als ondersteuning voor extra apparaten wordt gecompileerd, dan moeten misschien één of meer apparaatnodes voor het nieuwe apparaat gemaakt worden. Het MAKEDEV script Op systemen zonder DEVFS (dit is het geval voor alle &os; versies vóór 5.0) worden apparaatnodes gemaakt door het script &man.MAKEDEV.8; zoals hieronder wordt aangegeven: &prompt.root; cd /dev &prompt.root; sh MAKEDEV ad1 Dit voorbeeld maakt de juiste apparaatnode voor de tweede IDE drive wanneer die geïnstalleerd is. <literal>DEVFS</literal> (apparaatbestandssysteem - DEVice File System) Het apparaatbestandssysteem of DEVFS, levert toegang tot de apparaatruimte van de kernel in het globale bestandssysteem. In plaats van dat het nodig is om apparaatnodes te maken en te wijzigen, doet DEVFS dit. In &man.devfs.5; staat meer informatie. DEVFS wordt standaard gebruikt in &os; 5.0 en verder. Binaire formaten Om te kunnen begrijpen waarom &os; gebruik maakt van het &man.elf.5; formaat, is het belangrijk op de hoogte zijn van de drie dominante uitvoerbare formaten voor &unix;: &man.a.out.5; Het oudste en klassieke &unix; object formaat. Het gebruikt een korte en compacte kop met een magisch nummer aan het begin dat veel gebruikt wordt om het formaat aan te geven (&man.a.out.5; geeft meer details). Het bevat drie laadbare segmenten: .tekst, .data en .bss, een symbolentabel en een stringtabel. COFF Het SVR3 object formaat. De kop bestaat uit een sectietabel, dus er kunnen meer dan alleen .tekst, .data, en .bss secties zijn. &man.elf.5; De opvolger van COFF, heeft meerdere secties en 32-bit of 64-bit als mogelijke waarden. Één nadeel: ELF was ook ontworpen met de aanname dat er maar één ABI per systeemarchitectuur zou zijn. Deze aanname is eigenlijk redelijk incorrect, zelfs niet in de commerciële SYSV wereld (die op zijn minst drie ABIs heeft: SRV4, Solaris en SCO). &os; probeert om dit probleem heen te werken door een hulpprogramma te leveren voor het brandmerken van een bekend ELF uitvoerbaar bestand met informatie over de ABI waar hij mee kan werken. In &man.brandelf.1; staat meer informatie. &os; komt uit het klassieke kamp en gebruikt het &man.a.out.5; formaat, een technologie die zich bewezen heeft door meerdere generaties van BSD versies heen, tot het begin van de 3.X versies. Alhoewel het al mogelijk was om ELF programma's en kernels te bouwen en te draaien op een &os; systeem , verzette &os; zich eerst tegen de druk om over te schakelen naar ELF als standaard formaat. Waarom? Toen het &linux; kamp hun pijnlijke wissel maakte naar ELF, was dat niet zozeer om van het a.out formaat af te komen, maar meer omdat van het op de inflexibele jump-tabel gebaseerde gedeelde bibliotheekmechanisme af te komen, die het maken van gedeelde bibliotheken erg moeilijk maakte voor bedrijven en ontwikkelaars. Omdat de ELF hulprogramma's een oplossing voor het gedeelde bibliotheek probleem waren en algemeen gezien werden als een stap vooruit, werd de migratie geaccepteerd als noodzakelijk kwaad en werd de wissel uitgevoerd. Het gedeelde bibliotheek mechanisme van &os; is meer gebaseerd op het gedeelde bibliotheek mechanisme van Sun's &sunos; en daardoor erg makkelijk te gebruiken. Waarom zijn er zoveel verschillende formaten? In het duistere donkere verleden was er simpele hardware. Deze simpele hardware ondersteunde een simpel klein systeem. a.out was volledig adequaat voor de taak om binaire bestanden op dat simpele systeem te vertegenwoordigen (een PDP-11). Toen mensen &unix; van deze machine gingen porten, behielden ze het a.out formaat omdat het voldeed voor de vroege ports van &unix; naar architecturen als Motorola 68k, VAXen, enzovoort. Toen besloot een slimme hardware engineer dat als hij de software kon forceren om wat simpele truckjes te doen, hij in staat was om een paar onderdelen van het ontwerp af te schaven, waardoor zijn processorcore sneller kon draaien. Terwijl men probeerde om het met deze nieuwe vorm van hardware te laten werken (vandaag de dag beter bekend als RISC), was a.out te beperkt voor deze hardware. Dus werden er vele formaten ontworpen om betere prestaties te krijgen uit deze hardware dan het simpele formaat a.out kon leveren. Toen werden COFF, ECOFF en een paar andere duistere formaten uitgevonden en werden de limieten verkend, waarna men besloot om zich te richten op ELF. Daarnaast werden programma's groter en bleven schijven (en fysiek geheugen) relatief klein, zodat het concept van een gedeelde bibliotheek werd geboren. Het VM systeem werd ook meer verfijnd. Terwijl al deze verbeteringen bereikt werden door het a.out formaat, werd het nut met elke nieuwe eigenschap verder uitgerekt. Daarnaast wilde men dingen dynamisch laden tijdens het starten of delen weggooien nadat het programma zijn intiële code had gedraaid om te blijven hangen in het hoofdgeheugen en in de wisselbestanden. Talen werden verder verfijnd en men wilde dat code automatisch werd aangeroepen voor main. Er werden veel hacks gedaan in het a.out formaat om alles mogelijk te maken en dit werkte ook enige tijd. Na verloop van tijd was a.out niet meer in staat om alle problemen te adresseren zonder toenemende overhead in code en complexibiliteit. Hoewel ELF veel van deze problemem verhielp, was het moeilijk om te wisselen naar een systeem dat compleet anders werkte. Dus moest ELF wachten totdat het pijnlijker was om a.out te behouden dan het te migreren naar ELF. Met het verstrijken van de tijd, werden de bouwprogramma's die &os; heeft afgeleid van hun bouwprogramma's (vooral de assembler en de loader) ontwikkeld in twee parallel lopende takken. De &os; tree voegde gedeelde bibliotheken toe en heeft wat bugs opgelost. De mensen van GNU die deze programma's hebben geschreven, hebben ze herschreven en simpelere ondersteuning toegevoegd voor het bouwen van cross-compilers, waarbij verschillende formaten zo nodig ingevoegd konden worden, enzovoort. Omdat veel mensen cross-compilers wilden bouwen die gericht waren op &os;, hadden die pech, omdat de oudere broncode van &os; voor as en ld niet opgewassen was tegen deze taak. De nieuwe GNU programmaketen (binutils) ondersteunt cross-compiling, ELF, gedeelde bibliotheken, C++ extensies, enzovoort. Daarnaast leveren veel leverancierds ELF binaire bestanden en is het goed voor &os; om het te draaien. ELF heeft meer expressiemogelijkheden dan a.out en geeft meer uitbreidingsmogelijkheden aan het basissysteem. De ELF hulpprogramma's worden beter onderhouden en geven de mogelijkheid tot ondersteuning voor cross compilatie, wat voor veel mensen belangrijk is. ELF is misschien iets trager dan a.out, maar het meten daarvan kan vrij lastig zijn. Er zijn ook ontelbare verschillen tussen de twee in hoe ze pages opslaan, initiële code verwerken, enzovoort. Geen van allen zijn ze erg belangrijk, maar er zijn verschillen. Na verloop van tijd verdwijnt de ondersteuning voor a.out uit de GENERIC kernel en uiteindelijk ook helemaal uit de kernel als de noodzaak voor a.out gebaseerde programma's voorbij is. Meer informatie Handleidingen handleidingen De meest uitvoerige documentatie van &os; is geschreven in de vorm van handleidingen. Bijna elk programma op het systeem heeft een kleine handleiding die uitlegt wat de basisopties en verschillende argumenten doen. Deze handleidingen bekeken worden met man. Het gebruik van man gaat als volgt: &prompt.user; man commando commando is de naam van het commando waar meer informatie over getoond moet worden. Om bijvoorbeeld meer informatie weer te geven over ls kan het volgende uitgevoerd worden: &prompt.user; man ls De handleidingen zijn opgedeeld in genummerde onderdelen: Gebruikerscommando's. Systeemaanroepen en foutnummernummers. Functies in de C bibliotheken. Apparaatdrivers. Bestandsindelingen. Spelletjes en andere afleidingen. Diverse informatie. Systeemonderhoud en commando's Kernelontwikkelaars. In sommige gevallen kan een bepaald onderwerp vaker voorkomen in een onderdeel van de handleidingen. Er is bijvoorbeeld een gebruikerscommando chmod en een systeemaanroep chmod(). In deze gevallen kan man aangegeven worden welke documentatie weer te geven door het specificeren van het onderdeel: &prompt.user; man 1 chmod Dit geeft de handleiding van het gebruikerscommando chmod weer. Verwijzingen naar een bepaald onderdeel van de handleiding worden traditioneel tussen haakjes geplaatst: &man.chmod.1; verwijst naar het commando chmod en &man.chmod.2; verwijst naar de systeemaanroep. Dit werkt prima als de naam van het commando bekend is en alleen informatie nodig is over het het commando gebruikt kan worden, maar wat als de naam van het commando niet bekend is? Dan kan man gebruikt worden om naar trefwoorden te zoeken in de commandobeschrijvingen door de optie te gebruiken: &prompt.user; man -k mail Met dit commando wordt een overzicht getoond met commando's die het trefwoord mail in hun omschrijving hebben. Dit is gelijk aan het commando apropos. Dus om meer informatie over spannende commando's met een onbekende functie in /usr/bin te krijgen is het volgende commando voldoende: &prompt.user; cd /usr/bin &prompt.user; man -f * Het onderstaande commando resulteert in hetzelfde: &prompt.user; cd /usr/bin &prompt.user; whatis * Gnu infobestanden Free Software Foundation &os; heeft veel applicaties en hulpmiddelen die gemaakt zijn door de Free Software Foundation (FSF). Als extraatje voor de documentatie hebben deze programma's uitgebreidere html bestanden die infobestanden heten, die uitgelezen kunnen worden met info of, als emacs is geïnstalleerd, de infomodus van emacs. &man.info.1; wordt als volgt gebruikt: &prompt.user; info h geeft een korte beschrijving en ? toont een een kort commando–overzicht.
diff --git a/nl_NL.ISO8859-1/books/handbook/book.sgml b/nl_NL.ISO8859-1/books/handbook/book.sgml index 7b972e0c5a..8cf6024559 100644 --- a/nl_NL.ISO8859-1/books/handbook/book.sgml +++ b/nl_NL.ISO8859-1/books/handbook/book.sgml @@ -1,342 +1,342 @@ %books.ent; - %txtfiles; - - %chapters; + +%chapters; + +%txtfiles; + %pgpkeys; ]> - &os; Handboek + &os; handboek The &os; Dutch Documentation Project Juni 2004 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 The &os; Dutch Documentation Project &bookinfo.legalnotice; &tm-attrib.freebsd; &tm-attrib.3com; &tm-attrib.3ware; &tm-attrib.arm; &tm-attrib.adaptec; &tm-attrib.adobe; &tm-attrib.apple; &tm-attrib.corel; &tm-attrib.creative; &tm-attrib.cvsup; &tm-attrib.heidelberger; &tm-attrib.ibm; &tm-attrib.ieee; &tm-attrib.intel; &tm-attrib.intuit; &tm-attrib.linux; &tm-attrib.lsilogic; &tm-attrib.m-systems; &tm-attrib.macromedia; &tm-attrib.microsoft; &tm-attrib.netscape; &tm-attrib.nexthop; &tm-attrib.opengroup; &tm-attrib.oracle; &tm-attrib.powerquest; &tm-attrib.realnetworks; &tm-attrib.redhat; &tm-attrib.sap; &tm-attrib.sun; &tm-attrib.symantec; &tm-attrib.themathworks; &tm-attrib.thomson; &tm-attrib.usrobotics; &tm-attrib.vmware; &tm-attrib.waterloomaple; &tm-attrib.wolframresearch; &tm-attrib.xfree86; &tm-attrib.xiph; &tm-attrib.general; Welkom bij &os;! Dit handboek behandelt de installatie en het dagelijks gebruik van - &os; &rel2.current;-RELEASE en - &os; &rel.current;-RELEASE. Aan deze + &os; &rel2.current;-RELEASE en + &os; &rel.current;-RELEASE. Aan deze handleiding wordt nog gewerkt, en is het resultaat van het werk van veel mensen. Veel hoofdstukken of paragrafen bestaan nog niet en wat bestaat dient soms nog bijgewerkt te worden. Als de lezer mee wil helpen aan dit project kan een mail gestuurd worden naar de &a.doc;. De meest recente versie van dit document is te vinden op de &os; website. Het kan ook gedownload worden in veel verschillende formaten en compressiewijzen van de &os; FTP server of een van de vele mirror sites. Een gedrukt exemplaar van het handboek is te koop bij de &os; Mall - (Engels). Het handboek kan ook &os; Mall (Engels). + Het handboek kan ook doorzocht - worden.. + worden. &chap.preface; Beginnen Dit deel van het &os; handboek is voor gebruikers en beheerders die net beginnen met &os;. Deze hoofdstukken: Geven een inleiding in &os;; Lichten het installatieproces toe; Bespreken de &unix; basisbegrippen en grondslag; Tonen hoe de vele aanvullende applicaties voor &os; geïnstalleerd kunnen worden; Introduceren X, het venstersysteem van &unix; en gaan uitvoerig in op hoe een bureaubladomgeving wordt ingesteld die een gebruiker helpt productiever te zijn. Er is geprobeerd het aantal vooruitwijzingen tot een minimum te beperken zodat het handboek van begin tot einde gelezen kan worden zonder bladeren. - Algemene Taken + Algemene taken Na de inleiding gaat dit deel van het &os; handboek over een aantal vaak gebruikte mogelijkheden van &os;. De volgende hoofdstukken: Geven een inleiding in populaire en handige desktop toepassingen: browsers, productieviteitsgereedschappen, documentviewers, etc; Geven een inleiding in een aantal multimediatoepassingen die in &os; beschikbaar zijn; Geven uitleg over het proces waarmee een aangepaste - kernel voor &os; kan worden gemaakt om extra functionaliteit - aan een systeen toe te voegen; + kernel voor &os; kan worden gemaakt om extra + functionaliteit aan een systeen toe te voegen; Beschrijven gedetailleerd het afdruksysteem, zowel voor met een desktop verbonden als met het netwerk verbinden printers; - Beschrijven hoe applicaties voor Linux op &os; kunnen + Beschrijven hoe applicaties voor &linux; op &os; kunnen draaien. - In een aantal van de hoofdstukken wordt voorkennis aangeraden. Dit staat vermeld in de inleiding van ieder hoofdstuk. - Systeembeheer De verdere hoofdstukken van het &os; handboek beslaan alle aspecten van het &os; systeembeheer. Ieder hoofdstuk begint met een omschrijving van wat de leerstof in een hoofdstuk is en wat de verwachte voorkennis is. De hoofdstukken zijn ook ontworpen om gelezen te worden als de specifieke informatie nodig is. Ze hoeven niet in een bepaalde volgorde gelezen te worden en ze hoeven ook niet gelezen te zijn voordat een gebruiker met &os; aan de slag kan. + Netwerkcommunicatie Als het om servers gaat die hoge prestaties moeten leveren, wordt wereldwijd vaak &os; toegepast. De hoofdstukken in dit deel behandelen: Seriëe communicatie; PPP en PPP over Ethernet; E-mail; Netwerkdiensten; - Firewalls. + Firewalls; - Overig Gevorderd Netwerken. + Overig gevorderd netwerken. Deze hoofdstukken zijn geschreven om gelezen te worden als de informatie nodig is. Ze hoeven niet allemaal in een bepaalde volgorde gelezen te worden. Ze hoeven ook niet allemaal gelezen te worden om &os; in een netwerkomgeving in te zetten. - Appendix + &chap.colophon; diff --git a/nl_NL.ISO8859-1/books/handbook/chapters.ent b/nl_NL.ISO8859-1/books/handbook/chapters.ent index cc3fc8d4a8..bd892d73b5 100644 --- a/nl_NL.ISO8859-1/books/handbook/chapters.ent +++ b/nl_NL.ISO8859-1/books/handbook/chapters.ent @@ -1,59 +1,60 @@ + diff --git a/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml index 935317db93..9ac6a2dc4b 100644 --- a/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml @@ -1,3332 +1,3331 @@ Chern Lee Geschreven door Mike Smith Naar een tutorial van Matt Dillon Tevens gebaseerd op tuning(7) door Danny Pansters Vertaald door Instellingen en optimalisatie Overzicht systeeminstellingen systeemoptimalisatie Systeeminstellingen zijn een belangrijk aspect van &os;. Correcte instellingen helpen moeilijkheden bij toekomstige upgrades te voorkomen. In dit hoofdstuk wordt het instellen van &os; beschreven, alsmede een aantal prestatiebevorderende maatregelen waarmee een &os; systeem geoptimaliseerd kan worden. Na het lezen van dit hoofdstuk weet de lezer: Hoe efficiënt om te gaan met bestandssystemen en wisselpartities; De grondbeginselen van het rc.conf instellingensysteem en van het opstarten van toepassingen (diensten) met /usr/local/etc/rc.d; Hoe een netwerkkaart ingesteld en getest wordt; Hoe virtuele hosts op netwerkapparatuur ingesteld worden; Hoe de instellingenbestanden in /etc gebruikt worden; Hoe &os; geoptimaliseerd kan worden met sysctl variabelen; Hoe schijfprestaties te verbeteren en hoe kernelbeperkingen gewijzigd kunnen worden. Veronderstelde voorkennis: De &unix; en &os; grondbeginselen () begrijpen; Bekend zijn met de grondbeginselen van kernelinstellingen en compilatie (). Initiële instellingen Partitioneren partitioneren /etc /var /usr Basispartities Bij het aanmaken van bestandssystemen met &man.disklabel.8; of &man.sysinstall.8; is het van belang dat op een harde schijf de data-overdracht het snelst is aan de buitenste sporen en het langzaamst aan de binnenste. Kleinere en veelgebruikte bestandssystemen kunnen daarom het beste aan het begin van de schijf geplaatst worden, terwijl grotere partities als /usr meer naar het einde van de schijf geplaatst kunnen worden. Het is een goed idee om partities aan te maken in deze of gelijksoortige volgorde: root, swap, /var, /usr. De grootte van /var hangt af van de wijze waarop de machine gebruikt gaat worden. /var wordt gebruikt voor onder meer mailboxen, logbestanden en printerdata en -wachtrijen. Mailboxen en logbestanden kunnen onverwacht groot worden, afhankelijk van het aantal systeemgebruikers en de bewaarduur van logbestanden. Meestal is minder dan een gigabyte voldoende. /var/tmp moet wel groot genoeg moet zijn om packages te kunnen bevatten. De partitie /usr bevat veel van de benodigde systeembestanden. Die bevat tevens de &man.ports.7;collectie (aanbevolen) en de broncode (optioneel). Beide zijn optioneel tijdens de installatie. Voor deze partitie wordt tenminste 2 gigabyte aanbevolen. Het is verstandig rekening te houden met de vereiste schijfruimte bij het kiezen van partitiegroottes. Als in een partitie onvoldoende vrije schijfruimte is, terwijl een andere vrijwel niet gebruikt wordt, is dat een vervelend en niet optimaal oplosbaar probleem. &man.sysinstall.8;'s Auto-defaults partitiekeuze kan in de ervaring van sommige gebruikers mogelijk te kleine /var en / partities opleveren. Partitioneren moet verstandig en niet te zuinig gebeuren. Wisselpartities (swap) swap grootte wisselpartitie wisselpartitiegrootte De vuistregel is dat het wisselbestand ongeveer het dubbele van de grootte van het systeemgeheugen (RAM) moet zijn. Als de machine bijvoorbeeld 128 megabytes geheugen heeft, kan het beste een wisselbestand van (tenminste) 256 megabytes gebruikt worden. Minder dan 256 megabytes swap is in dit geval af te raden. Systemen met weinig geheugen kunnen overigens beter functioneren met meer swap. Ook is het verstandig rekening te houden met eventuele geheugenuitbreiding in de toekomst. Bovendien zijn de VM paging algoritmen van de kernel zo afgestemd dat ze het beste presteren bij een wisselbestand van tenminste tweemaal de grootte van het geheugen. Een te kleine swap kan dus inefficiënties in de VM code tot gevolg hebben en mogelijk problemen veroorzaken als het systeemgeheugen uitgebreid wordt. Op grotere systemen met meerdere SCSI schijven (of meerdere IDE schijven op verschillende controllers) is het aan te raden om op elke schijf een wisselpartitie in te stellen (dit kan tot en met vier schijven), elk met ongeveer dezelfde grootte. De kernel kan met arbitraire groottes werken, maar interne datastructuren schalen tot viermaal de grootste swappartitie. De kernel kan de beschikbare ruimte voor het wisselbestand het meest optimaal indelen als de partities ongeveer even groot zijn. Een grote swap is prima, ook als ze zelden gebruikt wordt. Zo kan het gemakkelijker zijn om een (uit de hand gelopen) proces dat het systeem grotendeels bezet houdt te beëindigen, voordat er opnieuw opgestart moet worden. Waarom partitioneren? Waarom niet één enkele grote partitie gebruiken? Er zijn verscheidene redenen waarom dit niet zo'n goed idee is. De verschillende partities hebben hun eigen karakteristieke operationele gedrag en vereisten. Door ze te scheiden zijn er betere mogelijkheden om het systeem te optimaliseren. Vanaf de / en /usr partities wordt bijvoorbeeld vooral gelezen en er wordt weinig naar geschreven, terwijl er in /var en /var/tmp zowel veel gelezen als geschreven wordt. Door een systeem goed te partitioneren wordt vermeden dat fragmentatie die optreedt in de kleinere partities met veel schrijfactiviteit doorsijpelt naar partities die vooral lees-intensief zijn. Door schrijf-intensieve partities aan het begin van de schijf te plaatsen, zijn de prestaties wat betreft invoer/uitvoer het beste is daar waar het het meest nodig is. Ofschoon er natuurlijk ook de best mogelijke in/uit prestaties wenselijk zijn in de grotere partities, weegt het plaatsen van deze bestandssystemen aan het begin van de schijf niet tegen de voordelen van het plaatsen van /var aan het begin van de schijf (na root en swap) voor de totale snelheid van het systeem. Tenslotte zijn er veiligheidsoverwegingen. Een compacte en nette rootpartitie die vrijwel alleen-lezen is, heeft een betere kans om een nare crash te overleven. Hoofdinstellingen rc bestanden rc.conf De voornaamste lokatie voor systeeminstellingen is /etc/rc.conf. Dit bestand bevat een scala aan instellingen, die gebruikt wordt om het systeem in te stellen bij het opstarten. De naam impliceert dit al. Het is informatie voor de rc* bestanden (rc staat voor resource configuration of broninstellingen). De systeembeheerder wordt geacht regels toe te voegen aan rc.conf om de standaardinstellingen uit /etc/defaults/rc.conf aan te passen. Het standaardbestand moet niet letterlijk gekopiëerd worden naar /etc. Het bevat standaardwaardes en is niet bedoeld als voorbeeld. Alle wijzigingen die specifiek zijn voor een systeem horen in /etc/rc.conf thuis. In een clusterscenario is het nuttig om systeemspecifieke instellingen te scheiden van algemene instellingen die voor het hele cluster gelden. Hiervoor kunnen een aantal strategieën worden gebruikt. De aanbevolen benadering is om gedeelde instellingen in een ander bestand te plaatsen, zoals /etc/rc.conf.site en dit invoegen in /etc/rc.conf, wat verder alleen systeemspecifieke informatie bevat. Aangezien rc.conf gelezen wordt door &man.sh.1; is dit eenvoudig te bereiken: rc.conf: . /etc/rc.conf.site hostname="node15.example.com" network_interfaces="fxp0 lo0" ifconfig_fxp0="inet 10.1.1.1" rc.conf.site: defaultrouter="10.1.1.254" saver="daemon" blanktime="100" rc.conf.site kan dan naar elk systeem gedistribueerd worden met rsync of een gelijksoortig programma, terwijl rc.conf uniek blijft. Het actualiseren van het systeem met &man.sysinstall.8; of make world overschrijft rc.conf niet, zodat de bestaande systeeminstellingen niet verloren gaan. Toepassingen instellen Geïnstalleerde toepassingen hebben meestal hun eigen instellingenbestanden, met hun eigen syntaxis, etc. Het is van belang deze bestanden apart te houden van het basissysteem, zodat ze makkelijk gelokaliseerd kunnen worden en beheerd kunnen worden met de hulpmiddelen voor pakketbeheer. /usr/local/etc Deze bestanden worden meestal geïnstalleerd in /usr/local/etc. Als een toepassing een uitgebreide set bestanden voor instellingen heeft, wordt er een submap voor aangemaakt. Bij de installatie van een port of package, worden normaliter ook voorbeeldbestanden met instellingen geïnstalleerd. Deze zijn doorgaans te herkennen aan een toevoegsel .default. Als er geen bestaande instellingenbestanden voor de toepassing zijn, kunnen ze gemaakt worden door de .default bestanden te kopiëren. Een voorbeeld is de map /usr/local/etc/apache: -rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf -rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default -rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf -rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default -rw-r--r-- 1 root wheel 12205 May 20 1998 magic -rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default -rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types -rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default -rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf -rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default Aan de grootte van de bestanden is te zien dat alleen srm.conf gewijzigd is. Als later de Apache port wordt vernieuwd, wordt dit bestand niet overschreven. Tom Rhodes Bijgedragen door Diensten starten diensten Veel gebruikers kiezen ervoor om software van derden te installeren op &os; vanuit de Portscollectie. In veel gevallen is het noodzakelijk om de software dusdanig in te stellen dat het opstart tijdens het booten. Diensten zoals mail/postfix of www/apache13 zijn slechts twee voorbeelden van softwarepakketten die gestart kunnen worden tijdens de systeemstart. In deze paragraaf wordt toegelicht hoe software van derde partijen kan worden gestart. In &os; worden de meeste diensten, zoals &man.cron.8;, door de opstartscripts van het systeem gestart. Deze scripts kunnen verschillen tussen &os; en leverancierversies, echter het meest belangrijke aspect om in gedachten te houden is dat hun opstartinstellingen verwerkt kunnen worden door simpele opstartscripts. Voor de komst van rcNG zetten applicaties simpelweg een opstartscript in de map /usr/local/etc/rc.d dat dan uitgelezen werd door de opstartscripts van het systeem. Deze scripts werden dan uitgevoerd tijdens de laatste stappen van een systeemstart. Terwijl veel individuen bezig waren om de oude stijl van instellen naar de nieuwe stijl over te zetten, bleef sommige software nog steeds een script nodig hebben in de genoemde map. De subtiele verschillen in de scripts hangen af van het wel of niet gebruiken van rcNG. Vóór &os; 5.1 werden scripts oude stijl gebruikt en in bijna alle gevallen voldoet een script nieuwe stijl. Elk script moet een .sh toegevoegd hebben aan het einde en elk script moet opstartbaar zijn door het systeem. Het laatstgenoemde kan bereikt worden met chmod en door het zetten van de rechten 755. Er zouden ook minimaal de opties start en stop moeten zijn voor de applicatie. Het simpelste opstartscript ziet er waarschijnlijk als volgt uit: #!/bin/sh echo -n ' utility' case "$1" in start) /usr/local/bin/utility ;; stop) kill -9 `cat /var/run/utility.pid` ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0 Dit script levert de opties stop en start voor de applicatie met de naam utility. Dit kan handmatig gestart worden met: &prompt.root; /usr/local/etc/rc.d/utility.sh start Hoewel niet alle software van derden een regel nodig heeft in /etc/rc.conf, wordt er bijna elke dag een wel een port veranderd om deze instellingen te ondersteunen. De meldingen tijdens de installatie van de port bevatten vaak meer informatie. Sommige software van derden levert opstartscripts die de applicatie kunnen laten werken met rcNG. Dit wordt in de volgende paragraaf behandeld. Uitgebreide applicatieinstellingen Nu &os; rcNG heeft, zijn de instellingen van applicaties die mee moeten opstarten verbeterd. Er is meer diepgang in gekomen. Door gebruik te maken van de sleutelwoorden die in de paragraaf rcNG behandeld worden, kunnen applicaties nu starten na andere diensten. DNS kan bijvoorbeeld extra opties meekrijgen van /etc/rc.conf in plaats van hard ingestelde opties in het opstartscript. Een basisscript ziet er ongeveer als volgt uit: #!/bin/sh # # PROVIDE: utility # REQUIRE: DAEMON # BEFORE: LOGIN # KEYWORD: FreeBSD shutdown # # WIJZIG DEZE WAARDEN NIET HIER # MAAR IN HET BESTAND /etc/rc.conf # utility_enable=${utility_enable-"NO"} utility_flags=${utility_flags-""} utility_pidfile=${utility_pidfile-"/var/run/utility.pid"} . /etc/rc.subr name="utility" rcvar=`set_rcvar` command="/usr/local/sbin/utility" load_rc_config $name pidfile="${utility_pidfile}" start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${utility_flags} ${command_args}" run_rc_command "$1" Dit script zorgt ervoor dat utility wordt gestart voor de dienst login, maar na de dienst daemon. Het biedt ook de mogelijkheid voor het instellingen en volgen van het PID of het process ID bestand. Voor deze applicatie kan dan de volgende regel in /etc/rc.conf geplaatst worden: utility_enable="YES" Deze nieuwe methode maakt het volgende mogelijk: makkelijker commandoregelopties manipuleren, importeren van standaardfuncties uit /etc/rc.subr, compatibiliteit met het &man.rcorder.8; programma en het eenvoudiger instellingen via /etc/rc.conf. In essentie kan dit script zelfs geplaatst worden in de map /etc/rc.d. Dat kan in potentie wel het &man.mergemaster.8; programma van de wijs brengen als dat gebruikt wordt voor het bijwerken van software. Diensten met diensten starten Andere diensten, zoals POP3 server daemons, IMAP, enzovoort, kunnen gestart worden door gebruik te maken van &man.inetd.8;. Daaraan is voorafgegaan dat die dienst uit de Portscollectie is geïstalleerd en dat er een regel met instellingen is toegevoegd aan /etc/inetd.conf of één van de bestaande niet actieve regels is geactiveerd. Werken met inetd en zijn instellingen wordt uitgebreid toegelicht in de paragraaf over inetd. In sommige gevallen is het handiger om &man.cron.8; te gebruiken om diensten te starten. Deze aanpak heeft een aantal voordelen omdat cron start als de eigenaar van crontab. Dit stelt reguliere gebruikers in staat om sommige applicaties te starten en te onderhouden. cron levert een unieke optie: plaats van een tijdsspecificatie kan @reboot gebruikt worden. Dit zorgt ervoor dat de taak gestart wordt als &man.cron.8; gestart wordt, meestal tijdens een systeemstart. Tom Rhodes Geschreven door <command>cron</command> instellen cron instellen Een zeer nuttig hulpprogramma in &os; is &man.cron.8;. De cron daemon draait op de achtergrond en controleert voortdurend /etc/crontab. Ook controleert cron de map /var/cron/tabs, op zoek naar nieuwe crontab bestanden. Deze crontab bestanden bevatten informatie over specifieke taken die cron moet verrichten op gezette tijden. cron gebruikt twee verschillende soorten instellingenbestanden: de systeemcrontab en gebruikerscrontabs. Het enige verschil tussen deze twee formaten is het zesde veld. In de systeemcrontab is dit de gebruikersnaam die het commando uitvoert. Hierdoor kunnen met de systeemcrontab commando's als iedere gebruiker uitgevoerd worden. In een gebruikerscrontab is het zesde veld het uit te voeren commando en alle commando's worden uitgevoerd als de gebruiker die de crontab heeft aangemaakt. Dit is een belangrijke veiligheidsmaatregel. Gebruikerscrontabs geven individuele gebruikers de mogelijkheid om bepaalde terugkerende taken automatisch te laten uitvoeren zonder dat root rechten noodig zijn. Commando's in de crontab van een gebruiker worden uitgevoerd met de rechten van de eigenaar. root kan ook een gebruikerscrontab aanleggen. Dit is niet dezelfde als /etc/crontab (de systeemcrontab). Omdat er al een systeemcrontab is, is het doorgaans niet nodig om een gebruikerscrontab voor root te maken. /etc/crontab (de systeemcrontab) ziet er uit als volgt: # /etc/crontab - root's crontab for &os; # # $&os;: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $ # # SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # # #minuut uur mdag maand wdag wie commando # # */5 * * * * root /usr/libexec/atrun Zoals in de meeste &os; instellingenbestanden gaat het karakter # vooraf aan commentaar. Commentaar wordt gebruikt als uitleg en geheugensteun. Commentaar dient niet vermengd te worden met commando's, anders wordt het commentaar opgevat als deel van het commando. Blanco regels worden genegeerd. Eerst worden omgevingsvariabelen gedefiniëerd. Hoervoor wordt het is-gelijk karakter (=) gebruikt. In het bovenstaande voorbeeld wordt het gebruikt voor de variabelen SHELL, PATH en HOME. Als de regel SHELL ontbreekt, gebruikt cron standaard sh als shell. Voor de omgevingsvariabele PATH bestaat geen standaardwaarde. Als PATH ontbreekt moeten absolute paden gebruikt worden. Als HOME ontbreekt, gebruikt cron de thuismap van de de gebruiker die cron aanroept. In deze commentaarregel staan de zeven velden van een crontabdefinitie. Dit zijn minuut, uur, mdag, maand, wdag, wie en commando. De betekenissen liggen voor de hand: minute is het aantal minuten van het tijdstip waarop het commando moet worden uitgevoerd; hour geeft het uur aan; mdag staat voor de dag van de maand; maand staat voor het maandnummer en wdag geeft de dag van de week aan. Het veld wie is bijzonder en bestaat alleen in /etc/crontab. Het geeft aan als welke gebruiker het commando uitgevoerd moet worden. Een gebruiker die zijn eigen crontab installeert, heeft deze optie niet. Het veld command bevat het uit te voeren commando. In deze regel worden aan de hierboven besproken opties waarden toegekend. Er wordt gebruik gemaakt van */5 en * karakters. Deze betekenen eerst-laatst en kunnen gezien worden als telkens. In deze regel staat dus dat het commando atrun elke vijf minuten moet worden uitgevoerd door root, ongeacht welke dag of maand het is. Meer informatie over atrun staat in &man.atrun.8;. Commando's kunnen een willekeurig aantal opties of argumenten meekrijgen. Als commando's echter meerdere regels nodig hebben moeten deze regels afgebroken worden met een backslash \ karakter, om aan te geven dat ze op de volgende regel vervolgd worden. Dit is de basisopzet voor elk crontab bestand. De enige uitzondering is de aanwezigheid van veld zes, waar de gebruikersnaam wordt aangegeven. Dit veld bestaat alleen in het systeembestand /etc/crontab. Voor crontabbestanden van individuele gebruikers moet dit veld worden weggelaten. Een crontab installeren De onderstaande procedure moet niet gebruikt worden om de systeemcrontab te wijzigen of te installeren. Er kan een gewone editor gebruikt worden. cron ziet dat het bestand veranderd is en begint direct met het gebruiken van de nieuwe versie. Deze FAQ vraag geeft verdere uitleg. Om een nieuwe crontab te installeren moet eerst een bestand in het juiste formaat gemaakt worden en daarna moet het geiuml;nstalleerd worden met crontab commando: &prompt.root; crontab crontabbestand In dit voorbeeld is crontabbestand de naam van een eerder gemaakt crontabbestand. Er bestaat ook een optie om een lijst van geïnstalleerde crontab bestanden op te vragen, namelijk de optie van crontab. Gebruikers die hun eigen crontabbestand willen schrijven zonder het gebruik van een sjabloon, kunnen gebruik maken van crontab -e. Dit opent de EDITOR met een leeg bestand. Als het bestand wordt opgeslagen en de editor wordt afgesloten, wordt het bestand automatisch als crontab geïnstalleerd. Een gebruikerscrontab kan verwijderd worden door de met crontab de optie te gebruiken. Tom Rhodes Geschreven door - Gebruik van rc met &os; 5.X + Gebruik van rc met &os; 5.X en later rcNG &os; gebruikt inmiddels het NetBSD rc.d systeem bij het opstarten van het systeem. Veel van de bestanden in /etc/rc.d zijn scripts voor basisdiensten die werken met de opties , en , analoog aan hoe diensten die via een port of package zijn geïnstalleerd gestart worden met de scripts in /usr/local/etc/rc.d. &man.sshd.8; kan bijvoorbeeld als volgt herstart worden: &prompt.root; /etc/rc.d/sshd restart Deze procedure is vrijwel gelijk voor andere diensten. Uiteraard worden diensten meestal automatisch gestart zoals in &man.rc.conf.5; staat. Om de Network Address Translation daemon bij het opstarten te laten starten is de volgende regel in /etc/rc.conf bijvoorbeeld voldoende: natd_enable="YES" Als er reeds een natd_enable="NO" regel is, kan NO gewoon in YES veranderd worden. De rc scripts starten, voor zover nodig, automatisch andere afhankelijke diensten. Omdat het rc.d systeem in eerste instantie bedoeld is om diensten te starten en stoppen bij het opstarten en afsluiten van het systeem, werken de standaardopties , en alleen als de juiste variabelen in /etc/rc.conf zijn ingesteld. Het commando sshd restart alleen dan als sshd_enable de waarde YES heeft in /etc/rc.conf. Als er een service gestart, gestopt of herstart moet worden, ongeacht de definities in /etc/rc.conf, moet het commando voorafgegaan worden door force. Dus om sshd te herstarten ongeacht /etc/rc.conf setting, voldoet het volgende commando: &prompt.root; /etc/rc.d/sshd forcerestart Het is eenvoudig te controleren of een dienst is ingeschakeld is in /etc/rc.conf door het bijpassende rc.d script uit te voeren met de optie . Voor sshd: &prompt.root; /etc/rc.d/sshd rcvar # sshd $sshd_enable=YES De tweede regel (# sshd) is de uitvoer van sshd, geen root console. De optie wordt gebruikt om vast te stellen of een dienst gestart is. Om bijvoorbeeld te controleren of sshd gestart is: &prompt.root; /etc/rc.d/sshd status sshd is running as pid 433. Het is ook mogelijk om een dienst te herladen met de optie . Dan wordt er getracht een signaal te sturen aan een individuele dienst, waarbij de dienst de bestanden met instellingen opnieuw in moet lezen. Meestal komt dit neer op het verzenden van het signaal SIGHUP signaal. - De structuur van rcNG wordt niet - alleen gebruikt voor netwerkdiensten, maar ook voor het merendeel - van de systeemstart. In dit kader is bijvoorbeeld het bestand + Het rc.d-systeem wordt niet alleen + gebruikt voor netwerkdiensten, maar ook voor het merendeel van de + systeemstart. In dit kader is bijvoorbeeld het bestand bgfsck interessant. Als dit script wordt uitgevoerd, wordt de volgende boodschap getoond: Starting background file system checks in 60 seconds. Dit script wordt dus gebruikt voor bestandssysteemcontrole in de achtergrond, hetgeen alleen tijdens de systeemstart gebeurt. Veel systeemdiensten zijn afhankelijk van andere diensten om correct te kunnen functioneren. Zo starten NIS en andere RPC-gebaseerde diensten niet als de rpcbind (portmapper) dienst nog niet draait. Om dit te stroomlijnen wordt informatie over afhankelijkheden en andere meta-data ingevoegd in het commentaar bovenaan het opstartscript. Deze commentaarregels worden vervolgens tijdens de systeemstart met &man.rcorder.8; verwerkt om zo vast te stellen in welke volgorde de systeemdiensten gestart moeten worden. De volgende sleutelwoorden kunnen worden opgenomen aan het begin van elk opstartscript: PROVIDE: geeft aan in welke diensten dit bestand voorziet. REQUIRE: geeft aan welke andere diensten vereist zijn voor deze dienst. Dit script wordt uitgevoerd na de aangegeven diensten. BEFORE: geeft diensten aan die afhankelijk zijn van deze dienst. Dit bestand wordt uitgevoerd vóór de aangegeven diensten. KEYWORD: &os; of NetBSD. Dit wordt gebruikt voor speciale eigenschappen van één van de *BSD's. Met deze methode kan een systeembeheerder gemakkelijk systeemdiensten besturen, zonder gedoe met runlevels zoals bij sommige andere &unix; systemen. - Meer informatie over het &os; 5.X - rc.d staat in &man.rc.8; en - &man.rc.subr.8;. + Meer informatie over het rc.d-systeem + staat in &man.rc.8; en &man.rc.subr.8;. Marc Fonvieille Geschreven door Netwerkkaarten instellen netwerkkaarten instellen Het is tegenwoordig nauwelijks voorstelbaar dat een computer geen netwerkverbinding heeft. Het toevoegen en instellen van een netwerkkaart is een gebruikelijke taak voor een &os; beheerder. Het juiste stuurprogramma vinden netwerkkaarten stuurprogramma Voor het zoeken begint, moet duidelijk zijn om welke kaart het gaat, welke chip erop zit en of het een PCI of ISA kaart is. &os; ondersteunt vele kaarten. Op de Hardware Compatibiliteitslijst voor de betreffende release om staan de kaarten die ondersteund worden. Als duidelijk is dat een kaart ondersteund wordt, moet vastgesteld worden wat het geschikte stuurprogramma is. In het bestand /usr/src/sys/conf/NOTES (/usr/src/sys/arch/conf/LINT voor &os; 4.X) staat een lijst van stuurprogramma's voor netwerkinterfaces met wat informatie over de ondersteunde chipsets of kaarten. In geval van twijfel biedt de hulppagina voor het stuurprogramma (man) vaak uitkomst. In het algemeen bevat deze meer informatie over de ondersteunde hardware en mogelijke problemen die kunnen optreden. NOTES bestaat niet op &os; 4.X. In plaats daarvan kan in het bestand LINT informatie gevonden worden over een groot aantal netwerkkaarten. In staan meer details over NOTES versus LINT. Als een veelgebruikte kaart gebruikt wordt, hoeft meestal niet ver gezocht te worden. Stuurprogramma's voor veelvoorkomende netwerkinterfaces al aanwezig in de algemene GENERIC kernel. In dat geval wordt zo'n al gevonden worden bij het opstarten, bijvoorbeeld met het volgende bericht: dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38 000ff irq 15 at device 11.0 on pci0 dc0: Ethernet address: 00:a0:cc:da:da:da miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30 000ff irq 11 at device 12.0 on pci0 dc1: Ethernet address: 00:a0:cc:da:da:db miibus1: <MII bus> on dc1 ukphy1: <Generic IEEE 802.3u media interface> on miibus1 ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto In dit voorbeeld zitten er twee kaarten in het systeem die het stuurprogramma &man.dc.4; gebruiken. Als het stuurprogramma voor een NIC geen onderdeel is van de GENERIC kernel, dan dient het juiste stuurprogramma voor die NIC geladen te worden. Dit kan op twee manieren: De meest eenvoudige manier is het laden van een kernelmodule voor een netwerkkaart met &man.kldload.8;. Niet alle NIC stuurprogramma's zijn als module beschikbaar. Zo zijn er bijvoorbeeld geen modules beschikbaar voor ISA kaarten. Ondersteuning voor een kaart kan ook in de kernel gecompileerd worden. In /usr/src/sys/conf/NOTES, /usr/src/sys/arch/conf/NOTES en de hulppagina van het stuurprogramma is na te lezen wat er in het kernelinstellingenbestand moet staan. In staat meer informatie over het compileren van een eigen kernel. Als een netwerkkaart al bij het opstarten wordt herkend door de GENERIC kernel, is er geen reden om een andere kernel te bouwen. De netwerkkaart instellen netwerkkaarten instellen Nadat een geschikt stuurprogramma geladen is, moet de kaart nog ingestelt worden. Mogelijk is dit al gebeurd door sysinstall tijdens de installatie. Om de instellen van de netwerkkaarten weer te geven zien: &prompt.user; ifconfig dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 ether 00:a0:cc:da:da:da media: Ethernet autoselect (100baseTX <full-duplex>) status: active dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 ether 00:a0:cc:da:da:db media: Ethernet 10baseT/UTP status: no carrier lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet 127.0.0.1 netmask 0xff000000 tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 Op oudere versies van of &os; moet volgens &man.ifconfig.8; misschien de optie gebruikt worden. In &man.ifconfig.8;zijn meer details over de syntaxis te lezen. In dit voorbeeld is de uitvoer over IPv6 (inet6 etc.) achterwege gelaten. In dit voorbeeld werden de volgende apparaten weergegeven: dc0: de eerste Ethernet interface; dc1: de tweede Ethernet interface; lp0: de parallelle poort interface; lo0: het loopback apparaat; tun0: het tunnelapparaat gebruikt door ppp. &os; gebruikt de naam van het stuurprogramma gevolgd door een nummer voor de volgorde waarop de kaarten gedetecteerd zijn bij het opstarten. sis2 is de derde netwerkkaart in het systeem die het stuurprogramma &man.sis.4; gebruikt. In het vorige voorbeeld is het apparaat dc0 volledig operationeel. Dit blijkt uit de volgende indicatoren: UP betekent dat de kaart ingesteld is en klaar voor gebruik; De kaart heeft een Internet (inet) adres (in dit geval 192.168.1.3); Het heeft een geldig subnetmasker (netmask; 0xffffff00 is hetzelfde als 255.255.255.0); Het heeft een geldig broadcastadres (in dit geval, 192.168.1.255); Het MAC adres van de kaart (ether) is 00:a0:cc:da:da:da; De fysieke mediaselectie staat in autoselectiemodus (media: Ethernet autoselect (100baseTX <full-duplex>)). dc1 is ingesteld om met 10baseT/UTP media te werken. Meet informatie over de mogelijke media types staan in de hulppagina's voor het betreffende stuurprogramma. De status van de link (status) is active, dat wil zeggen dat de drager is gevonden. Bij dc1staat echter status: no carrier. Dit is normaal als er geen ethernet kabel in de kaart gestoken is. Als de uitvoer &man.ifconfig.8; uitvoer er ongeveer zoals hieronder uitziet, dan is de netwerkkaart nog niet ingesteld: dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 ether 00:a0:cc:da:da:da Om de kaart te instellen zijn root rechten nodig. De netwerkkaart van vanaf de console worden ingesteld met &man.ifconfig.8;, maar dan moet dat na elke herstart herhaald worden. Daarom wordt het vrijwel altijd in /etc/rc.conf gezet. In /etc/rc.conf moet voor elke netwerkkaart in een systeem een regel toegevoegd worden. In het huidige voorbeeld zou dat het volgende kunnen zijn: ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0" ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP" dc0, dc1, enzovoort, moeten vervangen worden door de correcte stuurprogramma's voor de netwerkkaarten, zo ook de IP adressen. In de handleiding van het stuurprogramma en van &man.ifconfig.8; staan meer details over de mogelijke opties en in &man.rc.conf.5; staat meer informatie over /etc/rc.conf. Als het netwerk al is ingesteld tijdens het installeren van &os; staan er al enkele regels met betrekking tot de netwerkkaart(en) in /etc/rc.conf. Het is dus handig /etc/rc.conf te controleren voordat er regels toegevoegd worden. Ook /etc/hosts moet worden gewijzigd om de namen en IP adressen van verschillende machines op het lokale netwerk, als ze er nog niet in staan. Meer informatie staat in &man.hosts.5; en /usr/share/examples/etc/hosts. Testen en problemen oplossen Als de veranderingen in /etc/rc.conf zijn gemaakt, moet het systeem opnieuw gestarten worden (of moeten nauwkeurig alle daemons gestart of herstart worden). Veranderingen aan de interface(s) worden dan toegepast en dan kan er controleerd worden of herstarten goed werkt zonder foutmeldingen. Als de kaart werkt, maar de performance is slecht, dan kan het de moeite waard zijn om &man.tuning.7; door te nemen. Incorrecte netwerkinstellingen kunnen ook tot langzame verbindingen leiden. Soms kunnen enkele device timeouts optreden. Met sommige kaarten is dit normaal gedrag. Maar als dit continu gebeurd of storend is, is het verstandig uit te zoeken of er geen sprake is van een hardwareconfict tussen de netwerkkaart en een ander apparaat. Ook dient nogmaals de bekabeling gecontroleer te worden. Misschien zit er niets anders op dan een andere netwerkkaart te gebruiken. Het is ook mogelijk dat er watchdog timeout foutmeldingen optreden. Als eerste moet dan de netwerkkabel fecontroleerd worden. Veel kaarten hebben een PCI slot nodig dat Bus Mastering ondersteunt. Sommige oudere moederborden hebben maar één PCI slot waarmee dit kan (meestal slot 0). In de documentatie van de netwerkkaart en het moederbord is na te gaan of dit het probleem is. No route to host meldingen treden op als het systeem niet in staat is om een pakket naar de eindbestemming te routeren. Dit kan gebeuren als er geen standaardroute aangegeven is of als er een kabel niet verbonden is. De uitvoer van netstat -rn moet gecontroleerd worden en of er een geldige route is naar de bestemming. Mocht dit niet het geval zijn, dan staat er meer informatie in . ping: sendto: Permission denied foutmeldingen worden vaak veroorzaakt door een verkeerd ingestelde firewall. Als de kernel ipfw activeert bij het opstarten zonder dat er firewallregels zijn gedefiniëerd, is het standaardbeleid om alle verkeer te weigeren, zelfs pings! In staat meer informatie. Er kan ook sprake zijn van onvoldoende prestaties doordat de mediaselectie instelling niet optimaal is. In dergelijke gevallen is het mogelijk om de mediaselectie niet als autoselect in te stellen, maar expliciet aan te geven wat de mediaselectie moet zijn, bijvoorbeeld 10baseT/UTP voor twisted pair. Hoewel dit voor de meeste hardware helpt, kan het zijn dat de problemen blijven. Dan moeten nogmaals de netwerkinstellingen gecontroleerd worden en geeft de &man.tuning.7; handleiding wellicht meer informatie. Virtuele hosts virtuele hosts IP aliassen &os; wordt veel gebruikt voor virtuele sitehosting, waarbij één fysieke server er op het netwerk uitziet alsof het meerdere servers zijn. Dit kan bereikt worden door meerdere IP adressen toe te kennen aan dezelfde interface. Een bepaalde netwerkinterface heeft een echt adres en kan daarnaast een willekeurig aantal alias adressen hebben. Normaliter worden dergelijke aliassen toegevoegd door aliasregels toe te voegen aan /etc/rc.conf. Een aliasregel voor de interface fxp0 ziet er zo uit: ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx" De aliasregels moeten beginnen met alias0 en moete elkaar dan opvolgen (bijvoorbeeld _alias1,, _alias2, enzovoort). Het instelproces stopt als er een nummer ontbreekt. Het is belangrijk dat aliassen het juiste netmasker hebben. Dit is eenvoudig: Een bepaalde interface moet altijd één adres hebben dat het netmasker van het netwerk correct representeert. Elk ander adres binnen dit netwerk op deze interface (alias) moet een netmasker van allemaal 1'en (bits) hebben (getoond als 255.255.255.255 of 0xffffffff). Een voorbeeld. Stel de fxp0 interface is verbonden met twee netwerken, het 10.1.1.0 netwerk met masker 255.255.255.0 en het 202.0.75.16 met netmasker 255.255.255.240. Het systeem moet ook de adressen 10.1.1.1 tot en met 10.1.1.5 en 202.0.75.17 tot en met 202.0.75.20 krijgen. Zoals hierboven vermeld, heeft alleen het eerste adres in een netwerkreeks (in dit geval 10.0.1.1 en 202.0.75.17) een geldig netmasker. Alle overige (10.1.1.2 tot en met 10.1.1.5 en 202.0.75.18 tot en met 202.0.75.20) moeten ingesteld worden met het netmasker 255.255.255.255. De volgende regels voor /etc/rc.conf stellen een adapter in voor het bovenstaande scenario: ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" Instellingenbestanden <filename>/etc</filename> layout Instellingengegevens wordt in een aantal mappen bewaard. Daar zijn onder andere: /etc Generieke systeeminstellingenbestanden, specifiek voor het systeem. /etc/defaults De standaardversies van systeeminstellingenbestanden die gebruikt worden als er geen in /etc staat. /etc/mail Extra &man.sendmail.8; instellingenbestanden of instellingenbestanden voor andere MTAs. /etc/ppp Instellingen voor zowel user- als kernel-ppp programma's. /etc/namedb Standaardlocatie voor &man.named.8; gegevens. Normaal gesproken bevinden zich hier named.conf en zonebestanden. /usr/local/etc Instellingenbestanden voor geïnstalleerde software. Kan submappen hebben waarin bij elkaar horende instellingengegevens van een applicatie gegroepeerd zijn. /usr/local/etc/rc.d Start en stop scripts voor geïnstalleerde diensten. /var/db Automatisch gemaakte systeemspecifieke databasebestanden, zoals de packagedatabase, de &man.locate.1; database, enzovoort. Hostnamen hostnaam DNS <filename>/etc/resolv.conf</filename> resolv.conf In /etc/resolv.conf wordt voorgeschreven op welke wijze &os; het Domain Name System (DNS) moet gebruiken. De meest voorkomende termen in resolv.conf zijn: nameserver Het IP adres van een naamserver die ondervraagd moet worden voor naam/IP conversie. De servers worden in volgorde geprobeerd en het maximale aantal is drie. search Zoeklijst voor het opzoeken van hostnamen. Meestal wordt deze bepaald door het domein waarop de lokale hostnaam zich bevindt. domain De lokale domeinnaam. Een typisch resolv.conf bestand: search example.com nameserver 147.11.1.11 nameserver 147.11.100.30 search en domain dienen niet tegelijk gebruikt te worden. Als DHCP wordt gebruikt: &man.dhclient.8; overschrijft meestal resolv.conf met informatie ontvangen van de DHCP server. <filename>/etc/hosts</filename> hosts /etc/hosts is een eenvoudige tekstdatabase uit de dagen van het oude internet. Het werkt samen met DNS en NIS om namen en IP adressen over en weer te vertalen. Lokale computers, verbonden via een LAN, kunnen hier het beste in opgenomen worden om zo op simpele wijze naam/IP conversie voor een LAN te hebben, zonder noodzaak voor een &man.named.8; server. Ook kunnen naamaliassen toegekend worden (vergelijkbaar met CNAMES bij DNS). Op soortgelijke wijze kan /etc/hosts gebruikt worden als een (zeer beperkte) lokale DNS cache. # $&os;$ # # Host Database # Dit bestand hoort de adressen en aliassen te bevatten # voor de lokale hosts die dit bestand gebruiken. # Bij gebruik van DNS of NIS hoeft dit bestand helemaal niet gebruikt # te worden. Zie /etc/nsswitch.conf voor de volgorde van resolutie. # # ::1 localhost localhost.my.domain myname.my.domain 127.0.0.1 localhost localhost.my.domain myname.my.domain # # Verzonnen netwerk. #10.0.0.2 myname.my.domain myname #10.0.0.3 myfriend.my.domain myfriend # # Volgens RFC 1918 mogen de volgende IP netwerken gebruikt worden # als private netwerken die niet met internet verbonden zijn: # # 10.0.0.0 - 10.255.255.255 # 172.16.0.0 - 172.31.255.255 # 192.168.0.0 - 192.168.255.255 # # Als er toch verbinding moet zijn met internet, zijn echte # officieel toegewezen nummers nodig. Probeer ECHT GEEN eigen # netwerknummers te verzinnen, maar vraag ze op bij de provider # (als die er is) of bij de Internet Registry (ftp naar # rs.internic.net, map `/templates'). # /etc/hosts heeft als formaat: [Internet address] [official hostname] [alias1] [alias2] ... Bijvoorbeeld: 10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2 In &man.hosts.5; staat meer informatie. Logboekbestanden instellen logboekbestanden <filename>syslog.conf</filename> syslog.conf syslog.conf is het instellingenbestand voor het programma &man.syslogd.8;. Het geeft aan welke soorten syslog berichten er gelogd moeten worden en naar welke logboekbestanden, apparaten, gebruikers of machines. # $&os;$ # # Spaties zijn TOEGESTAAN als veldscheiding in dit bestand. # Maar andere *nix-achtige systemen eisen nog steeds het gebruik # van tabs als veldscheiding. Als dit bestand gedeeld wordt met # andere systemen, is het verstandig alle tabs als veldscheiding # te gebruiken. # Zie ook de handleding van syslog.conf(5). *.err;kern.debug;auth.notice;mail.crit /dev/console *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages security.* /var/log/security mail.info /var/log/maillog lpr.info /var/log/lpd-errs cron.* /var/log/cron *.err root *.notice;news.err root *.alert root *.emerg * # verwijder het commentaarkarakter om alle schrijfacties naar # /dev/console naar /var/log/console.log te schrijven. #console.info /var/log/console.log # verwijder het commentaarkarakter om alle berichten naar # /var/log/all.log te schrijven. #*.* /var/log/all.log # # verwijder het commentaarkarakter om alle liggen naar een andere # host in te schakelen met de naam loghost. #*.* @loghost # # verwijder het commentaarkarakter als inn draait. # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice !startslip *.* /var/log/slip.log !ppp *.* /var/log/ppp.log In &man.syslog.conf.5; staat meer informatie. <filename>newsyslog.conf</filename> newsyslog.conf newsyslog.conf is het instellingenbestand voor &man.newsyslog.8;, een programma dat op gezette tijden via &man.cron.8; wordt uitgevoerd. &man.newsyslog.8; stelt vast wanneer logboekbestanden gearchiveerd moeten worden of anderszins opnieuw gerangschikt moeten worden. logfile wordt hernoemd naar logfile.0, logfile.0 naar logfile.1, enzovoort. newsyslog.conf geeft aan welke logboekbestanden beheerd moeten worden, hoeveel er in archieven bewaard moeten worden en wanneer ze aangemaakt moeten worden. Logboekbestanden kunnen gereorganiseerd en/of gearchiveerd worden als ze een bepaalde grootte bereikt hebben of op een bepaald periodiek tijdstip of een bepaalde datum. # configuration file for newsyslog # $&os;$ # # filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num] /var/log/cron 600 3 100 * Z /var/log/amd.log 644 7 100 * Z /var/log/kerberos.log 644 7 100 * Z /var/log/lpd-errs 644 7 100 * Z /var/log/maillog 644 7 * @T00 Z /var/log/sendmail.st 644 10 * 168 B /var/log/messages 644 5 100 * Z /var/log/all.log 600 7 * @T00 Z /var/log/slip.log 600 3 100 * Z /var/log/ppp.log 600 3 100 * Z /var/log/security 600 10 100 * Z /var/log/wtmp 644 3 * @01T05 B /var/log/daily.log 640 7 * @T00 Z /var/log/weekly.log 640 5 1 $W6D0 Z /var/log/monthly.log 640 12 * $M1D0 Z /var/log/console.log 640 5 100 * Z In &man.newsyslog.8; staat meer informatie. <filename>sysctl.conf</filename> sysctl.conf sysctl sysctl.conf lijkt veel op rc.conf. Waardetoekenning heeft weer de vorm variable=value. De ingestelde &man.sysctl.8; waarden worden doorgevoerd op het moment dat het systeem naar multi-user modus gaat. Niet alle variabelen kunnen in deze modus gewijzigd worden. Hieronder staat een voorbeeld van sysctl.conf waarin het loggen van gevallen waarin een proces beëindigd wordt ten gevolge van een fataal signaal (bijvoorbeeld een TERM signaal of een exitcode van een programma dat crasht) wordt uitgezet en waarin de &linux; emulatielaag zodanig wordt ingesteld dat een &linux; programma ook echt rapporteert dat het onder &os; draait: kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11) compat.linux.osname=&os; compat.linux.osrelease=4.3-STABLE Optimaliseren met sysctl sysctl optimalisering met sysctl &man.sysctl.8; is een interface waarmee veranderingen gemaakt kunnen worden aan een draaiend &os; systeem. Er zijn onder meer vele geavanceerde opties voor de TCP/IP stack en het virtuele geheugensysteem, waarmee een ervaren systeembeheerder de systeemprestaties drastisch kan verbeteren. Met &man.sysctl.8; kunnen meer dan vijfhonderd ststeemvariabelen opgevraagd en ingesteld worden. In essentie heeft &man.sysctl.8; twee funkties: het lezen en wijzigen van systeeminstellingen. Om alle leesbare variabelen te tonen: &prompt.user; sysctl -a Om een bepaalde variabele op te vragen, bijvoorbeeld kern.maxproc: &prompt.user; sysctl kern.maxproc kern.maxproc: 1044 Om een bepaalde variabele toe te kennen (te wijzigen), is de syntaxis variable=value: &prompt.root; sysctl kern.maxfiles=5000 kern.maxfiles: 2088 -> 5000 Waarden van sysctl variabelen zijn doorgaans strings (tekst), getallen of booleans (1 als waar, 0 als onwaar). Om automatisch variabelen in te stellen als de machine start, kunnen ze toegevoegd worden aan /etc/sysctl.conf. Meer informatie staat in &man.sysctl.conf.5; en . Tom Rhodes Geschreven door &man.sysctl.8; alleen-lezen In sommige gevallen is het wenselijk zijn om &man.sysctl.8; waarden die alleen-lezen zijn toch te wijzigen. Hoewel dit soms onontkoombaar is, kan het alleen bij een (her)start gedaan worden. Op sommige laptops is bijvoorbeeld het apparaat &man.cardbus.4; niet in staat om geheugenregio's af te tasten, met als gevolg foutmeldingen als: cbb0: Could not map register memory device_probe_and_attach: cbb0 attach returned 12 In dergelijke gevallen moeten er meestal enkele &man.sysctl.8; instellingen gewijzigd worden die alleen-lezen zijn en een standaardwaarde hebben. Dit kan bereikt worden door &man.sysctl.8; OIDs in de lokale /boot/loader.conf te zetten. Standaardinstellingen staan in /boot/defaults/loader.conf. Om het bovenstaande probleem op te lossen moet in in /boot/loader.confhw.pci.allow_unsupported_io_range=1 ingesteld worden. Dan werkt &man.cardbus.4; wel goed. Harde schijven optimaliseren Sysctl variabelen <varname>vfs.vmiodirenable</varname> vfs.vmiodirenable De sysctl variabele vfs.vmiodirenable kan de waarde 0 (uit) of 1 (aan) hebben. De standaardwaarde is 1. Deze variabele bepaalt hoe mappen door het systeem in een cache bewaard worden. De meeste mappen zijn klein en gebruiken slechts een klein fragment (typisch 1 K) in het bestandssysteem en nog minder (typisch 512 bytes) in de buffercache. Als deze variabele uit staat (op 0) bewaart de buffercache slechts een bepaald aantal mappen in de cache, ook al is er een overvloed aan geheugen beschikbaar. Wanneer deze aan staat (op 1), wordt de VM pagecache gebruikt, waardoor voor het cachen van mappen al het geheugen kan worden gebruikt. Het is echter wel zo dat het minimale in-core geheugen dat gebruikt wordt om een map te cachen in dat geval de fysieke pagegrootte is (typisch 4 K) in plaats van 512  bytes. Het is aan te raden deze optie aan te laten staat als gebruik gemaakt worden van diensten die met grote aantallen bestanden werken, zoals webcaches, grote mailsystemen en newsservers. Als deze optie aan blijft staan, verlaagt die de prestaties niet, ook al kost het meer geheugen. Door experimenteren is dit voor een systeem na te gaan. <varname>vfs.write_behind</varname> vfs.write_behind De sysctl variabele vfs.write_behind staat standaard aan (1). Dit betekent dat het bestandssysteem gegevens naar het medium gaat schrijven op het moment dat er een volledig cluster aan data verzameld is. Dit is meestal het geval bij het schrijven van grote sequentiële bestanden. Het idee is om te voorkomen dat de buffercache verzadigd raakt met vuile buffers zonder dat dit bijdraagt aan de I/O prestaties. Dit kan echter processen ophouden en onder sommige omstandigheden is het wellicht beter deze sysctl uit te zetten. <varname>vfs.hirunningspace</varname> vfs.hirunningspace De sysctl variabele vfs.hirunningspace bepaalt hoeveel nog te schrijven gegevens er in het complete systeem op elk moment in de wachtrij naar schijfcontrollers mag staan. De standaardwaarde is meestal voldoende, maar op machines met veel schijven, is het beter deze te verhogen naar vier of vijf megabyte. Het instellen van een te hoge waarde (groter dan de schrijfdrempel van de buffercache) kan leiden tot zeer slechte prestaties bij clustering. Stel deze waarde niet arbitrair hoog in! Hogere schrijfwaarden kunnen vertraging veroorzaken in het lezen, als dit tegelijk plaatsvindt. Er zijn verscheidene andere sysctls voor buffercache en VM pagecache. Het wordt afgeraden deze te wijzigen. Sinds &os; 4.3 is het VM systeem zeer goed in staat zichzelf automatisch te optimaliseren. <varname>vm.swap_idle_enabled</varname> vm.swap_idle_enabled De sysctl variabele vm.swap_idle_enabled is nuttig in grote multi-user systemen met veel gebruikers die af- en aanmelden en veel onbenutte processen. Dergelijke systemen hebben de neiging om voortdurend de vrije geheugenreserves onder druk te zetten. Het is mogelijk om de prioriteit van geheugenpages die verband houden met onbenutte processen sneller te laten dalen dan met het normale pageout algoritme, door deze sysctl aan te zetten en via vm.swap_idle_threshold1 en vm.swap_idle_threshold2 de swapout hysterese (in seconden onbenut) af te stemmen. Deze optie dient alleen gebruikt te worden als ze echt nodig is, want de andere kant van de medaille is dat dit eerder pre-page geheugen inhoudt in plaats van later, waardoor het meer wisselbestand- en schijfbandbreedte kost. In een klein systeem heeft deze optie een voorspelbaar effect, maar in grote systemen waar al sprake is van een matige paging kan deze optie het mogelijk maken voor het VM systeem om hele processen gemakkelijk in en uit het geheugen te halen. <varname>hw.ata.wc</varname> hw.ata.wc Ten tijde van &os; 4.3 is er geflirt met het uitzetten van IDE schrijfcaching. Hierdoor neemt de bandbraadte naar IDE schijven af, maar het werd als noodzakelijk beschouwd vanwege ernstige problemen met gegevensinconsistentie die door harde schijfproducenten geëintroduceerd waren. Het probleem is dat IDE schijven niet de waarheid vertellen over wanneer een schrijfactie klaar is. Door IDE schrijfcaching wordt data niet alleen ongeordend geschreven, maar soms kan zelfs het schrijven van sommige blokken voortdurend uitgesteld worden als er sprake is van een hoge schijfbelasting. Een crash of stroomstoring kan dan ernstige corruptie van het bestandssysteem veroorzaken. Daarom werd de standaardinstelling van &os; voor alle zekerheid gewijzigd. Helaas was het resultaat een groot verlies aan prestaties en na die release is de standaardwaarde weer terug veranderd. Met de sysctl variabele hw.ata.wc kan gecontroleerd worden of schrijfcaching aan of uit staat. Als schrijfcaching uit staat, het die weer aangezet worden door hw.ata.wc naar 1 te zetten. Aangezien dit een kernelvariabele is, moet deze ingesteld worden vanuit de bootloader tijdens het opstarten. Nadat de kernel eenmaal opgestart is, heeft het wijzigen van deze sysctl geen effect. Meer informatie staat in &man.ata.4;. <literal>SCSI_DELAY</literal> (<varname>kern.cam.scsi_delay</varname>) kern.cam.scsi.delay kernelopties SCSI_DELAY De SCSI_DELAY kernelinstelling kan gebruikt worden om de opstarttijd te versnellen. De standaardwaarde is nogal hoog en kan 15 seconden vertraging veroorzaken. Met modernere SCSI systemen is 5 seconden al voldoende. Nieuwere versies van &os; (5.0 en hoger) gebruiken de opstartvariabele kern.cam.scsi_delay. Zowel deze als de optie SCSI_DELAY gebruiken waarden uitgedrukt in milliseconden en niet in seconden. Softupdates Softupdates tunefs &man.tunefs.8; kan gebruikt worden om een bestandsysteem nauwkeurig af te stellen. Het heeft veel opties, maar nu wordt alleen het aan- en uitzetten van softupdates besproken. Dat gaat als volgt: &prompt.root; tunefs -n enable /filesystem &prompt.root; tunefs -n disable /filesystem Een bestandssysteem kan niet met &man.tunefs.8; gewijzigd worden als het gemount is. Softupdates aanzetten wordt dus in het algemeen gedaan vanuit single-user modus, voordat partities gemount zijn. Vanaf &os; 4.5, is het mogelijk om softupdates aan te zetten op het moment dat de bestandssystemen aangemaakt worden, door middel van de -U optie van &man.newfs.8;. Softupdates zorgen voor een drastische verbetering van de meta-data prestaties, met name het aanmaken en verwijderen van bestanden, door gebruik van een geheugencache. Het wordt dan ook aangeraden om op alle bestandssystemen softupdates te gebruiken. Er zijn twee nadelen aan softupdates: softupdates garandeert een consistent bestandssysteem in geval van een crash, maar het kan makkelijk enkele seconden (zelfs een minuut) achter liggen met het daadwerkelijk bijwerken op de fysieke harde schijf. Als een systeem crasht wordt wellicht meer werk verloren dan anders het geval zou zijn. Daarnaast vertraagt softupdates het vrijgeven van bestandssysteemblokken. Als een bestandssysteem (zoals de root partitie) bijna vol is, dan kan het verrichten van een grote update, zoals make installworld, ertoe leiden dat het bestandssysteem ruimtegebrek krijgt en dat daardoor de operatie mislukt. Meer over softupdates Softupdates details Er zijn traditioneel twee methodes om de metadata van een bestandssysteem terug naar de schijf te schrijven. Het bijwerken van metadata houdt het bijwerken van van niet-inhoudelijke data zoals inodes of mappen in. Historisch gezien was het gebruikelijk om metadataupdates synchroon weg te schrijven. Als een map bijvoorbeeld gewijzigd was, wachtte het systeem totdat de verandering daadwerkelijk naar de schijf geschreven was. De databuffers (de inhoud van een bestand) werden doorgeschoven naar de buffercache en op een later moment asynchroon op de schijf opgeslagen. Het voordeel van deze benadering is dat ze altijd veilig is. Als het systeem faalt tijdens het bijwerken, is de metadata nog altijd consistent. Een bestand kan volledig gecreëerd zijn of helemaal niet. Als de datablokken van een bestand nog niet van de buffercache naar de schijf geschreven zijn ten tijde van de crash, is &man.fsck.8; in staat om dit te herkennen en het bestandssysteem te repareren door de lengte van het bestand nul te maken. Deze implementatie is ook helder en eenvoudig. Het nadeel is echter dat het wijzigen van metadata een traag proces is. Een rm -r commando benadert bijvoorbeeld alle bestanden in een map sequentiëel, maar elke mapverandering (verwijderen van een bestand) wordt synchroon naar de schijf geschreven. Dit omvat ook het bijwerken van de map zelf, van de inodetabel en mogelijk ook van indirecte blokken die voor het bestand in kwestie zijn gealloceerd. Gelijksoortige processen spelen zich af bij een commando als tar -x, waarbij een grote bestandshiëearchie wordt uitgepakt. De tweede mogelijkheid is om het bijwerken van metadata asynchroon weg te schrijven. Dit is standaard in &linux;/ext2fs en als een *BSD ufs bestandssysteem met mount -o async gemount is, is de werking hetzelfde. Alle bijwerkingen aan metagegevens worden eenvoudigweg doorgegeven aan de buffercache en vermengd met inhoudelijke updates van de bestandsgegevens. Het voordeel is een grote winst aan snelheid, omdat er niet telkens gewacht hoeft te worden op het bijwerken van metagegevens tot deze daadwerkelijk naar de schijf geschreven zijn. De implementatie is ook in dit geval helder en eenvoudig. Het grote nadeel is uiteraard dat er geen enkele garantie is voor de consistentie van het bestandssysteem. Als het systeem faalt tijdens een operatie waarbij veel metagegevens worden bijgewerkt (bijvoorbeeld door een stroomstoring of iemand drukt op de resetknop), blijft het bestandssysteem in een onvoorspelbare toestand achter. Er is geen mogelijkheid om de toestand van het bestandssysteem te onderzoeken als het systeem weer opstart, want de datablokken van een bestand kunnen al weggeschreven zijn geweest terwijl het wegschrijven van bijwerkingen aan de inodetabel of de bijhorende map nog niet plaats heeft gevonden. Het is zelfs onmogelijk om een fsck te implementeren die de overgebleven chaos kan opruimen: de benodigde informatie is gewoon niet volledig aanwezig op de schijf. Als een bestandssysteem op deze manier onherstelbaar beschadigd is, is de enige optie &man.newfs.8; te gebruiken en vervolgens te herstellen van een backup. De gebruikelijke oplossing voor dit probleem is het implementeren van dirty region logging, ook wel journaling genoemd, hoewel deze term niet consistent gebruikt wordt en soms ook wordt gebruikt voor andere vormen van transactielogging. Het bijwerken van metagegevens wordt nog steeds synchroon geschreven, maar slechts naar een klein gebied van de schijf. Later worden ze dan naar de juiste locatie verplaatst. Omdat het loggebied klein is, hoeven de koppen van de schijf zelfs tijdens schrijfintensieve operaties nog maar over een kleine fysieke afstand te bewegen en door deze snellere respons zijn dit soort operaties sneller dan op de traditionele manier. De extra complexiteit van de implementatie is nogal beperkt, dus het risico van introductie van extra bugs valt mee. Een nadeel is dat alle metagegevens tweemaal geschreven worden (eerst naar het loggebied en later nog eens naar de definitieve locatie). Dus bij normaal gebruik kan er sprake zijn van wat men wel noemt een performance pessimization. Anderzijds kunnen in geval van een crash alle nog uitstaande metagegevensoperaties snel worden teruggedraaid of vanuit het loggebied alsnog worden afgemaakt, wanneer de machine weer opstart. Het bestandssysteem start dan snel op. Kirk McKusick, de vader van het Berkeley FFS, loste dit probleem op met softupdates, wat betekent dat alle uitstaande acties voor het bijwerken van metagegevens in het geheugen bewaard worden en dan geordend naar de schijf geschreven worden. Dit heeft het gevolg dat in geval van intensieve operaties met betrekking tot metagegevens, latere bijwerkingen aan een item eerdere bewerkingen opvangen (catch) als deze nog in het geheugen zitten en nog niet weggeschreven waren. Dus alle operaties, op bijvoorbeeld een map, worden in het algemeen eerst in het geheugen uitgevoerd voordat er wordt bijgewerkt naar schijf. De datablokken worden geordend conform hun positie, zodat ze nooit weggeschreven worden voordat hun metagegevens geschreven zijn. Als het systeem een crash ondervindt, veroorzaakt dat impliciet het terugdraaien van uitstaande operaties (log rewind): alle operaties die nog niet weggeschreven waren lijken nooit gebeurd te zijn. Zo wordt een consistent bestandssysteem in stand gehouden dat eruit ziet alsof het 30 tot 60 seconden eerder was. Het gebruikte algoritme garandeert dat alle bronnen die in gebruik zijn als zodanig gemarkeerd worden in hun daarvoor geschikte bitmaps: blokken en inodes. Na een crash is de enige allocatiefout die kan optreden dat bronnen gemarkeerd kunnen zijn als in gebruik (used), terwijl ze feitelijk alweer beschikbaar (free) zijn. &man.fsck.8; herkent deze situatie en stelt dergelijke vrij te maken bronnen opnieuw beschikbaar. Het is volkomen veilig om na een crash te negeren dat het bestandssysteem niet schoon is en het tot mounten te dwingen met mount -f. Om niet langer gebruikte bronnen vrij te maken moet later &man.fsck.8; uitgevoerd worden. Dit is dan ook het idee achter background fsck: op het moment dat het systeem aan het opstarten is, wordt er alleen een snapshot van het systeem bewaard. fsck kan later uitgevoerd worden. Alle bestandssystemen kunnen dirty gemount worden en het systeem kan gewoon verder opstarten naar multi-user modus. Vervolgens zijn er fscks gepland die in de achtergrond draaien voor elk bestandssysteem dat niet schoon is en waarmee bezette bronnen vrijgegeven worden. Bestandssystemen die geen gebruik maken van softupdates moeten echter nog steeds gebruik maken van de normale fsck in de voorgrond. Het voordeel van softupdates is dat operaties op metagegevens bijna net zo snel zijn als asynchrone updates (dat wil zeggen sneller dan met logging, waarbij de metagegevens keer keer geschreven worden). Nadelen zijn de complexiteit van de code (wat een groter risico op bugs impliceert in een gebied dat bijzonder gevoelig is voor verlies van gebruikersgegevens) en een groter geheugenverbruik. Tevens moet de gebruiker wennen aan enkele eigenaardigheden. Na een crash lijkt de toestand van het bestandssysteem wat ouder. In situaties waar de standaard synchrone benadering een aantal lege bestanden zou hebben achtergelaten na fsck, is het met softupdates juist zo dat dergelijke bestanden er helemaal niet zijn, omdat de metadata of de bestandsinhoud nooit naar de schijf is geschreven. Schijfruimte wordt pas vrijgegeven als de bijwerkingen aan metagegevens en inhoudelijke bestandsdata weggeschreven zijn, wat mogelijk pas enige tijd na het uitvoeren van rm plaatsvindt. Dit kan problemen veroorzaken als er grote hoeveelheden data naar een bestandssysteem geschreven worden dat onvoldoende vrije ruimte heeft om alle bestanden twee keer te kunnen bevatten (bijvoorbeeld in /tmp). Fijnafstemming van kernellimieten fijnafstemming kernellimieten Bestandsproceslimieten <varname>kern.maxfiles</varname> kern.maxfiles kern.maxfiles kan worden verhoogd of verlaagd, afhankelijk van de systeembehoeften. Deze variabele geeft het maximale aantal bestandsdescriptors op een systeem. Als de bestandsdescriptortabel vol is,.toont de systeembuffer meerdere malen file: table is full, hetgeen achteraf te zien is net dmesg. Elk geopend bestand, socket of fifo heeft een bestandsdescriptor. Een grote produktieserver kan makkelijk enige duizenden bestandsdescriptors nodig hebben, afhankelijk van het soort en aantal diensten die tegelijk draaien. De standaardwaarde voor kern.maxfiles wordt bepaald door de optie MAXUSERS in het bestand met kernelinstellingen. kern.maxfiles groeit evenredig met de waarde van MAXUSERS. Als een aangepaste kernel wordt gebouwd, is het een goed idee om deze kerneloptie in te stellen afhankelijk van het gebruikt van een systeemhet (maar niet te laag). Hoewel een produktieserver misschien niet 256 gebruikers gelijktijdige gebruikers heeft, kunnen de benodigde systeembronnen best vergelijkbaar zijn met een grootschalige webserver. Vanaf &os; 4.5 kan meestal het beste MAXUSERS op 0 gezet worden in het bestand met kernelinstellingen. Er wordt dan een redelijke waarde gekozen, die gebaseerd is op de hoeveelheid RAM in een systeem. <varname>kern.ipc.somaxconn</varname> kern.ipc.somaxconn De sysctl variabele kern.ipc.somaxconn beparkt de grootte van de luisterwachtrij voor het accepteren van nieuwe TCP verbindingen. De standaardwaarde van 128 is meestal te laag voor robuuste behandeling van nieuwe verbindingen in een zwaarbeladen webserver omgeving. Voor zulke omgevingen wordt aangeraden deze waarde te verhogen tot 1024 of hoger. De dienstdaemon beperkt misschien zelf de luisterwachtrij (bijvoorbeeld &man.sendmail.8; of Apache), maar heeft vaak een mogelijkheid in een configuratiebestand de wachtrijgrootte aan te passen. Grote luisterwachtrijen zijn ook beter in het ontwijken van Ontzegging van Dienst (DoS) aanvallen. Netwerkbeperkingen De kerneloptie NMBCLUSTERS bepaalt het aantal netwerk Mbufs dat beschikbaar is voor een systeem. Een veel bezochte server met een laag aantal Mbufs beperkt de mogelijkheden van &os;. Elk cluster staat voor ongeveer 2 K geheugen, dus een waarde van 1024 stelt 2 megabyte aan kernelgeheugen voor, dat is gereserveerd voor netwerkbuffers. Een simpele berekening geeft aan hoeveel er nodig is. Stel dat een webserver met een maximum van 1000 simultane verbindingen voor elke verbinding 16 K aan ontvangst netwerkbuffers en 16 K aan zendbuffers kost, dan is ongeveer 32 MB aan netbuffers nodig voor de webserver. Een goede vuistregel is te vermeniguldigen met twee, dus 2x32 MB / 2 KB = 64 MB / 2 kB = 32768. Voor machines met veel geheugen wordt 4096 tot 32768 aangeraden. Er moet in geen geval een arbitrair hoge waarde voor deze sysctl opgegeven worden, want dat kan leiden tot een crash tijdens het opstarten. Met de optie van &man.netstat.1; kan clustergebruik van het netwerk bekeken worden. De loaderparameter kern.ipc.nmbclusters moet gebruikt worden om dit tijdens het opstarten toe te passen. Alleen voor oudere versies van &os; is het nodig om de kerneloptie NMBCLUSTERS te gebruiken. Voor drukke servers die extensief gebruik maken van de systeemaanroep &man.sendfile.2;, kan het nodig zijn het aantal &man.sendfile.2; buffers te verhogen via de kerneloptie NSFBUFS of door de waarde in te stellen in /boot/loader.conf (in &man.loader.8; staan details). Als er in de procestabel processen staan met een status sfbufa is dat een algemene indicator dat deze parameter aangepast moet worden. De sysctl variabele kern.ipc.nsfbufs is alleen-lezen en laat zien op welke waarde deze kernelvariabele is ingesteld. Deze parameter schaalt engiszins met de variabele kern.maxusers, maar het kan nodig zijn om deze bij te stellen. Zelfs als een socket als non-blocking gemarkeerd is, dan nog kan het aanroepen van &man.sendfile.2; op de non-blocking socket ertoe leiden dat er toch blokkade optreedt totdat er voldoende struct sf_buf's vrijgemaakt zijn. <varname>net.inet.ip.portrange.*</varname> net.inet.ip.portrange.* De sysctle variabelelen net.inet.ip.portrange.* bepalen welke reeks poortnummers automatisch gebonden wordt aan TCP en UDP sockets. Er zijn drie gebieden: een laag gebied, een (standaard) middengebied en een hoog gebied. De meeste netwerkprogramma's gebruiken het standaardbereik, wat begrensd wordt door net.inet.ip.portrange.first en net.inet.ip.portrange.last met standaardwaarden van respectievelijk 1024 en 5000. Gebonden poortreeksen worden gebruikt voor uitgaande verbindingen en het is onder bepaalde omstandigheden mogelijk dat poorten op raken. Dit gebeurt meestal in het geval van een zwaar belaste webproxy. Poortbereik is niet van belang als vooral diensten draaien die zich bezighouden met inkomende verbindingen, zoals een normale webserver, of als het aantal uitgaande verbindingen beperkt is, zoals bij een mailrelay. Voor situaties waarin een tekort aan poorten dreigt, wordt aangeraden om net.inet.ip.portrange.last bescheiden op te hogen. Een waarde van 10000, 20000 of 30000 is redelijk. Er moet ook rekening met effecten op firewalls gehouden worden als de poortreeks gewijzigd wordt. Sommige firewalls kunnen grote poortreeksen blokkeren, meestal de lagere poorten, en verwachten dat andere systemen hogere poorten gebruiken voor uitgaande verbindingen. Om deze reden wordt het aanbevolen om net.inet.ip.portrange.first te verlagen. TCP Bandbreedtevertragingsproduct (TCP Bandwidth Delay Product) TCP bandbreedtevertragingsproduct net.inet.tcp.inflight.enable De TCP bandbreedtevertragingsproduct limitatie lijkt op TCP/Vegas in NetBSD. Het kan aangezet worden door de sysctl variabelel net.inet.tcp.inflight.enable de waarde 1 te geven. Het systeem tracht dan het bandbreedtevertragingssprodukt te berekenen voor elke verbinding en beperkt dan de hoeveelheid gegevens in de wachtrij naar het netwerk tot de hoeveelheid die vereist is om maximale doorvoer te kunnen handhaven. Dit is nuttig bij gebruik van modems, Gigabit Ethernet of zelfs bij hoge snelheid WAN links (of elke andere link met een groot bandbreedtevertragingsprodukt), in het bijzonder als ook windowschaling of een groot verzendwindow gebruikt wordt. Als deze optie aangezet wordt, dient ook net.inet.tcp.inflight.debug de waarde 0 te krijgen (geen debugging) en voor produktiegebruik kan het instellen van net.inet.tcp.inflight.min naar minstens 6144 voordeel opleveren. Het instellen van hoge minima kan effectief het beperken van bandbreedte ondermijnen, afhankelijk van de link. De mogelijkheid tot limitering zorgt ervoor dat de hoeveelheid data die opgebouwd wordt, in tussentijdse route- en switchwachtrijen verlaagd kan worden en tevens kan de hoeveelheid gegevens die opgebouwd wordt in de interfacewachtrij van de lokale host verlaagd worden. Met minder pakketten in wachtrijen, kunnen interactieve verbindingen opereren met lagere Round Trip tijden, met name over langzame modems. Deze optie gaat alleen over datatransmissie (upload / serverkant) en heeft geen effect gegevensontvangst (download / clientkant). Aanpassen van net.inet.tcp.inflight.stab wordt niet aangeraden. Deze parameter krijgt standaard een waarde van 20, wat 2 maximale pakketten opgeteld bij de bandbreedtevensterberekening representeert. Het extra venster is nodig om het algoritme stabiel te houden en om de reactietijd bij veranderende omstandigheden te verbeteren, maar het kan ook leiden tot langere pingtijden over langzame verbindingen (zonder het inflight algoritme kan dit echter nog erger zijn). In dergelijke gevallen kan deze parameter misschien verlaagd worden naar 15, 10 of 5 en misschien moet voor het gewenste effect ook net.inet.tcp.inflight.min verlaagd worden (bijvoorbeeld naar 3500). Het verlagen van deze parameters moet pas in laatste instantie overwogen worden. In 4.X en eerdere releases van &os; staan de sysctl variabelen inflight direct onder net.inet.tcp. Hun namen waren (in alfabetische volgorde): net.inet.tcp.inflight_debug, net.inet.tcp.inflight_enable, net.inet.tcp.inflight_max, net.inet.tcp.inflight_min, net.inet.tcp.inflight_stab. Virtueel Geheugen <varname>kern.maxvnodes</varname> Een vnode is de interne representatie van een bestand of een map. Het verlagen van het aantal beschikbare vnodes voor het besturingssysteem leidt dus tot een daling van disk I/O. Normaliter wordt dit door het besturingssysteem afgehandeld en hoeft de instelling niet gewijzigd te worden. Im sommige gevallen kan disk I/O de beperkende factor zijn en kan het systeem alle beschikbare vnodes in gebruik hebben. Dan dient deze instelling gewijzigd te worden. De hoeveelheid inactief en beschikbaar RAM dient meegenomen te worden in de beslissing. Het huidige aantal gebruikte vnodes kan als volgt bekeken worden: &prompt.root; sysctl vfs.numvnodes vfs.numvnodes: 91349 Om het maximale aantal vnodes weer te geven: &prompt.root; sysctl kern.maxvnodes kern.maxvnodes: 100000 Als het huidige aantal gebruikte vnodes dicht bij het maximale aantal ligt, is het verstandig om kern.maxvnodes op te hogen met 1.000. Ook vfs.numvnodes dient in de gaten gehouden te worden. Als de waarde weer tot aan het maximum stijgt, dan moet kern.maxvnodes verder opgehoogd worden. Er dient een verschuiving op te treden in het door &man.top.1; gerapporteerde geheugengebruik. Er hoort meer geheugen actief te zijn. Wisselbestandruimte toevoegen Hoe goed er ook gepland wordt, soms draait een systeem gewoon niet zoals verwacht. Een oorzaak hiervoor kan een tekort aan wisselbestandruimte zijn. Als blijkt dat er meer wisselbestandruimte nodig is, kan dat eenvoudig. Er zijn drie manieren om de totale ruimte beschikbaar als wisselbestand te vergroten: een nieuwe harde schijf toevoegen, swappen over NFS of een wisselbestand maken op een bestaande (UFS of andere) partitie. Wisselbestand (partitie) op een nieuwe harde schijf Dit is natuurlijk de beste manier om de wisselbestandsruimte te vergroten en een goed excuus om een extra harde schijf toe te voegen. Die komt immers altijd wel van pas. In dat geval kan het beste de discussie over wisselbestandruimte in nog eens herlezen worden om wat suggesties te krijgen over hoe wisselbestandpartitie(s) het beste ingedeeld kunnen worden. Swappen over NFS In het algemeen wordt swappen over NFS niet aangeraden omdat het langzaam is. Dit dient alleen gebruikt te worden als het onmogelijk om naar een lokale schijf te swappen. In &os; versies voor 4.X was het hanteren van een wisselbestand over NFS erg langzaam en inefficiënt. Nieuwere versies werken beter, maar dan nog wordt swappen over NFS sterk gelimiteerd door de aanwezige netwerkbandbreedte en belast het de NFS server. Wisselbestanden Het is mogelijk om een bestand aan te maken van een bepaalde grootte en dit als swap te gebruiken. In dit voorbeeld wordt een 64 MB bestand gebruikt, /usr/swap0. Uiteraard kan een willekeurige naam gebruikt worden. Een wisselbestand aanmaken met &os; 4.X De kernel moet het vnode stuurprogramma bevatten. In recente versies van GENERIC is vnode niet opgenomen. pseudo-device vn #Vnode driver (turns a file into a device) Een vn-apparaat aanmaken: &prompt.root; cd /dev &prompt.root; sh MAKEDEV vn0 Een wisselbestand aanmaken (/usr/swap0): &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 Correcte rechten op (/usr/swap0) instellen: &prompt.root; chmod 0600 /usr/swap0 Wisselbestand opnemen in /etc/rc.conf: swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. Nu kan de machine herstart worden of het wisselbestand meteen te gebruiken: &prompt.root; vnconfig -e /dev/vn0b /usr/swap0 swap Een wisselbestand aanmaken met &os; 5.X De kernel moet het stuurprogramma voor de geheugenschijf (&man.md.4;) bevatten. Dat zit standaard in de GENERIC kernel. device md # Memory "disks" Het wisselbestand /usr/swap0 aanmaken: &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 De correctie rechten op /usr/swap0 instellen: &prompt.root; chmod 0600 /usr/swap0 Het wisselbestand opnemen in /etc/rc.conf: swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. De machine moet herstart worden of om het wisselbestand direct in te schakelen: &prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0 Hiten Pandya Geschreven door Tom Rhodes Energie- en bronnenbeheer Het is belangrijk om hardwarebronnen op een efficiënte wijze te benutten. Voordat ACPI geïntroduceerd werd was het erg lastig en onflexibel om het energieverbruik en de thermische eigenschappen van een systeem te beheersen. De hardware werd beheerst door deze of gene interface, ingebed in het BIOS, zoals de Plug-n-play BIOS (PNPBIOS) of Advanced Power Management (APM), enzovoort. Energie- en bronnenbeheer is een kerntaak van moderne besturingssystemen. Het besturingssysteem moet bijvoorbeeld systeemlimieten in de gaten houdt (en mogelijk een SMS sturen of iets dergelijks) als de systeemtemperatuur onverwacht toeneemt. In dit deel van het &os; handboek wordt uitgebreide informatie verschaft over ACPI. Aan het einde staan referenties naar meer leesmateriaal. ACPI is op &os; 5.X en nieuwere systemen als een standaard ingeladen kernelmodule aanwezig. In &os; 4.9 kan ACPI aangezet worden door de regel device acpica toe te voegen aan het bestand met kernelinstellingen en een nieuwe kernel te bouwen en te installeren. Wat is ACPI? ACPI APM Advanced Configuration and Power Interface (ACPI) is een standaard die door een alliantie van producenten geschreven is, met als doel te voorzien in een een standaardinterface voor hardware bronnen- en energiebeheer. Een belangrijk element is dat het meer flexibiliteit en beheersmogelijkheden biedt aan het besturingssysteem (OS). Moderne systemen hebben de limieten van de huidige PNP interfaces verder opgerekt dan wenselijk en misschien wel mogelijk was. ACPI is de directe opvolger van APM (Advanced Power Management). Centraal is het verleggen van hardwarebeheer en -monitoring naar de OS laag in plaats van de zeer beperkte BIOS laag. Tekortkomingen van APM Met de Advanced Power Management (APM) faciliteit kan het energieverbruik van een systeem geregeld worden op basis van de systeemactiviteit. Het APM BIOS wordt geleverd door de systeemproducent of -verkoper en het is specifiek voor dat betreffende hardware platform. Een APM stuurprogramma in het besturingssysteem regelt vervolgens de toegang tot de APM Software Interface, die het besturen van vermogensniveau mogelijk maakt. Er zijn vier hoofdproblemen met APM te onderscheiden: ten eerste wordt het energiebeheer verricht door een BIOS (afhankelijk van producent) en het besturingssysteem heeft daar geen kennis van. De gebruiker die idle-time waarden instelt voor een harde schijf in het APM BIOS is hier een voorbeeld van. Dan zal het BIOS de harde schijf langzamer kunnen laten draaien zonder dat het besturingssysteem de noodzaak ziet of het goedkeurt. Ten tweede: de APM logica is ingebed in de BIOS, waardoor het buiten het besturingssysteem om opereert. Dit houdt in dat gebruikers problemen met hun APM BIOS alleen kunnen verhelpen door een nieuw BIOS in het ROM te flashen, wat een gevaarlijke en mogelijk onherstelbare operatie is. Ten derde is APM een producent-specifieke technologie, in de zin dat er altijd een hoge mate van duplicatie zal zijn van al dan niet geslaagde pogingen om het wiel opnieuw uit te vinden en uiteraard ook van bugs. Er is geen enkele garantie dat het wegnemen van een bug door een producent ook een zelfde bug wegneemt bij een concurrent. Tenslotte is het van belang te weten dat de APM BIOS in het algemeen gewoon te weing geheugen kon gebruiken om een ingewikkeld energiebeheer te kunnen implementeren. Laat staan dat deze goed aanpasbaar was aan veranderlijke doelstellingen voor de betreffende machine. Plug-n-play BIOS (PNPBIOS) was in veel situations onbetrouwbaar. PNPBIOS is 16-bit technologie, dus het besturingssysteem moet 16-bit emulatie gebruiken om met PNPBIOS methoden te kunnen samenwerken. Het &os; stuurprogramma APM is gedocumenteerd in &man.apm.4;. <acronym>ACPI</acronym> instellen Het stuurprogramma acpi.ko wordt standaard geladen bij het opstarten door de &man.loader.8; en hoeft niet gecompileerd te worden. De redenatie is dat er met modules gemakkelijker gewerkt kan worden, bijvoorbeeld een andere acpi.ko gebruiken zonder dat er een nieuwe kernel gebouwd moet worden. Dit heeft het voordeel dat testen eenvoudiger is. Een andere reden is dat het opstarten van ACPI nadat een systeem eenmaal volledig opgestart is, weinig nuttig is en in sommige gevallen fataal kan zijn. In geval van tijfel kan ACPI beter uitgeschakeld worden. Dit stuurprogramma kan niet gestopt worden als het eenmaal geladen is, omdat de systeembus het gebruikt voor allerlei interacties met hardware. ACPI kan uitgezet worden met het hulpprogramma &man.acpiconf.8;. In feite kan de meeste interactie met het ACPI systeem gedaan worden via &man.acpiconf.8;. In wezen betekent dit dat als er iets over ACPI in &man.dmesg.8; staat, het hoogstwaarschijnlijk al draait. ACPI en APM kunnen niet samenleven en moeten afzonderlijk en exclusief gebruikt worden. De laatste die gestart wordt bepaalt of het stuurprogramma de ander wel of niet ziet. In haar eenvoudigste vorm kan ACPI gebruikt worden om het systeem in slaapmodus te zetten met de vlag en een 1-5 optie met &man.acpiconf.8;. De meeste gebruikers hebben alleen 1 nodig. De optie 5 verricht een soft-off, wat hetzelfde is als: &prompt.root; halt -p Andere opties zijn mogelijk. In &man.acpiconf.8; staat meer informatie. Nate Lawson Geschreven door Peter Schultz Met medewerking van Tom Rhodes &os; <acronym>ACPI</acronym> gebruiken en debuggen ACPI is een totaal nieuwe manier om apparaten te ontdekken, om energieverbruik te beheren en om een gestandaardiseerde toegang te bieden tot allerlei apparaten die eerder via het BIOS beheerd werden. Er wordt voortdurend vooruitgang geboekt om ACPI op alle systemen te laten werken, maar bugs in de ACPIMachine Language (AML) bytecode van sommige moederborden, onvolledigheden in &os;'s kernel subsystemen en bugs in de &intel; ACPI-CA interpreter blijven opduiken. Deze tekst is bedoeld om de &os; ACPI beheerders (maintainers) te helpen met het vinden van de hoofdoorzaken van problemen die voorkomen en met het debuggen en het vinden van een oplossing. Debuginformatie aanleveren Voordat een probleem wordt aanmeld, moet het zeker zijn dat de laatste BIOS versie draait en indien beschikbaar de geïntregeerde controller firmware versie. Diegenen die meteen een probleem willen indienen, sturen de volgende informatie naar freebsd-acpi@FreeBSD.org: Omschrijving van het foutieve gedrag, inclusief systeemtype en model en alles wat de fout kan veroorzaken. Als het een nieuw fenomeen is, dan dient ook zo accuraat mogelijk aangegeven te worden wanneer de fout het eerst optrad. De &man.dmesg.8; uitvoer van boot -v, inclusief foutmeldingen die gegenereerd worden als de fout optreedt. De &man.dmesg.8; uitvoer van boot -v met ACPI uitgeschakeld, indien het uitzetten van ACPI het probleem oplost. Uitvoer van sysctl hw.acpi. Dit is tevens een goede manier om uit te vinden welke ACPI mogelijkheden een systeem heeft. Een URL waar de ACPISource Language (ASL) gevonden kan worden. De ASL dient niet rechtstreeks naar de lijst gezonden te worden, omdat deze nogal groot kan zijn. Een kopie van een ASL kan gemaakt worden met het volgende commando: &prompt.root; acpidump -t -d > name-system.asl (Vervang een aanmeldnaam door $NAME en producent/model door $SYSTEM. Bijvoorbeeld: njl-FooCo6000.asl) De meeste &os; programmeurs lezen de &a.current; mailinglijst, maar problemen gaan bij voorkeur ook naar &a.acpi.name; zodat ze zeker gezien worden. Het kan enige tijd duren voordat er antwoord komt, omdat deze mensen elders ook nog fulltime banen hebben. Als de bug niet meteen duidelijk is, komt er waarschijnlijk en verzoek om een PR in te dienen via &man.send-pr.1;. Als er een PR moet worden opgesteld, dan dient alle hierboven gevraagde informatie vermeld te worden. Dit helpt om het probleem te kunnen volgen en oplossen. Het sturen van een PR zonder eerst &a.acpi.name; te mailen is niet wenselijk, aangezien men PRs gebruikt als herinnering, niet als rapportagesysteem. Mogelijk is een probleem al eens door iemand anders aangemeld. Achtergrond ACPI is aanwezig op alle moderne computers die voldoen aan de ia32 (x86), ia64 (Itanium) of amd64 (AMD) architecturen. De volledige standaard heeft vele mogelijkheden zoals CPU prestatiebeheer, energiebeheer, thermische zones, diverse batterijsystemen, ingebedde controllers en busnummering. De meeste systemen implementeren minder dan de volledige standaard. Een desktopsysteem implementeert bijvoorbeeld meestal alleen busnummering, terwijl laptops mogelijk ook koeling- en batterijbeheer ondersteunen. Laptops hebben ook suspend en resume (slapen en wakker worden) met hun eigen aanverwante comlexiteit. Een ACPI-compliant systeem heeft verscheidene componenten. Het BIOS is de eerste en dan zijn er verscheidene tabellen in het geheugen zoals FADT die zaken als de APIC map (gebruikt voor SMP) specificeren, beschikbaar gesteld door verschillende producenten/verkopers. Daarnaast zijn er specifieke eenvoudige instellingen en instellingenregisters, ook allen specifiek voor de leverancier. Ook wordt er een tabel van bytecode (de Differentiated System Description Table DSDT) geleverd die een op een boomstructuur lijkende namespace biedt voor apparaten en apparaatobjectfuncties. Het stuurprogramma ACPI moet de voorgedefinieerde tabellen verwerken, een interpreter voor de bytecode implementeren en apparaatstuurprogramma's en de kernel aanpassen om alleen al informatie van het ACPI subsysteem te kunnen accepteren. &intel; heeft een interpreter beschikbaar gesteld (ACPI-CA) die door &os; en ook door &linux; en NetBSD gebruikt wordt. De ACPI-CA broncode staat in src/sys/contrib/dev/acpica. De lijmcode (glue code) die ACPI-CA laat werken met &os; staat in src/sys/dev/acpica/Osd. Stuurprogramma's die verscheidene ACPI apparaten implementeren staan in src/sys/dev/acpica. Algemene problemen Wil ACPI goed werken, dan moeten alle onderdelen goed werken. Hieronder staan enkele algemene problemen in volgorde van hoe vaak ze optreden en enkele mogelijke oplossingen of manieren om de problemen te vermijden. Muisproblemen Soms doet een muis het niet bij het opstarten uit de slaapstand. Een bekend lapmiddel is het toevoegen van hint.psm.0.flags="0x3000" aan het bestand /boot/loader.conf. Als dat niet werkt, dan wordt aangeraden een bugrapport in te sturen, zoals eerder is beschreven. Suspend/resume ACPI heeft drie slaapstanden waarbij het geheugen (RAM) wordt ingezet. Dit zijn de STR toestanden S1-S3,en nog een slaap-met-gebruik-van-harde-schijf toestand (STD) die S4 heet. S5 is zacht uit en is de normale status van een systeem als het is aangesloten maar niet is aangezet. S4 kan feitelijk op twee manieren geïmplementeerd worden: S4BIOS is een slaapstand naar schijf met behulp van het BIOS en S4OS wordt volledig door het besturingssysteem beheerd. als eerste dienen de sysctl items die iets met de slaapstand te maken hebben gecontroleerd te worden. Hieronder staan de resultaten voor een Thinkpad: hw.acpi.supported_sleep_state: S3 S4 S5 hw.acpi.s4bios: 0 Dit betekent dat hier acpiconf -s gebruikt kan worden om S3, S4 OS en S5 te testen. Als gelijk was aan (1), dan zou er S4BIOS ondersteuning zijn in plaats van S4 OS. Als suspend/resume getest moet worden, dient, indien ondersteund, bij S1 begonnen te worden. Deze toestand heeft de grootste kans om te werken, omdat deze niet veel stuurprogrammaondersteuning vereist. Niemand heeft nog S2 geïmplementeerd, maar het is ongeveer hetzelfde als S1. Daarna wordt S3 getest. Dit is het diepste STR niveau en heeft uitgebreide ondersteuning van stuurprogramma's nodig om hardware goed opnieuw te kunnen starten. Mochten er blokkades optreden, dan kan naar de &a.acpi.name; lijst gemaild worden. Er kan echter geen snelle oplossing verwacht worden, omdat er nog de nodige stuurprogramma's/hardware liggen om getest en bewerkt te worden. Om een probleem te kunnen isoleren helpt het om zoveel mogelijk stuurprogramma's uit de kernel te halen. Als dit werkt, kan er teruggewerkt worden naar de driver die schuldig is aan het falen. Meestal vertonen binaire stuurprogramma's als nvidia.ko, X11 beeldschermstuurprogramma's en USB de meeste problemen, terwijl bijvoorbeeld Ethernet interfaces meestal meteen goed werken. Als de stuurprogramma's zonder problemen geladen en verwijderd kunnen worden, dan is dit te automatiseren door de juiste commando's in /etc/rc.suspend en /etc/rc.resume te zetten. Er staat een voorbeeld (achter commentaartekens) voor het laden en verwijderen van een driver. Als het beeldscherm er na wakker worden vreemd uitziet, kan geprobeerd worden naar nul (0) te zetten. Met langere of kortere waarden voor kan bekeken worden of dat helpt. In geval van problemen is het ook een optie om een recente &linux; distibutie met ondersteuning voor ACPI support te starten en daarvan de suspend/resume ondersteuning op dezelfde hardware uit te proberen. Als het werkt met &linux;, dan is het waarschijnlijk een &os; stuurprogrammaprobleem en als het mogelijk is uit te vinden over welke driver het gaat, kan dat bijdragen aan het oplossen van het probleem. ACPI houdt zich in het algemeen niet bezig met andere stuurprogramma's bijvoorbeeld geluid, ATA, enzovoort. Als er dus een echt driverprobleem is, dan is waarchijnlijk uiteindelijk ook nodig naar de &a.current.name; lijst te posten en naar de beheerder van het stuurprogramma. Voor degenen met moed is het vooral aan te raden een paar &man.printf.3;s in problematische stukken van een stuurprogramma te plaatsen voor debugging om na te gaan waar de resumefunctie precies hangt. Tot slot kan geprobeerd worden om ACPI uit te zetten en in plaats daarvan APM aan te zetten. Als suspend/resume werkt met APM, is het wellicht verstandig het daarbij te houden, vooral met wat oudere apparatuur (voor 2000). Producenten hebben nogal wat tijd nodig gehad om ACPI ondersteuning goed te krijgen en voor oudere hardware is het waarschijnlijker dat er BIOS problemen zijn met ACPI. Systeem hangt (tijdelijk of permanent) Meestal is het hangen van het systeem het gevolg van verloren interrupts of een interruptstorm. Chipsets kunnen een heleboel problemen hebben, afhankelijk van hoe het BIOS interrupts instelt voor het opstarten, of de APIC (MADT) tabel correct is en de routering van het System Control Interrupt (SCI). interrupt storms Interruptstorms kunnen onderscheiden worden van verloren geraakte interrupts door de uitvoer van vmstat -i te controleren en de regel met acpi0 goed te lezen. Als de teller in toenemende mate hoger staat dan enkele per seconde, dan is sprake van een interruptstorm. Als het systeem lijkt te hangen, is het wellicht nog mogelijk door te dringen tot de DDB (CTRL ALTESC) show interrupts uit te voeren. APIC uitschakelen De beste hoop in geval van interruptproblemen is om APIC ondersteuning uit te zetten met hint.apic.0.disabled="1" in loader.conf. Panics Panics zijn relatief zeldzaam met ACPI en krijgen de hoogste prioriteit bij het oplossen. Eerst moeten de verschillende gebeurtenissen waarmee de panic (als mogelijk) te reproduceren is geïsoleerd worden en moet een backtrace gemaakt worden. options DDB dient aangezet te worden en er dient een een seriële console () of een &man.dump.8; partitie te komen.. In DDB is een backtrace te maken met tr. Als de backtrace handmatig opgeschreven moet worden, is het belangrijk dat in ieder geval de bovenste en onderste vijf (5) regels van de backtrace genoteerd worden. Daarna dient getracht te worden het systeem te starten zonder ACPI. Als dat werkt, is het ACPI subsysteem geïsoleerd en kunnen de verschillende waarden uitgeprobeerd worden. In &man.acpi.4; staan enkele voorbeelden. Systeem slaat aan na slaapstand of stop hw.acpi.disable_on_poweroff="0" kan uitgezet worden in &man.loader.conf.5;. Hierdoor schakelt ACPI bepaalde gebeurtenissen tijdens het afsluitproces niet uit. Om dezelfde redenen moeten sommige systemen deze waarde altijd op 1 (standaard) hebben staan. In het algemeen lost dit een probleem op waarbij een systeem spontaan weer opkomt nadat het in slaapstand is gezet of geheel gestopt is. Overige problemen Als er nog andere problemen zijn met ACPI (met een docking station of apparaten niet gedetecteerd, enzovoort), dan kan een mail met beschijving naar de mailinglijst gezonden worden. Sommige zaken kunnen echter gerelateerd zijn aan delen van het ACPI subsysteem die nog niet af zijn, dus het kan in sommige gevallen een tijd duren. Gebruikers moeten soms geduld hebben en de bereidheid om eventuele patches uit te proberen. <acronym>ASL</acronym>, <command>acpidump</command> en <acronym>IASL</acronym> ACPI ASL Het grootste probleem is dat BIOS producenten vaak incorrecte (of gewoon foutieve) bytecode leveren. Dit blijkt doorgaans uit kernelboodschappen als: ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\ (Node 0xc3f6d160), AE_NOT_FOUND Vaak kunnen dergelijke problemen geoplost worden door de BIOS bij te werken tot de laatste revisie. De meeste consoleberichten zijn onschuldig, maar als er andere problemen zijn, zoals batterijstatus die niet werkt, dan ligt het voor de hand te zoeken naar problemen in de AML code. De bytecode die AML genoemd wordt, wordt gecompileerd van een broncodetaal ASL. Deze staat weer in een tabel DSDT. Met &man.acpidump.8; kan een kopie van de ASL gemaakt worden. Dan moeten zowel de opties (laat inhoud van vaste tabellen zien) als (disassembleer AML naar ASL) gebruikt worden. In Debuginformatie aanleveren staat een voorbeeld. De eenvoudigste eerste controle is de ASL code opnieuw compileren en kijken of er foutmeldingen optreden. Waarschuwingen kunnen doorgaans genegeerd worden, maar fouten zijn bugs die er meestal toe leiden dat ACPI niet correct werkt. Om ASL te hercompileren: &prompt.root; iasl eigen.asl <acronym>ASL</acronym> repareren ACPI ASL Op langere termijn is het de bedoeling dat voor vrijwel elke machine ACPI werkt zonder enig ingrijpen van de gebruiker. Op dit moment wordt er echter nog gewerkt aan oplossingen voor veel voorkomende vergissingen die BIOS producenten maken. De µsoft; interpreter (acpi.sys en acpiec.sys) controleert niet strikt of het BIOS volledig aan de standaard voldoet, waardoor het voorkomt dat BIOS makers die alleen testen onder &windows; bepaalde fouten in hun ASL nooit correct repareren. &os; hoopt door te gaan met de identificatie en documentatie van welk niet-standaard gedrag precies wordt toegelaten door µsoft;'s interpreter en te dit te repliceren zodat &os; kan werken zonder dat gebruikers zich gedwongen zien om de ASL te repareren. Als een tijdelijke oplossing en om te helpen met het in kaart brengen van bepaald gedrag, kan de ASL handmatig gerepareerd worden. Mocht dit lukken, dan wordt erop aangedrongen een &man.diff.1; van de oude en de nieuwe ASL te mailen, zodat het foutieve gedrag mogelijk in ACPI-CA kan worden verwerkt, waardoor andere gebruikers niet meer handmatig met hun ASL aan de gang hoeven. ACPI error messages Hieronder staat een lijst algemene foutmeldingen, hun oorzaken en hoe ze op te lossen: _OS afhankelijkheden Sommige AMLs gaan ervan uit dat de wereld enkel bestaat uit &windows; versies. &os; kan zich voordoen als elk OS om te kijken of dit problemen oplost. Een gemakkelijke manier om dit te doen is hw.acpi.osname="Windows 2001" in te stellen in /boot/loader.conf of andere gelijksoortige strings die in een ASL staan. Ontbrekende return opdrachten Sommige methoden hebben geen specifieke returnwaarde, zoals wel vereist wordt door de standaard. Hoewel ACPI-CA hier niets mee doet, heeft &os; de mogelijkheid tot impliciete returns. Er kunnen ook expliciet return opdrachten toegevoegd worden waar vereist, als het bekend is welke waarden teruggevoerd moeten worden. Om iasl te dwingen tot compilatie van ASL kan de schakeloptie gebruikt worden. De standaard <acronym>AML</acronym> aanpassen Nadat eigen.asl aangepast is, kan deze als volgt gecompileerd wordent: &prompt.root; iasl eigen.asl Met de optie is af te dwingen dat de AML gemaakt wordt, zelfs als er compileerfouten optreden. Sommige fouten (zoals ontbrekende return opdrachten) worden automatisch opgelost door de interpreter. DSDT.aml is de standaardnaam voor het bestand dat door iasl wordt geproduceerd. Dit is in plaats van de foutieve versie uit het BIOS (die nog steeds aanwezig is in het flashgeneugen) te laden door /boot/loader.conf als volgt te wijzigen: acpi_dsdt_load="YES" acpi_dsdt_name="/boot/DSDT.aml" DSDT.aml moet in de map /boot staan. Debuguitvoer van <acronym>ACPI</acronym> verkrijgen ACPI problemen ACPI debuggen Het stuurprogramma ACPI heeft een zeer flexibele debugfaciliteit. Er kan zowel een set van subsystemen aangegeven worden als het niveau van uitvoerigheid. De te debuggen subsystemen worden aangegeven als lagen (layers) en zijn opgedeeld in ACPI-CA componenten (ACPI_ALL_COMPONENTS) en ACPI hardware ondersteuning (ACPI_ALL_DRIVERS). De uitvoerigheid van debuguitvoer wordt aangegeven als het niveau (level) en gaat van CPI_LV_ERROR (alleen fouten rapporteren) tot ACPI_LV_VERBOSE (alles). Het niveau is een bitmasker en dus kunnen er meerdere opties tegelijk ingeschakeld worden (gescheiden door spaties). In de praktijk wordt wellicht een seriële console gebruikt om de uitvoer te loggen als deze zo omvangrijk is dat de console berichtbuffer vol loopt (misschien wel meerdere keren). Een complete lijst van de individuele lagen en niveaus staat in &man.acpi.4;. Debuguitvoer staat staandaard niet aan. Door options ACPI_DEBUG toe te voegen aan het bestand met kernelinstellingen als ACPI als de kernel is gebouwd, wordt het ingeschakeld. Door ACPI_DEBUG=1 toe te voegen aan /etc/make.conf wordt het systeembreed ingeschakeld. Als ACPI als module wordt gebruikt (de normale situatie), dan hoeft slechts de acpi.ko module opnieuw gecompileerd te worden: &prompt.root; cd /sys/modules/acpi/acpi && make clean && make ACPI_DEBUG=1 acpi.ko moet in /boot/kernel komen te staan en de gewenste debuglaag en het gewenste niveau van uitvoerigheid dienen toegevoegd te worden aan loader.conf. Hieronder een voorbeeld waarmee debuguitvoer wordt aangezet voor alle ACPI-CA componenten en alle ACPI hardware stuurprogramma's (CPU, LID, enzovoort. Het niveau van uitvoerigheid is het laagst mogelijke. Er worden alleen fouten gemeld. debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS" debug.acpi.level="ACPI_LV_ERROR" Als de gezochte informatie wordt veroorzaakt door een specifieke gebeurtenis (bijvoorbeeld in en uit slaapstand gaan), dan kunnen wijzigingen aan loader.conf achterwege blijven en in plaats daarvan kan sysctl gebruikt worden om laag en niveau in te stellen na het opstarten en zo het systeem voor te bereiden op die specifieke gebeurtenis. De sysctls hebben dezelfde namen als de parameters in loader.conf. Verwijzingen Meer informatie over ACPI staat op de volgende locaties: De &a.acpi; De ACPI mailinglijst archieven De oude ACPI mailinglijst archieven De ACPI 2.0 specificatie &os; Handleidingen: &man.acpi.4;, &man.acpi.thermal.4;, &man.acpidump.8;, &man.iasl.8;, &man.acpidb.8; DSDT debugging informatie. (Gebruikt Compaq als voorbeeld, maar van algemeen nut). diff --git a/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml index 45192d6ffa..0882ba0004 100644 --- a/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml @@ -1,4311 +1,4311 @@ René Ladan Vertaald door Opslag Overzicht Dit hoofdstuk behandelt het gebruik van schijven in &os;. Dit omvat geheugenschijven, schijven die met het netwerk verbonden zijn, SCSI/IDE-opslagapparaten en apparaten die gebruik maken van de USB-interface. Na het lezen van dit hoofdstuk weet de lezer: Welke terminologie &os; gebruikt om de gegevensindeling op een fysieke schijf te beschrijven (partities en slices); Hoe aanvullende harde schijven aan een systeem toe te voegen; Hoe &os; in te stellen om het gebruik te laten maken van USB-opslagapparaten; Hoe virtuële bestandssystemen, zoals geheugenschijven, aan te maken; Hoe quota te gebruiken om het schijfgebruik te beperken; Hoe schijven te versleutelen om ze tegen inbrekers te beschermen; Hoe vanuit &os; CD's en DVD's aan te maken en te branden; Wat de verschillende mogelijkheden zijn voor opslagmedia voor back-ups; Hoe back-upprogramma's te gebruiken die beschikbaar zijn in &os;; Hoe een back-up naar diskettes te maken; Wat snapshots zijn en hoe ze efficiënt te gebruiken. Aangeraden voorkennis: Hoe een nieuwe &os;-kernel in te stellen en te installeren (). Apparaatnamen De volgende lijst noemt de fysieke opslagapparaten die in &os; ondersteund worden, samen met de bijhorende namen. Naamconventies voor fysieke Schijven Type medium Apparaatnaam medium IDE harde schijven ad IDE CD-ROM-stations acd SCSI harde schijven en USB-apparaten voor massa-opslag da SCSI CD-ROM-schijven cd Overige niet-standaard-CD-ROM-stations mcd voor Mitsumi CD-ROM, scd voor Sony CD-ROM, matcd voor Matsushita/Panasonic CD-ROM Het stuurprogramma voor &man.matcd.4; is sinds 2002 uit de &os; 4.X-tak verwijderd en bestaat niet in &os; versies 5.0 en latere versies. Diskettestations fd SCSI bandstations sa IDE bandstations ast Flashdrives fla voor &diskonchip; flashapparaten RAID-schijven aacd voor &adaptec; AdvancedRAID, mlxd en mlyd voor &mylex;, amrd voor AMI &megaraid;, idad voor Compaq Smart RAID, twed voor &tm.3ware; RAID.
David O'Brien Origineel bijgedragen door Schijven toevoegen schijven toevoegen Stel dat het gewenst is om een nieuwe SCSI-schijf aan een machine toe te voegen die slechts een enkele drive heeft. Ten eerste dient de computer uitgeschakeld te worden en dient de schijf volgens de instructies van de computer, controller en schijffabrikant geïnstalleerd te worden. Wegens de grote variéteiten om dit soort procedures uit te voeren, vallen de details buiten het bereik van dit document. Er dient als gebruiker root ingelogd te worden. Nadat de schijf is toegevoegd, dient /var/run/dmesg.boot bekeken te worden om er zeker van te zijn dat de nieuwe schijf is gevonden. Volgens het voorbeeld heet de nieuw toegevoegde schijf da1 en die wordt gemount op /1 (als er een IDE-schijf wordt toegevoegd, is de apparaatnaam wd1 op systemen voorafgaand aan 4.0, en ad1 in 4.X- en 5.X-systemen). partities slices fdisk &os; draait op IBM-PC-compatibele computers. Daarom moet het rekening houden met de PC-BIOS-partities. Deze wijken af van de traditionele BSD-partities. Een PC-schijf bevat tot vier ingangen voor BIOS-partities. Indien de schijf geheel aan &os; wordt gewijd, kan de toegewijde-modus gebruikt worden. In het andere geval moet &os; binnen één van de vier PC-BIOS-partities draaien. De PC-BIOS-partities worden door &os; slices genoemd om ze niet met de traditionele BSD-partities te verwarren. Slices kunnen ook op een schijf worden gebruikt die toegewijd is aan &os;, maar in een computer zit die ook andere besturingssystemen heeft geïnstalleerd. Dit is een goede manier om verwarring met het programma fdisk van andere, niet-&os; besturingssystemen te voorkomen. Als er met slices gewerkt wordt, wordt de schijf toegevoegd als /dev/da1s1e. Dit moet worden gelezen als: SCSI-schijf, eenheid 1 (tweede SCSI-schijf), slice 1 (PC-BIOS-partitie 1) en BSD-partitie e. Als de schijf toegewijd is, wordt deze simpelweg als /dev/da1e toegevoegd. Omdat 32-bit-integers worden gebruikt om het aantal sectoren op te slaan, is &man.bsdlabel.8; (&man.disklabel.8; op &os; 4.X) beperkt tot 2^32-1 sectoren per schijf, wat meestal neerkomt op 2 TB. Het programma &man.fdisk.8; staat geen hogere startsector toe dan 2^32-1 en geen grotere lengte dan 2^32-1, meestal worden hiermee partities tot 2 TB begrensd en schijven tot 4 TB. Het formaat van &man.sunlabel.8; is beperkt tot 2^32-1 sectoren per partitie en 8 partities per schijf, in totaal dus 16 TB. Voor grotere schijven kan &man.gpt.8; worden gebruikt. &man.sysinstall.8; gebruiken sysinstall schijven toevoegen su Navigeren door <application>sysinstall</application> sysinstall (/stand/sysinstall in versies van &os; ouder dan 5.2) kan gebruikt worden om een nieuwe schijf te partitioneren en te labelen met eenvoudig te gebruiken menu's. Hiervoor dient òfwel als gebruiker root ingelogd te zijn, òfwel gebruik te worden gemaakt van su. Draai sysinstall en ga naar het menu Configure. Scroll binnen het &os; Configuration Menu naar beneden en kies de optie Fdisk. <application>fdisk</application> partitie-bewerker Eenmaal binnen fdisk kan a ingetypt worden om de gehele schijf voor &os; te gebruiken. Wanneer gevraagd wordt of het systeem compatibel dient te blijven met mogelijk toekomstige besturingssystemen, dient met YES geantwoord te worden. Met W kunnen de veranderingen naar de schijf worden geschreven. Nu dient de FDISK-bewerker verlaten te worden door het intypen van q. Vervolgens wordt er een vraag gesteld over het Master Boot Record. Omdat er een schijf aan een reeds draaiend systeem wordt toegevoegd, dient hier None gekozen te worden. Schijflabelbewerker BSD-partities Vervolgens dient sysinstall verlaten en opnieuw gestart te worden. Volg bovenstaande aanwijzingen, maar kies deze keer voor de optie Label. Dit geeft toegang tot de Disk Label Editor. Hier worden de traditionele BSD-partities aangemaakt. Een schijf kan tot acht partities bevatten, gelabeld a-h. Enkele partitielabels hebben een speciale functie. De partitie a wordt gebruikt voor de rootpartitie (/). Alleen de systeemschijf (bijvoorbeeld de schijf van waaruit opgestart wordt) moet een partitie a hebben. De partitie b wordt voor swappartities gebruikt, en het is mogelijk om vele schijven met swappartities te hebben. De partitie c adresseert de gehele schijf in toegewijde modus, of de gehele &os;-slice in slice-modus. De andere partities zijn voor algemeen gebruik. sysinstall's Labelbewerker heeft een voorkeur voor de partitie e voor niet-root-niet-swap-partities. Binnen de Labelbewerker dient een enkel bestandssysteem te worden aangemaakt door C in te typen. Kies FS wanneer gevraagd wordt of dit een FS (file system) of swap wordt, en geef een mountpunt in (bijvoorbeeld /mnt). Wanneer een schijf in post-installatie-modus wordt toegevoegd, maakt sysinstall geen ingangen aan in /etc/fstab, dus dan is het opgegeven mountpunt niet van belang. Nu kan het nieuwe label naar de schijf worden geschreven en er een bestandssysteem op aangemaakt worden. Dit kan gedaan worden door W in te typen. Fouten van sysinstall dat de nieuwe partitie niet gemount kon worden kunnen genegeerd worden. De Labelbewerker en sysinstall kunnen nu volledig verlaten worden. Afronden De laatste stap bestaat uit het bewerken van /etc/fstab om hier een regel voor de nieuwe schijf aan toe te voegen. Het gebruik van opdrachtregelgereedschappen Het gebruik van slices Deze installatie zorgt ervoor dat de schijf correct samenwerkt met andere besturingssystemen die eventueel op de computer zijn geïnstalleerd en dat de fdisk-gereedschappen van andere besturingssystemen niet verward raken. Het wordt aangeraden om deze methode te gebruiken voor de installatie van nieuwe schijven. Gebruik de toegewijde modus alleen als hier een goede reden voor bestaat! &prompt.root; dd if=/dev/zero of/dev/da1 bs=1k count=1 &prompt.root; fdisk -BI da1 # Initialiseer de nieuwe schijf. &prompt.root; disklabel -B -w -r da1s1 auto # Label de schijf. &prompt.root; disklabel -e da1s1 # Bewerk de zojuist aangemaakte schijflabel en voeg partities toe. &prompt.root; mkdir -p /1 &prompt.root; newfs /dev/da1s1e # Herhaal dit voor alle aangemaakte partities. &prompt.root; mount /dev/da1s1e /1 # Mount de partitie(s). &prompt.root; vi /etc/fstab # Voeg de juiste regel(s) aan /etc/fstab toe. Vervang voor een IDE-schijf da door ad. Op systemen voor 4.X dient wd gebruikt te worden. Toegewijd OS/2 Indien de nieuwe schijf niet met een ander besturingssysteem gedeeld wordt, kan de toegewijde modus gebruikt worden. Denk eraan dat deze modus besturingssystemen van Microsoft kan verwarren. Ze richten echter geen schade aan. IBM's &os2; fatsoeneert echter partities die het niet begrijpt. &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 &prompt.root; disklabel -Brw da1 auto &prompt.root; disklabel -e da1 # Maak de `e'-partitie aan. &prompt.root; newfs -d0 /dev/da1e &prompt.root; mkdir -p /1 &prompt.root; vi /etc/fstab # Voeg een regel voor /dev/da1e toe. &prompt.root; mount /1 Een alternatieve methode is: &prompt.root; dd if=/dev/zero of=/dev/da1 count=2 &prompt.root; disklabel /dev/da1 | disklabel -BrR da1 /dev/stdin &prompt.root; newfs /dev/da1e &prompt.root; mkdir -p /1 # Voeg een regel voor /dev/da1e toe. &prompt.root; mount /1 Sinds &os; 5.1-RELEASE is het oude programma &man.disklabel.8; vervangen door &man.bsdlabel.8;. In &man.bsdlabel.8; zijn een aantal overbodige opties en parameters verwijderd. In de bovenstaande voorbeelden dient de optie met &man.bsdlabel.8; weggelaten te worden. Meer informatie staat in de hulppagina van &man.bsdlabel.8;. RAID Software RAID Christopher Shumway Origineel werk van Jim Brown Herzien door RAID softwarematig RAID CCD Concatenated Disk Driver (CCD) instellingen Bij het kiezen van een medium voor massa-opslag zijn de belangrijkste afwegingen snelheid, betrouwbaarheid en kosten. Het komt zelden voor dat alle drie in balans zijn. Normaalgesproken is een snel, betrouwbaar apparaat voor massa-opslag duur en kosten sparen gaat ten koste van òfwel snelheid òfwel betrouwbaarheid. Bij het ontwerpen van het onderstaande systeem werd primair op de kosten gelet, gevolgd door snelheid en als laatste betrouwbaarheid. De overdrachtsnelheid van gegevens wordt voor dit systeem uiteindelijk beperkt door het netwerk. En hoewel betrouwbaarheid erg belangrijk is, wordt onderstaande CCD-schijf gebruikt voor het serven van on-line gegevens die reeds volledig op CD-R's zijn geback-upt en eenvoudig vervangen kunnen worden. De eerste stap in het kiezen van een massa-opslagoplossing is het bepalen van de eigen benodigdheden. Indien snelheid belangrijker is dan betrouwbaarheid of kosten, wijkt de oplossing af van het systeem dat in deze sectie wordt beschreven. Hardware installeren Als aanvulling op de IDE systeemschijf zijn drie Western Digital IDE-schijven van 30 GB, 5400 RPM vanuit de kern van de onderstaande CCD-schijf aanwezig, die ongeveer 90 GB aan on-line opslag bieden. Ideaal gezien heeft iedere IDE-schijf een eigen IDE-controller en kabel, maar om de kosten te minimaliseren zijn geen aanvullende IDE-kabels gebruikt. In plaats hiervan zijn de schijven zodanig met jumpers ingesteld dat elke IDE-controller één master en één slave heeft. Tijdens het opnieuw opstarten werd het systeem-BIOS zodanig ingesteld dat het automatisch de aangekoppelde schijven detecteerde. Het was belangrijker dat &os; ze tijdens het opnieuw opstarten herkende: ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33 Indien &os; niet alle schijven detecteert, moet gecontroleerd worden of de jumpers juist zijn ingesteld. De meeste IDE-schijven hebben ook een jumper voor Cable Select. Dit is niet de jumper voor de master/slave-instelling. Voor hulp met het identificeren van de juiste jumper dient de documentatie van de schijf geraadpleegd te worden. Vervolgens dient besloten te worden hoe ze deel gaan uitmaken van het bestandssysteem. Hiervoor dienen &man.vinum.8; () en &man.ccd.4; bestudeerd te worden. Voor deze instellingen werd voor &man.ccd.4; gekozen. CCD installeren Het stuurprogramma &man.ccd.4; biedt de mogelijkheid om meerdere identieke schijven aaneen te rijgen tot één logisch bestandssysteem. Om gebruik te kunnen maken van &man.ccd.4; is een kernel met ingebouwde ondersteuning voor &man.ccd.4; nodig. De volgende regel dient toegevoegd te worden aan het kernelinstellingenbestand en de kernel dient opnieuw gebouwd en geïnstalleerd te worden: pseudo-device ccd 4 Op 5.X-systemen dient de volgende regel gebruikt te worden: device ccd In &os; 5.X is het niet nodig om het aantal &man.ccd.4;-apparaten op te geven aangezien het &man.ccd.4;-apparaat nu zelfklonend is. Nieuwe instanties van het apparaat worden automatisch op verzoek aangemaakt. De ondersteuning voor &man.ccd.4; kan ook als kernelmodule geladen worden in &os; 3.0 en hoger. Om &man.ccd.4; te installeren dient eerst &man.disklabel.8; gebruikt te worden om de schijven te labelen: disklabel -r -w -ad1 auto disklabel -r -w ad2 auto disklabel -r -w ad3 auto Bovenstaande maakt een schijflabel aan voor ad1c, ad2c en ad3c die de gehele schijf beslaat. Sinds &os; 5.1-RELEASE is het oude programma &man.disklabel.8; vervangen door &man.bsdlabel.8;. In &man.bsdlabel.8; zijn een aantal overbodige opties en parameters verwijderd. In de bovenstaande voorbeelden dient de optie met &man.bsdlabel.8; weggelaten te worden. Meer informatie staat in de hulppagina van &man.bsdlabel.8;. Vervolgens dient het labeltype van de schijf veranderd te worden. Voor het bewerken van de schijven kan &man.disklabel.8; gebruikt worden: disklabel -e ad1 disklabel -e ad2 disklabel -e ad3 Dit zorgt ervoor dat het huidige schijflabel van elke schijf met de tekstverwerker wordt geopend die door de omgevingsvariabele EDITOR wordt gespecificeerd, vaak &man.vi.1;. Een ongewijzigd schijflabel ziet er ongeveer als volgt uit: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) Er dient een nieuwe partitie e toegevoegd te worden die door &man.ccd.4; gebruikt kan worden. Deze kan gewoonlijk van partitie c overgenomen worden, maar het moet 4.2BSD zijn. Het schijflabel ziet er nu ongeveer als volgt uit: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597) Bestandssysteem aanmaken Het kan zijn dat de apparaatnode voor ccd0c nog niet bestaat. Om deze aan te maken dienen de volgende commando's uitgevoerd te worden: cd /dev sh MAKEDEV ccd0 In &os; 5.0 beheert &man.devfs.5; automatisch apparaatnodes in /dev, dus is het niet nodig om MAKEDEV te gebruiken. Nu alle schijven gelabeld zijn, moet de &man.ccd.4; gebouwd worden. Om dit te doen, dient &man.ccdconfig.8; gebruikt te worden met opties die ongeveer gelijk zijn aan de volgende: ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e Hieronder staat het gebruik en de betekenis van elke optie: Het eerste argument is het in te stellen apparaat, in dit geval /dev/ccd0c. Het gedeelte /dev/ is optioneel. De interleave voor het bestandssysteem. De interleave definiëert de grootte van een stripe in schijfblokken, elk schijfblok is normaalgesproken 512 bytes groot. Een interleave van 32 is dus 16.384 bytes groot. Vlaggen voor &man.ccdconfig.8;. Indien het gewenst is om schijfspiegeling aan te zetten, kan er hier een vlag voor gespecificeerd worden. Deze opstelling biedt geen spiegeling voor &man.ccd.4;, dus is die op 0 (nul) ingesteld. De laatste argumenten voor &man.ccdconfig.8; zijn de apparaten die in de rij geplaatst dienen te worden. Voor elk apparaat dient de complete padnaam gebruikt te worden. Nadat &man.ccdconfig.8; gedraaid is, is de &man.ccd.4; ingesteld. Er kan een bestandssysteem worden geïnstalleerd. Er kan in &man.newfs.8; worden gekeken voor opties, of het draaien van het onderstaande commando is ook toereikend: newfs /dev/ccd0c Alles automatisch maken In het algemeen is het wenselijk om de &man.ccd.4; telkens te mouten wanneer er opnieuw opgestart wordt. Dit dient eerst ingesteld te worden. Met het volgende commando worden de huidige instellingen naar /etc/ccd.conf geschreven: ccdconfig -g > /etc/ccd.conf Tijdens het opstarten draait het script /etc/rc ccdconfig -C indien /etc/ccd.conf bestaat. Dit stelt automatisch de &man.ccd.4; in, zodat die kan worden gemount. Indien er in enkele-gebruiker-modus wordt opgestart, dient het volgende commando te worden uitgevoerd om de rij in te stellen voordat de &man.ccd.4; gemount kan worden: ccdconfig -C Om de &man.ccd.4; automatisch te mounten, kan er een regel voor de &man.ccd.4; in /etc/fstab geplaatst worden, zodat die tijdens het opstarten gemount wordt: /dev/ccd0c /media ufs rw 2 2 Volumebeheerder Vinum RAID software RAID Vinum De volumebeheerder Vinum is een blokstuurprogramma dat virtuele schijven implementeert. Het isoleert schijfhardware van de blokapparaat-interface en projecteert gegevens op een manier die de flexibiliteit, prestatie en betrouwbaarheid verhoogt in vergelijking met de traditionele slice-blik op schijfopslag. &man.vinum.8; implementeert de modellen RAID-0, RAID-1 en RAID-5, zowel individueel als als combinatie. In staat meer informatie over &man.vinum.8;. Hardwarematige RAID RAID hardwarematig &os; ondersteunt ook een verscheidenheid aan hardwarematige RAID-stuurprogramma's. Deze apparaten besturen een RAID-deelsysteem zonder dat er &os;-specifieke software nodig is om de rij te beheren. Door gebruik te maken van een BIOS die op de kaart aanwezig is, beheert de kaart de meeste schijfbewerkingen zelf. Nu volgt een korte beschrijving van een opzet waarbij een Promise IDE-stuurprogramma is gebruikt. Wanneer deze kaart geïnstalleerd en het systeem opgestart is, beeldt het een prompt af waarbij om informatie wordt gevraagd. De instructies dienen opgevolgd te worden om bij het instelscherm van de kaart te komen. Van hieruit kunnen alle aangekoppelde schijven gecombineerd worden. Nadat dit gedaan is, zien de schijven er voor &os; als één enkele schijf uit. Andere RAID-niveaus kunnen overeenkomstig ingesteld worden. ATA RAID1-rijen opnieuw bouwen Met &os; is het mogelijk om een defecte schijf in een rij te vervangen terwijl de computer aanstaat (hot replace). Hiervoor dient de schijf vóór het opnieuw opstarten vervangen te zijn. Waarschijnlijk is zoiets als het volgende in /var/log/messages of in de uitvoer van &man.dmesg.8; te zien: ad6 on monster1 suffered a hard error. ad6: READ command timeout tag=0 serv=0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices .. done ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\ status=59 error=40 ar0: WARNING - mirror lost Meer informatie kan met behulp van &man.atacontrol.8; gezocht worden: &prompt.root; atacontrol list ATA channel 0: Master: no device present Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present &prompt.root; atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED Ontkoppel schijf van de rij zodat deze veilig kan worden verwijderd: &prompt.root; atacontrol detach 3 Vervang de schijf. Koppel de schijf als een reserveschijf aan: &prompt.root; atacontrol attach 3 Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present De rij dient nu opnieuw opgebouwd te worden: &prompt.root; atacontrol rebuild ar0 Het rebuild-commando blijft hangen totdat het voltooid is. Het is echter wel mogelijk om een andere terminal te openen (door middel van AltFn) en de voortgang te controleren door middel van: &prompt.root; dmesg | tail -10 [uitvoer verwijderd] ad6: removed from configuration ad6: deleted from ar0 disk1 ad6: inserted into ar0 disk1 as spare &prompt.root; atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed Nu moet er gewacht worden tot de bewerking voltooid is. Marc Fonvieille Bijgedragen door USB-opslagapparaten USB schijven Veel externe opslagoplossingen gebruiken tegenwoordig de Universele Seriële Bus (USB): harde schijven, USB-duimdrives, CD-R-branders, etc. &os; biedt voor al dit soort apparaten ondersteuning. Instellen Het stuurprogramma &man.umass.4; biedt de ondersteuning voor USB-opslagapparaten. Indien de kernel GENERIC wordt gebruikt, hoeft er niets aan de instellingen gewijzigd te worden. Als er een eigen kernel wordt gebruikt, dienen de volgende regels in het kernelinstellingenbestand aanwezig zijn: device scbus device da device pass device uhci device ohci device usb device umass Het stuurprogramma &man.umass.4; gebruikt het subsysteem SCSI om toegang te krijgen tot de USB-opslagapparaten. Het USB-apparaat wordt door het systeem als een SCSI-apparaat gezien. Afhankelijk van de chipset op het moederbord is slechts òf device uhci òf device ohci nodig. Het kan echter geen kwaad om ze beiden in het kernelinstellingenbestand te hebben. Indien er regels zijn toegevoegd dient de kernel opnieuw gecompileerd en geïnstalleerd te worden. Indien het USB-apparaat een CD-R- of DVD-brander is, dient het SCSI CD-ROM-stuurprogramma &man.cd.4; met de volgende regel aan de kernel toegevoegd te worden: device cd Aangezien de brander als een SCSI-schijf gezien wordt, dient het stuurprogramma &man.atapicam.4; niet in de kernelinstellingen gebruikt te worden. Ondersteuning voor controllers voor USB 2.0 is aanwezig in &os; 5.X en in de 4.X-tak sinds &os; 4.10-RELEASE. Het volgende dient toegevoegd te worden aan het kernelinstellingenbestand voor ondersteuning voor USB 2.0: device ehci De stuurprogramma's &man.uhci.4; en &man.ohci.4; zijn nog steeds nodig voor USB 1.X-ondersteuning. Op &os; 4.X dient de USB-daemon (&man.usbd.8;) te draaien om sommige USB-apparaten te kunnen zien. Om die aan te zetten dient usbd_enable="YES" aan het bestand /etc/rc.conf toegevoegd te worden en de machine opnieuw gestart te worden. Instellingen testen De instellingen zijn klaar om getest te worden: het USB-apparaat dient aangesloten te worden en in de buffer voor systeemmeldingen (&man.dmesg.8;) dient het stuurprogramma ongeveer als volgt te verschijnen: umass0: USB Solid state disk, rev 1.10/1.00, addr 2 GEOM: create disk da0 dp=0xc2d74850 da0 at umass-sim0 bus 0 target 0 lun 0 da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device da0: 1.000MB/s transfers da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C) Uiteraard kunnen het merk, de apparaatnode (da0) en andere details verschillen naar gelang de instelling. Aangezien het USB-apparaat als een SCSI-apparaat gezien wordt, kan het commando camcontrol gebruikt worden om de USB-opslagapparaten weer te geven die aan het systeem gekoppeld zijn: &prompt.root; camcontrol devlist <Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0) Indien er een bestandssysteem op de schijf aanwezig is, kan dat gemount worden. biedt indien nodig hulp bij het formatteren en aanmaken van partities op de USB-drive. Indien het apparaat losgekoppeld wordt (nadat de schijf gedismount is), dient in de buffer voor systeemmeldingen iets als het volgende te zien te zijn: umass0: at uhub0 port 1 (addr2) disconnected (da0:umass-sim0:0:0:0): lost device (da0:umass-sim0:0:0:0): removing device entry GEOM: destroy disk da0 dp=0xc2d74850 umass0: detached Referenties Naast de onderdelen Schijven toevoegen en Bestandssystemen mounten en unmounten, kunnen de volgende hulppagina's ook nuttig zijn: &man.umass.4;, &man.camcontrol.8; en &man.usbdevs.8;. Mike Meyer Bijgedragen door Optische media (CD's) aanmaken en gebruiken CD-ROM's aanmaken Inleiding CD's hebben een aantal eigenschappen waardoor ze verschillen van conventionele schijven. Initieel zijn ze door de gebruiker niet beschrijfbaar. Ze zijn zó ontworpen dat ze continu, zonder vertragingen van het verplaatsen van de kop tussen tracks, gelezen kunnen worden. Ze zijn ook veel gemakkelijker tussen twee systemen te verplaatsen dan gelijksoortige media in hun tijd waren. CD's hebben tracks, maar die verwijzen naar secties van gegevens die continu gelezen dienen te worden en niet naar fysieke eigenschappen van de schijf. Om een CD op &os; te produceren, dienen de gegevensbestanden waaruit de tracks op de CD gaan bestaan te worden voorbereid, waarna de tracks op de CD worden geschreven. ISO 9660 bestandssystemen ISO 9660 Het bestandssysteem ISO 9660 is ontworpen om met deze verschillen om te gaan. Helaas codeert het bestandssysteemgrenzen die destijds gebruikelijk waren. Gelukkig biedt het een uitbreidingsmechanisme dat correct geschreven CD's toestaat om deze grenzen te overschrijden en nog steeds te werken met systemen die deze uitbreidingen niet ondersteunen. sysutils/cdrtools De port sysutils/cdrtools bevat &man.mkisofs.8;, een programma dat gebruikt kan worden om een gegevensbestand aan te maken dat een ISO 9660-bestandssysteem bevat. Het bevat opties die verschillende uitbreidingen ondersteunen en wordt hieronder beschreven. CD-brander ATAPI Het gereedschap om de CD te branden hangt af van het feit of de CD-brander ATAPI of iets anders is. ATAPI CD-branders gebruiken het programma burncd dat deel uitmaakt van het basissysteem. SCSI en USB CD-branders dienen cdrecord van de port sysutils/cdrtools te gebruiken. burncd ondersteunt een beperkt aantal stations. Om erachter te komen of een station ondersteund is, dient de lijst CD-R/RW ondersteunde stations te worden geraadpleegd. CD-brander ATAPI/CAM-stuurprogramma Indien &os; 5.X of &os; 4.8-RELEASE of hoger gedraaid wordt, is het mogelijk om cdrecord en andere gereedschappen voor SCSI-drives op ATAPI-hardware te gebruiken door middel van de module ATAPI/CAM. Indien CD-brandsoftware met een grafische gebruikersinterface gewenst is, is X-CD-Roast of K3b een mogelijkheid. Deze gereedschappen zijn beschikbaar als package of vanuit de ports sysutils/xcdroast en sysutils/k3b. X-CD-Roast en K3b hebben de module ATAPI/CAM met ATAPI-hardware nodig. mkisofs Het programma &man.mkisofs.8;, dat deel uitmaakt van de port sysutils/cdrtools, maakt een ISO 9660-bestandssysteem aan dat een beeld is van een boomstructuur in de &unix; bestandssysteem-namespace. De eenvoudigste gebruiksvorm is: &prompt.root; mkisofs -o beeldbestand.iso /pad/naar/boomstructuur bestandssystemen ISO 9660 Dit commando maakt een beeldbestand.iso aan dat een ISO 9660-bestandssysteem bevat dat een kopie is van de boomstructuur in /pad/naar/boomstructuur. Tijdens het proces beeldt het bestandsnamen af op namen die aan de beperkingen van het standaard ISO 9660-bestandssysteem voldoen en sluit het bestanden uit die namen hebben die niet karakteristiek zijn voor ISO-bestandssystemen. bestandssystemen HFS bestandssystemen Joliet Er is een aantal opties beschikbaar om over deze beperkingen heen te komen. In het bijzonder zet de Rock Ridge-uitbreidingen aan die gangbaar zijn voor &unix; systemen, zet de Rock Ridge-uitbreidingen aan die gebruikt worden op Microsoft-systemen en kan gebruikt worden om HFS-bestandssystemen aan te maken die door &macos; gebruikt worden. Voor CD's die alleen op &os;-systemen gebruikt gaan worden, kan gebruikt worden om alle restricties op bestandsnamen uit te zetten. Indien het met gebruikt wordt, maakt het een bestandssysteembeeld aan dat identiek is aan de &os;-boomstructuur van waaruit begonnen is, alhoewel het mogelijk is dat het zich op aantal manieren niet aan de ISO 9660-standaard houdt. CD-ROM's opstartbaar maken De laatste optie voor algemeen gebruik is . Deze wordt gebruikt om de plaats van het opstartbeeld aan te geven om een El Torito opstartbare CD te maken. Deze optie heeft een argument nodig, namelijk het pad naar een opstartbeeld dat het begin van de boomstructuur die naar de CD geschreven wordt voorstelt. Gewoonlijk maakt &man.mkisofs.8; een ISO-beeld aan in de zogenaamde diskette-emulatie-modus en verwacht het dus dat het beeldbestand exact 1200, 1440 of 2880 KB groot is. Sommige bootloaders, zoals degene die door de distributieschijven van &os; wordt gebruikt, gebruiken de emulatiemodus niet. In dat geval dient de optie gebruikt te worden. Dus indien /tmp/myboot een opstartbaar &os;-systeem met het beeldbestand in /tmp/myboot/boot/cdboot bevat, kan het beeld van een ISO 9660-bestandssysteem als volgt in /tmp/bootable.iso aangemaakt worden: &prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot Als dit gedaan is en vn ( &os; 4.X) of md (&os; 5.X) in de kernel is ingesteld, kan het bestandssysteem gemount worden voor &os; 4.X met: &prompt.root; vnconfig -e vn0c /tmp/bootable.iso &prompt.root; mount -t cd9660 /dev/vn0c /mnt Voor &os; 5.X met: &prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 &prompt.root; mount -t cd9660 /dev/md0 /mnt Nu kan gecontroleerd worden of /mnt en /tmp/myboot identiek zijn. Er zijn vele andere opties die met &man.mkisofs.8; gebruikt kunnen worden om het gedrag af te stemmen. In het bijzonder wijzigingen aan een ISO 9660-structuur en het aanmaken van Joliet- en HFS-schijven. Details staan in &man.mkisofs.8;. burncd CD-ROM's branden Indien er een ATAPI CD-brander aanwezig is, kan het commando burncd gebruikt worden om een ISO-beeld naar een CD te branden. burncd maakt deel uit van het basissysteem en is geïnstalleerd als /usr/sbin/burncd. Het gebruik is erg eenvoudig, aangezien het weinig opties heeft. &prompt.root; burncd -f cd-apparaat gegevens beeldbestand.iso fixate Het bovenstaande commando brandt een kopie van beeldbestand.iso naar cd-apparaat. Het standaardapparaat is /dev/acd0 (of /dev/acd0c op &os; 4.X). Opties om de schrijfsnelheid in te stellen, de CD na het branden uit te werpen en geluidsgegevens te schrijven staan in &man.burncd.8;. cdrecord Indien er geen ATAPI CD-brander aanwezig is, dient cdrecord gebruikt te worden om CD's te branden. cdrecord maakt geen deel uit van het basissysteem. Het dient òfwel vanuit de port in sysutils/cdrtools òfwel als package geïnstalleerd te worden. Veranderingen in het basissysteem kunnen ervoor zorgen dat binaire versies van dit programma falen, wat mogelijk tot een coaster leidt. Daarom dient òfwel de port bijgewerkt te worden als het systeem wordt bijgewerkt, òwel, als -STABLE gevolgd wordt, dient de port bijgewerkt te worden wanneer er een nieuwe versie beschikbaar komt. Hoewel cdrecord vele opties heeft, is het gebruik voor gewone situaties nog eenvoudiger dan dat van burncd. Een ISO 9660-beeld kan gebrand worden met: &prompt.root; cdrecord dev=device beeldbestand.iso Het lastige gedeelte in het gebruik van cdrecord is het vinden van de juiste . Om de juiste instelling te vinden, kan de vlag van cdrecord gebruikt worden, wat resultaten zoals de onderstaande kan geven: CD-ROM's branden &prompt.root; cdrecord -scanbus Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling Using libscg version 'schily-0.1' scsibus0: 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk 0,2,0 2) * 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * scsibus1: 1,0,0 100) * 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner 1,7,0 107) * Dit geeft de gepaste -waarden voor de apparaten in de lijst. De CD-brander dient gezocht te worden, waarna de drie getallen gescheiden door komma's gebruikt kunnen worden als de waarde voor . In dit geval is het CD-RW-apparaat 1,5,0, dus is de juiste invoer . Er zijn eenvoudigere manieren om deze waarde te specificeren. In &man.cdrecord.1; staan meer details. Hier staat ook informatie over geluidstracks, de snelheid instellen en meer. Audio-CD's dupliceren Een audio-CD kan gedupliceerd worden door de geluidsgegevens van de CD naar een serie bestanden te schrijven en deze bestanden daarna naar een lege CD te schrijven. Het proces verschilt licht tussen ATAPI- en SCSI-drives. SCSI-drives Onttrek cdda2wav de audio: &prompt.user; cdda2wav -v255 -D2,0 -B -Owav Schrijf met cdrecord de .wav-bestanden: &prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wav Controleer of 2,0 juist is opgegeven, zoals beschreven in . ATAPI-drives Het ATAPI CD-stuurprogramma maakt elke track beschikbaar als /dev/acddtnn, waarin d het stationsnummer is en nn het tracknummer is in twee decimale cijfers, dat indien nodig vooraf wordt gegaan door een nul. Dus is de eerste track op de eerste schijf /dev/acd0t01, de tweede /dev/acd0t02, de derde /dev/acd0t03, enzovoort. Controleer of de juiste bestanden in /dev bestaan. &prompt.root; cd /dev &prompt.root; sh MAKEDEV acd0t99 In &os; 5.0 maakt &man.devfs.5; automatisch ingangen in /dev aan en beheert deze, dus is het niet nodig om MAKEDEV te gebruiken. De track kan met &man.dd.1; onttrokken worden. Bij het onttrekken van de bestanden dient een specifieke blokgrootte gebruikt te worden. &prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352 &prompt.root;dd if=/dev/acd0t02 of=track2.cdr bs=2352 ... Brand de onttrokken bestanden met burncd. Er dient opgegeven te worden dat het geluidsbestanden zijn en dat burncd de schijf moet fixeren wanneer na afronding van het proces. &prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate Gegevens-CD's dupliceren Een gegevens-CD kan gekopieerd worden naar een beeldbestand dat functioneel gelijk is aan het beeldbestand dat met &man.mkisofs.8; gemaakt is en het kan gebruikt worden om elke gegevens-CD te dupliceren. Het hier gegeven voorbeeld neemt aan dat het CD-ROM-apparaat acd0 is. Voor &os; 4.X wordt een c toegevoegd aan het einde van de apparaatnaam om de volledige partitie, of in het geval van CD-ROM's, de volledige schijf aan te duiden. &prompt.root; dd if=/dev/acd0 of=bestand.iso bs=2048 Nu het beeld beschikbaar is, kan het naar CD geschreven worden zoals hierboven beschreven. Gegevens-CD's gebruiken Nu er een standaard gegevens-CD-ROM is aangemaakt moet deze waarschijnlijk gemount worden om de gegevens die er op staan te lezen. Normaalgesproken neemt &man.mount.8; aan dat een bestandssysteem van het soort ufs is. Als zoiets als onderstaande geprobeerd wordt komt er een klacht over Incorrect super block en geen mount: &prompt.root; mount /dev/cd0 /mnt De CD-ROM bevat geen UFS-bestandssysteem, dus pogingen om zo te mounten mislukken. Er dient aan &man.mount.8; verteld te worden dat het bestandssysteem van het soort ISO9660 is en dan werkt alles. Dit kan door de optie van &man.mount.8; op te geven. Het CD-ROM-apparaat /dev/cd0 onder /mnt mounten kan zo: &prompt.root; mount -t cd9660 /dev/cd0 /mnt De apparaatnaam (in dit voorbeeld /dev/cd0) kan afwijken, afhankelijk van de interface die de CD-ROM gebruikt. Verder voert de optie gewoon &man.mount.cd9660.8; uit. Bovenstaand voorbeeld kan verkort worden tot: &prompt.root; mount_cd9660 /dev/cd0 /mnt Het is in het algemeen mogelijk om gegevens-CD-ROMs van elke fabrikant op deze manier te gebruiken. Schijven met bepaalde uitbreidingen op ISO 9660 kunnen zich echter vreemd gedragen. Joliet-schijven bijvoorbeeld, slaan alle bestandsnamen op in twee-byte Unicode-karakters. De &os;-kernel spreekt (nog!) geen Unicode, dus verschijnen niet-Engelse karakters als vraagtekens. Als &os; 4.3 of later gedraaid wordt, bevat het CD9660-stuurprogramma haken om tijdens het draaien een geschikte Unicode-omzettabel te laden. Modules voor enkele veelgebruikte coderingen zijn beschikbaar via de port sysutils/cd9660_unicode.) Zo nu en dan kan Device not configured verschijnen als geprobeerd wordt om een CD-ROM te mounten. Dit betekent meestal dat het CD-ROM-station denkt dat er geen schijf in de lade ligt of dat het station niet zichtbaar is op de bus. Omdat het enkele seconden kan duren voordat een CD-ROM-station doorheeft dat er een CD-ROM in ligt, is geduld geboden. Soms wordt een SCSI CD-ROM gemist omdat het station niet genoeg tijd had om antwoord te geven op de busreset. Indien er een SCSI CD-ROM aanwezig is, dient de volgende optie aan de kernelinstellingen toegevoegd te worden en de kernel opnieuw gebouwd te worden. options SCSI_DELAY=15000 Dit zorgt ervoor dat de SCSI-bus 15 seconden pauzeert tijdens het opstarten opdat het CD-ROM-station elke gelegenheid krijgt om de busreset te beantwoorden. Rauwe gegevens-CD's branden Een bestand kan direct naar CD geschreven worden zonder een ISO 9660-bestandssysteem aan te maken. Sommige mensen doen dit voor back-updoeleinden. Dit gaat sneller dan een standaard-CD branden: &prompt.root; burncd -f /dev/acd1 -s 12 gegevens archief.tar.gz fixate Om de gegevens terug te halen die op zo'n CD gebrand zijn, is het noodzakelijk om gegevens van de rauwe apparaatnode te lezen: &prompt.root; tar xzvf /dev/acd1 Het is niet mogelijk om deze schijf te mounten zoals dat voor een normale CD-ROM gedaan wordt. Zo'n CD-ROM kan onder geen enkel besturingssysteem, behalve &os;, gelezen worden. Om de CD te kunnen mounten of gegevens te delen met een ander besturingssysteem, dient &man.mkisofs.8; gebruikt te worden, zoals boven beschreven is. Marc Fonvieille Bijgedragen door CD-brander ATAPI/CAM-stuurprogramma Het ATAPI/CAM-stuurprogramma gebruiken Dit stuurprogramma stelt ATAPI-apparaten (CD-ROM, CD-RW, DVD-stations, enzovoort) in staat om vanuit het SCSI-subsysteem benaderd te worden en maakt daarmee het gebruik van applicaties zoals sysutils/cdrdao of &man.cdrecord.1; mogelijk. Om dit stuurprogramma te gebruiken, is het noodzakelijk om de volgende regel aan het kernelinstellingenbestand toe te voegen: device atapicam Ook zijn de volgende regels in het kernelinstellingenbestand nodig, die meestal wel aanwezig zijn: device ata device scbus device cd device pass Hierna dient de nieuwe kernel opnieuw gebouwd en geïnstalleerd te worden en dient de machine opnieuw gestart te worden. Tijdens het opstartproces dient de brander als volgt te verschijnen: acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 cd0 at ata1 bus 0 target 0 lun 0 cd0: <MATSHITA CD-RW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device cd0: 16.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed Het station is nu toegankelijk via de apparaatnaam /dev/cd0. Om bijvoorbeeld een CD-ROM op /mnt te mounten: &prompt.root; mount -t cd9660 /dev/cd0 /mnt Als root kan het volgende commando gegeven worden om het SCSI-adres van de brander te verkrijgen: &prompt.root; camcontrol devlist <MATSHITA CD-RW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0) Dus 1,0,0 is het SCSI-adres dat met &man.cdrecord.1; en andere SCSI-toepassingen gebruikt dient te worden. Meer informatie over het ATAPI/CAM en het SCSI-systeem staat in de hulppagina's van &man.atapicam.4; en &man.cam.4;. Marc Fonvieille Bijgedragen door Andy Polyakov Met toevoegingen van Optische media (DVD's) aanmaken en gebruiken DVD branden Inleiding Vergeleken met de CD behoort de DVD de tot de volgende generatie van optische media-opslagtechnologie. De DVD kan meer gegevens bevatten dan enige CD en is tegenwoordig de standaard voor videopublicatie. Er kunnen vijf fysieke opneembare formaten gedefinieerd worden die opneembare DVD heten: DVD-R: dit was het eerst beschikbare opneembare DVD-formaat. De DVD-R-standaard is gedefinieerd door het DVD Forum. Dit formaat is voor eenmalig schrijven. DVD-RW: dit is de herschrijfbare versie van de DVD-R-standaard. Een DVD-RW kan tot ongeveer 1.000 maal herschreven worden. DVD-RAM: dit is ook een herschrijfbaar formaat dat door het DVD Forum ondersteund wordt. Een DVD-RAM kan gezien worden als een verwisselbare harde schijf. Dit medium is echter niet uitwisselbaar met de meeste DVD-ROM-stations en DVD-Video-spelers. Slechts enkele DVD-schrijvers ondersteunen het DVD-RAM-formaat. DVD+RW: dit is het herschrijfbare formaat dat is gedefinieerd door de DVD+RW Alliance. Een DVD+RW kan tot ongeveer 1.000 maal herschreven worden. DVD+R: dit formaat is de eenmalig beschrijfbare versie van het DVD+RW-formaat. Een enkellaags opneembare DVD kan maximaal 4.700.000.000 bytes bevatten, wat eigenlijk 4,38 GB of 4.485 MB is (1 kB is 1024 bytes). Er dient onderscheid gemaakt te worden tussen het fysieke medium en de toepassing. Een DVD-Video bijvoorbeeld is een specifiek bestandsschema dat op elk fysiek opneembaar DVD-medium geschreven kan worden: DVD-R, DVD+R, DVD-RW, enzovoort. Voordat het mediumtype gekozen wordt, dient het zeker te zijn dat zowel de brander als de DVD-Video-speler (een onafhankelijke speler of een DVD-ROM-station in een computer) overweg kunnen met het overwogen medium. Instellingen Het programma &man.growisofs.1; wordt gebruikt om DVD's op te nemen. Dit commando is deel van de dvd+rw-tools gereedschappen (sysutils/dvd+rw-tools>). dvd+rw-tools ondersteunt alle types DVD-media. Deze gereedschappen gebruiken het SCSI-subsysteem om toegang tot de apparaten te krijgen, daarvoor moet ondersteuning voor ATAPI/CAM aan de kernel toegevoegd worden. Indien de brander de USB-interface gebruikt, is deze toevoeging nutteloos en dient gelezen te worden voor meer details over het instellen van USB-apparaten. De DMA-toegang voor ATAPI-apparaten dient ook aangezet te worden door de volgende regel aan het bestand /boot/loader.conf toe te voegen: hw.ata.atapi_dma="1" Voordat de dvd+rw-tools gebruikt kunnen worden, dienen de dvd+rw-tools' hardware compatibility notes geraadpleegd te worden voor enige informatie die betrekking heeft op de DVD-brander. Indien een grafische gebruikersinterface gewenst is, is K3b (sysutils/k3b), die een gebruikersvriendelijke interface biedt voor &man.growisofs.1; en vele andere brandprogramma's, het bekijken waard. Gegevens-DVD's branden Het commando &man.growisofs.1; is een frontend voor mkisofs. Het roept &man.mkisofs.8; aan om het bestandssysteemoverzicht aan te maken en het schrijft naar de DVD. Hierdoor is het niet nodig om een beeld van de gegevens aan te maken voordat met branden begonnen wordt. Om de gegevens uit de map /pad/naar/gegevens op een DVD+R of een DVD-R te branden: &prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /pad/naar/gegevens De opties worden doorgegeven aan &man.mkisofs.8; voor het aanmaken van het bestandssysteem (in dit geval een ISO 9660-bestandssysteem met Joliet en Rock Ridge uitbreidingen). Meer details staan in de hulppagina &man.mkisofs.8;. De optie wordt gebruikt voor het opnemen van de eerste sessie, ook bij meerdere sessies. Het DVD-apparaat, /dev/cd0, dient aan de hand van de instellingen aangepast te worden. De parameter sluit de schijf zodat er niets aan de opname toegevoegd kan worden. Dit zou als tegenprestatie betere uitwisselbaarheid met DVD-ROM-stations moeten geven. Het is ook mogelijk om een vooraf gemastered beeld te branden, om bijvoorbeeld het beeld beeldbestand.iso te branden: &prompt.root; growisofs -dvd-compat -Z /dev/cd0=beeldbestand.iso De schrijfsnelheid moet automatisch gedetecteerd en ingesteld worden, afhankelijk van het medium en het gebruikte station. Om de schrijfsnelheid te forceren, dient de parameter gebruikt te worden. Meer informatie staat in de hulppagina &man.growisofs.1;. DVD DVD-Video DVD-Video branden Een DVD-Video is een specifiek bestandsschema dat gebaseerd is op de ISO 9660 en de micro-UDF (M-UDF) specificaties. DVD-Video heeft ook een specifieke hiërarchie voor de gegevensstructuur, de reden waarom een speciaal programma zoals multimedia/dvdauthor nodig is om de DVD te schrijven. Indien er reeds een beeld van het bestandssysteem van de DVD-Video beschikbaar is, kan het zoals elk ander beeld gebrand worden. In de vorige sectie staat een voorbeeld. Als het resultaat voor de inhoud voor de DVD bijvoorbeeld in de map /pad/naar/video staat, kan de DVD-Video als volgt gebrand worden: &prompt.root; growisofs -Z /dev/cd0 -dvd-video /pad/naar/video De optie wordt doorgegeven aan &man.mkisofs.8; en geeft het opdracht om een bestandssysteemschema voor een DVD-Video aan te maken. Verder impliceert de optie de optie van &man.growisofs.1;. DVD DVD+RW DVD+RW gebruiken In tegenstelling tot een CD-RW dient een nieuwe DVD+RW voor het eerste gebruik geformatteerd te worden. Het programma &man.growisofs.1; regelt dit automatisch als nodig. Dit is de aanbevolen manier. Het is ook mogelijk om dvd+rw-format te gebruiken om een DVD+RW te formatteren: &prompt.root; dvd+rw-format /dev/cd0 Deze operatie hoeft slechts één maal uitgevoerd te worden. Onthoud dat alleen nieuwe DVD+RW-media geformatteerd dienen te worden. Daarna is het mogelijk om de DVD+RW op dezelfde manier te branden zoals in bovenstaande secties staat vermeldt. Om nieuwe gegevens op een DVD+RW te branden (een geheel nieuw bestandssysteem branden, niet wat gegevens toevoegen), is het niet nodig om deze te wissen. Het is voldoende om de vorige opname te overschrijven (tijdens het aanmaken van een initiële sessie), zoals hieronder: &prompt.root; growisofs -Z /dev/cd0 -J -R /pad/naar/nieuwe gegevens Het DVD+RW-formaat biedt de mogelijkheid om eenvoudig nieuwe gegevens aan een vorige opname toe te voegen. De operatie bestaat uit het samenvoegen van een nieuwe sessie en de bestaande. Het is geen multisessie-schrijven. &man.growisofs.1; laat het ISO 9660-bestandssysteem dat aanwezig is op het medium groeien. Om gegevens aan de vorige DVD+RW toe te voegen: &prompt.root; growisofs -M /dev/cd0 -J -R /pad/naar/volgende gegevens Dezelfde opties van &man.mkisofs.8; die gebruikt werden om de initiële sessie te branden, dienen gebruikt te worden tijdens schrijfsessies. De optie kan gebruikt worden als betere uitwisselbaarheid met DVD-ROM-stations gewenst is. In het geval van een DVD+RW verhindert dit het toevoegen van gegevens niet. Om het medium te wissen: &prompt.root; growisofs -Z /dev/cd0=/dev/zero DVD DVD-RW DVD-RW gebruiken Een DVD-RW accepteert twee schijfformaten: de incrementele sequentiële en beperkt overschrijven. Standaard zijn DVD-RW-schijven in het sequentiële formaat. Een nieuwe DVD-RW kan direct beschreven worden zonder deze te formatteren. Een gebruikte DVD-RW in sequentieel formaat dient echter gewist te worden voordat het mogelijk is om een nieuwe initiële sessie te schrijven. Om een DVD-RW in sequentiële toestand te wissen, dient het volgende gedaan te worden: &prompt.root; dvd+rw-format -blank=full /dev/cd0 Volledig wissen () neemt ongeveer één uur in beslag op een 1x-medium. Het is mogelijk om snel te wissen door gebruik te maken van de optie als de DVD-RW in Disk-At-Once-modus (DAO) wordt opgenomen. Om de DVD-RW in DAO-modus te branden: &prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=beeldbestand.iso De optie is niet nodig aangezien &man.growisofs.1; probeert om minimale (snel gewiste) media te detecteren en gebruik te maken van DAO-schrijven. Eigenlijk moet beperkt overschrijven gebruikt worden met elke DVD-RW. Dit formaat is flexibeler dan het standaard incrementeel sequentiële. Om gegevens op een sequentiële DVD-RW te schrijven, worden dezelfde instructies gebruikt als voor de andere DVD-formaten: &prompt.root; growisofs -Z /dev/cd0 -J -R /pad/naar/gegevens Om wat gegevens aan de vorige opname toe te voegen, dient de optie van &man.growisofs.1; gebruikt te worden. Als echter gegevens aan een DVD-RW in incrementeel sequentiële modus worden toegevoegd, wordt een nieuwe sessie op de schijf aangemaakt wat resulteert in een multisessie schijf. Een DVD-RW in het beperkt overschrijven formaat hoeft niet gewist te worden vóór een nieuwe initiële sessie. Het is voldoende om de schijf te overschrijven met de optie , wat analoog is aan het geval van de DVD+RW. Het is ook mogelijk om een bestaand ISO 9660-bestandssysteem te laten groeien op soortgelijke wijze als voor een DVD+RW met de optie . Het resultaat is een enkelsessie DVD. Om een DVD-RW in het beperkt overschrijven-formaat te zetten: &prompt.root; dvd+rw-format /dev/cd0 Om terug te gaan naar het sequentiële formaat: &prompt.root; dvd+rw-format -blank=full /dev/cd0 Multisessie Multisessie DVD's worden door zeer weinig DVD-ROM-stations geaccepteerd en meestal lezen ze hopelijk tenminste de eerste sessie. DVD+R, DVD-R en DVD-RW kunnen in het sequentiële formaat meerdere sessies accepteren. Het idee van meerdere sessies bestaat niet voor de formaten DVD+RW en DVD-RW in beperkt overschrijven. Om een nieuwe sessie achter een initiële (niet-gesloten) sessie op een DVD+R, DVD-R of DVD-RW in sequentieel formaat toe te voegen: &prompt.root; growisofs -M /dev/cd0 -J -R /pad/naar/volgende gegevens Het gebruik van dit commando met een DVD+RW of een DVD-RW in beperkt overschrijven-formaat voegt gegevens toe door de nieuwe sessie samen te voegen met de bestaande. Dit leidt tot een enkelsessie schijf. Deze manier kan gebruikt worden om gegevens achter een initiële sessie aan deze media toe te voegen. Op deze media wordt wat ruimte gebruikt tussen elke sessie om het einde en begin van de sessies aan te geven. Daarom dienen sessies met grote hoeveelheden gegevens toegevoegd te worden om de mediaruimte te optimaliseren. Het aantal sessies is beperkt tot 154 voor een DVD+R, ongeveer 2000 voor een DVD-R en 127 voor een dubbellaags DVD+R. Meer informatie Om meer informatie over een DVD te verkrijgen kan het commando dvd+rw-mediainfo /dev/cd0 met de schijf in het station gebruikt worden. Meer informatie over dvd+rw-tools staat in de hulppagina &man.growisofs.1;, op de dvd+rw-tools website en in de archieven van de cdwrite mailing list. De uitvoer van dvd+rw-mediainfo met betrekking tot de resulterende opname of het medium met problemen is verplicht voor elk probleemrapport. Zonder deze uitvoer volgt geen hulp. Julio Merino Origineel werk door Martin Karlsson Herschreven door Diskettes aanmaken en gebruiken Soms is het opslaan van gegevens op een diskette nuttig, bijvoorbeeld als er geen andere verwijderbare opslagmedia beschikbaar zijn of als kleine hoeveelheden gegevens naar een andere computer moeten worden overgedragen. In deze sectie wordt beschreven hoe diskettes in &os; gebruikt dienen te worden. Hier worden hoofdzakelijk het formatteren en gebruik van 3,5 inch DOS-diskettes behandeld, maar de concepten zijn vergelijkbaar voor andere disketteformaten. Diskettes formatteren Het apparaat Diskettes worden benaderd door ingangen in /dev, net zoals andere apparaten. Om de rauwe diskette in 4.X en eerdere versies te benaderen, dient /dev/fdN, waar N voor het stationsnummer staat, gewoonlijk 0, of /dev/fdNX, waar X voor een letter staat, gebruikt te worden. In 5.0 en nieuwere versies dient simpelweg /dev/fdN gebruikt te worden. Schijfgrootte in 4.X en eerdere versies Er zijn ook apparaten /dev/fdN.grootte waar grootte een diskettegrootte in kB is. Deze ingangen worden tijdens het formatteren op laag niveau gebruikt om de schijfgrootte te bepalen. In de volgende voorbeelden wordt 1440 kB als grootte gebruikt. Soms is het nodig om de ingangen in /dev (opnieuw) aan te maken: &prompt.root; cd /dev && ./MAKEDEV "fd*" Schijfgrootte in 5.0 en latere versies In 5.0 beheert &man.devfs.5; automatisch de apparaatnodes in /dev, dus is het niet nodig om MAKEDEV te gebruiken. De gewenste schijfgrootte wordt met de vlag doorgegeven aan &man.fdformat.1;. De ondersteunde groottes staan vermeld in &man.fdcontrol.8;, maar 1440kB werkt het beste. Formatteren Een diskette dient op laag niveau geformatteerd te worden voordat deze kan worden gebruikt. Dit wordt meestal door de fabrikant gedaan, maar formatteren is een goede manier om de integriteit van het medium te controleren. Hoewel het mogelijk is om grotere (of kleinere) schijfgroottes te forceren, zijn de meeste diskettes ontworpen voor 1440kB. Een diskette kan op laag niveau geformatteerd worden met &man.fdformat.1;. Dit gereedschap verwacht de apparaatnaam als parameter. Op basis van eventuele foutmeldingen kan bepaald worden of een schijf goed of slecht is. Formatteren in 4.X en eerdere versies Voor het formatteren van een diskette dienen de apparaten /dev/fdN.grootte gebruikt te worden. Nadat een 3,5 inch diskette in het station is gestoken: &prompt.root; /usr/sbin/fdformat /dev/fd0.1440 Formatteren in 5.0 en latere versies Voor het formatteren van de diskette dienen de apparaten /dev/fdN gebruikt te worden. Nadat een 3,5 inch diskette in het station is gestoken: &prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0 Schijflabels Nadat de diskette op laag niveau is geformatteerd, dient er schijflabel aan gekoppeld te worden. Dit schijflabel wordt later vernietigd, maar het systeem heeft het nodig om later de grootte en de geometrie van de schijf te bepalen. Het nieuwe schijflabel neemt de gehele schijf over en bevat alle benodigde informatie over de geometrie van de diskette. De geometriewaarden van het schijflabel staan vermeld in /etc/disktab. Nu kan &man.disklabel.8; als volgt gedraaid worden: &prompt.root; /sbin/disklabel -B -r -w /dev/fd0 fd1440 Sinds &os; 5.1-RELEASE is het oude programma &man.disklabel.8; vervangen door &man.bsdlabel.8;. In &man.bsdlabel.8; zijn een aantal overbodige opties en parameters verwijderd. In de bovenstaande voorbeelden dient de optie met &man.bsdlabel.8; weggelaten te worden. Meer informatie staat in de hulppagina van &man.bsdlabel.8;. Bestandssystemen Nu is de diskette klaar om op hoog niveau geformatteerd te worden. Hiermee wordt een nieuw bestandssysteem opgezet, wat &os; in staat stelt om naar de schijf te lezen en te schrijven. Nadat het nieuwe bestandssysteem is aangemaakt, wordt het schijflabel vernietigd, dus om de schijf te herformatteren is het noodzakelijk om het schijflabel opnieuw aan te maken. Het bestandssysteem voor diskettes kan zowel UFS als FAT zijn. FAT is over het algemeen een betere keuze voor diskettes. Om een nieuw bestandssysteem op de diskettes te zetten: &prompt.root; /sbin/newfs_msdos /dev/fd0 De schijf is nu klaar voor gebruik. Diskettes gebruiken Om de diskette te gebruiken kan &man.mount.msdos.8; (in 4.X en eerdere versies) of &man.mount.msdosfs.8; (in 5.0 en nieuwere versies) gebruikt worden om het medium te mounten. Ook kan emulators/mtools uit de Portscollectie worden gebruikt. Gegevensbanden aanmaken en gebruiken bandmedia De belangrijkste bandmedia zijn de 4mm, 8mm, QIC, mini-cartridge en DLT. 4mm (DDS: Digital Data Storage) bandmedia DDS (4mm) banden bandmedia QIC banden 4mm-banden vervangen steeds vaker QIC-banden als back-upmedium voor werkstations. Deze trend werd versneld toen Connor Archive, een toonaangevende fabrikant van QIC-stations, overnam en daarna de productie van QIC-stations stopte. 4mm-stations zijn klein en stil maar genieten niet de betrouwbaarheidsreputatie van 8mm-stations. De cartridges zijn minder duur en kleiner (3 x 2 x 0,5 inch, 76 x 51 x 12 mm) dan 8mm-cartridges. Net zoals bij 8mm hebben de koppen bij 4mm een vergelijkbaar kort leven, omdat beiden gebruik maken van een helische scan. De gegevensdoorvoer op deze stations begint bij ongeveer 150 kB/s, met pieken van 500 kB/s. De opslagcapaciteit begint bij 1,3 GB en eindigt bij 2,0 GB. Hardwarecompressie, die voor de meeste stations beschikbaar is, zorgt voor ongeveer een verdubbeling van de capaciteit. Bibliotheekeenheden van multi-station bandbiliotheken kunnen 6 stations in een enkel kabinet bevatten met automatische wisseling van de banden. De capaciteit van een bibliotheek loopt op tot 240 GB. Door de DDS-3-standaard worden bandcapaciteiten van 12 GB (of 24 GB met compressie) ondersteund. Net als 8mm-drives gebruiken 4mm-drives helische scan. Alle voor- en nadelen van helische scan gelden voor zowel 4mm- als 8mm-stations. Banden dienen na 2.000 maal of 100 volledige back-ups afgedankt te worden. 8mm (Exabyte) bandmedia Exabyte (8mm) banden 8mm-banden zijn de meest gebruikte SCSI-banden. Ze vormen de beste keuze met betrekking tot het uitwisselen van banden. Bijna elk bedrijf heeft een Exabyte 2 GB 8mm-bandstation. 8mm-stations zijn betrouwbaar, gemakkelijk en stil. Cartridges zijn niet duur en klein (4,8 x 3,3 x 0,6 inch; 122 x 84 x 15 mm). Een nadeel van 8mm-banden is de relatief korte levensduur van de kop en band vanwege de hoge mate van relatieve beweging tussen de band en de koppen. De gegevensdoorvoer varieert van ~250 kB/s tot ~500 kB/s. De gegevensomvang begint bij 300 MB en kan oplopen tot 7 GB. Hardwarecompressie, waarmee de meeste stations van deze soort zijn uitgerust, zorgt voor ongeveer een verdubbeling van de capaciteit. Deze stations zijn los of als multi-station bandbiliotheken met 6 stations en 120 banden in een enkele kast beschikbaar. In het laatste geval worden banden automatisch per stuk verwisseld. De capaciteit van een bibliotheek kan oplopen tot meer dan 840 GB. Het model Mammoth van Exabyte ondersteunt een een capaciteit van 12 GB (24 GB met compressie) per band en kost ongeveer twee maal zoveel als een gewoon bandstation. Gegevens worden door middel van helische scan op de band gezet en de koppen zijn onder een hoek (ongeveer 6 graden) op het medium gepositioneerd. De band wordt 270 graden om de spoel gewikkeld die de koppen vasthoudt. Dit resulteert in een hoge gegevensdichtheid en dicht bij elkaar staande sporen die een hoek van de ene naar de andere kant van de band maken. QIC bandmedia QIC-150 De banden en stations voor de QIC-150 zijn misschien de meest voorkomende bandstations en bandmedia. QIC-bandstations zijn de minst dure serieuze back-upstations. Het nadeel is de prijs van de media. QIC-banden zijn duur in vergelijking met 8mm- of 4mm-banden. De prijs per GB opslagruimte kan tot 5 maal zo hoog zijn. Indien een half dozijn banden toereikend is, zijn QIC-banden waarschijnlijk de juiste keuze. QIC is het meest voorkomende bandstation. Elk bedrijf heeft QIC-stations met een bepaalde capaciteit. QIC heeft namelijk een groot aantal capaciteiten per type band, die fysiek vergelijkbaar (soms identiek) zijn. QIC-banden zijn niet stil. Deze stations maken een hoorbaar geluid tijdens het zoeken voordat ze beginnen met het opnemen van gegevens en zijn duidelijk hoorbaar tijdens het lezen, schrijven en zoeken. QIC-banden zijn 6 x 4 x 0,7 inch of 152 x 102 x 17 mm groot. De gegevensdoorvoer varieert van ~150 kB/s tot ~500 kB/s. Hardwarecompressie is mogelijk met veel van de nieuwere bandstations. QIC-stations worden steeds minder vaak geïnstalleerd. Ze worden vervangen door DAT-stations. Gegevens worden in sporen op de band gezet. De sporen lopen parallel aan de lange as van het bandmedium van het ene naar het andere einde. Het aantal sporen, en daarmee de breedte van een spoor, varieert met de capaciteit van de band. De meeste, zo niet alle, nieuwe stations bieden achterwaartse leescompatibiliteit (en vaak ook achterwaartse schrijfcompabiliteit). QIC heeft een goede reputatie op het gebied van gegevensveiligheid (de mechanismen zijn eenvoudiger en robuuster dan die van helische scan-stations). Banden dienen na 5.000 back-ups afgedankt te worden. DLT bandmedia DLT DLT-banden hebben de snelste gegevensdoorvoer van alle hiergenoemde bandstations. De band van 1/2 inch (12,5 mm) zit in een cartridge (4 x 4 x 1 inch; 100 x 100 x 25 mm) op één enkele haspel. De cartridge heeft een opklapbare opening aan één gehele kant van de cartridge. Het mechanisme van het station opent deze opening om de bandleider eruit te halen. De bandleider heeft een ovaal gat dat door het station gebruikt wordt om de band vast te zetten. De haspel die de band aanpakt is in het bandstation gesitueerd. Bij alle andere bandcartridges die hier genoemd zijn (9-sporige banden zijn de enige uitzondering) zitten zowel de haspel die de band levert als de haspel die de band aanpakt in de bandcartridge zelf. De gegevensdoorvoer bedraagt ongeveer 1.5 MB/s, drie maal de doorvoer van 4mm-, 8mm-, en QIC-bandstations. De gegevenscapaciteit varieert van 10 GB tot 20 GB per stations. Stations zijn als meerdere-bandwisselaars en als bibliotheken van meerdere banden en meerdere stations beschikbaar, die 5 tot 900 banden bevatten verspreid over 1 tot 20 stations, waardoor een opslagcapaciteit van 50 GB tot 9 TB geleverd wordt. Met compressie levert het formaat DLT Type IV tot 70 GB aan capaciteit. Gegevens worden in sporen die parallel aan de looprichting lopen op de band gezet (net als met QIC-banden). Er worden twee sporen per keer geschreven. De levensduur van de lees- en schrijfkoppen is relatief lang. Als de band eenmaal stilstaat, is er geen relatieve beweging tussen de koppen en de band. AIT bandmedia AIT AIT is een nieuw formaat van Sony dat (met compressie) tot 50 GB gegevens per band kan bevatten. De band bevat geheugenchips die een index van de inhoud van de band bevatten. Deze index kan snel door het bandstation gelezen worden voor het bepalen van de positie van bestanden op de band, in plaats van de enkele minuten die nodig zijn voor andere banden. Software als SAMS:Alexandria kan meer dan veertig AIT-bandbibliotheken beheren, waarbij het direct met de geheugenchip van de band communiceert om de inhoud op het scherm te tonen, om te bepalen welke bestanden naar welke band zijn geback-upped en om de correcte band te vinden, laden en de gegevens ervan terug te zetten. Dit soort bibliotheken kosten rond de $ 20.000, waardoor ze enigszins boven het budget van de hobbyist liggen. Eerste gebruik van een nieuwe band Als de eerste keer van een nieuwe, geheel lege band wordt gelezen of ernaar wordt geschreven, mislukt dit. Het bericht op de console zier er analoog aan het volgende uit: sa0(ncr1:4:0): NOT READY asc:4,1 sa0(ncr1:4:0): Logical unit is in process of becoming ready De band bevat geen Identifier Block (bloknummer 0). Alle QIC-bandstations sinds de adoptie van de standaard QIC-525 schrijven een Identifier Block naar de band. Er zijn twee oplossingen: mt fsf 1 zorgt ervoor dat het bandstation een Identifier Block naar de band schrijft. De knop aan de voorkant van het paneel dient gebruikt te worden om de band uit te werpen. De band dient opnieuw in het station gestoken te worden en met dump worden gegevens naar de band gedumpt. dump geeft DUMP: End of tape detected en de console laat het volgende zien:HARDWARE FAILURE info:280 asc:80,96. De band kan met mt rewind teruggespoeld te worden. Hierna zijn alle bandbewerkingen succesvol. Naar diskettes back-uppen Kunnen diskettes gebruikt worden om gegevens te back-uppen? back-updiskettes diskettes Diskettes zijn niet bepaald een geschikt medium om back-ups mee te maken, omdat: Het medium onbetrouwbaar is, in het bijzonder op de langere termijn; Het back-uppen en terugzetten erg traag is; Diskettes een zeer beperkte capaciteit hebben. De tijden dat een hele harde schijf naar een tiental diskettes kon worden geback-upped zijn allang verstreken. Maar als er geen andere manier beschikbaar is om de gegevens te back-uppen, is een back-up naar diskettes beter dan helemaal geen back-up. Gebruikte diskettes moet van goede kwaliteit zijn. Diskettes die al jaren op kantoor rondgeslingerd hebben, zijn een slechte keuze. In het ideale geval dienen nieuwe diskettes van een reputabele fabrikant gebruikt te worden. Hoe de gegevens naar diskettes back-uppen? Het beste kan naar diskettes worden geback-upped door gebruik te maken van &man.tar.1; met de optie (meerdere volumes), die back-ups over meerdere diskettes ondersteunt. Om alle bestanden in de huidige map en de submappen te back-uppen (als root): &prompt.root; tar Mcvf /dev/fd0 * Als de eerste diskette vol is, vraagt &man.tar.1; om het volgende volume. Omdat &man.tar.1; media-onafhankelijk is, refereert het aan volumes, in deze context diskettes. Prepare volume #2 for /dev/fd0 and hit return: Dit wordt herhaald (met oplopend volumenummer) totdat alle gespecificeerde bestanden zijn geback-upped. Kunnen back-ups gecomprimeerd worden? tar gzip compressie Helaas staat &man.tar.1; het gebruik van de optie niet toe voor archieven over meerdere volumes. Het is uiteraard mogelijk om alle bestanden met &man.gzip.1; te comprimeren, ze met &man.tar.1; op diskettes te zetten en ze daarna met &man.gunzip.1; weer te decomprimeren! Hoe worden de back-ups teruggezet? Om een volledige archief terug te zetten: &prompt.root; tar Mxvf /dev/fd0 Er zijn twee manieren om alleen specifieke bestanden terug te zetten. Ten eerste kan met de eerste diskette begonnen worden: &prompt.root; tar Mxvf /dev/fd0 bestandsnaam Het programma &man.tar.1; vraagt om de vervolgdiskettes totdat het benodigde bestand is gevonden. Als alternatief kan, als bekend is op welke diskette het bestand staat, de betreffende diskette worden ingestoken en bovenstaand commando gebruikt worden. Als het eerste bestand op de diskette een vervolg is van de vorige diskette, waarschuwt &man.tar.1; dat het bestand niet teruggezet kan worden, zelfs als hier niet om gevraagd is! Back-upbeginselen De drie grote back-upprogramma's zijn &man.dump.8;, &man.tar.1; en &man.cpio.1;. Dump en Restore back-upsoftware dump / restore dump restore De traditionele back-upprogramma's voor &unix; zijn dump en restore. Deze zien het station als een verzameling van schijfblokken, onder de abstracties van bestanden, koppelingen en mappen die door de bestandssystemen worden aangemaakt. dump verzorgt een back-up van een compleet bestandssysteem op een apparaat. Het is niet in staat om slechts een gedeelte van een bestandssysteem of een mapstructuur die meer dan één bestandssysteem in beslag neemt te back-uppen. dump schrijft geen bestanden en mappen naar band, maar de rauwe gegevensblokken waaruit de bestanden en mappen bestaan. Indien dump op een hoofdmap wordt gebruikt, wordt er geen back-up gemaakt van /home , /usr of van de vele andere mappen, aangezien dit typisch mountpunten voor andere bestandssystemen of symbolische koppelingen binnen deze bestandssystemen zijn. dump bevat eigenaardigheden die uit de begintijd in Versie 6 van AT&T &unix; (circa 1975) zijn overgebleven. De standaardparameters zijn geschikt voor banden met 9 sporen (6.250 bpi), niet voor de media met hoge dichtheid die vandaag beschikbaar zijn (tot 62.182 ftpi). Deze standaardwaarden dienen op de opdrachtregel overschreven te worden om de capaciteit van de huidige bandstations te benutten. .rhosts Het is ook mogelijk om gegevens met rdump en rrestore over een netwerk naar een bandstation dat aan een andere computer gekoppeld is te back-uppen. Beide programma's maken gebruik van &man.rcmd.3; en &man.ruserok.3; om toegang tot het bandstation op afstand te krijgen. De gebruiker die de back-up uitvoert moet vermeld staat in het bestand .rhosts op de computer op afstand. De argumenten die aan rdump en rrestore gegeven worden dienen geschikt te zijn voor gebruik op de computer op afstand. Als rdump gebruikt wordt om een dump te maken van een &os; computer naar een Exabyte-bandstation dat met een Sun-computer genaamd komodo verbonden is: &prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1 Let op: er kleven veiligheidsbezwaren aan het toestaan van authenticatie met .rhosts. De situatie dient goed geëvalueerd te worden. Het is ook mogelijk om dump en restore op een veiligere manier via ssh te gebruiken. Het gebruik van <command>dump</command> via <application>ssh</application> &prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ doelgebruiker@doelmachine.voorbeeld.com dd of=/mijngrotebestanden/dump-usr-10.gz Ook kan de ingebouwde manier van dump gebruikt worden, door de omgevingsvariabele RSH in te stellen: Het gebruik van <command>dump</command> via <application>ssh</application> met ingestelde <envar>RSH</envar> &prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f doelgebruiker@doelmachine.voorbeeld.com:/dev/sa0 /usr <command>tar</command> back-upsoftware tar &man.tar.1; stamt ook uit de tijd van Versie 6 van AT&T - &unix; (circa 1975). tar werkt samen met - het bestandssysteem. tar schrijft bestanden - en mappen naar band en ondersteunt niet het volledige scala aan - opties dat beschikbaar is met &man.cpio.1;, maar - tar heeft niet de ongebruikelijke - opdrachtpijplijn nodig die cpio - gebruikt. + &unix; (circa 1975). Het werkt samen met het bestandssysteem. + tar schrijft bestanden en mappen naar band + en ondersteunt niet het volledige scala aan opties dat + beschikbaar is met &man.cpio.1;, maar tar + heeft niet de ongebruikelijke opdrachtpijplijn nodig die + cpio gebruikt. tar - De meeste versies van tar bieden geen - ondersteuning voor back-ups over het netwerk. De GNU-versie - van tar, die door &os; gebruikt wordt, + Op &os; 5.3 en later zijn zowel GNU + tar als de standaard + bsdtar beschikbaar. De GNU-versie kan + aangeroepen worden met gtar. Het ondersteunt apparaten op afstand waarbij gebruik wordt gemaakt van dezelfde syntaxis als die van rdump. Om tar toe te passen op een Exabyte-bandstation die met een Sun genaamd komodo verbonden is: - &prompt.root; /usr/bin/tar cf komodo:/dev/nsa8 . 2 >&1 + &prompt.root; /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1 - Voor versies zonder ondersteuning voor apparaten op afstand - kan gebruik worden gemaakt van een pijplijn en + Hetzelfde kan bereikt worden met bsdtar + door gebruik te maken van een pijplijn en rsh om gegevens naar een bandstation op afstand te zenden: &prompt.root; tar cf - . | rsh hostnaam dd of=bandapparaat obs=20b Indien de veiligheid van back-uppen over een netwerk een punt is, dient gebruik te worden gemaakt van het commando ssh en niet van rsh. <command>cpio</command> back-upsoftware cpio &man.cpio.1; is het originele &unix; bandprogramma voor magnetische media om bestanden uit te wisselen. cpio heeft opties (naast vele anderen) om byte-swapping uit te voeren, een aantal verschillende archiefformaten te schrijven en de gegevens over een pijplijn naar andere programma's te voeren. Deze laatste optie maakt cpio een uitstekende keuze voor installatiemedia. cpio weet niet hoe het door een mapstructuur moet lopen. Er dient een lijst met bestanden door stdin aangeleverd te worden. cpio cpio biedt geen ondersteuning voor back-ups over het netwerk. Er kan gebruik worden gemaakt van een pijplijn en rsh om de gegevens naar een banddrive op afstand te sturen. &prompt.root; for f in maplijst; do find $f >> back-up.lijst done &prompt.root; cpio -v -o --format=newc < back-up.lijst | ssh gebruiker@host "cat > back-upapparaat" Hier is maplijst een lijst van de mappen waarvan een back-up gemaakt dient te worden, gebruiker@host de gebruiker/hostnaam-combinatie die de back-ups uitvoert, en back-upapparaat het apparaat waar de back-ups naar toe geschreven te worden (bijvoorbeeld /dev/nsa0). <command>pax</command> back-upsoftware pax pax POSIX IEEE &man.pax.1; is het antwoord van IEEE en &posix; op tar en cpio. In de loop der jaren zijn de verscheidene versies van tar en cpio licht incompatibel geworden. Dus in plaats van dit uit te vechten en ze volledig te standaardiseren, heeft &posix; een nieuw archiveringsprogramma gemaakt. pax poogt om veel van de verscheidene formaten van cpio en tar te lezen en te schrijven, met daarbij nog nieuwe, eigen formaten. De commandoverzameling lijkt meer op die van cpio dan op die van tar. <application>Amanda</application> back-upsoftware Amanda Amanda Amanda (Advanced Maryland Network Disk Archiver) is een client/server-back-upsysteem, in plaats van een enkel programma. Een Amanda server back-upt elk aantal computers dat een Amanda client en een netwerkverbinding met de Amanda server heeft naar een enkel bandstation. Een veelvoorkomend probleem bij bedrijven met een groot aantal schijven is dat de tijd die nodig is om de gegevens direct naar band te back-uppen langer is dan de tijd die voor de taak gereserveerd is. Amanda lost dit probleem op. Amanda kan gebruik maken van een tussenschijf om verschillende bestandssystemen tegelijkertijd te back-uppen. Amanda maakt archiefverzamelingen aan, een groep banden die gedurende een tijd gebruikt wordt om volledige back-ups te maken van alle bestandssystemen die in het instellingenbestand van Amanda vermeld staan. De archiefverzameling bevat ook incrementele (of differentiële) back-ups van alle bestandssystemen. Voor het herstellen van een beschadigd bestandssysteem zijn de meest recente volledige back-up en de incrementele back-ups nodig. Het instellingenbestand biedt verfijnde controle over de back-ups en het netwerkverkeer door Amanda. Amanda kan elk bovenstaand back-upprogramma gebruiken om de gegevens naar de band te schijven. Amanda is òf als port òf als package beschikbaar. Nietsdoen Nietsdoen is geen computerprogramma, maar de de meest gebruikte back-upstrategie. Er zijn geen initiële kosten. Er is geen back-upschema om te volgen. Zeg gewoon nee. Als er iets met gegevens gebeurt, lach erom en leef ermee! Als tijd en gegevens weinig tot niets waard zijn, is Nietsdoen het meest geschikte back-upprogramma. Maar wees bedacht, &unix; is een nuttig stuk gereedschap en er is zo maar binnen zes maanden een verzameling bestanden die wèl van waarde is. Nietsdoen is de juiste back-upmethode voor /usr/obj en andere mapstructuren die zo opnieuw aangemaakt kunnen worden. Een voorbeeld zijn de bestanden waaruit de HTML- of &postscript; versie van dit Handboek bestaan. Deze documentformaten zijn vanuit SGML-invoerbestanden aangemaakt. Het back-uppen van de HTML- of &postscript; bestanden is niet nodig. Van de SGML-bestanden dient regelmatig een back-up gemaakt te worden. Welk back-upprogramma is het beste? LISA &man.dump.8;. Punt uit.. Elizabeth D. Zwicky heeft stresstesten op alle hierboven besproken back-upprogramma's uitgevoerd. De heldere keuze voor het behouden van alle gegevens en alle eigenaardigheden van &unix; bestandssystemen is dump. Elizabeth heeft bestandssystemen aangemaakt met een grote verscheidenheid aan ongewone omstandigheden (en enkele minder ongebruikelijke) en heeft elk programma getest door een back-up van die bestandssystemen uit te voeren en ze te herstellen. De eigenaardigheden omvatten bestanden met gaten, bestanden met gaten en een blok nullen, bestanden met vreemde tekens in hun namen, onleesbare en onschrijfbare bestanden, apparaten, bestanden waarvan de grootte verandert tijdens het back-uppen, bestanden die aangemaakt/verwijderd worden tijdens het back-uppen en meer. Ze presenteerde de resultaten op LISA V in oktober 1991. Zie torture-testing Backup and Archive Programs. Noodterugzetprocedure Vóór de ramp Er zijn slechts vier stappen om te volgen bij het voorbereiden op elke ramp die voor kan komen. disklabel Het schijflabel van elke schijf dient afgedrukt te worden (bijvoorbeeld met disklabel da0 | lpr), de bestandssysteemtabel (/etc/fstab) en alle opstartboodschappen, alles in tweevoud. fix-it diskettes De opstart- en fixit-diskettes (boot.flp en fixit.flp) moeten alle gewenste apparaten bevatten. De gemakkelijkste manier om dit te controleren is om de machine opnieuw op te starten met de opstartdiskette in het diskettestation en de opstartmeldingen te controleren. Als alle apparaten gemeld en functioneel zijn, kan stap drie uitgevoerd worden. In het andere geval dienen twee eigen opstartbare diskettes aangemaakt te worden die een kernel bevatten die alle gewenste schijven kan mounten en toegang heeft tot het bandstation. Deze diskettes dienen het volgende te bevatten: fdisk, newfs, mount en het gebruikte back-upprogramma. Deze programma's dienen statisch gelinkt te worden. Als dump gebruikt wordt, moet de diskette restore bevatten. Ten derde dienen regelmatig back-upbanden aangemaakt te worden. Alle veranderingen die na de laatste back-up zijn gemaakt kunnen onherroepelijk verloren zijn gegaan. De back-upbanden dienen beveiligd te worden tegen overschrijven. Ten vierde dienen de diskettes (òfwel boot.flp en fixit.flp, òfwel de twee eigen diskettes die in stap twee zijn aangemaakt) en de back-upbanden getest te worden. Van de handelingen dienen aantekeningen gemaakt te worden. De aantekeningen, de opstartbare diskette, de afdrukken en de back-upbanden moeten gezamenlijk bewaard te worden. Tijdens het herstellen kunnen de notities ervoor zorgen dat de back-upbanden vernietigd worden. Hoe? In plaats van tar xvf /dev/sa0 kan per ongeluk tar cvf /dev/sa0 worden ingetypt, waardoor de back-upband overschreven wordt. Als extra veiligheidsmaatregel dienen opstartbare diskettes en telkens twee back-upbanden gemaakt te worden. Eén van deze banden dient op een plaats op afstand bewaard te worden. Zo'n plaats is NIET de kelder van het zelfde kantoorgebouw. Een aantal bedrijven in het World Trade Center heeft deze les op de harde manier geleerd. Zo'n plaats dient fysiek gescheiden te zijn van de computers en de schijven door een significante afstand. Script voor het aanmaken van de opstartdiskette /mnt/sbin/init gzip -c -best /sbin/fsck > /mnt/sbin/fsck gzip -c -best /sbin/mount > /mnt/sbin/mount gzip -c -best /sbin/halt > /mnt/sbin/halt gzip -c -best /sbin/restore > /mnt/sbin/restore gzip -c -best /bin/sh > /mnt/bin/sh gzip -c -best /bin/sync > /mnt/bin/sync cp /root/.profile /mnt/root cp -f /dev/MAKEDEV /mnt/dev chmod 755 /mnt/dev/MAKEDEV chmod 500 /mnt/sbin/init chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt chmod 555 /mnt/bin/sh /mnt/bin/sync chmod 6555 /mnt/sbin/restore # # maak de apparaatnodes aan # cd /mnt/dev ./MAKEDEV std ./MAKEDEV da0 ./MAKEDEV da1 ./MAKEDEV da2 ./MAKEDEV sa0 ./MAKEDEV pty0 cd / # # maak een minimale bestandssysteemtabel aan # cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd < Na de ramp De hamvraag is: heeft de hardware het overleefd? Er zijn regelmatig back-ups gemaakt, dus zorgen over de software zijn niet nodig. Indien hardware beschadigd is, dienen kapotte onderdelen vervangen te worden voordat gepoogd wordt om een computer te gebruiken. Indien de hardware in orde is, dienen de diskettes gecontroleerd te worden. Als een eigen opstartdiskette gebruikt wordt, start in enkele-gebruiker-modus op (type op de opstartprompt boot: -s in). Sla dan de volgende paragraaf over. Lees verder als de diskettes boot.flp en fixit.flp gebruikt worden. Steek de diskette boot.flp als eerste in het diskettestation en start de computer op. Het originele installatiemenu wordt op het scherm getoond. Kies de optie Fixit--Repair mode with CDROM or floppy. Steek de diskette fixit.flp in als erom gevraagd wordt. restore en de andere benodigde programma's staan in /mnt2/rescue (/mnt/stand voor &os; ouder dan versie 5.2). Herstel elk bestandssysteem apart. mount rootpartitie disklabel newfs Probeer de rootpartitie van de eerste schijf te mounten (bijvoorbeeld mount /dev/da0a /mnt). Als het schijflabel beschadigd is, gebruik dan disklabel om de schijf opnieuw te partitioneren en te labelen zodat deze overeenkomt met het afgedrukte en bewaarde label. Gebruik voor het opnieuw aanmaken van de bestandssystemen newfs. Hermount de rootpartitie van de diskette voor lezen en schrijven (mount -u -o rw /mnt). Gebruik voor het herstellen van de gegevens van dit bestandssysteem het back-upprogramma en de back-upbanden (bijvoorbeeld restore vrf /dev/sa0). Dismount nu het bestandssysteem (bijvoorbeeld umount /mnt). Herhaal dit voor elk beschadigd bestandssysteem. Back-up de gegevens naar nieuwe banden als het systeem weer draait. De omstandigheden die verantwoordelijk waren voor de crash of het gegevensverlies kunnen weer voorkomen. Nu een extra uur investeren, kan later grote zorgen besparen. * Er zijn geen voorbereidingen voor de ramp getroffen, wat nu? ]]> Marc Fonvieille Geherstructureerd en verbeterd door Netwerk-, geheugen-, en bestandsgebaseerde bestandssystemen virtuele schijven schijven virtueel Naast de schijven die fysiek in de computer zitten, diskettes, CD's, harde schijven, enzovoort, worden er ook andere vormen van schijven door &os; begrepen: de virtuele schijven. NFS Coda schijven geheugen Dit omvat netwerkbestandssystemen zoals het Network File System en Coda, geheugengebaseerde bestandssystemen en bestandsgebaseerde bestandssystemen. Nagelang de gebruikte versie van &os;, zijn er andere gereedschappen voor het aanmaken en gebruiken van bestandsgebaseerde en geheugengebaseerde bestandssystemen. Gebruikers van &os; 4.X kunnen &man.MAKEDEV.8; gebruiken om de benodigde apparaten aan te maken. &os; 5.0 en nieuwer kennen &man.devfs.8; om de apparaatnodes transparant voor de gebruiker toe te wijzen. Bestandsgebaseerd bestandssysteem onder &os; 4.X schijven bestandsgebaseerd (4.X) Het commando &man.vnconfig.8; stelt vnode pseudo-schijf-apparaten in en zet ze aan. Een vnode is een representatie van een bestand en is de focus van bestandsactiviteit. Dit betekent dat &man.vnconfig.8; bestanden gebruikt om een bestandssysteem aan te maken en te bewerken. Een mogelijk gebruik is het mounten van een beeld van een diskette of een CD dat in een bestand bewaard wordt. Om &man.vnconfig.8; te gebruiken, is ondersteuning voor &man.vn.4; nodig in het kernelinstellingenbestand: pseudo-device vn Om een bestaand beeld van een bestandssysteem te mounten: <command>vnconfig</command> gebruiken om een bestaand beeld van een bestandssysteem te mounten onder &os; 4.X &prompt.root; vnconfig vn0 schijfbeeld &prompt.root; mount /dev/vn0c /mnt Om een nieuw beeld van een bestandssysteem aan te maken met &man.vnconfig.8;: Een nieuwe bestandsgebaseerde schijf aanmaken met <command>vnconfig</command> &prompt.root; dd if=/dev/zero of=nieuwbeeld bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; vnconfig -s labels -c vn0 nieuwbeeld &prompt.root; disklabel -r -w vn0 auto &prompt.root; newfs vn0c Warning: 2048 sector(s) in last cylinder unallocated /dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) super-block backups (for fsck -b #) at: 32 &prompt.root; mount /dev/vn0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/vn0c 4927 1 4532 0% /mnt Bestandsgebaseerd bestandssysteem onder &os; 5.X schijven bestandsgebaseerd (5.X) Met &man.mdconfig.8; kunnen geheugenschijven, &man.md.4;, ingesteld worden en aangezet worden onder &os; 5.X. Om &man.mdconfig.8; te gebruiken, moet de module &man.md.4; geladen worden of ondersteuning aan het kernelinstellingenbestand toegevoegd worden: device md Het commando &man.mdconfig.8; ondersteunt drie types geheugen-gebaseerde virtuele schijven: geheugenschijven die met &man.malloc.9; toegewezen zijn, geheugenschijven die een bestand als basis gebruiken en geheugenschijven die swapruimte als basis gebruiken. Een mogelijk gebruik is het mounten van een beeld van een diskette of CD dat in een bestand bewaard wordt. Om een bestaand beeld van een bestandssysteem te mounten: <command>mdconfig</command> gebruiken om een bestaand beeld van een bestandssysteem te mounten onder &os; 5.X &prompt.root; mdconfig -a -t vnode -f schijfbeeld -u 0 &prompt.root; mount /dev/md0 /mnt Om een nieuw beeld van een bestandssysteem aan te maken met &man.mdconfig.8;: Nieuwe bestandsgebaseerde schijf aanmaken met <command>mdconfig</command> &prompt.root; dd if=/dev/zero of=nieuwbeeld bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdconfig -a -t vnode -f nieuwbeeld -u 0 &prompt.root; disklabel -r -w md0 auto &prompt.root; newfs md0c /dev/md0c: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808 &prompt.root; mount /dev/md0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4846 2 4458 0% /mnt Indien het eenheidsnummer niet met de optie gespecificeerd wordt, gebruikt &man.mdconfig.8; de automatische toewijzing van &man.md.4; om een ongebruikt apparaat te selecteren. De naam van het toegewezen apparaat wordt op stdout weergegeven als md4. Meer details staan in de hulppagina van &man.mdconfig.8;. Sinds &os; 5.1-RELEASE is het oude programma &man.disklabel.8; vervangen door &man.bsdlabel.8;. In &man.bsdlabel.8; zijn een aantal overbodige opties en parameters verwijderd. In de bovenstaande voorbeelden dient de optie met &man.bsdlabel.8; weggelaten te worden. Meer informatie staat in de hulppagina van &man.bsdlabel.8;. Het commando &man.mdconfig.8; is erg nuttig, hoewel het veel opdrachten vergt om een bestandsgebaseerd bestandssysteem aan te maken. &os; 5.0 wordt met een gereedschap &man.mdmfs.8; geleverd. Dit programma stelt een &man.md.4;-schijf in door gebruik te maken van &man.mdconfig.8;, zet er een bestandssysteem op door gebruik te maken van &man.newfs.8; en mount het door gebruik te maken van &man.mount.8;. Om hetzelfde bestandssysteembeeld als hierboven aan te maken en te mounten: Instellen en mounten van een bestandsgebaseerde schijf met <command>mdmfs</command> &prompt.root; dd if=/dev/zero of=nieuwbeeld bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdmfs -F nieuwbeeld -s 5m md0 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0 4846 2 4458 0% /mnt Als de optie zonder eenheidsnummer gebruikt wordt, gebruikt &man.mdmfs.8; de automatische toewijzing van &man.md.4; om automatisch een ongebruikt apparaat te selecteren. Meer details staan in de hulppagina van &man.mdmfs.8;. Geheugengebaseerde bestandssystemen onder &os; 4.X schijven geheugenbestandssysteem (4.X) Het stuurprogramma &man.md.4; is een eenvoudig, efficiënt middel om geheugenbestandssystemen aan te maken onder &os; 4.X. &man.malloc.9; wordt gebruikt om het geheugen toe te wijzen. Om het te gebruiken, dient met een bestandssysteem dat met &man.vnconfig.8; voorbereid is het volgende gedaan te worden: md geheugenschijf onder &os; 4.X &prompt.root; dd if=nieuwbeeld of=/dev/md0 5120+0 records in 5120+0 records out &prompt.root; mount /dev/md0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4927 1 4532 0% /mnt Meer details staan in de hulppagina van &man.md.4;. Geheugengebaseerd bestandssysteem onder &os; 5.X schijven geheugenbestandssysteem (5.X) Voor geheugengebaseerde en bestandsgebaseerde bestandssystemen worden dezelfde gereedschappen gebruikt: &man.mdconfig.8; of &man.mdmfs.8;. De opslagruimte voor geheugengebaseerde bestandssystemen wordt met &man.malloc.9; toegewezen. Nieuwe geheugengebaseerde schijf aanmaken met <command>mdconfig</command> &prompt.root; mdconfig -a -t malloc -s 5m -u 1 &prompt.root; newfs -U md1 /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. with soft updates super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808 &prompt.root; mount /dev/md1 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md1 4846 2 4458 0% /mnt Nieuwe geheugengebaseerde schijf aanmaken met <command>mdmfs</command> &prompt.root; mdmfs -M -s 5m md2 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md2 4846 2 4458 0% /mnt In plaats van een bestandssysteem dat gebaseerd is op &man.malloc.9;, is het ook mogelijk om swap te gebruiken. Hiervoor dient in de opdrachtregel van &man.mdconfig.8; door vervangen te worden. &man.mdmfs.8; maakt standaard (zonder een swap-gebaseerde schijf aan. Meer details staan in de hulppagina's voor &man.mdconfig.8; en &man.mdmfs.8;. Geheugenschijf van het systeem afkoppelen schijven geheugenschijf afkoppelen Als een geheugen- of bestandsgebaseerd bestandssysteem niet gebruikt wordt, dienen alle bronnen aan het systeem vrijgegeven te worden. Dismount als eerste het bestandssysteem, gebruikt daarna &man.mdconfig.8; om de schijf van een systeem los te koppelen en de bronnen vrij te geven. Om bijvoorbeeld alle bronnen die door /dev/md4 gebruikt worden los te koppelen en vrij te geven: &prompt.root; mdconfig -d -u 4 Het is mogelijk om de informatie over ingestelde &man.md.4; apparaten weer te geven door gebruik te maken van mdconfig -l. Met &os; 4.X wordt &man.vnconfig.8; gebruikt om het apparaat los te koppelen. Om bijvoorbeeld alle bronnen die door /dev/vn4 gebruikt worden los te koppelen en vrij te geven: &prompt.root; vnconfig -u vn4 Tom Rhodes Bijgedragen door Snapshots van bestandssystemen bestandssystemen snapshots &os; 5.0 biedt een nieuwe mogelijkheid samen met Soft Updates: snapshots van bestandssystemen. Snapshots bieden de mogelijkheid om beelden van een gespecificeerd bestandssysteem te maken en ze als bestand te behandelen. Snapshotbestanden moeten aangemaakt worden in het bestandssysteem waarop de handeling wordt uitgevoerd en er mogen niet meer dan 20 snapshots per bestandssysteem worden aangemaakt. Actieve snapshots worden opgeslagen in het superblok zodat ze persistent zijn met dismount- en hermountbewerkingen en met het opnieuw opstarten van het systeem. Als een snapshot niet langer nodig is, kan het met het standaardcommando &man.rm.1; worden verwijderd. Snapshots kunnen in elke volgorde verwijderd worden, alhoewel misschien niet alle gebruikte ruimte teruggewonnen wordt omdat sommige vrijgegeven blokken mogelijk door een ander snapshot geclaimd worden. De onveranderlijke bestandsvlag wordt door &man.mksnap.ffs.8; ingesteld nadat het snapshotbestand initieel is aangemaakt. Het commando &man.unlink.1; maakt een uitzondering voor snapshotbestanden aangezien het toestaat dat ze verwijderd worden. Snapshotbestanden worden aangemaakt met &man.mount.8;. Om een snapshot van /var in het bestand /var/snapshot/snap te plaatsen: &prompt.root; mount -o -o snapshot /var/snapshot/snap /var Als alternatief kan &man.mksnap.ffs.8; gebruikt worden om een snapshot aan te maken: &prompt.root; mksnap_ffs /var /var/snapshot/snap Snapshotbestanden kunnen gezocht worden op een bestandssysteem (bijvoorbeeld /var) door gebruik te maken van het commando &man.find.1;: &prompt.root; find /var -flags snapshot Nadat een snapshot is aangemaakt, kan het voor een aantal dingen gebruikt worden: Sommige systeembeheerders gebruiken een snapshotbestand voor back-updoeleinden, omdat het snapshot naar CD's of band overgezet kan worden; Bestandsintegriteit. op het snapshot kan &man.fsck.8; gedraaid worden. Ervan uitgaande dat het bestandssysteem schoon was toen het werd gemount, zou dit altijd een schoon (en onveranderlijk) resultaat moeten opleveren. Dit is in principe wat het &man.fsck.8;-achtergrondsproces doet; Het commando &man.dump.8; draaien op het snapshot. Er wordt een dump teruggegeven die consistent is met het bestandssysteem en tijdsstempel van het snapshot. &man.dump.8; kan ook in één commando een snapshot maken, een dumpbeeld aanmaken en daarna het snapshot verwijderen door gebruik te maken van de vlag ; Het snapshot kan met &man.mount.8; als bevroren beeld van het bestandssysteem worden gemount. Om het snapshot /var/snapshot/snap te mounten: &prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4 &prompt.root; mount -r /dev/md4 /mnt Het is nu mogelijk om door de structuur van het bevroren bestandssysteem /var te lopen dat gemount is op /mnt. Alles zal initieel in dezelfde toestand verkeren als op het moment dat het snapshot werd aangemaakt. De enige uitzondering hierop is dat eerdere snapshots als bestanden met lengte nul verschijnen. Als een snapshot niet meer nodig is, kan het als volgt gedismount worden: &prompt.root; umount /mnt &prompt.root; mdconfig -d -u 4 Meer informatie over en snapshots van bestandssystemen, inclusief technische documenten, staat op de website van Marshall Kirk McKusick op . Bestandssysteemquota accounten schijfruimte schijfquota Quota zijn een optionele mogelijkheid van het besturingssysteem om de hoeveelheid schijfruimte en/of het aantal bestanden dat gebruikers of leden van een groep per bestandssysteem mogen gebruiken te beperken. Dit wordt het meeste gebruikt op timesharing-systemen waar het wenselijk is om het aantal bronnen dat elke gebruiker of groep van gebruikers mag gebruiken te beperken. Dit voorkomt dat één gebruiker of groep van gebruikers alle beschikbare schijfruimte in beslag neemt. Schijfquota inschakelen Controleer alvorens te proberen om schijfquota te gebruiken of quota ingesteld zijn in de kernel. Dit gebeurt door het toevoegen van de volgende regel aan het kernelinstellingenbestand: options QUOTA De standaardkernel GENERIC heeft deze optie niet aanstaan, dus is het nodig om een eigen kernel in te stellen, te bouwen en te installeren om gebruik te kunnen maken van schijfquota. Meer informatie over het instellen van de kernel staat in . Vervolgens dienen schijfquota aangezet te worden in /etc/rc.conf: enable_quotas="YES" schijfquota controleren Voor fijnere controle over de opstartquota zijn extra instellingsvariabelen beschikbaar. Normaalgesproken wordt de integriteit van de quota van elk bestandssysteem tijdens het opstarten door &man.quotacheck.8; gecontroleerd. &man.quotacheck.8; verzekert dat de gegevens in de quotadatabase een juiste afspiegeling vormen van de gegevens op het bestandssysteem. Dit proces neemt erg veel tijd in beslag en beïnvloedt de tijd die een systeem nodig heeft om op te starten significant. Om deze stap over te slaan, bestaat een variabele in /etc/rc.conf: check_quotas="NO" Als laatste dient /etc/fstab bewerkt te worden om schijfquota per bestandssysteem aan te zetten. Hier kunnen gebruiker- of groepquota of beide worden aangezet voor alle bestandssystemen. Om quota per gebruiker op een bestandssysteem aan te zetten, dient de optie aan het optieveld toegevoegd te worden aan de regel in /etc/fstab voor het bestandssysteem waar quota worden aangezet. Bijvoorbeeld: /dev/da1s2g /home ufs rw,userquota 1 2 Analoog, om groepquota aan te zetten, dient de optie in plaats van gebruikt te worden. Om zowel gebruikers- als groepsquota aan te zetten, dient de regel als volgt veranderd te worden: /dev/da1s2g /home ufs rw,userquota,groupquota 1 2 Standaard worden de quotabestanden opgeslagen in de hoofdmap van het bestandssysteem onder de namen quota.user en quota.group voor respectievelijk gebruikers- en groepsquota. Meer informatie staat in &man.fstab.5;. Alhoewel de hulppagina &man.fstab.5; vermeld dat een alternatieve plaats voor de quotabestanden gespecificeerd kan worden, wordt dit niet aangeraden omdat de verschillende quotagereedschappen dit niet juist schijnen af te handelen. Hier aangekomen dient het systeem opnieuw opgestart te worden met de nieuwe kernel. /etc/rc voert automatisch de juiste commando's uit om de initiële quotabestanden aan te maken voor alle quota die in /etc/fstab zijn aangezet. Het is dus niet nodig om handmatig quotabestanden met lengte nul aan te maken. Tijdens normale bewerkingen moet het niet nodig zijn om de commando's &man.quotacheck.8;, &man.quotaon.8; of &man.quotaoff.8; handmatig te draaien. Lees wel de betreffende hulppagina's om bekend te raken met de werking ervan. Quotalimieten instellen schijfquota limieten Indien het systeem ingesteld voor gebruik van quota, controleer dan of ze echt aanstaan. Een eenvoudige manier om dit te doen is de volgende: &prompt.root; quota -v Er hoort een eenregelige samenvatting te verschijnen over het schijfgebruik en de huidige quotalimieten voor elk bestandssysteem waarop quota aanstaan. Nu kunnen quotalimieten toegewezen worden met &man.edquota.8;. Er zijn verschillende opties om grenzen te stellen aan de hoeveelheid schijfruimte die een gebruiker of groep mag toewijzen en het aantal bestanden dat ze mogen aanmaken. Toewijzingen kunnen begrensd worden met betrekking tot schijfruimte (blokquota) of het aantal bestanden (inode-quota) of een combinatie van beide. Elk van deze limieten is op zijn beurt weer opgesplitst in twee categoriën: harde en zachte limieten. harde limiet Een harde limiet mag niet overschreden worden. Indien een gebruiker de harde limiet bereikt, mag deze geen verdere toewijzingen maken op het betreffende bestandssysteem. Indien een gebruiker bijvoorbeeld een harde limiet heeft van 500 kB op een bestandssysteem en er 490 kB van gebruikt, kan deze nog slechts 10 kB toewijzen. Een poging om 11 kB toe te wijzen zal mislukken. zachte limiet Zachte limieten kunnen voor een beperkte tijd overschreden worden. Deze periode staat bekend als de gratieperiode, die standaard een week bedraagt. Als een gebruiker de zachte limiet langer dan de gratieperiode overschrijdt, verandert de zachte limiet in een harde limiet en zijn er geen verdere toewijzingen toegestaan. Als de gebruiker onder de zachte limiet komt, wordt de gratieperiode opnieuw ingesteld. Het volgende is een voorbeeld van een mogelijk gebruik van &man.edquota.8;. Als het commando &man.edquota.8; gestart wordt, wordt de tekstverwerker opgestart die door de omgevingsvariabele EDITOR gespecificeerd is, of de tekstverwerker vi als de variabele EDITOR niet is ingesteld. Nu kunnen de quotalimieten bewerkt worden. &prompt.root; edquota -u test Quotas for user test: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60) Normaalgesproken worden er twee regels weergegeven voor elk bestandssysteem waarvoor quota gelden: één regel voor de bloklimieten, en één voor de inode-limieten. Om de quotalimieten te veranderen dient de waarde ervan veranderd te worden. Om bijvoorbeeld de bloklimiet van een gebruiker te veranderen van een zachte limiet van 50 en een harde limiet van 75 in een zachte limiet van 500 en een harde limiet van 600, dient het volgende veranderd te worden: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) In: /usr: kbytes in use: 65, limits (soft = 500, hard = 600) De nieuwe quotalimieten gelden zodra de tekstverwerker verlaten wordt. Soms is het gewenst om quotalimieten in te stellen op een aantal UID's. Dit kan gedaan worden door de optie van &man.edquota.8; te gebruiken. Wijs eerst de gewenste quotalimiet aan een gebruiker toe en draai daarna edquota -p protogebruiker beginuid-einduid. Indien bijvoorbeeld gebruiker test de gewenste quotalimieten heeft, kan het volgende commando gebruikt worden om deze quotalimieten te dupliceren voor UID's 10.000 tot en met 19.999: &prompt.root; edquota -p test 10000-19999 Meer informatie staat in de hulppagina voor &man.edquota.8;. Quotalimieten en schijfgebruik controleren schijfquota controleren Zowel &man.quota.1; als &man.repquota.8; kunnen gebruikt worden om de quotalimieten en het schijfgebruik te controleren. Het commando &man.quota.1; kan gebruikt worden om de quota van zowel individuele gebruikers als groepen en het schijfgebruik te controleren. Een gebruiker mag alleen de eigen quota en de quota van een groep waarvan deze lid is controleren. Alleen de beheerder mag alle gebruikers- en groepsquota bekijken. Het commando &man.repquota.8; kan gebruikt worden om een overzicht te krijgen van alle quota en gebruik van bestandssystemen waarvan quota aanstaan. Het volgende is een mogelijke uitvoer van het commando quota -v voor een gebruiker die quotalimieten heeft op twee bestandssystemen. Disk quotas for user test (uid 1002): Filesystem usage quota limit grace files quota limit grace /usr 65* 50 75 5days 7 50 60 /usr/var 0 50 75 0 50 60 gratieperiode Voor het bestandssysteem /usr in bovenstaand voorbeeld overschrijdt deze gebruiker de zachte limiet van 50 kB momenteel met 15 kB en heeft deze 5 dagen van de gratieperiode over. De asterisk, * geeft aan dat de gebruiker momenteel de quotalimiet overschrijdt. Normaalgesproken worden bestandssystemen waarvan de gebruiker geen schijfruimte gebruikt niet weergegeven in de uitvoer van &man.quota.1;, zelfs niet als er de gebruiker een quotalimiet heeft voor dat bestandssysteem. De optie geeft deze bestandssystemen weer, zoals het bestandssysteem /usr/var in bovenstaand voorbeeld. Quota over NFS NFS Quota worden afgedwongen door het quota-subsysteem op de NFS-server. De daemon &man.rpc.rquotad.8; stelt quota-informatie beschikbaar aan het commando &man.quota.1; op de NFS-cliënts, wat de gebruikers op deze machines in staat stelt hun quota-statistieken in te zien. rpc.rquotad dient als volgt in /etc/inetd.conf aangezet te worden: rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad Vervolgens dient inetd opnieuw gestart te worden: &prompt.root; kill -HUP `cat /var/run/inetd.pid` Lucky Green Bijgedragen door
shamrock@cypherpunks.to
Schijfpartities versleutelen schijven versleutelen &os; biedt uitstekende on-line bescherming tegen onbevoegde gegevenstoegang. Bestandsrechten en Mandatory Access Control (MAC) (zie ) helpen voorkomen dat onbevoegde derde partijen toegang tot de gegevens krijgen als het besturingssysteem actief is en de computer aanstaat. De door het besturingssysteem afgedwongen rechten zijn echter niet relevant als een aanvaller fysieke toegang tot een computer heeft en deze de harde schijf van de computer in een ander systeem kan plaatsen om de gevoelige gegevens te kopiëren en te analyseren. Afgezien van hoe een aanvaller in het bezit van een harde schijf of een uitgezette computer gekomen is, kan GEOM Based Disk Encryption (gbde) de gegevens op het bestandssysteem van de computer zelfs tegen hooggemotiveerde aanvallers met aanzienlijke middelen beschermen. In tegenstelling tot lastige versleutelmethoden die alleen losse bestanden versleutelen, versleutelt gbde gehele bestandssystemen op een transparante manier. De harde schijf komt nooit in aanraking met klare tekst. gbde in de kernel aanzetten Word <username>root</username> Het instellen van gbde vereist beheerdersrechten. &prompt.user; su - Password: Controleer de versie van het besturingssysteem Voor &man.gbde.4; is &os; 5.0 of hoger nodig. &prompt.root; uname -r 5.0-RELEASE Voeg ondersteuning voor &man.gbde.4; aan het kernelinstellingenbestand toe Voeg de volgende regel aan het kernelinstellingenbestand toe: options GEOM_BDE Compileer en installeer de &os; kernel opnieuw. Dit proces wordt beschreven in . Start op met de nieuwe kernel. Versleutelde harde schijf voorbereiden In het volgende voorbeeld wordt aangenomen dat er een nieuwe harde schijf aan het systeem wordt toegevoegd die een enkele versleutelde partitie zal bevatten. Deze partitie wordt gemount als /private. gbde kan ook gebruikt worden om /home en /var/mail te versleutelen, maar daarvoor zijn complexere instructies nodig die buiten het bereik van deze inleiding vallen. Voeg een nieuwe harde schijf toe Voeg de nieuwe harde schijf toe zoals beschreven in . In dit voorbeeld is een nieuwe harde schijfpartitie toegevoegd als /dev/ad4s1c. De apparaten /dev/ad0s1* stellen bestaande standaard &os; partities van het voorbeeldsysteem voor. &prompt.root; ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 Maak een map aan voor gbde lockbestanden &prompt.root; mkdir /etc/gbde Het lockbestand voor gbde bevat informatie die gbde nodig heeft om toegang te krijgen tot versleutelde partities. Zonder toegang tot de lockbestand is gbde niet in staat om de gegevens die op de versleutelde partitie staan te ontsleutelen zonder aanzienlijke handmatige tussenkomst die niet door de software ondersteund wordt. Elke versleutelde partitie gebruikt een ander lockbestand. Initialiseer de gbde-partitie Een gbde-partitie dient geïnitialiseerd te worden voordat deze kan worden gebruikt. Deze initialisatie dient slechts eenmalig uitgevoerd te worden: &prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c &man.gbde.8; opent een tekstverwerker om verschillende instellingen in een sjabloon te kunnen instellen. Stel de sector_size in op 2048 als UFS of UFS2 wordt gebruikt: $FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $ # # Sector size is the smallest unit of data which can be read or written. # Making it too small decreases performance and decreases available space. # Making it too large may prevent filesystems from working. 512 is the # minimum and always safe. For UFS, use the fragment size # sector_size = 2048 [...] &man.gbde.8; vraagt twee keer om de wachtwoordzin voor het beveiligen van de gegevens. De wachtwoordzin dient beide keren hetzelfde te zijn. De mogelijkheid van gbde om de gegevens te beveiligen is geheel afhankelijk de gekozen wachtwoordzin. Tips met betrekking tot het kiezen van veilige wachtwoordzinnen die gemakkelijk te onthouden zijn staan op de website Diceware Passphrase. Het commando gbde init maakt een lockbestand aan voor de gbde-partitie die in dit voorbeeld is opgeslagen als /etc/gbde/ad4s1c. gbde lockbestanden moeten samen met de inhoud van versleutelde partities geback-upped worden. Hoewel het verwijderen van een lockbestand op zich een gedreven aanvaller er niet van weerhoudt een gbde partitie te ontsleutelen, is de wettige eigenaar zonder het lockbestand niet in staat om de gegevens op de versleutelde partitie te benaderen zonder een aanzienlijke hoeveelheid werk die in het geheel niet ondersteund wordt door &man.gbde.8; of de ontwerper ervan. Koppel de versleutelde partitie aan de kernel &prompt.root gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c Er wordt om de wachtwoordzin gevraagd die gekozen is tijdens de initialisatie van de versleutelde partitie. Het nieuwe versleutelde apparaat verschijnt in /dev als /dev/apparaatnaam.bde: &prompt.root; ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde Maak een bestandssysteem op het versleutelde apparaat Nu het versleutelde apparaat aan de kernel gekoppeld is, kan een bestandssysteem op het apparaat aangemaakt worden. Met &man.newfs.8; kan een bestandssysteem op het versleutelde apparaat aangemaakt wordne. Aangezien het veel sneller is om een nieuw UFS2 bestandssysteem te initialiseren dan om een oud UFS1 bestandssysteem te initialiseren, is het aan te raden om &man.newfs.8; met de optie te gebruiken. De optie is de standaard in &os; 5.1-RELEASE en nieuwer. &prompt.root; newfs -U -O2 /dev/ad4s1c.bde Voer &man.newfs.8; uit op een aangekoppelde gbde-partitie die geïndificeerd wordt door de uitbreiding *.bde op de apparaatnaam. Mount de versleutelde partitie Maak een mountpunt voor het versleutelde bestandssysteem aan: &prompt.root; mkdir /private Mount het versleutelde bestandssysteem: &prompt.root; mount /dev/ad4s1c.bde /private Controleer of het versleutelde bestandssysteem beschikbaar is Het versleutelde bestandssysteem is nu zichtbaar met &man.df.1; en gebruiksklaar: &prompt.user; df -H Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 1037M 72M 883M 8% / /devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 8.1G 55K 7.5G 0% /home /dev/ad0s1e 1037M 1.1M 953M 0% /tmp /dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr /dev/ad4s1c.bde 150G 4.1K 138G 0% /private Bestaande versleutelde bestandssystemen mounten Elke keer nadat het systeem is opgestart dient elk versleuteld bestandssysteem opnieuw aan de kernel gekoppeld te worden, op fouten gecontroleerd te worden, en aangekoppeld te worden voordat de bestandssystemen gebruikt kunnen worden. De benodigde commando's dienen als de gebruiker root uitgevoerd te worden. Koppel de gbde-partitie aan de kernel &prompt.root gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c Er wordt om de wachtwoordzin gevraagd die gekozen is tijdens de initialisatie van de versleutelde gbde-partitie. Controleer het bestandssysteem op fouten Aangezien het nog niet mogelijk is om versleutelde bestandssystemen op te nemen in /etc/fstab voor automatische controle, dienen de bestandssystemen voordat ze gemount worden handmatig op fouten gecontroleerd te worden door &man.fsck.8; uit te voeren: &prompt.root; fsck -p -t ffs /dev/ad4s1c.bde Mount het versleutelde bestandssysteem &prompt.root; mount /dev/ad4s1c.bde /private Het versleutelde bestandssysteem is nu klaar voor gebruik. Versleutelde partities automatisch mounten Het is mogelijk om een script aan te maken om automatisch een versleutelde partitie aan te koppelen, op fouten te controleren en te mounten, maar vanwege veiligheidsredenen dient het script niet het wachtwoord voor &man.gbde.8; te bevatten. In plaats hiervan wordt het aangeraden om zulke scripts handmatig uit te voeren en het wachtwoord via de console of &man.ssh.1; te geven. Door gbde gebruikte cryptografische beschermingen &man.gbde.8; versleutelt de sectorlading door gebruik te maken van 128-bit AES in CBC-modus. Elke sector op de schijf wordt met een andere AES-sleutel versleuteld. Meer informatie over het cryptografische ontwerp van gbde, inclusief de methode die gebruikt wordt om de sectorsleutels van de door de gebruiker gegeven wachtwoordzin af te leiden, staan in &man.gbde.4;. Compatibiliteitspunten &man.sysinstall.8; is niet compatibel met apparaten die met gbde versleuteld zijn. Alle *.bde apparaten moeten van de kernel ontkoppeld worden voordat &man.sysinstall.8; gebruikt wordt om te voorkomen dat het crasht tijdens het initiële zoeken naar apparaten. Om het versleutelde apparaat dat in dit voorbeeld gebruikt wordt te ontkoppelen: &prompt.root; gbde detach /dev/ad4s1c gbde kan niet met vinum volumes gebruikt worden, omdat &man.vinum.4; geen gebruik maakt van het subsysteem &man.geom.4;.
diff --git a/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml index 8c5796fe95..0c995c45aa 100644 --- a/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml @@ -1,1910 +1,1933 @@ Bronnen op Internet Door de snelle ontwikkeling van &os; zijn gedrukte media niet zo praktisch om de laatste ontwikkelingen te volgen. Elektronische bronnen zijn de beste, en vaak de enige, om op de hoogte te blijven van de laatste ontwikkelingen. Omdat &os; draait op de inzet van vrijwilligers, is de gebruikersgemeenschap vaak een soort technische ondersteuningsgroep, die heeft ontdekt dat e–mail en USENET de meeste effectieve manieren zijn om de gebruikersgemeenschap te bereiken. Hieronder staan de meest belangrijke contactmogelijkheden met de &os; gebruikersgemeenschap beschreven. Mochten er andere bronnen zijn die hier niet beschreven zijn, laat die dan weten aan de &a.doc;, zodat ze hier ook beschreven kunnen worden. Mailinglijsten Hoewel veel van de ontwikkelaars van &os; USENET lezen, kan niet altijd gegarandeerd worden dat vragen die in een van de groepen binnen comp.unix.bsd.freebsd.* gesteld worden, op tijd beantwoord worden - als ze al beantwoord worden. Door vragen op de daarvoor bestemde mailinglijsten te stellen, wordt het gewenste &os; publiek bereikt, waardoor een beter, of in ieder geval tijdiger, antwoord is gegarandaard. De doelstellingen van de verschillende lijsten staan onderaan dit document. Lees alsjeblieft de doelstellingen alvorens lid te worden of mail te sturen. De meeste leden ontvangen tegenwoordig vaak honderden &os; gerelateerde berichten per dag, en door de doelstellingen en gebruiksregels op te stellen wordt gestreefd om zo min mogelijk ruis op de lijn te krijgen. Door de voorgaande adviezen te negeren zouden de mailinglijsten op termijn falen als een effectief communicatiemedium over het project. Bij twijfel over naar welke lijst te posten, kan de pagina Hoe de beste resultaten uit de &os;-vragen mailinglijst te halen wellicht helpen. Alvorens naar enige lijst te posten, is het verstandig te leren hoe de mailinglijsten het beste gebruikt kunnen worden. Hoe bijvoorbeeld zich vaak herhalende discussies voorkomen kunnen worden door het document Veel Gestelde Mailinglijstvragen (FAQ) te lezen. Voor alle mailinglijsten worden archieven bijgehouden die doorzocht kunnen worden op de &os; World Wide Web server. De met sleutelwoorden te doorzoeken archieven bieden een voortreffelijke methode om antwoorden te vinden op vaak gestelde vragen en horen geraadpleegd te worden voordat er vragen op een lijst worden gesteld. Lijstsamenvatting Algemene lijsten: De volgende zijn algemene lijsten waarop vrijelijk (en aangemoedigd) geabonneerd kan worden: Lijst Doel &a.cvsall.name; Wijzigen die aan de &os; broncode zijn gemaakt &a.advocacy.name; &os; Evangelisatie &a.announce.name; Belangrijke gebeurtenissen en projectdoelen &a.arch.name; Architectuur en ontwerp discussies &a.bugbusters.name; Discussie over het onderhoud van de &os; probleemrapporten database en aanverwante zaken &a.bugs.name; Bugbeschrijvingen &a.chat.name; Niet-technische onderwerpen met betrekking tot de &os; gemeenschap &a.current.name; Discussie over het gebruik van &os.current; &a.isp.name; Zaken voor Internet Service Providers die &os; gebruiken &a.jobs.name; Werk en mogelijkheden voor het geven van advies met betrekking tot &os; &a.policy.name; Beleidsbeslissingen van het &os; Kernteam. Laag volume en alleen-lezen &a.questions.name; Gebruikersvragen en technische ondesteuning &a.security-notifications.name; Beveiligingswaarschuwingen &a.stable.name; Discussies over het gebruik van &os.stable; &a.test.name; Hier kunnen testberichten heengestuurd worden in plaats van naar de eigenlijke lijsten Technische lijsten: De volgende lijsten zijn voor technische discussie. Het is van belang de doelstellingen te lezen alvorens lid te worden of mail te sturen omdat de richlijnen voor het gebruik en de inhoud erg strikt zijn. Lijst Doel &a.acpi.name; Ontwikkeling van ACPI en energiebeheer &a.afs.name; Porten van AFS naar &os; &a.aic7xxx.name; Ontwikkeling van drivers voor de &adaptec; AIC 7xxx &a.alpha.name; Porten van &os; naar de Alpha &a.amd64.name; Porten van &os; naar AMD64 systemen &a.apache.name; Discussie over ports met betrekking tot Apache &a.arm.name; Porten van &os; naar &arm; processors &a.atm.name; Het gebruik van ATM netwerken met &os; &a.audit.name; Audit van broncode project &a.binup.name; Ontwerp en ontwikkeling van het binaire updatesysteem &a.bluetooth.name; &bluetooth; technologie gebruiken in &os; &a.cluster.name; &os; gebruiken in een geclusterde omgeving &a.cvsweb.name; CVSweb onderhoud &a.database.name; Discussie over het gebruik en de ontwikkeling van databases met &os; &a.doc.name; Het maken van &os; gerelateerde documenten + + &a.drivers.name; + + Apparaatstuurprogramma's schrijven voor + &os; + + &a.emulation.name; Emulatie van andere systemen zoals &linux;, &ms-dos; en &windows; &a.firewire.name; &os; &firewire; (iLink, IEEE 1394) technische discussie &a.fs.name; Bestandssystemen &a.geom.name; GEOM-specifieke discussies en implementaties &a.gnome.name; Porten van GNOME en GNOME applicaties &a.hackers.name; Algemene technische discussies &a.hardware.name; Algemene discussies over hardware voor het draaien van &os; &a.i18n.name; &os; Internationalisatie &a.ia32.name; &os; op het IA-32 (&intel; x86) platform &a.ia64.name; Porten van &os; naar &intel;'s IA64 systemen &a.ipfw.name; Technische discussie over het herontwerp van de IP firewallcode &a.isdn.name; ISDN ontwikkelaars &a.java.name; &java; ontwikkelaars en mensen die &jdk;'s porten naar &os; &a.kde.name; Porten van KDE en KDE applications &a.lfs.name; Porten van LFS naar &os; &a.libh.name; Het tweede generatie installatie en package systeem &a.mips.name; Porten van &os; naar &mips; &a.mobile.name; Discussie over mobiel computeren &a.mozilla.name; Porten van Mozilla naar &os; &a.multimedia.name; Multimedia applicaties &a.newbus.name; Technische discussies over bus-architecturen &a.net.name; Discussies over netwerken en TCP/IP broncode &a.openoffice.name; Porten van OpenOffice.org en &staroffice; naar &os; &a.performance.name; Optimalisatie van prestaties voor installaties met hoge prestaties en/of load &a.perl.name; Onderhoud van een aantal ports met betrekking tot Perl &a.pf.name; Discussies en vragen voor het pakketfilter firewall systeem &a.platforms.name; Ports naar niet &intel; architectuur platforms &a.ports.name; Discussie over de Portscollectie &a.ports-bugs.name; Discussie over bugs in ports en PR's &a.ppc.name; Porten van &os; naar de &powerpc; &a.proliant.name; Technische dicussie over &os; op HP Proliant serverplatforms &a.python.name; &os;-specifieke Python zaken &a.qa.name; Discussie over Quality Assurance, meestal in een release traject &a.realtime.name; Ontwikkeling van realtime extensions voor &os; &a.rc.name; Discussie over het rc.d-systeem en de ontwikkeling daarvan &a.scsi.name; Het SCSI subsysteem &a.security.name; Beveiligingsonderwerpen betreffende &os; &a.small.name; &os; gebruiken in embedded toepassingen &a.smp.name; Discussies over het ontwerp voor [A]Symmetric MultiProcessing &a.sparc.name; Porten van &os; naar op &sparc; gebaseerde systemen &a.standards.name; Volgen van de C99 en de &posix; standaarden door &os; &a.threads.name; Threading in &os; &a.testing.name; &os; prestatie- en stabiliteitstesten &a.tokenring.name; Ondersteuning voor Token Ring in &os; &a.usb.name; Discussie over &os; ondersteuning voor USB &a.vuxml.name; Discussie over VuXML infrastructuur &a.x11.name; Onderhoud en ondersteuning voor X11 op &os; Beperkte lijsten: De volgende lijsten zijn voor meer gespecialiseerd publiek en algemene gebruikers hebben er waarschijnlijk niets aan. Het is verstandig om eerst naam te maken in de technische lijsten alvorens lid te worden van een van de onderstaande beperkte lijsten, zodat de gebruiken op die lijst bekend zijn. Lijst Doel &a.hubs.name; Mensen die mirror sites draaien (infrastructurele ondersteuning) &a.usergroups.name; Gebruikersgroep coördinatie &a.vendors.name; Coördinatie van pre-release met wederverkopers &a.www.name; Beheerders van www.FreeBSD.org Verkorte versie van lijsten (digest): Alle hierboven beschreven lijsten zijn beschikbaar in verkorte vorm. Na het lid worden van een lijst zijn de digest opties te wijzigen bij de accountopties. CVS lijsten: De volgende lijsten zijn voor mensen met interesse in het zien van logboekberichten voor wijzigingen in verschillende onderdelen van de broncodestructuur. Het zijn Alleen-lezen lijsten waar geen e–mail heen gezonden hoort te worden. Lijst Broncodegebied Broncodebeschrijving &a.cvsall.name; /usr/(CVSROOT|doc|ports|projects|src) Alle wijzigingen op welke plaats in de structuur dan ook (som van alle andere CVS commit lijsten) &a.cvs-doc.name; /usr/(doc|www) Alle wijzigingen aan de doc en www structuren &a.cvs-ports.name; /usr/ports Alle wijzigingen aan de ports structuur &a.cvs-projects.name; /usr/projects Alle wijzigingen aan de projects structuur &a.cvs-src.name; /usr/src Alle wijzigingen aan de src structuur Hoe abonneren Om te abonneren op een lijst kan geklikt worden op de naam van de lijst hierboven of kan op &a.mailman.lists.link; geklikt worden op de lijst waarin interesse bestaat. De pagina waarop de lijsten staan beschreven bevat alle informatie die nodig is om te abonneren. Om te posten op een lijst kan simpelweg een e–mail gestuurd worden naar lijstnaam@FreeBSD.org. Daarna wordt die doorgestuurd aan leden van de lijst in de hele wereld. Om het abonnement op een lijst op te zeggen kan op de URL die onderaan iedere e–mail van een lijst staat geklikt worden. Het is ook mogelijk om een e–mail te sturen naar lijstnaam-unsubscribe@FreeBSD.org om een abonnement op te zeggen. Hierbij nogmaals het advies om discussies op de technische mailinglijsten technisch te houden. Als er alleen interesse bestaat in belangrijke mededelingen dan wordt aangeraden te abonnneren op &a.announce;, waarop zelden verkeer voorkomt. Lijstdoelstellingen Alle &os; mailinglijsten hebben eigen regels waaraan voldaan dient te worden bij gebruik. Als daaraan niet wordt voldaan, resulteert dat in maximaal twee (2) schriftelijke waarschuwingen van de &os; Postmaster postmaster@FreeBSD.org, waarna na de derde overtreding de poster verwijderd wordt van alle &os; mailinglijsten en alle toekomstige mail van het adres van de verzender wordt uitgefilterd. Helaas zijn deze regels nodig, omdat het internet van vandaag de dag een onvriendelijke omgeving is en slechts weinigen zich bewust zijn van hoe fragiel sommige mechanismen zijn. Standaardregels: Het onderwerp van iedere mail dient te voldoen aan de basisdoelstellingen van de lijst waarnaar wordt gepost. Als de lijst bijvoorbeeld over technische onderwerpen gaat, dan hoort een post ook over iets technisch te gaan. Ruis en flaming doen alleen af aan de waarde van een mailinglijst voor alle leden en dat wordt niet getolereerd. Voor vrije discussie dient de &a.chat; gebruikt te worden die daar speciaal voor is ingesteld. Bijdragen horen niet naar meer dan twee mailinglijsten verzonden te worden en alleen dan naar twee als het helder en duidelijk is dat daarvoor de noodzaak bestaat. Voor de meeste lijsten bestaat er al veel overlap in de leden en met uitzondering van de meer esoterische lijsten, zoals bijvoorbeeld -stable & -scsi, is er eigenlijk slechts zelden aanleiding om naar meer dan een lijst te posten. Als een bericht zo is verzonden dat er meerdere mailinglijsten op de regel Cc staan, dan hoort de regel Cc weer ingekort te worden in een eventueel antwoord. De verzender is verantwoordelijk voor zijn eigen kruisposten, wie ook een eerdere zender was. Persoonlijke aanvallen en profane taal (in de context van een geschil) zijn niet toegestaan. Dit geldt zowel voor gebruikers als ontwikkelaars. Grove schending van de netiquette, zoals kopiëren uit of het volledig doorsturen van persoonlijke e–mail zonder dat daarvoor toestemming is gegeven, wordt niet op prijs gesteld. Er zijn hoe dan ook zeer weinig gevallen zijn waarin zoiets dergelijks wel binnen de doelstelling van een lijst valt, waardoor dat soort e–mails op grond van de inhoud alleen al vaak reden zijn voor een waarschuwing (of ban). Adverteren voor niet-&os; gerelateerde producten is streng verboden en heeft direct een ban tot gevolg als helder is dat de overtreder adverteert door middel van spam. Individuele lijstdoelstellingen: &a.acpi.name; ACPI en energiebeheerontwikkeling &a.afs.name; Andrew Bestandssysteem (Andrew File System) Deze lijst is voor onderwerpen over het porten en gebruik van AFS van CMU/Transarc &a.announce.name; Belangrijke gebeurtenissen en projectdoelen Dit is de mailinglijst voor hen die alleen interesse hebben in gelegenheidsmededelingen of belangrijke &os; gebeurtenissen. Hieronder vallen aankondigingen over snapshots en andere releases. De lijst omvat ook aankondigingen over nieuwe mogelijkheden binnen &os;. Er kunnen ook oproepen gedaan worden voor vrijwilligers, enzovoort. Deze lijst kent een laag volume en is volledig gemodereerd. &a.arch.name; Discussie van architectuur en ontwerp Deze lijst is bedoeld voor het bespreken van de &os; architectuur. Berichten zijn in het algemeen strikt technisch van aard. Voorbeelden van geschikte onderwerpen zijn: Hoe het buildsysteem bijgewerkt kan worden zodat meerdere aanpaste builds tegelijkertijd kunnen lopen. Wat moet er aan VPS aangepast worden om Heidemann layers te laten werken. Hoe kan de apparataatstuurprogramma interface aangepast worden zodat dezelfde stuurprogramma's netjes op vele bussen en architecturen gebruikt kunnen worden. Hoe een netwerkstuurprogramma geschreven kan worden. &a.audit.name; Broncode audit project Dit is de mailinglijst voor het &os; broncode audit project. Hoewel in eerst instantie bedoeld voor beveiliging gerelateerde wijzigingen, zijn de doelstellingen aangepast naar alle wijzigingen in de code. Op deze lijst komen veel patches voor en hij is waarschijnlijk niet interessant voor de gemiddelde &os; gebruiker. Beveiligingsdiscussies die niet gerelateerd zijn aan een bepaalde broncodewijziging worden gehouden op freebsd-security. Omgekeerd worden alle ontwikkelaars aangemoedigd hun patches op deze lijst ter review aan te bieden, zeker als hun patch een deel van het systeem raakt waar een bug de integriteit van het systeem nadelig kan beïnvloeden. &a.binup.name; &os; Binaire Updates Project Deze lijst bestaat om de mogelijkheid te bieden tot het bespreken van het binaire update systeem of binup. Onderwerpen met betrekking tot ontwerp, implementatie details, patches, bugreports, statusreports, feature requests, commit logs en alle andere dingen die met binup te maken hebben kunnen besproken worden. &a.bluetooth.name; &bluetooth; in &os; Dit is het forum waar gebruikers van &bluetooth; op &os; samenkomen. Gespreksstof op het gebied van ontwerp, implementatiedetails, patches, probleemrapportages, statusrapportages, verzoeken voor nieuwe mogelijkheden en al het andere dat met &bluetooth; te maken heeft is geschikt materiaal. &a.bugbusters.name; Coördinatie afhandeling Problem Reports Het doel van deze lijst is een platform zijn voor de coördinatie en discussie voor de Bugmeister, zijn Bugbusters en anderen die interesse hebben in de PR database. Deze lijst is niet bedoeld voor discussie van specifieke bugs, patches of PR's. &a.bugs.name; Bug reports Dit is de mailinglijst voor het rapporteren van bugs in &os;. Waar mogelijk dienen bugs ingezonden te worden via &man.send-pr.1; of via de WEB interface daarvan. &a.chat.name; Niet-technische onderwerpen met betrekking tot de &os; gemeenschap Deze lijst bevat alle onderwerpen waar op andere lijsten geen ruimte voor is wat betreft niet-technische en sociale informatie. Er wordt gesproken over de moord op Van Gogh, of er in onderkast of kapitalen geschreven dient te worden, wie er te veel koffie drinkt, waar het beste bier vandaan komt, enzovoort. Belangrijke gebeurtenissen (zoals feestjes, bruiloften, geboorten, nieuwe banen, enzovoort) kunnen op de technische lijsten aangekondigd worden, maar antwoorden dienen naar deze -chat lijst te gaan. &a.core.name; &os; Kernteam Dit is een interne mailinglijst die wordt gebruikt door de kernleden. Er kunnen berichten naar gestuurd worden als een belangrijke &os; gerelateerde zaak arbitrage nodig heeft of een onderzoekende blik op hoog niveau nodig is. &a.current.name; Discussie over het gebruikt van &os.current; Dit is de mailinglijst voor gebruikers van &os.current;. Er staan waarschuwingen op over nieuwe mogelijkheden in -CURRENT die impact hebben op gebruikers en instructies over de te nemen stappen om -CURRENT te blijven. Iedereen die CURRENT draait, zou zich moeten abonneren. Dit is een technische mailinglijst waarop strikt technische berichten worden verwacht. &a.cvsweb.name; &os; CVSweb Project Technische discussie over het gebruik, de ontwikkeling en het beheer van &os;-CVSweb. &a.doc.name; Documentatie project Dit is de mailinglijst voor het bespreken van onderwerpen en projecten die te maken hebben met het maken van documentatie voor &os;. De leden van deze mailinglijst worden samen The &os; Documentation Project genoemd. Het is een open lijst waarop zonder problemen een abonnement genomen kan worden en bijdragen zeer op prijs worden gesteld! + + &a.drivers.name; + + + Apparaatstuurprogramma's schrijven voor + &os; + + Dit is een forum voor technische discussie met + betrekking tot apparaatstuurprogramma's op &os;. Het is + vooral een plaats voor schrijvers van + apparaatstuurprogramma's om vragen te stellen over hoe + apparaatstuurprogramma's te schrijven met de API's in de + kernel van &os;. + + + &a.firewire.name; &firewire; (iLink, IEEE 1394) Dit is de mailinglijst voor het bespreken van het ontwerp en de implementatie van een &firewire; (ook wel IEEE 1394 of iLink) subsysteem voor &os;. Relevante onderwerpen omvatten de standaarden, bus apparaten en hun protocollen, adapter boards/kaarten/chipssets en de architectuur en implementatie van code voor een juiste ondersteuning. &a.fs.name; Bestandssystemen Discussie over &os; bestandssystemen. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.geom.name; GEOM Discussie specifiek over GEOM en gerelateerde implementaties. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.gnome.name; GNOME Discussie over de GNOME bureaubladomgeving voor &os;. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.ipfw.name; IP Firewall Dit is het forum voor technische bespreking van het herontwerp van de IP firewall code in &os;. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.ia64.name; Porten van &os; naar IA64 Dit is een technische mailinglijst voor individuen die actief werken aan het porten van &os; naar het IA-64 platform van &intel;, om problemen op tafel te leggen of alternatieve oplossingen te bespreken. Geïnteresseerden die alleen de technische bespreking willen volgen zijn ook welkom. &a.isdn.name; ISDN Communicatie Dit is de mailinglijst voor discussie over de ontwikkeling van ISDN ondersteuning voor &os;. &a.java.name; &java; Ontwikkeling Dit is de mailinglijst voor het bespreken van de ontwikkeling van significante &java; applicaties voor &os; en het porten en het beheer van &jdk;'s. &a.jobs.name; Banen in de aanbieding en gezocht Dit is een forum voor vacatures en CV's specifiek gerelateerd aan &os;, bijvoorbeeld als er &os; gerelateerd werk wordt gezocht of in de aanbieding is. Dit is geen mailinglijst voor algemene werkonderwerpen omdat daarvoor al elders ruimte staat. Ook deze lijst wordt net als alle andere FreeBSD.org mailinglijsten wereldwijd verspreid. Daarom dient duidelijk vermeld te worden om welke locatie het gaat en onder welke voorwaarden telewerken of bijdragen in huisvesting mogelijk zijn. E–mail dient alleen open formaten te bevatten. Bij voorkeur platte tekst, maar standaard Portable Document Format (PDF), HTML en een aantal andere, zijn acceptabel voor lezers. Gesloten formaten, zoals µsoft; Word (.doc), worden door de mailinglijstserver geweigerd. &a.kde.name; KDE Discussie over KDE op &os; systemen. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.hackers.name; Technische discussies Dit is een forum voor technische discussie met betrekking tot &os;. Dit is de leidende technische mailinglijst die is bestemd voor mensen die actief aan &os; werken om problemen aan het voetlicht te brengen of alternatieve oplossingen te bespreken. Geïnteresseerden die alleen de technische bespreking willen volgen zijn ook welkom. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.hardware.name; Algemene discussie over &os; hardware Algemene discussie over de typen hardware waar &os; op draait en problemen en oplossingen over wat te kopen en wat vooral niet. &a.hubs.name; Mirrorsites Aankondigingen en discussie voor beheerders van &os; mirrorsites. &a.isp.name; Onderwerpen voor Internet Service Providers Deze mailinglijst is voor het bespreken van relevante onderwerpen voor Internet Service Providers (ISP's) die &os; gebruiken. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.openoffice.name; OpenOffice.org Discussie over het porten en beheren van OpenOffice.org en &staroffice;. &a.performance.name; Discussie over het optimaliseren of versnellen van &os; Deze mailinglijst is een platform voor hackers, beheerders en/of andere belanghebbenden om &os; en prestaties gerelateerde onderwerpen te bespreken. De onderwerpen die besproken kunnen worden omvatten &os; installaties met een hoge load, systemen met prestatieproblemen of systemen die tegen de limieten van &os; aan zitten. Zij die willen meewerken om de prestaties van &os; te verbeteren worden sterk aangemoedigd op deze lijst te abonneren. Deze lijst is bijzonder technisch en bijzonder geschikt voor ervaren &os; gebruikers, hackers en beheerders die &os; snel, robuust en schaalbaar willen houden. Deze lijst is geen vraag-en-antwoord lijst die dient als vervanging voor het lezen van documentatie, maar hier worden bijdragen geleverd of vragen gesteld over nog niet eerder beschreven prestatie gerelateerde onderwerpen. &a.pf.name; Discussie en vragen over het pakketfilter firewall systeem Discussie over het pakketfilter (pf) firewall systeem aangaande &os;. Technische discussie en gebruikersvragen zijn beiden welkom. Deze lijst is ook de plaats om het ALTQ QoS framework te bespreken. &a.platforms.name; Porten van niet-&intel; platforms Cross-platform &os; zaken, algemene discussie en voorstellen voor niet-&intel; &os; ports. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.policy.name; Kernteam beleidsbeslissingen Dit is een laag volume, alleen-lezen mailinglijst voor beleidsbeslissingen van het &os; Kernteam. &a.ports.name; Discussie over ports Discussie over de Portscollectie (/usr/ports) van &os;, de ports infrastructuur en algemene coördinatie aangaande ports. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.ports-bugs.name; Discussie over ports bugs Discussie over problem reports voor de &os; Portscollectie (/usr/ports), voorgestelde ports of aanpassingen aan ports. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.proliant.name; Technische dicussie over &os; op HP Proliant serverplatforms Deze mailinglijst wordt gebruikt voor technische discussie over het gebruik van &os; op HP ProLiant servers, inclusief het bespreken van ProLiant-specifieke drivers, beheersoftware, gereedschappen voor instellingen en BIOS updates. Dit is daaarom ook de uitgesproken plaats voor het bespreken van de modules hpasmd, hpasmcli en hpacucli. &a.python.name; Python op &os; Dit is een lijst voor discussie gerelateerd aan het verbeteren van ondersteuning voor Python op &os;. Dit is een technische mailinglijst voor mensen die aan het porten van Python, aanverwante modules en Zope dingen naar &os; werken. &a.questions.name; Gebruikersvragen Dit is de mailinglijst voor vragen over &os;. Er horen geen how to vragen op de technische mailinglijsten thuis, tenzij een vraag erg technisch van aard is. &a.scsi.name; SCSI subsysteem Dit is de mailinglijst voor mensen die aan het SCSI subsysteem voor &os; werken. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.security.name; Beveiligingsonderwerpen &os; computerbeveiligingsonderwerpen (DES, Kerberos, bekende beveiligingsgaten, oplossingen, enzovoort). Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. Dit is zeker geen vraag-en-antwoord lijst, maar bijdragen voor de FAQ (zowel vraag als antwoord) zijn welkom. &a.security-notifications.name; Beveiligingswaarschuwingen Waarschuwingen voor &os; beveiligingsproblemen en oplossingen. Dit is geen discussielijst. De discussielijst is &a.security.name;. &a.small.name; &os; gebruiken in embedded toepassingen Op deze lijst worden onderwerpen gerelateerd aan ongebruikelijk kleine en embedded &os; installaties besproken. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.stable.name; Discussie over het gebruik van &os.stable; Dit is de mailinglijst voor gebruikers van &os.stable;. Er worden ook waarschuwingen op gepost over nieuwe opties in -STABLE die invloed op de systemen van gebruikers kunnen hebben en instructies over de te nemen stappen om -STABLE te blijven. Iedereen die STABLE draait hoort zich op deze lijst te abonneren. Dit is een technische mailinglijst waarop slechts strikt technische bijdragen worden verwacht. &a.standards.name; Conformeren C99 & POSIX Dit is een forum voor technische bespreking gerelateerd aan het conformeren van &os; aan de C99 en de POSIX standaarden. &a.usb.name; Discussie over &os; ondersteuning voor USB Dit is de mailinglijst voor technische bespreking van onderwerpen gerelateerd aan &os; ondersteuning voor USB. &a.usergroups.name; Gebruikersgroep Coördinatie Lijst Dit is de mailinglijst voor coördinatoren voor alle lokale gebruikersgroepen, zodat ze met elkaar en een lid van het Kernteam zaken kunnen bespreken. Deze lijst hoort beperkt te blijven tot een overzicht van overleggen en de coördinatie van projecten waarbij meerdere gebruikersgroepen betrokken zijn. &a.vendors.name; Verkopers Coördinatie en discussie tussen het &os; project en verkopers van software en hardware voor &os;. Filters op de mailinglijsten De &os; mailinglijsten worden op verschillende manieren gefilterd om het doorsturen van spam, virussen en andere ongewenste e–mail te beperken. De hieronder beschreven filteracties bevatten niet alle genomen acties voor de beveiliging van de mailinglijsten. Er is een beperkt aantal typen bijlagen toegestaan op de mailinglijsten. Alle bijlagen met een MIME content type dat niet in de onderstaande lijst staat worden verwijderd voordat de mail wordt doorgestuurd naar de mailinglijsten. application/octet-stream application/pdf application/pgp-signature application/x-pkcs7-signature message/rfc822 multipart/alternative multipart/related multipart/signed text/html text/plain text/x-diff text/x-patch Sommige mailinglijsten staan wellicht bijlagen toe met andere MIME content typen, maar de bovenstaande lijst zal gelden voor de meeste mailinglijsten. Als een e–mail zowel een HTML als een platte tekst versie bevat, dan wordt de HTML versie verwijderd. Als een mail alleen een HTML versie bevat, dan wordt die omgezet naar platte tekst. Usenet nieuwsgroepen Naast de twee specifieke &os; nieuwsgroepen zijn er nog veel andere waarin &os; wordt besproken of die anderszins relevant zijn voor &os; gebruikers. Er zijn sleutelwoord doorzoekbare archieven voor een aantal van die nieuwsgroepen, met dank aan Warren Toomey wkt@cs.adfa.edu.au. Specifieke BSD nieuwsgroepen comp.unix.bsd.freebsd.announce comp.unix.bsd.freebsd.misc de.comp.os.unix.bsd (Duits) fr.comp.os.bsd (Frans) it.comp.os.freebsd (Italiaans) Overige interessante &unix; nieuwsgroepen comp.unix comp.unix.questions comp.unix.admin comp.unix.programmer comp.unix.shell comp.unix.user-friendly comp.security.unix comp.sources.unix comp.unix.advocacy comp.unix.misc comp.bugs.4bsd comp.bugs.4bsd.ucb-fixes comp.unix.bsd X Window systeem comp.windows.x.i386unix comp.windows.x comp.windows.x.apps comp.windows.x.announce comp.windows.x.intrinsics comp.windows.x.motif comp.windows.x.pex comp.emulators.ms-windows.wine World wide web servers Onderstaande lijst met World Wide Web Servers wordt automatisch samengesteld om zo actueel mogelijk te zijn en is daarom niet vertaald. &chap.eresources.www.inc; E–mail adressen De onderstaande gebruikersgroepen bieden &os; gerelateerde e–mail adressen aan voor hun leden. De aangegeven beheerders behouden zich het recht voor om een account te verwijderen als die op enigerlei wijze wordt misbruikt. Domein Faciliteiten Gebruikersgroep Beheerder ukug.uk.FreeBSD.org Alleen forwarden freebsd-users@uk.FreeBSD.org Lee Johnston lee@uk.FreeBSD.org Shell accounts De onderstaande gebruikersgroepen bieden shell accounts aan voor mensen die het &os; project actief ondersteunen. De aangegeven beheerders behouden zich het recht voor om een account te verwijderen als die op enigerlei wijze wordt misbruikt. Host Toegang Faciliteiten Beheerder dogma.freebsd-uk.eu.org Telnet/FTP/SSH E–mail, webhosting, anonieme FTP Lee Johnston lee@uk.FreeBSD.org diff --git a/nl_NL.ISO8859-1/books/handbook/geom/Makefile b/nl_NL.ISO8859-1/books/handbook/geom/Makefile new file mode 100644 index 0000000000..59e5759cdc --- /dev/null +++ b/nl_NL.ISO8859-1/books/handbook/geom/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= geom/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml new file mode 100644 index 0000000000..f829dd5445 --- /dev/null +++ b/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml @@ -0,0 +1,444 @@ + + + + + + + Tom + Rhodes + Geschreven door + + + + + Siebrand + Mazeland + Vertaald door + + + + + GEOM: Modulair schijftransformatie framework + + + Overzicht + + GEOM + + + GEOM schijf framework + + GEOM + + + Dit hoofdstuk beschrijft het gebruik van schijven in het + nieuwe GEOM framework in &os;. Hieronder vallen de belangrijkste + RAID + besturingsprogramma's die het framework gebruikt voor + instellingen. In dit hoofdstuk wordt niet diepgaand beschreven + hoe GEOM omgaat met I/O, het onderliggende subsysteem of code. + Die informatie staat in het hulppagina voor &man.geom.4; en de + verscheidene SEE ALSO referenties. Dit hoofdstuk + is ook geen definitief stuk over het instellen van + RAID. Alleen de door GEOM ondersteunde + RAID-classificaties worden beschreven. + + Na het lezen van dit hoofdstuk weet de lezer: + + + + Welk type RAID-ondersteuning via GEOM + beschikbaar is; + + + + Hoe de basisgereedschappen te gebruiken om de + verschillende RAID-niveau's in te stellen, + te onderhouden en te wijzigen; + + + + Hoe schijfapparaten via GEOM te spiegelen, aaneen te + schakelen, te versleutelen en vanaf afstand schijven aan te + sluiten; + + + + Hoe problemen op te lossen met schijven die via het GEOM + framework zijn aangesloten. + + + + Veronderstelde voorkennis: + + + + Begrijpen hoe &os; omgaat met schijfapparaten (); + + + + Weten hoe een nieuwe &os; kernel in te stellen en te + installeren (). + + + + + + GEOM inleiding + + GEOM staat toegang en controle toe op klassen, Master Boot + Records, BSD labels, enzovoort, door gebruik + te maken van diensten of de speciale bestanden in /dev. GEOM ondersteunt + verschillende software RAID instellingen en + biedt transparante toegang tot het besturingssysteem en de + hulpprogramma's. + + + + + + + Tom + Rhodes + Geschreven door + + + Murray + Stokely + + + + + RAID0 - aaneengeschakeld + + GEOM + + aaneengeschakeld + + Aaneenschakelen is een methode die gebruikt wordt + om meerdere schijven te combineren tot een enkele volume. In + veel gevallen wordt dit gedaan met hardware controllers. Het + GEOM subsysteem biedt softwareondersteuning voor + RAID0, ook wel bekend als aaneenschakelen + (disk striping). + + In een RAID0-systeem worden gegevens + opgedeeld in blokken die verdeeld worden over de schijven in een + reeks. In plaats van te hoeven wachten tot een systeem 256k naar + één schijf heeft geschreven, kan een + RAID0-systeem tegelijkertijd 64k naar vier + verschillende schijven schrijven, waardoor superieure I/O + prestaties worden bereikt. Deze prestaties kunnen nog verbeterd + worden door meerdere schijfcontrollers te gebruiken. + + Iedere schijf in een + RAID0-aaneenschakeling moet van dezelfde + grootte zijn, omdat I/O-verzoeken altijd zijn opgebouwd uit + precies gelijk over de schijven verdeelde verzoeken tot lezen of + schrijven. + + + + + + + + Illustratie aaneengeschakelde schijven + + + + + Ongeformatteerde ATA-schijven aaneenschakelen + + + Laad de module geom_stripe: + + &prompt.root; kldload geom_stripe.ko + + + + Zorg ervoor dat er een mountpunt beschikbaar is. Als dit + volume een rootpartitie wordt, gebruikt dan tijdelijk een + ander mountpunt zoals /mnt. + + &prompt.root; mkdir /mnt + + + + Stel de apparaatnamen voor de schijven vast die aaneen + worden geschakeld en maak het nieuwe apparaat aan. Het + volgende commando kan bijvoorbeeld gebruikt worden om twee + ongebruikte, ongepartitioneerde ATA + schijven aaneen te schakelen (/dev/ad2 + en /dev/ad3). + + &prompt.root; gstripe label -v st0 /dev/ad2 /dev/ad3 + + + + + + Als dit volume wordt gebruikt als rootapparaat voor het + opstarten van een systeem, dan dient het volgende commando + gegeven te worden voordat het bestandssysteem wordt + gemaakt: + + &prompt.root; fdisk -vBI /dev/stripe/st0 + + + + Er moet een partitietabel gemaakt worden op het nieuwe + volume: + + &prompt.root; bsdlabel -wB /dev/stripe/st0 + + + + Dit proces hoort twee nieuwe apparaten gemaakt te hebben + in de map /dev/stripe + naast het apparaat st0, te weten + st0a en st0c. Nu + kan er een bestandssysteem gemaakt worden op het apparaat + st0a met + newfs: + + &prompt.root; newfs -U /dev/stripe/st0a + + Na het uitvoeren van het bovenstaande commando rollen er + veel getallen over het scherm en na een aantal seconden is + het proces afgerond. Het volume is gereed en klaar om + gemount te worden. + + + + Met het volgende commando kan een nieuw gemaakte + aaneengeschakelde schijf handmatig gemount worden: + + &prompt.root; mount /dev/stripe/st0a /mnt + + Om dit aaneengeschakelde bestandssysteem automatisch te + mounten bij het opstarten kan de volume-informatie in + /etc/fstab gezet worden: + + &prompt.root; echo "/dev/stripe/st0a /mnt ufs rw 2 2" \ + >> /etc/fstab + + De GEOM module dient ook automatisch geladen te worden bij + het initialiseren van een systeem door de volgende regel toe te + voegen aan /boot/loader.conf: + + &prompt.root; echo 'geom_stripe_load="YES"' >> /boot/loader.conf + + + + RAID1 - spiegelen + + GEOM + + schijf spiegelen + + Spiegelen (mirroring) is een technologie die + door veel bedrijven en thuisgebruikers wordt ingezet om gegevens + te back-uppen zonder onderbrekingen. Als er een spiegel bestaat, + betekent dat eenvoudigweg dat schijfB een kopie is van schijfA, + of misschien zijn schijvenC+D een kopie van schijvenA+B. Los van + de schijfinstellingen is het belangrijkste aspect dat de + gegevens van de ene schijf of partitie worden gerepliceerd naar + de andere. Later kunnen die gegevens eenvoudiger worden hersteld + of geback-upped zonder dat dit leidt tot onderbrekingen in + dienstverlening of toegang tot gegevens en schijven kunnen zelfs + fysiek worden opgeslagen in een kluis. + + Begin met een systeem dat twee schijven heeft van gelijke + grootte. Deze oefening stelt dat het directe toegang + (&man.da.4;) SCSI-schijven zijn. + + Begin door &os; te installeren op de eerste schijf met twee + partities. Een van de twee moet een swap-partitie zijn die twee + keer de grootte van het RAM-geheugen is en de rest van de ruimte + moet toegewezen worden aan het root bestandssysteem (/). Er zouden eigen partities + gemaakt kunnen worden voor andere mountpunten, maar hierdoor + wordt de moeilijkheidsgraad wel tien keer hoger doordat de + instellingen voor &man.bsdlabel.8; and &man.fdisk.8; handmatig + gewijzigd moeten worden. + + Herstart en wacht tot het systeem volledig is + geïnitialiseerd. Meld daarna aan als gebruiker + root. + + Maak het apparaat /dev/mirror/gm en link + het aan /dev/da1: + + &prompt.root; gmirror label -vnb round-robin gm0 /dev/da1 + + + Dit commando hoort de apparaatnodes + gm0, gm0s1, + gm0s1a en gm0s1c + gemaakt te hebben onder de map /dev/mirror. + + + Initialiseer GEOM, waardoor de kernelmodule + /boot/kernel/geom_mirror.ko wordt + geladen: + + &prompt.root; geom load + + Installeer het algemene fdisk label en de + bootcode op het nieuw aangemaakte apparaat + gm0: + + &prompt.root; fdisk -vBI /dev/mirror/gm0 + + Installeer nu de algemene bsdlabel + informatie: + + &prompt.root; bsdlabel -wB /dev/mirror/gm0s1 + + + Als meerdere slices en partities bestaan, dienen de vlaggen + voor de vorige twee commando's anders te zijn. Ze moeten + gelijk zijn aan de groottes van de slice en partitie van de + andere schijf. + + + Gebruik &man.newfs.8; om een standaard bestandssysteem te + maken op de apparaatnode gm0s1a: + + &prompt.root; newfs -U /dev/mirror/gm0s1a + + Door het bovenstaande commando spuugt een systeem wat + informatie uit en wat getalletjes. Dat is goed. Bekijk de + uitvoer op het voorkomen van foutmeldingen en mount het apparaat + op het mountpunt /mnt: + + &prompt.root mount /dev/mirror/gm0s1a /mnt + + Verplaats nu alle gegevens van de bootschijf naar dit nieuwe + bestandssysteem. In dit voorbeeld worden &man.dump.8; en + &man.restore.8; gebruikt, maar &man.dd.1; werkt ook in dit + scenario. Hier wordt geen gebruik gemaakt van &man.tar.1; omdat + &man.tar.1; de bootcode niet kan kopiëren, iets dat een + foute afloop garandeert. + + &prompt.root; dump -L -0 -f- / |(cd /mnt && restore -r -v -f-) + + Dit dient voor ieder bestandssysteem uitgevoerd te worden. + Plaats eenvoudigweg het juiste bestandssysteem op de juiste + plaats bij het uitvoeren van het voorgaande commando. + + Wijzig nu het gerepliceerde bestand + /mnt/etc/fstab en verwijder het swapbestand + of plaats er een commentaarteken voor. Wijzig de informatie voor + de andere bestandssystemen zodat ze de nieuwe schijf gebruiken. + Zie het volgende voorbeeld: + + # Device Mountpoint FStype Options Dump Pass# +#/dev/da0s2b none swap sw 0 0 +/dev/mirror/gm0sa1 / ufs rw 1 1 + + Maak nu een bestand boot.conf op zowel + de huidige als de nieuwe rootpartitie. Dit bestand + helpt het BIOS van een systeem + op te starten van de juiste schijf: + + &prompt.root; echo "1:da(1,a)/boot/loader" > /boot.config +&prompt.root; echo "1:da(1,a)/boot/loader" > /mnt/boot.config + + + Dit bestand dient op beide rootpartities te staan om zeker + te stellen dat een systeem goed opstart. Als een systeem om + welke reden dan ook niet kan lezen van de nieuwe rootpartitie, + dan is een achtervang beschikbaar. + + + Voeg de volgende regel toe aan + /boot/loader.conf: + + &prompt.root; echo 'geom_mirror_load="YES"' >> /boot/loader.conf + + Hiermee wordt aan &man.loader.8; aangegeven dat deze + geom_mirror.ko dient te laden tijdens de + initialisatie van een systeem. + + Herstart het systeem: + + &prompt.root; shutdown -r now + + Als alles goed is gegaan, hoort het systeem gestart te zijn + vanaf het apparaat gm0s1a en er moet een + login prompt staan te wachten. Als er iets + mis is gegaan, kijk dan in de volgende sectie voor het oplossen + van problemen. Voeg nu de schijf da0 toe + aan het apparaat gm0: + + &prompt.root; gmirror configure -a gm0 +&prompt.root; gmirror insert gm0 /dev/da0 + + De vlag geeft &man.gmirror.8; aan dat + automatische synchronisatie gebruikt moet worden, ofwel dat + schrijfbewerkingen naar schijf automatisch gespiegeld moeten + worden. In de hulppagina wordt beschreven hoe schijven herbouwd + en vervangen kunnen worden, hoewel daar data + wordt gebruikt in plaats van gm0. + + + Problemen oplossen + + + Systeem weigert op te starten + + Als een systeem opstart in een prompt dat op het volgende + lijkt: + + ffs_mountroot: can't find rootvp +Root mount failed: 6 +mountroot> + + Herstart te machine met de aan/uit-schakelaar of met de + resetknop. Selecteer in het bootmenu optie zes (6). + Hierdoor komt een systeem in een &man.loader.8; prompt. Laad + de kernelmodules handmatig: + + OK? load geom_mirror.ko +OK? boot + + Als dit werkt werd de module om welke reden dan ook niet + juist geladen. Zet de onderstaande regel in het bestand met + kernelinstellingen en herbouw en installeer de kernel. + + options GEOM_MIRROR + + Hiermee moet het probleem opgelost zijn. + + + + + + diff --git a/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml index 72a85b3059..523717bb6d 100644 --- a/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml @@ -1,2053 +1,2060 @@ Ross Lippert Aangepast door Siebrand Mazeland Vertaald door Multimedia Overzicht &os; ondersteunt een breed bereik aan geluidskaarten, waardoor het mogelijk is van geluid van hoge kwaliteit op een computer te genieten. Hieronder vallen mogelijkheden om geluid op te nemen en af te spelen in de MPEG Audio Layer 3 (MP3), WAV en Ogg Vorbis formaten en vele andere formaten. De &os; Portscollectie bevat ook programma's waarmee opgenomen audio bewerkt kan worden, waarmee geluidseffecten toegevoegd kunnen worden en aangesloten MIDI apparaten bestuurd kunnen worden. Met wat wil om te experimenteren kunnen met &os; videobestanden en DVD's afgespeeld worden. Er zijn minder programma's om video te encoderen, te converteren en af te spelen dan er zijn voor audio. Op het moment van schrijven is er bijvoorbeeld geen programma in de &os; Portscollectie beschikbaar waarmee video goed gehercodeerd kan worden. Deze functie zou gebruikt kunnen worden om tussen formaten te converteren, zoals mogelijk is met audio/sox. De software in dit landschap is echter sterk aan verandering onderhevig. In dit hoofdstuk worden de stappen beschreven die uitgevoerd moeten worden om een geluidskaart in te stellen. Bij de installatie en instelling van X11 () is al beschreven hoe videokaarten ingesteld kunnen worden, hoewel er nog wel een aantal mogelijkheden zijn om het afspelen te verbeteren. Na het lezen van dit hoofdstuk weet de lezer: Hoe een systeem zo in te stellen dat een geluidskaart wordt herkend; Hoe getest kan worden of een kaart werkt door gebruik te maken van voorbeeldapplicaties; Hoe problemen op te lossen met betrekking tot geluidsinstellingen; Hoe MP3's en andere audio af te spelen en te maken; Hoe video wordt ondersteund door de X server; Welke video speler/encoderports goede resultaten geven; Hoe DVD's, .mpg en .avi bestanden af te spelen; Hoe CD en DVD informatie naar bestanden geript kan worden; Hoe een TV-kaart in te stellen; Hoe een scanner in te stellen. Er wordt aangenomen dat de lezer van dit hoofdstuk: Weet hoe een nieuwe kernel in te stellen en te installeren (). Het proberen te mounten van audio CD's met &man.mount.8; resulteert in ieder geval in een foutmelding en op zijn ergst in een kernel panic. Dat type media heeft een formaat dat afwijkt van het gebruikelijke ISO-bestandssysteem. Moses Moore Geschreven door Marc Fonvieille Aangepast voor &os; 5.X door Geluidskaart installeren Systeem instellen PCI ISA geluidskaarten Alvorens te beginnen is het van belang te weten welk model een geluidskaart is, welke chip erop wordt gebruikt en of het een PCI of ISA kaart is. &os; ondersteunt vele PCI en ISA kaarten. De ondersteunde audioapparaten staan in een lijst in de Hardware Notes. In dit document staat ook beschreven welk stuurprogramma welke kaart(en) ondersteunt. kernel instellen Om een geluidsapparaat te gebruiken dient het juiste apparaatstuurprogramma geladen te worden. Dit kan op twee manieren. De meest eenvoudige manier is simpelweg een kernelmodule te laden voor de gewenste geluidskaart met &man.kldload.8;. Dit kan vanaf de commandoregel: &prompt.root; kldload snd_emu10k1 Of door als volgt de juiste regel toe te voegen aan /boot/loader.conf: snd_emu10k1_load="YES" De bovenstaande voorbeelden zijn voor een Creative &soundblaster; Live! geluidskaart. De overige beschikbare laadbare geluidsmodules staan beschreven in /boot/defaults/loader.conf. Als niet compleet duidelijk is welk stuurprogramma gebruikt dient te worden, dan kan het met de module snd_driver geprobeerd worden: &prompt.root; kldload snd_driver Dit is een metastuurprogramma, dat in één keer de meest voorkomende apparaatstuurprogramma's laadt. Hiermee kan het zoeken naar het juiste stuurprogramma versneld worden. Het is ook mogelijk om alle geluidsstuurprogramma's te laden via de optie /boot/loader.conf. Om uit te vinden welk struurprogramma na het laden van het metastuurprogramma snd_driver wordt geladen kan de inhoud van het bestand /dev/sndstat nagekeken worden met cat /dev/sndstat. Om onder &os; 4.X alle geluidsstuurprogramma's te laden, dient de module snd geladen te worden in plaats van snd_driver. Een tweede mogelijkheid is ondersteuning voor een geluidskaart statisch in de kernel te compileren. In de onderstaande paragrafen staat meer informatie over hoe op die manier ondersteuning voor hardware toegevoegd kan worden. Meer informatie over het hercompileren van een kernel staat in . Aangepaste kernel maken met geluidsondersteuning Eerst moet het generieke audiostuurprogramma &man.sound.4; aan de kernel toegevoegd worden. Daarvoor dient het volgende te worden opgenomen in het bestand met kernelinstellingen: device sound Voor &os; 4.X kan het volgende gebruikt worden: device pcm Daarna kan ondersteuning voor de specifieke geluidskaart toegevoegd worden. Daarvoor moet bekend zijn welk stuurprogramma de kaart ondersteunt. Dit kan opgezocht worden in de lijst met ondersteunde audioapparaten in de Hardware Notes, waar de correcte stuurprogramma's voor geluidskaarten beschreven staan. Zo wordt een Creative &soundblaster; Live! geluidskaart bijvoorbeeld ondersteund door het stuurprogramma &man.snd.emu10k1.4;. Ondersteuning voor deze kaart kan als volgt worden toegevoegd: device "snd_emu10k1" In de hulppagina voor een stuurprogramma staat welke syntaxis gebruikt kan worden. Informatie over de syntaxis van geluidsstuurprogramma's in de kernelinstellingen staat ook in /usr/src/sys/conf/NOTES (/usr/src/sys/i386/conf/LINT voor &os; 4.X). Voor niet-PnP ISA-kaarten kan het nodig zijn dat de kernel informatie gegeven moet worden over de instellingen van een geluidskaart (IRQ, I/O poort, enzovoort). Dit kan via het bestand /boot/device.hints. Bij het starten van een systeem leest de &man.loader.8; dat bestand uit en geeft de instellingen door aan de kernel. Zo gebruikt een oude Creative &soundblaster; 16 ISA niet-PnP-kaart het stuurprogramma &man.snd.sbc.4; en dient de volgende regel toegevoegd te worden aan het bestand met kernelinstellingen: device snd_sbc Daarnaast moet het volgende worden toegevoegd aan /boot/device.hints: hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15" In dit geval gebruikt de kaart I/O poort 0x220 en IRQ 5. De gebruikte syntaxis voor /boot/device.hints staat beschreven in de hulppagina voor het geluidsstuurprogramma. In &os; 4.X worden deze instellingen direct in het bestand met kernelinstellingen gezet. In het geval van de bovenstaande ISA-kaart gaat dat al volgt: device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15 De bovenstaande instellingen zijn de standaard instellingen. In sommige gevallen moeten IRQ of andere instellingen gewijzigd worden om een apparaat juist te laten werken. In &man.snd.sbc.4; staat meer informatie. Onder &os; 4.X hebben sommige systemen met audioapparaten op het moederbord de volgende optie in het bestand met kernelinstellingen nodig: options PNPBIOS Geluidskaart testen Na het herstarten met de aangepaste kernel of na het laden van de benodigde module, hoort de geluidskaart ongeveer als volgt te verschijnen in de systeemberichtbuffer (&man.dmesg.8;): pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Cirrus Logic CS4205 AC97 Codec> De status van de geluidskaart kan gecontroleerd worden via het bestand /dev/sndstat: &prompt.root; cat /dev/sndstat FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default) De uitvoer kan per systeem wat verschillen. Als er geen apparaten pcm verschijnen, dienen eerdere stappen bekeken te worden. Bekijk nogmaals de instellingen van de kernel en bevestig dat het juiste apparaat is gekozen. Veel voorkomende problemen staan beschreven in . Als het goed is werkt de geluidskaart nu. Als de cd-rom of DVD-ROM drive juist is aangesloten op de geluidskaart, dan kan er een CD in de drive gestoken worden en kan deze met &man.cdcontrol.1; afgespeeld worden: &prompt.user; cdcontrol -f /dev/acd0 play 1 Applicaties als audio/workman kunnen een vriendelijker interface bieden. Wellicht is het handig om een applicatie als audio/mpg123 te installeren om naar MP3 audiobestanden te luisteren. Een snelle manier om de kaart te testen is het als volgt sturen van data naar /dev/dsp: &prompt.user; cat filename > /dev/dsp filename kan ieder bestand zijn. Deze commandoregel hoort wat ruis tot gevolg te hebben, waardoor wordt bevestigd dat de geluidskaart echt werkt. &os; 4.X gebruikers moeten de geluidskaart apparaatnodes maken voordat hij gebruikt kan worden. Als de kaart voorkomt in de berichtbuffer als pcm0, dan dient het volgende als root uitgevoerd te worden: &prompt.root; cd /dev &prompt.root; sh MAKEDEV snd0 Als de kaart herkend is als pcm1, kunnen dezelfde stappen als hierboven gevolgd worden, waarbij snd0 wordt vervangen door snd1. MAKEDEV maakt een groep apparaatnodes aan die gebruikt worden voor de applicaties die met geluid te maken hebben. Niveau's voor de geluidskaartmixer kunnen aangepast worden met het commando &man.mixer.8;. Er staan meer details in &man.mixer.8;. Bekende problemen apparaatnodes I/O poort IRQ DSP Fout Oplossing unsupported subdevice XX Eén of meer van de apparaatnodes zijn niet correct gemaakt. De bovenstaande stappen dienen opnieuw uitgevoerd te worden. sb_dspwr(XX) timed out De I/O poort is niet correct ingesteld. bad irq XX Het IRQ is niet correct ingesteld. Zorg dat het ingestelde IRQ en het IRQ voor het geluid hetzelfde zijn. xxx: gus pcm not attached, out of memory Er is niet genoeg geheugen beschikbaar om het apparaat te gebruiken. xxx: can't open /dev/dsp! Controleer fstat | grep dsp of een ander programma het apparaat geopend heeft. Bekende probleemgevallen zijn esound en KDE's geluidsondersteuning. - + Munish Chopra Geschreven door Meerdere geluidsbronnen gebruiken Het is vaak wenselijk om meerdere geluidsbronnen tegelijkertijd af te kunnen spelen, zoals wanneer esound of artsd het delen van een geluidsapparaat met een andere applicatie niet ondersteunen. Met &os; kan dit met Virtuele Geluidskanalen, die ingesteld kunnen worden met de &man.sysctl.8; faciliteit. Met virtuele kanalen kunnen de afspeelkanalen van een geluidskaart gemultiplext worden door het geluid in de kernel te mixen. Het aantal virtuele kanalen kan met twee sysctl knoppen als root als volgt ingesteld worden: &prompt.root; sysctl hw.snd.pcm0.vchans=4 &prompt.root; sysctl hw.snd.maxautovchans=4 In het bovenstaande voorbeeld worden vier virtuele kanelen gealloceerd, wat in het dagelijks gebruik voldoende is. In hw.snd.pcm0.vchans staat het aantal vitruele kanalen dat pcm0 heeft en is instelbaar als een apparaat is aangesloten. In hw.snd.maxautovchans staat het aantal virtuele kanalen dat aan een nieuw audio-apparaat wordt gegeven als het wordt aangesloten met &man.kldload.8;. Omdat de module pcm onafhankelijk van de hardware stuurprogramma's geladen kan worden, kan in hw.snd.maxautovchans opgeslagen worden hoeveel virtuele kanalen apparaten die later worden aangesloten krijgen. + + Het aantal virtuele kanalen voor een apparaat kan niet + gewijzigd worden als het in gebruik is. Sluit eerst alle + programma's die het apparaat gebruiken, zoals muziekspelers + of geluidsdaemons. + + Als er geen gebruik wordt gemaakt van &man.devfs.5;, dan moeten applicaties wijzen naar /dev/dsp0.x, waar x tussen 0 en 3 ligt als hw.snd.pcm.0.vchans is ingesteld op 4, zoals in het bovenstaande voorbeeld. Op een systeem waar &man.devfs.5; wordt gebruikt, wordt het voorgaande voor een gebruiker automatisch transparant gealloceerd. Josef El-Rayes Geschreven door Standaardwaarden voor mixerkanalen instellen De standaard waarden voor de mixerkanelen zijn ingesteld in de broncode van het stuurprogramma &man.pcm.4;. Er zijn vele applicaties en daemons waarmee waarden voor de mixer ingesteld en onthouden kunnen worden en iedere keer bij het starten weer kunnen worden ingesteld. Maar dit is geen nette oplossing, omdat het netter is de standaardwaarden in te stellen op het niveau van het stuurprogramma. Die kunnen ingesteld worden door de gewenste waarden in te stellen in /boot/device.hints. Bijvoorbeeld: hint.pcm.0.vol="100" Met de bovenstaande instelling wordt het volume van een kanaal standaard op 100 ingesteld bij het laden van de module &man.pcm.4;. Dit wordt alleen ondersteund in &os; 5.3-RELEASE en later. Chern Lee Geschreven door MP3 audio Met MP3 (MPEG Layer 3 Audio) kan geluid bijna in CD-kwaliteit weergegeven worden en dus is er een goede reden om dit vooral niet na te laten op een &os; werkstation. MP3 spelers Verreweg de meest populaire X11 MP3 speler is XMMS (X Multimedia Systeem). In XMMS kunnen Winamp skins gebruikt worden, omdat de GUI vrijwel gelijk is aan die van Nullsoft's Winamp. XMMS heeft ook een eigen plug-in ondersteuning. XMMS kan geïnstalleerd worden via de multimedia/xmms port of package. De interface van XMMS is intuïtief met een playlist, grafische equalizer en meer. Gebruikers die bekend zijn met Winamp vinden XMMS vast eenvoudig te gebruiken. De port audio/mpg123 is een alternatieve MP3 speler die gebruik maakt van de commandoregel. mpg123 werkt door het geluidsapparaat en het MP3 bestand aan te geven op de commandoregel, zoals hieronder wordt aangegeven: &prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp. Uses code from various people. See 'README' for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! Playing MPEG stream from Foobar-GreatestHits.mp3 ... MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo /dev/dsp1.0 dient gewijzigd te worden in het dsp apparaat van het systeem waarop de MP3 afgespeeld moet worden. CD audio tracks rippen Voordat een CD of een CD track naar MP3 ge-encodeerd kan worden moet de audiodata naar de harde schijf geript worden. Dit gaat door de ruwe CDDA (CD Digital Audio) data naar WAV-bestanden de kopiëren. Het hulpprogramma cdda2wav, dat onderdeel is van de suite sysutils/cdrtools, kan gebruikt worden om audio-informatie en de daarbij behorende informatie van CD's te rippen. Als de audio CD in de drive zit, kan het volgende commando als root uitgevoerd worden om een hele CD naar individuele (per track) WAV-bestanden te rippen: &prompt.root; cdda2wav -D 0,1,0 -B cdda2wav ondersteunt ATAPI (IDE) cd-rom drives. Om van een IDE drive te rippen, dient de apparaatnaam aangegeven te worden in plaats van de SCSI eenheidsnummers. Om bijvoorbeeld track 7 van een IDE drive te rippen: &prompt.root; cdda2wav -D /dev/acd0a -t 7 De optie geeft het SCSI apparaat 0,1,0 aan, dat overeenkomt met de uitvoer van cdrecord -scanbus. Om individuele tracks te rippen kan gebruik gemaakt worden van de optie : &prompt.root; cdda2wav -D 0,1,0 -t 7 In het bovenstaande voorbeeld wordt track 7 van de audio CD geript. Om een reeks tracks te rippen, bijvoorbeeld van 1 tot 7, kan een reeks opgegeven worden: &prompt.root; cdda2wav -D 0,1,0 -t 1+7 Ook het hulpprogramma &man.dd.1; kan gebruikt worden om audio tracks van ATAPI drives af te halen. Deze mogelijkheid wordt beschreven in . MP3's encoderen Tegenwoodig is de MP3 encoder lame. Lame staat in audio/lame in de portsstructuur. Met de geripte WAV-bestanden converteert het volgende commando audio01.wav naar audio01.mp3: &prompt.root; lame -h -b 192 \ --tt "Foo Titel" \ --ta "FooBar Artiest" \ --tl "FooBar Album" \ --ty "2005" \ --tc "Geript en encoded door Foo" \ --tg "Genre" \ audio01.wav audio01.mp3 192 kbits lijkt de standaard bitrate voor MP3 te zijn. Het is ook mogelijk 128 of 160 of andere bitrates te gebruiken. Hoe hoger de bitrate, hoe meer schijfruimte de uiteindelijke MP3-bestanden gebruiken, maar ook de kwaliteit wordt dan hoger. Met de optie wordt de modus hogere kwaliteit, maar iets langzamer ingeschakeld. Met de opties vanaf worden de ID3 tags ingegeven, die meestal informatie over een nummer bevatten en onderdeel uitmaken van het MP3-bestand. In de hulppagina voor lame staan nog meer opties die gebruikt kunnen worden bij het encoderen beschreven. MP3's decoderen Om een CD te kunnen branden van MP3's, moeten ze omgezet worden naar een niet gecomprimeerd WAV-formaat. Zowel XMMS als mpg123 ondersteunen de uitvoer van MP3 naar een niet gecomprimeerd bestandsformaat. Naar schijf schrijven met XMMS: Start XMMS; Klik rechts op het venster om het XMMS menu te zien; Selecteer Preference onder Options; Wijzig de Output Plugin naar Disk Writer Plugin; Klik Configure; Voer een map in (of kies browse) waar de ongecomprimeerde bestanden heengeschreven moeten worden; Laad de MP3-bestanden zoals gewoonlijk in XMMS, met het volume op 100% en de EQ instellingen uitgeschakeld; Klik Play. XMMS lijkt nu de MP3 af te spelen, maar er is geen muziek te horen. Nu wordt feitelijk de MP3 afgespeeld naar een bestand; Zorg ervoor dat de standaard Output Plugin wordt teruggezet naar hoe de instellingen waren om weer naar MP3's te kunnen luisteren. Schrijven naar stdout vanuit mpg123: Voer mpg123 -s audio01.mp3 > audio01.pcm uit. XMMS schijft een bestand in het WAV-formaat, terwijl mpg123 de MP3 converteert naar ruwe PCM audio data. Beide formaten kunnen gebruikt worden met cdrecord om audio CD's te maken. Met &man.burncd.8; moeten ruwe PCM-bestanden gebruikt worden. Als er WAV-bestanden worden gebruikt, is er een tik-geluid te horen bij het begin van iedere track. Dit is het geluid van de kop van ieder WAV-bestand. Met het hulpprogramma SoX kan de kop van WAV-bestanden verwijderd worden. Dit programma kan geïnstalleerd worden met de port of package audio/sox &prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.raw In staat meer informatie over het gebruiken van een CD-brander in &os;. Ross Lippert Geschreven door Video afspelen Video afspelen is een relatief nieuwe en zich snel ontwikkelende richting voor applicaties. In tegenstelling tot voor audio werkt alles hier niet zo soepel. Voor er wordt begonnen is het van belang te weten welk model videokaart zich in een systeem bevindt en welke chip die gebruikt. Hoewel &xorg; en &xfree86; vele videokaarten ondersteunen, zijn er veel minder geschikt om goed video mee af te spelen. Er kan een lijst met ondersteunde extensies getoond worden voor X server met de gebruikte videokaart door het commando &man.xdpyinfo.1; uit te voeren terwijl X11 draait. Het is verstandig een kort MPEG-bestand beschikbaar te hebben dat gebruikt kan worden als testbestand voor het evalueren van de spelers en hun opties. Omdat sommige DVD-spelers standaard zoeken naar DVD media in /dev/dvd of deze apparaatnaam standaard in de broncode hebben staan, is het wellicht verstandig om een symbolische link te maken naar de juist apparaten: &prompt.root; ln -sf /dev/acd0c /dev/dvd &prompt.root; ln -sf /dev/racd0c /dev/rdvd In &os; 5.X, dat &man.devfs.5; gebruikt, worden net iets andere links aangeraden: &prompt.root; ln -sf /dev/acd0 /dev/dvd &prompt.root; ln -sf /dev/acd0 /dev/rdvd Vanwege de werking van &man.devfs.5;, blijven handmatig aangemaakte links niet bestaan als een systeem wordt herstart. Om automatisch symbolische links aan te laten maken als een systeem start, kunnen de volgende regels toegevoegd worden aan /etc/devfs.conf: link acd0 dvd link acd0 rdvd Daarnaast zijn voor het decoderen van DVD, waarvoor bijzondere DVD-ROM functies aangeroepen worden, schrijfrechten op de DVD-apparaten nodig. kernelopties CPU_ENABLE_SSE kernelopties USER_LDT Een aantal van de hier besproken ports hebben specifieke kernelopties nodig om correct gebouwd te worden. Voordat ze gebouwd worden, dienen deze opties aan het bestand met kernelinstellingen toegevoegd te worden, dient de kernel opnieuw gebouwd te worden en het systeem opnieuw gestart te worden: option CPU_ENABLE_SSE option USER_LDT option USER_LDT bestaat niet in &os; 5.X. Om de gedeeld geheugen interface van X11 te verbeteren, wordt aangeraden dat een aantal variablelen van &man.sysctl.8; worden verhoogd: kern.ipc.shmmax=67108864 kern.ipc.shmall=32768 Videomogelijkheden vaststellen XVideo SDL DGA Er zijn een aantal methoden om video weer te geven onder X11. Welke echt werkt, is voornamelijk afhankelijk van de gebruikte hardware. Iedere hieronder beschreven methode geeft andere resultaten op andere hardware. De laatste tijd krijgt het renderen van video in X11 veel aandacht en bij iedere versie van &xorg; of &xfree86; kan er een aanzienlijke verbetering zijn. Een lijst van veel gebruikte video-interfaces: X11: normale X11 uitvoer met gebruikmaking van gedeeld geheugen; XVideo: een uitbreiding op de X11 interface die video in een door X11 getekend object ondersteunt; SDL: de Simple Directmedia Layer; DGA: de Direct Graphics Access; SVGAlib: low level console grafische laag. XVideo &xorg; en &xfree86; 4.X kennen een uitbreiding XVideo, ook bekend als Xvideo, Xv of xv, waarmee video direct weergegeven kan worden in getekende objecten door een speciale versneller. Deze uitbreiding geeft een goede afspeelkwaliteit, zelfs op machines met mindere specificaties. Of de uitbreiding actief is, kan gecontroleerd worden met het commando xvinfo: &prompt.user; xvinfo XVideo wordt ondersteund als de uitvoer er ongeveer als volgt uitziet: X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 "XV_COLORKEY" (range 0 to 16777215) client settable attribute client gettable attribute (current value is 2110) "XV_BRIGHTNESS" (range -128 to 127) client settable attribute client gettable attribute (current value is 0) "XV_CONTRAST" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_SATURATION" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_HUE" (range -180 to 180) client settable attribute client gettable attribute (current value is 0) maximum XvImage size: 1024 x 1024 Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x30323449 (I420) guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x36315652 (RV16) guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 (RV15) guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 (Y211) guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV (packed) id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB (packed) depth: 1 red, green, blue masks: 0x0, 0x0, 0x0 Sommige van de weergegeven formaten (YUV2, YUV12, enzovoort) zijn niet in iedere implementaties van XVideo beschikbaar en hun afwezigheid kan sommige spelers hinderen. Als het resultaat er als hieronder uitziet, is er geen ondersteuning voor XVideo aanwezig op de videokaart in een systeem: X-Video Extension version 2.2 screen #0 no adaptors present Als XVideo voor een kaart niet wordt ondersteund, dan betekent dat alleen dat het lastiger wordt om op een beeldscherm aan de vereisten voor het renderen van video te voldoen. Afhankelijk van de videokaart en de processor kan het toch nog mogelijk zijn om acceptabele prestaties neer te zetten. In staan verwijzingen naar leesvoer over mogelijkheden voor het verbeteren van prestaties. Eenvoudige Directmedia Laag De Eenvoudige Directmedia Laag (Simple Directmedia Layer), SDL, was bedoeld als een porting-laag tussen µsoft.windows;, BeOS en &unix;, waardoor cross-platform toepassingen konden worden ontwikkeld die efficiënt gebruik maken van geluid en beelden. De SDL laag biedt een abstractie op laag niveau naar de hardware die soms efficiënter kan zijn dan de X11 interface. De SDL staat in devel/sdl12. Directe Grafische Toegang Directe Grafische Toegang (Direct Graphics Access) is een X11 uitbreiding die een programma in staat stelt voorbij te gaan aan de X server en de framebuffer direct kan wijzigen. Omdat hij afhankelijk is van geheugenmapping op een laag niveau om dit delen uit te voeren, moeten programma's die er gebruik van maken als root draaien. De DGA uitbreiding kan getest en gebenchmarkt worden met &man.dga.1;. Als dga draait, verandert het de kleuren op een scherm als er een toets wordt ingedrukt. Om te stoppen kan de toets q gebruikt worden. Ports en packages met video videopoorten videopackages In dit onderdeel wordt de software die vanuit de &os; Portscollectie beschikbaar is voor het afspelen van video beschreven. Het afspelen van video is een tak van softwareontwikkeling die erg in beweging is en de mogelijkheden van de verschillende applicaties verschillen zeer waarschijnlijk van wat hier is beschreven. Als eerste is het belangrijk om te weten dat veel applicaties die met video te maken hebben en op &os; draaien ontwikkeld zijn als &linux; applicaties. Veel van die applicaties zijn op het moment van schrijven van beta-kwaliteit. Problemen die te verwachten zijn bij het gebruik van de beschreven videopakketten op &os; zijn: Een applicatie kan geen bestanden afspelen die zijn gemaakt met een andere applicatie; Een applicatie kan geen bestanden afspelen die met de applicatie zelf zijn gemaakt; Dezelfde applicatie, op twee verschillende machines gebouwd, speelt hetzelfde bestand op twee machines anders af; Een ogenschijlijk triviale filter, zoals het herschalen van beeldgrootte, kan resulteren in vreselijk vervelende artefacten door fouten in de routine voor het herschalen; Een applicatie dumpt zijn core regelmatig; Documentatie wordt niet geïnstalleerd bij de port en staat op het web of in de map work van de port. Veel van deze applicaties kunnen ook Linux-ismes vertonen. Zo kunnen er bijvoorbeeld problemen ontstaan door de wijze waarop standaard bibliotheken zijn geïmplementeerd in de &linux; distributies of een aantal van de mogelijkheden van de &linux;-kernel, waarvan door de makers van de applicatie wordt aangenomen dat ze aanwezig zijn. Dit soort problemen zijn niet altijd zichtbaar en er wordt ook omheen gewerkt door de beheerders van ports, wat tot de volgende mogelijke problemen kan leiden: Het gebruik van /proc/cpuinfo om processorkarakteristieken uit te lezen; Het verkeerd gebruiken van threads, waardoor een programma hangt als het klaar is, in plaats van dat het echt eindigt; Software die nog niet in de &os; Portscollectie zit en vaak gebruikt wordt samen met een applicatie die daar wel onderdeel van uitmaakt. Tot nu toe is gebleken dat de ontwikkelaars van applicaties wel coöperatief waren met de beheerders van ports om zo het aantal work-arounds dat nodig was voor het porten tot een minimum te beperken. MPlayer MPlayer is een zich snel ontwikkelende videospeler. De doelen van het MPlayer-team zijn snelheid en flexibiliteit onder &linux; en andere Unices. Het project is gestart toen de oprichter van het team genoeg had van de slechte afspeelprestaties van de destijds beschikbare spelers. Er zijn mensen die zeggen dat het grafische ontwerp is opgeofferd voor het stroomlijnen van het ontwerp, maar het blijkt dat, als een gebruiker gewend is aan de commandoregelopties en de toetsencommando's, de applicatie erg goed werkt. MPlayer bouwen MPlayer maken MPlayer staat in multimedia/mplayer. MPlayer voert een aantal hardwarecontroles uit tijdens het bouwen, wat resulteert in een binair bestand dat niet van het ene naar het andere systeem verplaatst kan worden. Daarom is het van belang dat het uit de ports wordt gebouwd en niet als binair package wordt geïnstalleerd. Daarnaast staan er ook nog opties die vanaf de make commandoregel meegegeven kunnen worden beschreven in de Makefile en aan het begin van de build: &prompt.root; cd /usr/ports/multimedia/mplayer &prompt.root; make N - O - T - E Take a careful look into the Makefile in order to learn how to tune mplayer towards you personal preferences! For example, make WITH_GTK1 builds MPlayer with GTK1-GUI support. If you want to use the GUI, you can either install /usr/ports/multimedia/mplayer-skins or download official skin collections from http://www.mplayerhq.hu/homepage/dload.html De standaard portopties zijn voor de meeste gebruikers voldoende. Maar als bijvoorbeeld de XviD codec nodig is, dan moet de optie WITH_XVID op de commandoregel meegegeven worden. Het standaard DVD-apparaat kan ook gedefinieerd worden met de optie WITH_DVD_DEVICE, waarbij standaard /dev/acd0 wordt gebruikt. Op het moment van schrijven wordt de MPlayer port gebouwd met de HTML documentatie en twee uitvoerbare bestanden, mplayer en mencoder, wat een hulpmiddel is voor het opnieuw encoderen van video. De HTML documentatie voor MPlayer is erg informatief. Als de lezer vindt dat er informatie over videohardware en interfaces in dit hoofdstuk mist, dan is de documentatie van MPlayer een zeer grondige aanvulling. Het is de moeite waard de tijd te nemen om de documentatie van MPlayer te lezen, als meer informatie over de ondersteuning van video in &unix; welkom is. MPlayer gebruiken MPlayer gebruiken Iedere gebruiker van MPlayer dient een submap .mplayer in zijn thuismap te hebben. Die kan als volgt gemaakt worden: &prompt.user; cd /usr/ports/multimedia/mplayer &prompt.user; make install-user De commando-opties voor mplayer staan in de hulppagina. Nog meer details staan in de HTML documentatie. In dit onderdeel worden slechts een aantal gebruiksmogelijkheden beschreven. Om een bestand als testfile.avi af te spelen met een van de beschikbare video-interfaces, kan de optie gebruikt worden: &prompt.user; mplayer -vo xv testfile.avi &prompt.user; mplayer -vo sdl testfile.avi &prompt.user; mplayer -vo x11 testfile.avi &prompt.root; mplayer -vo dga testfile.avi &prompt.root; mplayer -vo 'sdl:dga' testfile.avi Het is de moeite waard alle bovenstaande opties uit te proberen omdat hun relatieve prestatie afhangt van vele factoren die aanzienlijk verschillen tussen hardware. Om een DVD af te spelen dient testfile.avi vervangen te worden door waar N het titelnummer is dat afgespeeld moeten worden en APPARAAT de apparaatnode is voor de DVD-ROM. Om bijvoorbeeld titel 3 van /dev/dvd af te spelen: &prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvd Het standaard DVD-apparaat kan ingesteld worden bij het bouwen van de MPlayer port met de optie WITH_DVD_DEVICE. Standaard is dit apparaat /dev/acd0. Meer details staan in de Makefile van de port. Om te stoppen, pauzeren, verder te spoelen, enzovoort, kunnen de toetsendefinities gebruikt worden, die in te zien zijn door mplayer -h uit te voeren of de hulppagina te lezen. Overige belangrijke opties voor het afspelen zijn: , waarmee het volledige scherm wordt gebruikt, en , die prestatieverhogend werkt. Om ervoor te zorgen dat de commandoregels niet te lang worden, kan het bestand .mplayer/config met voorkeursinstellingen gemaakt worden: vo=xv fs=yes zoom=yes Tenslotte kan mplayer gebruikt worden om een DVD naar een bestand van het type .vob te rippen. Om de tweede titel van een DVD de dumpen kan het volgende commando gebruikt worden: &prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd Het uitvoerbestand out.vob, is van het type MPEG en kan bewerkt worden met andere in dit onderdeel besproken programma's. <command>mencoder</command> mencoder Voordat mencoder wordt gebruikt, is het verstandig de opties uit de HTML-documentatie te bekijken. Er is een hulppagina, maar die is niet echt bruikbaar zonder de HTML-documentatie. Er zijn ontelbare mogelijkheden om de kwaliteit te verhogen, de bitrate te verlagen en formaten te wijzigen en een aantal van die truuks maken het verschil tussen goede en slechte prestaties. Hieronder staan een aantal voorbeelden beschreven. Eenvoudigweg kopiëren: &prompt.user; mencoder input.avi -oac copy -ovc copy -o output.avi Verkeerde combinaties van commandoregelopties kunnen resulteren in uitvoerbestanden die zelfs niet af te spelen zijn door mplayer. Daarom wordt aangeraden om het bij de optie in mplayer te houden als het alleen maar nodig is een bestand te rippen. Om input.avi te converteren naar de MPEG4-codec met MPEG3-audio encoding (audio/lame is verplicht): &prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi Hiermee wordt uitvoer gemaakt die af te spelen is met mplayer en xine. input.avi kan worden vervangen door en als root gedraaid worden om een DVD titel direct te hercoderen. Omdat het waarschijnlijk is dat de eerste experimenten niet direct tevredenstellend zijn, wordt aangeraden een titel eerst naar een bestand te dumpen en dat als werkbestand te gebruiken. <application>xine</application> videospeler De xine videospeler is een project met een brede scope, dat niet alleen tracht een allesomvattende video-oplossing te bieden, maar ook probeert een herbruikbare basisbibliotheek en een modulair uitvoerbaar bestand te maken dat uitgebreid kan worden met plug-ins. Het kan als package en port geïnstalleerd worden uit multimedia/xine. De xine speler heeft nog wat ruwe randjes, maar is zeker goed van start gegaan. In de praktijk heeft xine een snelle CPU met een snelle videokaart of ondersteuning voor de XVideo extensie nodig. De GUI is bruikbaar, maar wat onhandig. Op het moment van schrijven wordt er geen invoermodule bij xine geleverd waarmee CSS gecodeerde DVD's afgespeeld kunnen worden. Er zijn er die door andere partijen zijn gebouwd die dat type modules wel hebben, maar die zijn niet beschikbaar in de &os; Portscollectie. Vergeleken met MPlayer, doet xine meer voor de gebruiker, maar tegelijkertijd neemt het wat van de fijnafstellingsmogelijkheden weg. De xine videospeler werkt het beste op XVideo interfaces. Standaard start de xine speler op in een grafische gebruikersinterface. Via het menu kan een specifiek bestand geopend worden: &prompt.user; xine Het is ook mogelijk om zonder de GUI direct een bestand af te laten spelen: &prompt.user; xine -g -p mymovie.avi <application>transcode</application> hulpprogramma's De software transcode is geen speler, maar een verzameling hulpprogramma's voor het hercoderen van .avi en .mpg bestanden. Met transcode wordt het mogelijk om videobestanden samen te voegen, kapotte bestanden te repareren en commandoregelprogramma's te gebruiken met stdin/stdout stream interfaces. Net als MPlayer is transcode bijzonder experimentele software die vanuit de port multimedia/transcode gebouwd moet worden. Er zijn veel opties voor make beschikbaar en daaruit worden de volgende aangeraden: &prompt.root; make WITH_LIBMPEG2=yes Als ook multimedia/avifile wordt geïnstalleerd, dan dient WITH_AVIFILE aan de make commandoregel te worden toegevoegd: &prompt.root; make WITH_AVIFILE=yes WITH_LIBMPEG2=yes Hieronder staan twee voorbeelden beschreven waarin transcode wordt gebruikt voor het converteren van video met als resultaat anders geschaalde uitvoer. Het eerste encodeert de uitvoer naar een openDIVX AVI-bestand, het tweede encodeert het naar het meer portabele formaat MPEG. &prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \ -y opendivx -N 0x55 -o output.avi &prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \ -y mpeg -N 0x55 -o output.tmp &prompt.user; tcmplex -o output.mpg -i output.tmp.m1v -p output.tmp.mpa -m 1 Er is een hulppagina voor transcode, maar er is weinig documentatie voor de verschillende tc* programma's (zoals tcmplex) die ook zijn geïnstalleerd. Voor ieder commando is wel de commandoregeloptie beschikbaar, waarmee een korte beschrijving voor het gebruik van het programma wordt getoond. Als de twee vergeleken worden, draait transcode aanzienlijk langzamer dan mencoder, maar is de kans wel groter dat er een bestand uit komt dat op de meeste spelers afgespeeld kan worden. MPEG-bestanden die met transcode zijn gemaakt, zijn bijvoorbeeld al afgespeeld op &windows.media; Player en Apple's &quicktime;. Verder lezen De beschikbare videosoftware pakketten voor &os; zijn fors in ontwikkeling. Het is goed mogelijk dat in de nabije toekomst de meeste problemen die hier aan de kaak zijn gesteld, zijn opgelost. Intussen kunnen zij die het hoogst haalbare uit de A/V mogelijkheden voor &os; willen halen, dat het beste doen door wat beschikbaar is bij elkaar te scharrelen uit de beschikbare FAQ's and tutorials en meerdere programma's gebruiken. Het doel van deze paragraaf is de lezer wat richting te geven op dat vlak. De MPlayer documentatie is technisch erg informatief. Deze documenten kunnen het beste bekeken worden door iemand die veel kennis wil opdoen over video in &unix;. Op de MPlayer mailinglijst wordt het niet op prijsgesteld als iemand de documentatie niet heeft gelezen, dus het is verstandig RTFM in gedachten te houden alvorens bug reports naar ze te mailen. De xine HOWTO bevat een hoofdstuk over het verbeteren van prestaties, dat op alle spelers van toepassing is. Tenslotte zijn er nog een aantal veelbelovende applicaties die het proberen waard zijn: Avifile bestaat ook als port: multimedia/avifile; Ogle is er ook als port: multimedia/ogle; Xtheater; multimedia/dvdauthor, een open source pakket voor authoring van DVD content. Josef El-Rayes Oorspronkelijk geschreven door Marc Fonvieille Verbeterd en aangepast door TV-kaarten installeren TV-kaarten Inleiding Met TV-kaarten is het mogelijk om naar (kabel)uitzendingen te kijken op een computer. Op de meeste kaarten kan composiet video aangeleverd worden via een RCA of S-video input en sommige kaarten hebben ook een FM tuner. &os; biedt ondersteuning voor PCI-gebaseerde TV-kaarten met een Brooktree Bt848/849/878/879 of een Conexant CN-878/Fusion 878a Video Capture Chip met het stuurprogramma &man.bktr.4;. Het is van belang dat er op de kaart ook een ondersteunde tuner zit. Hiervoor kan &man.bktr.4; geraadpleegd worden, waarin een lijst met ondersteunde tuners staat. Stuurprogramma toevoegen Voordat de kaart gebruikt kan worden, dient het stuurprogramma &man.bktr.4; geladen te worden. Dit kan door de volgende regel aan /boot/loader.conf toe te voegen: bktr_load="YES" Daarnaast is het ook mogelijk om statisch ondersteuning voor de TV-kaart in de kernel te compileren. Dan dient de volgende regel toegevoegd te worden aan de kernelinstellingen: device bktr device iicbus device iicbb device smbus De extra stuurprogramma's zijn nodig omdat de kaartcomponenten verbonden zijn via een I2C bus. Met deze instellingen kan een nieuwe kernel gebouwd en geïnstalleerd worden. Als een systeem eenmaal ondersteuning biedt, hoort de TV-kaart ongeveer als volgt bij een herstart getoond te worden: bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 iicbb0: <I2C bit-banging driver> on bti2c0 iicbus0: <Philips I2C bus> on iicbb0 master-only iicbus1: <Philips I2C bus> on iicbb0 master-only smbus0: <System Management Bus> on bti2c0 bktr0: Pinnacle/Miro TV, Philips SECAM tuner. Deze berichten kunnen afwijken, afhankelijk van de gebruikte hardware. Het is van belang te controleren of de tuner juist herkend wordt; er kunnen nog een aantal instellingen gemaakt worden voor parameters met &man.sysctl.8; MIB's en in het kernelinstellingenbestand. Om bijvoorbeeld het gebruik van een Philips SECAM tuner te forceren, kan de volgende regel aan het bestand met kernelinstellingen worden toegevoegd: options OVERRIDE_TUNER=6 Dit kan ook via een instelling van &man.sysctl.8;: &prompt.root; sysctl hw.bt848.tuner=6 In &man.bktr.4; en /usr/src/sys/conf/NOTES staan meer details over de beschikbare opties (onder &os; 4.X dient voor /usr/src/sys/conf/NOTES het bestand /usr/src/sys/i386/conf/LINT gelezen te worden). Handige programma's Om een TV-kaart te gebruiken, dient een van de volgende applicaties geïnstalleerd te worden: multimedia/fxtv biedt TV-in-een-window en beeld/audio/videocapture mogelijkheden; multimedia/xawtv is ook een TV applicatie met dezelfde mogelijkheden als fxtv; misc/alevt decodeert Videotext/Teletext en kan deze weergeven; audio/xmradio, een applicatie om de FM tuner die bij sommige TV-kaarten zit te gebruiken; audio/wmtune, een handige bureaubladapplicatie voor radiotuners. Er zijn nog meer applicaties beschikbaar in de Portscollectie. Problemen oplossen Bij problemen met een TV-kaart dient eerst gecontroleerd te worden of de videocapture chip en de tuner echt ondersteund worden door het stuurprogramma &man.bktr.4; en of de juiste instellingen worden gebruikt. Voor meer ondersteuning en vragen over een specifieke TV-kaart is het aan te raden de archieven van de &a.multimedia.name; mailinglijst te raadplegen of er contact mee op te nemen. Marc Fonvieille Geschreven door Scanners scanners Inleiding In &os; is het, net als in andere moderne besturingssystemen, mogelijk om scanners te gebruiken. Gestandaardiseerde toegang tot scanners is mogelijk met de SANE (Scanner Access Now Easy) API uit de &os; Portscollectie. SANE gebruikt ook een aantal &os; apparaatstuurprogramma's om toegang te krijgen tot de hardware van de scanner. &os; ondesteunt SCSI en USB scanners. Het is van belang te controleren of een scanner door SANE wordt ondersteund voordat er instellingen worden gemaakt. SANE heeft een lijst met ondersteunde apparaten waarin gekeken kan worden of een scanner wordt ondersteund en wat de status voor ondersteuning is. In &man.uscanner.4; staat een lijst met ondersteunde USB-scanners. Kernel instellen Zoals hierboven al is aangegeven, worden zowel SCSI als USB-scanners ondersteund. Afhankelijk van de gebruikte scannerinterface zijn verschillende apparaatstuurprogramma's nodig. USB interface In de GENERIC kernel zitten standaard de apparaatstuurprogramma's die nodig zijn voor ondersteuning van USB-scanners. In het geval wordt besloten tot het maken van een aangepaste kernel, dan dienen de volgende regels in het kernelinstellingenbestand te worden opgenomen: device usb device uhci device ohci device uscanner Afhankelijk van de USB-chipset op een moederbord, is alleen device uhci of device ohci nodig, maar het opnemen van beiden in het bestand met kernelinstellingen is niet schadelijk. Als het niet wenselijk is een nieuwe kernel te bouwen en er wordt geen GENERIC kernel gebruikt, dan kan de apparaatstuurprogrammamodule &man.uscanner.4; direct geladen worden met &man.kldload.8;: &prompt.root; kldload uscanner Om de module bij iedere systeemstart te laden kan de volgende regel aan /boot/loader.conf worden toegevoegd: uscanner_load="YES" Na een herstart met een juiste ingestelde kernel of na het laden van de benodigde module, kan de USB-scanner aangesloten worden. De scanner hoort ongeveer als volgt gemeld te worden in de systeemberichtbuffer (&man.dmesg.8;): uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2 Het bovenstaande geeft aan dat de scanner de apparaatnode /dev/uscanner0 gebruikt. Om onder &os; 4.X bepaalde USB-apparaten te zien, moet daar de USB daemon (&man.usbd.8;) draaien. Om die in te schakelen, dient usbd_enable="YES" toegevoegd te worden aan /etc/rc.conf en dient een systeem herstart te worden. SCSI interface Als een scanner een SCSI interface heeft, is het belangrijk te weten welk SCSI controllerbord gebruikt gaat worden. Afhankelijk van de gebruikte SCSI chipset, dient het bestand met kernelinstellingen aangepast te worden. De GENERIC kernel ondersteunt de meest voorkomende SCSI controllers. In het bestand NOTES (LINT onder &os; 4.X) is de juiste instelling te vinden die toegevoegd moet worden aan het bestand met kernelinstellingen. Naast het toevoegen van het juiste SCSI-adapter stuurprogramma, dienen ook de volgende regels opgenomen te worden in het kernelinstellingenbestand: device scbus device pass Als de kernel juist gecompileerd is, horen de apparaten zichtbaar te zijn in de systeemberichtbuffer tijdens het opstarten: pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers Als een scanner niet aan staat tijdens het opstarten, is het nog mogelijk handmatig detectie te forceren door de SCSI-bus te laten scannen met &man.camcontrol.8;: &prompt.root; camcontrol rescan all Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful In het bovenstaande geval zal de scanner ongeveer als volgt verschijnen in de lijst met SCSI-apparaten: &prompt.root; camcontrol devlist <IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0) Meer details over SCSI-apparaten staan in &man.scsi.4; en &man.camcontrol.8;. SANE instellen Het SANE systeem is opgesplitst in twee delen: de backends (graphics/sane-backends) en de frontends (graphics/sane-frontends). Het deel met de backends zorgt voor de toegang tot de scanner zelf. In de lijst met door SANE ondersteunde apparaten staat welk backend welke scanner(s) ondersteunt. Het is echt nodig het juiste backend vast te stellen, omdat het anders bijzonder lastig wordt een scanner aan de praat te krijgen. Het deel met frontends levert een grafische scaninterface (xscanimage). Als eerste dient de port of het package graphics/sane-backends geïnstalleerd te worden. Daarna kan met het commando sane-find-scanner gecontroleerd worden welke scanner er door het SANE systeem is gedetecteerd: &prompt.root; sane-find-scanner -q found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3 In de uitvoer is te lezen welk type interface en welke apparaatnode worden gebruikt om de scanner met een systeem te verbinden. Het merk en het model worden wellicht niet getoond, maar dat is ook niet echt van belang. Sommige USB-scanners verlangen dat er firmware wordt geladen. Dit wordt uitgelegd in de hulppagina van het backend. Het is ook van belang &man.sane-find-scanner.1; en &man.sane.7; te lezen. Hierna kan gecontroleerd worden of de scanner ook te zien is voor een scanner-frontend. Er zit bij de SANE backends een standaard hulpprogramma &man.scanimage.1;. Met dit commando kunnen de apparaten zichtbaar gemaakt worden en kan vanaf de commandoregel gescand worden. Met de optie kunnen de scannerapparaten getoond worden: &prompt.root; scanimage -L device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner De afwezigheid van uitvoer of een bericht dat aangeeft dat er geen scanners zijn aangetroffen, betekent dat &man.scanimage.1; niet in staat is een scanner te identificeren. Als dit gebeurt, dient het instellingenbestand voor het backend aangepast te worden en dient daar de juiste instelling gemaakt te worden. De map /usr/local/etc/sane.d/ bevat alle bestanden met instellingen voor de backends. Het is bekend dat dit identificatieprobleem optreedt bij bepaalde USB-scanners. De USB-scanner die in wordt gebruikt, toont bijvoorbeeld de volgende informatie met sane-find-scanner: &prompt.root; sane-find-scanner -q found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0 De bovenstaande uitvoer geeft aan dat de scanner juist is gedetecteerd, dat hij de USB interface gebruikt en is aangesloten op de apparaatnode /dev/uscanner0. Nu kan gecontroleerd worden of de scanner juist wordt geïdentificeerd: &prompt.root; scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages). Omdat in het bovenstaande voorbeeld de scanner niet wordt geïdentificeerd, dient het bestand /usr/local/etc/sane.d/epson.conf gewijzigd te worden. De gebruikte scanner is een &epson.perfection; 1650, dus in dit geval dient voor de scanner het backend epson gebruikt te worden. Het is van belang om het commentaar in de instellingenbestanden van de backends te lezen. Het aanpassen van regels is eenvoudig: plaats een commentaarkarakter voor alle regels voor andere interfaces dan die nodig zijn weg (in dit geval worden alle regels die beginnen met het woord scsi uitgeschakeld, omdat er een USB interface wordt gebruiken), en dan kan onderaan het bestand een regel met de gebruikte interface en apparaatnode geplaatst worden: usb /dev/uscanner0 Het is aan te raden de opmerkingen te lezen in het bestand met instellingen voor het backend en ook de hulppagina, omdat daarin meer details en de correcte syntaxis te vinden zijn. Nu kan gecontroleerd worden of de scanner wèl juist wordt geïdentificeerd: &prompt.root; scanimage -L device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner In het bovenstaande voorbeeld wordt duidelijk dat de USB-scanner is geïdentificeerd. Het is niet belangrijk dat het merk en model niet overeenkomen. Het belangrijkste is het veld `epson:/dev/uscanner0', dat de juiste benamingen voor het backend en de apparaatnode aangeeft. Als scanimage -L in staat is een scanner goed te zien, dan zijn de instellingen compleet. Er kan nu met het apparaat gescand worden. Hoewel &man.scanimage.1; in staat is om vanaf de commandoregel te scannen, is het aan te raden beelden te scannen vanuit de grafische gebruikersinterface. SANE heeft een eenvoudige, maar efficiënte grafische interface: xscanimage (graphics/sane-frontends). Xsane (graphics/xsane) is een ander populair grafisch scanfrontend, dat geavanceerde mogelijkheden biedt, zoals meerdere scanmodi (fotokopie, fax, enzovoort), kleurcorrectie, batchscannen, enzovoort. Beide applicaties zijn als plug-in voor GIMP te gebruiken. Scannergebruik voor andere gebruikers toestaan Alle voorgaande taken zijn uitgevoerd met root rechten, maar het is wellicht ook nodig dat andere gebruikers de scanner kunnen gebruiken. Dan heeft een gebruiker lees- en schrijfrechten nodig op de apparaatnode voor een scanner. Een USB-scanner gebruikt bijvoorbeeld apparaatnode /dev/uscanner0, waarvan de groep operator eigenaar is. Door gebruiker joe lid te maken van de groep operator, kan die gebruiker de scanner gebruiken: &prompt.root; pw groupmod operator -m joe In &man.pw.8; staan meer details. Op de apparaatnode /dev/uscanner0 moeten ook de juiste rechten staan. Standaard kan de groep operator alleen lezen op de apparaatnode. Dit is te wijzigen door de volgende regel aan /etc/devfs.rules toe te voegen: [system=5] add path uscanner0 mode 660 Daarna kan de volgende regel aan /etc/rc.conf toegevoegd worden en dient een machine herstart te worden: devfs_system_ruleset="system" Meer informatie over de bovenstaande instellingen staan in &man.devfs.8; manual page. Onder &os; 4.X heeft de groep operator standaard lees- en schrijfrechten op /dev/uscanner0. Natuurlijk dient ook beveiliging een factor te zijn in de afweging of een gebruiker lid gemaakt moet worden van een bepaalde groep, zeker als dat om de groep operator gaat. diff --git a/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml index 42361625dd..1dcfcdf484 100644 --- a/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml @@ -1,996 +1,1001 @@ PGP sleutels pgp sleutels In het geval een handtekening van een van de beambten of ontwikkelaars gecontroleerd moet worden of er een versleutelde e-mail aan ze gezonden moet worden, worden hier voor het gemak een aantal sleutels weergegeven. Een complete sleutelring van FreeBSD.org gebruikers kan op de volgende link gedownload worden: http://www.FreeBSD.org/doc/pgpkeyring.txt. Beambten &a.security-officer; &pgpkey.security-officer; &a.core-secretary; &pgpkey.core-secretary; Leden Kernteam &a.jhb; &pgpkey.jhb; &a.kuriyama; &pgpkey.kuriyama; &a.scottl; &pgpkey.scottl; &a.imp; &pgpkey.imp; &a.wes; &pgpkey.wes; &a.murray; &pgpkey.murray; &a.peter; &pgpkey.peter; Ontwikkelaars &a.will; &pgpkey.will; &a.anholt; &pgpkey.anholt; &a.mat; &pgpkey.mat; &a.asami; &pgpkey.asami; &a.barner; &pgpkey.barner; &a.dougb; &pgpkey.dougb; &a.tobez; &pgpkey.tobez; &a.damien; &pgpkey.damien; &a.mbr; &pgpkey.mbr; &a.novel; &pgpkey.novel; &a.harti; &pgpkey.harti; &a.obraun; &pgpkey.obraun; &a.jmb; &pgpkey.jmb; &a.brueffer; &pgpkey.brueffer; &a.markus; &pgpkey.markus; &a.wilko; &pgpkey.wilko; &a.jcamou; &pgpkey.jcamou; &a.perky; &pgpkey.perky; &a.jon; &pgpkey.jon; &a.luoqi; &pgpkey.luoqi; &a.ache; &pgpkey.ache; &a.seanc; &pgpkey.seanc; &a.cjh; &pgpkey.cjh; &a.cjc; &pgpkey.cjc; &a.marcus; &pgpkey.marcus; &a.nik; &pgpkey.nik; &a.ceri; &pgpkey.ceri; + + &a.brd; + &pgpkey.brd; + + &a.brooks; &pgpkey.brooks; &a.gnn; &pgpkey.gnn; &a.pjd; &pgpkey.pjd; &a.bsd; &pgpkey.bsd; &a.danfe; &pgpkey.danfe; &a.dd; &pgpkey.dd; &a.bruno; &pgpkey.bruno; &a.ale; &pgpkey.ale; &a.peadar; &pgpkey.peadar; &a.josef; &pgpkey.josef; &a.ue; &pgpkey.ue; &a.ru; &pgpkey.ru; &a.le; &pgpkey.le; &a.stefanf; &pgpkey.stefanf; &a.jedgar; &pgpkey.jedgar; &a.green; &pgpkey.green; &a.lioux; &pgpkey.lioux; &a.fanf; &pgpkey.fanf; &a.blackend; &pgpkey.blackend; &a.petef; &pgpkey.petef; &a.billf; &pgpkey.billf; &a.patrick; &pgpkey.patrick; &a.gioria; &pgpkey.gioria; &a.jmg; &pgpkey.jmg; &a.dannyboy; &pgpkey.dannyboy; &a.dhartmei; &pgpkey.dhartmei; &a.jhay; &pgpkey.jhay; &a.sheldonh; &pgpkey.sheldonh; &a.mikeh; &pgpkey.mikeh; &a.mheinen; &pgpkey.mheinen; &a.niels; &pgpkey.niels; &a.ghelmer; &pgpkey.ghelmer; &a.mux; &pgpkey.mux; &a.mich; &pgpkey.mich; &a.foxfair; &pgpkey.foxfair; &a.jkh; &pgpkey.jkh; &a.ahze; &pgpkey.ahze; &a.trevor; &pgpkey.trevor; &a.phk; &pgpkey.phk; &a.joe; &pgpkey.joe; &a.vkashyap; &pgpkey.vkashyap; &a.kris; &pgpkey.kris; &a.keramida; &pgpkey.keramida; &a.fjoe; &pgpkey.fjoe; &a.jkim; &pgpkey.jkim; &a.andreas; &pgpkey.andreas; &a.jkois; &pgpkey.jkois; &a.sergei; &pgpkey.sergei; &a.maxim; &pgpkey.maxim; &a.jkoshy; &pgpkey.jkoshy; &a.rik; &pgpkey.rik; &a.rushani; &pgpkey.rushani; &a.clement; &pgpkey.clement; &a.mlaier; &pgpkey.mlaier; &a.alex; &pgpkey.alex; &a.erwin; &pgpkey.erwin; &a.lawrance; &pgpkey.lawrance; &a.leeym; &pgpkey.leeym; &a.sam; &pgpkey.sam; &a.jylefort; &pgpkey.jylefort; &a.netchild; &pgpkey.netchild; &a.lesi; &pgpkey.lesi; &a.glewis; &pgpkey.glewis; &a.delphij; &pgpkey.delphij; &a.avatar; &pgpkey.avatar; &a.ijliao; &pgpkey.ijliao; &a.clive; &pgpkey.clive; &a.clsung; &pgpkey.clsung; &a.arved; &pgpkey.arved; &a.remko; &pgpkey.remko; &a.pav; &pgpkey.pav; &a.bmah; &pgpkey.bmah; &a.mtm; &pgpkey.mtm; &a.dwmalone; &pgpkey.dwmalone; &a.kwm; &pgpkey.kwm; &a.matusita; &pgpkey.matusita; &a.ken; &pgpkey.ken; &a.dinoex; &pgpkey.dinoex; &a.sanpei; &pgpkey.sanpei; &a.jim; &pgpkey.jim; &a.marcel; &pgpkey.marcel; &a.marck; &pgpkey.marck; &a.tmm; &pgpkey.tmm; &a.rich; &pgpkey.rich; &a.knu; &pgpkey.knu; &a.max; &pgpkey.max; &a.yoichi; &pgpkey.yoichi; &a.bland; &pgpkey.bland; &a.simon; &pgpkey.simon; &a.anders; &pgpkey.anders; &a.obrien; &pgpkey.obrien; &a.philip; &pgpkey.philip; &a.hmp; &pgpkey.hmp; &a.mp; &pgpkey.mp; &a.roam; &pgpkey.roam; &a.den; &pgpkey.den; &a.pirzyk; &pgpkey.pirzyk; &a.jdp; &pgpkey.jdp; &a.krion; &pgpkey.krion; &a.markp; &pgpkey.markp; &a.thomas; &pgpkey.thomas; &a.hq; &pgpkey.hq; &a.dfr; &pgpkey.dfr; &a.trhodes; &pgpkey.trhodes; &a.benno; &pgpkey.benno; &a.paul; &pgpkey.paul; &a.roberto; &pgpkey.roberto; &a.rodrigc; &pgpkey.rodrigc; &a.guido; &pgpkey.guido; &a.niklas; &pgpkey.niklas; &a.marks; &pgpkey.marks; &a.hrs; &pgpkey.hrs; &a.wosch; &pgpkey.wosch; &a.das; &pgpkey.das; &a.schweikh; &pgpkey.schweikh; &a.gshapiro; &pgpkey.gshapiro; &a.arun; &pgpkey.arun; &a.nork; &pgpkey.nork; &a.vanilla; &pgpkey.vanilla; &a.cshumway; &pgpkey.cshumway; &a.demon; &pgpkey.demon; &a.jesper; &pgpkey.jesper; &a.scop; &pgpkey.scop; &a.glebius; &pgpkey.glebius; &a.kensmith; &pgpkey.kensmith; &a.ben; &pgpkey.ben; &a.des; &pgpkey.des; &a.sobomax; &pgpkey.sobomax; &a.dcs; &pgpkey.dcs; &a.brian; &pgpkey.brian; &a.nsouch; &pgpkey.nsouch; &a.ssouhlal; &pgpkey.ssouhlal; &a.vsevolod; &pgpkey.vsevolod; &a.vs; &pgpkey.vs; &a.gsutter; &pgpkey.gsutter; &a.metal; &pgpkey.metal; &a.nyan; &pgpkey.nyan; &a.mi; &pgpkey.mi; &a.gordon; &pgpkey.gordon; &a.lth; &pgpkey.lth; &a.thierry; &pgpkey.thierry; &a.thompsa; &pgpkey.thompsa; &a.flz; &pgpkey.flz; &a.viny; &pgpkey.viny; &a.ume; &pgpkey.ume; &a.ups; &pgpkey.ups; &a.nectar; &pgpkey.nectar; &a.adamw; &pgpkey.adamw; &a.nate; &pgpkey.nate; &a.wollman; &pgpkey.wollman; &a.joerg; &pgpkey.joerg; &a.bz; &pgpkey.bz; &a.phantom; &pgpkey.phantom; diff --git a/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml index a3c34b2bce..a89d4b57ad 100644 --- a/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml @@ -1,1415 +1,1441 @@ Rene Ketelaars Vertaald door Siebrand Mazeland Applicaties installeren: packages en ports Overzicht ports packages &os; bevat een grote collectie aan systeemgereedschappen als onderdeel van het basissysteem. De mogelijkheden reiken echter niet heel ver en daarom is er snel een applicatie van een andere partij nodig. &os; bevat twee complementaire technologieën om andere applicaties te installeren: de &os; Portscollectie en binaire softwarepackages. Beide systemen kunnen gebruikt worden om de nieuwste versies van een gewenste applicatie te installeren van lokale media of rechtstreeks van het netwerk. Na het lezen van dit hoofdstuk weet de lezer: Hoe binaire softwarepackages van derden te installeren; Hoe software van derden vanuit de Portscollectie te installeren; Hoe eerder geïnstalleerde packages of ports te verwijderen; Hoe standaardwaardes die door de ports worden gebruikt te wijzigen; Hoe het juiste softwarepackage te vinden; Hoe ports bij te werken. Overzicht van softwareinstallatie Als de lezer eerder gebruik heeft gemaakt van een &unix; systeem dan is het bekend dat de standaardprocedure voor het installeren van software van derden ongeveer als volgt is: Download de software als broncode of als binair bestand; Pak de software uit vanuit zijn originele distributietype (meestal een tar-bestand gecomprimeerd met &man.compress.1;, &man.gzip.1;, of &man.bzip2.1;); Zoek de documentatie (meestal een INSTALL of README bestand of enkele bestanden in een submap doc/) en lees zorgvuldig hoe de software geïnstalleerd moet worden; Als de software als broncode is gedistribueerd, moet de broncode gecompileerd worden. Dit kan wijzigingen in een Makefile vereisen of het draaien van een configure script en andere werkzaamheden; De software installeren en testen. En dat geldt alleen als alles goed gaat. Als er een softwarepackage geïnstalleerd wordt dat niet specifiek gemaakt is voor &os; moet mogelijkerwijs zelfs de code aangepast worden om alles goed te laten werken. Als de gebruiker het wenst, kan hij in &os; doorgaan met het installeren van software op de traditionele manier. &os; levert echter twee technologieën die veel moeite kunnen besparen: packages en ports. Op dit moment zijn zo meer dan &os.numports; applicaties beschikbaar. Voor iedere gewenste applicatie is het &os; package voor die applicatie één te downloaden bestand. Het package bevat voorgecompileerde kopiën met alle commando's voor de applicatie en alle instellingenbestanden of documentatie. Een gedownload packagebestand kan gemanipuleerd worden met &os; packagemanagement commando's zoals &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1;, enzovoort. Het installeren van een nieuwe applicatie kan met één commando. Een &os; port van een applicatie is een groep bestanden ontworpen om het proces van compileren van een applicatie vanuit broncode te automatiseren. Het is te vergelijken met de stappen die normaal gevolgd worden om een programma te compileren (downloaden, uitpakken, aanpassen, compileren en installeren). De bestanden die samen een port vormen bevatten alle noodzakelijke informatie om het systeem dit te laten doen. Met een aantal eenvoudige commando's wordt de broncode voor de applicatie automatisch gedownload, uitgepakt, aangepast, gecompileerd en geïnstalleerd. Het portssysteem kan zelfs gebruikt worden om packages te maken die later weer gemanipuleerd kunnen worden met pkg_add en andere packagemanagement commando's, waarover later meer uitleg wordt gegeven. Zowel packages als ports kennen afhankelijkheden (dependencies). Stel dat er een applicatie geïnstalleerd gaat worden die er vanuit gaat dat een specifieke bibliotheek wordt geïnstalleerd. Zowel de applicatie als de bibliotheek zijn beschikbaar als &os; ports en packages. Als het commando pkg_add of het portssysteem wordt gebruikt om de applicatie toe te voegen, dan zien beiden dat de bibliotheek niet geïnstalleerd is en wordt deze automatisch eerst geïnstalleerd. Gezien het feit dat beide technologieën vrijwel identiek zijn, kan de vraag rijzen waarom &os; de moeite neemt om beide te faciliteren. Packages en ports hebben ieder hun eigen kracht. Welke gebruikt wordt hangt af van voorkeuren en omstandigheden. Voordelen van packages Een gecomprimeerd package tar-bestand is meestal kleiner dan het gecomprimeerde tar-bestand met de broncode van de applicatie; Packages vereisen geen additionele compilatie. Voor grote applicaties als Mozilla, KDE of GNOME kan dit belangrijk zijn, vooral als een systeem wat trager is; Packages vereisen geen begrip van het proces van het compileren van software op &os;. Voordelen van ports Packages worden meestal gecompileerd met conservatieve opties, omdat ze moeten draaien op een maximaal aantal systemen. Bij het installeren vanuit de port kunnen de compilatieinstellingen aangepast worden om zo bijvoorbeeld code te maken die specifiek voor een Pentium IV of een Athlon processor is; Sommige applicaties hebben compilatieinstellingen gerelateerd aan wat ze wel of niet kunnen doen. Apache kan bijvoorbeeld ingesteld worden met een uitgebreide hoeveelheid verschillende ingebouwde instellingen. Door vanuit de port te werken hoeven niet alle standaardinstellingen geaccepteerd te worden en kunnen ze ingesteld worden; In sommige gevallen zijn er meerdere packages voor dezelfde applicatie om specifieke instellingen aan te geven. Ghostscript is bijvoorbeeld beschikbaar als een ghostscript package en ghostscript-nox11 package, afhankelijk van het al dan niet geïnstalleerd hebben van een X11 server. Deze ruwe vorm van tweaking is mogelijk met packages, maar dit wordt snel onmogelijk als een applicatie meer dan één of twee verschillende compilatieinstellingen heeft; De licentievoorwaarden van sommige softwaredistributies verbieden binaire distributie. Ze moeten dus gedistribueerd worden als broncode; Sommige mensen vertrouwen binaire distributies niet. Broncode kan tenminste (in theorie) zelf doorgelezen en gecontroleerd worden op potentiële problemen; Als er lokale modificaties zijn, is de broncode nodig om ze toe te passen; Sommige mensen hebben graag de broncode zodat ze die kunnen lezen als ze zich vervelen, erin kunnen hacken, code kunnen overnemen (indien de licentie dit toestaat natuurlijk), enzovoort. Om vernieuwingen van ports bij te houden kan een abonnement genomen worden op de &a.ports; en/of de &a.ports-bugs;. Voordat een applicatie wordt geïnstalleerd is het aan te raden op na kijken of er geen beveiligingsproblemen voor de gewenste applicatie bekend zijn. Het is ook mogelijk om security/portaudit te installeren, dat automatisch alle geïnstalleerde applicaties controleert op bekende fouten. Deze controle wordt ook uitgevoerd voordat een port wordt geïnstalleerd. Met het commando portaudit -F -a kunnen de packages die al geïnstalleerd zijn worden gecontroleerd. In de rest van dit hoofdstuk wordt uitgelegd hoe packages en ports gebruikt kunnen worden om software in &os; te installeren en te beheren. Applicaties zoeken Voordat een applicatie geïnstalleerd kan worden, moeten de doelen bekend zijn en hoe de applicatie heet. De lijst met voor &os; beschikbare applicaties groeit continu. Gelukkig zijn er een aantal manieren om te zoeken: Op de &os; website staat een recente doorzoekbare lijst met alle beschikbare applicaties: http://www.FreeBSD.org/ports/. De ports zijn onderverdeeld in categorieën. Er kan naar een applicatie gezocht worden op naam (als die bekend is) of alle applicaties in een categorie kunnen bekeken worden. FreshPorts Dan Langille onderhoudt FreshPorts op . FreshPorts volgt veranderingen in applicaties in de ports en biedt de mogelijkheid om of meer ports te volgen. Er wordt dan een e-mail gestuurd als de port is bijgewerkt. FreshMeat Als de naam van de gewenst applicatie niet bekend is, is het wellicht mogelijk deze te achterhalen via een website als FreshMeat () en kan daarna op de &os; site gecontroleerd worden of de applicatie al geschikt gemaakt is voor gebruik met &os;. Als de precieze naam van de port bekend is, maar niet bekend is in welke categorie deze staat, kan dit achterhaald worden met &man.whereis.1;. Door simpelweg whereis bestand in te geven, waar bestand het te instelleren programma is. Als het op het systeem staat, wordt dat als volgt aangegeven: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Dit geeft aan dat lsof (een systeemhulpprogramma) in de map /usr/ports/sysutils/lsof staat. Een andere manier om een port op te sporen is door het ingebouwde zoekmechanisme van de Portscollectie te gebruiken. Hiervoor moet het huidige pad de map /usr/ports zijn. Vanuit die map kan make search name=programmanaam uitgevoerd worden, waar programmanaam de naam is van het programma dat wordt gezocht. Als bijvoorbeeld lsof wordt gezocht: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: Het belangrijkste onderdeel van de uitvoer is in dit geval de regel waarop Path: staat, omdat die aangeeft waar de port staat. De andere informatie is niet nodig voor de installatie van de port en wordt hier niet behandeld. Voor nog dieper zoeken kan ook make search key=string gebruikt worden waar string tekst is waarnaar gezocht moet worden. Hiermee wordt naar namen van ports, commentaar, beschrijvingen en afhankelijkheden gezocht en dit kan gebruikt worden om ports te vinden die te maken hebben met een bepaald onderwerp als onbekend is hoe het gezochte programma heet. In beide gevallen is de zoekstring niet hoofdlettergevoelig. Zoeken naar LSOF geeft hetzelfde resultaat als zoeken naar lsof. Chern Lee Bijgedragen door Het packagessysteem gebruiken Packages installeren packages installeren pkg_add Met &man.pkg.add.1; kan een &os; softwarepackage geïnstalleerd worden vanaf een lokaal bestand of vanaf een server op het netwerk. Handmatig packages downloaden en lokaal installeren &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp3.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Als er lokaal geen bron is voor packages (zoals de &os; cd-rom set) dan is het waarschijnlijk makkelijker om de optie te gebruiken met &man.pkg.add.1;. Deze optie zorgt er voor dat het hulpprogramma automatisch het correcte formaat en de juiste versie bepaalt en die daarna binnenhaalt en installeert vanaf een FTP site. pkg_add &prompt.root; pkg_add -r lsof Het voorbeeld hierboven haalt het correcte package binnen en installeert het zonder dat de gebruiker iets hoeft te doen. Het is mogelijk een alternatieve &os; packagessite aan te geven in plaats van de hoofddistributiesite. Dan moet PACKAGESITE ingesteld worden om de standaardinstellingen aan te passen. &man.pkg.add.1; gebruikt &man.fetch.3; om de bestanden binnen te halen, dat gebruik maakt van diverse omgevingsvariabelen zoals FTP_PASSIVE_MODE, FTP_PROXY, en FTP_PASSWORD. Mogelijk moeten ook één of meer van deze variabelen gebruikt worden als een machine achter een firewall staat of als gebruik gemaakt moet worden van een FTP/HTTP proxy. In &man.fetch.3; staat de complete lijst. In het voorbeeld hierboven is gebruik gemaakt van lsof in plaats van lsof-4.56.4. Als het package wordt binnengehaald met behulp van de bovenstaande instellingen, dan moet het versienummer van het package niet gebruikt worden. &man.pkg.add.1; haalt automatisch de laatste versie van de applicatie binnen. &man.pkg.add.1; downloadt de meest recente versie van een applicatie als &os.current; of &os.stable;. Als een -RELEASE versie wordt gebruikt, wordt het package dat bij die release hoort gebruikt. Het is mogelijk dit gedrag te veranderen door de omgevingsvariabele PACKAGESITE te wijzigen. Als bijvoorbeeld &os; 5.4-RELEASE op een systeem draait, dan haalt &man.pkg.add.1; standaard de packages uit ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/. Om &man.pkg.add.1; de &os; 5-STABLE packages te laten downloaden kan PACKAGESITE ingesteld worden op ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/. Packagebestanden worden gedistribueerd in de formaten .tgz en .tbz. Ze zijn te vinden op of op de &os; cd-rom distributie. Iedere cd-rom in de &os; 4-cd-rom set (en de PowerPak, enzovoort) bevat packages in de map /packages. De opbouw van de packages is ongeveer gelijk aan die van /usr/ports. Iedere categorie heeft zijn eigen map en ieder package staat ook in de map All. De mappenstructuur van het packagesysteem is gelijk aan die van het portssysteem. Samen vormen ze het package/portssysteem. Packages beheren packages beheren &man.pkg.info.1; is een hulpprogramma dat de diverse geïnstalleerde packages toont en beschrijft. pkg_info &prompt.root; pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ... &man.pkg.version.1; is een hulpprogramma dat een samenvatting van de versie van alle geïnstalleerde packages geeft. Het vergelijkt de versie van het package met de huidige versie in de Portscollectie. pkg_version &prompt.root; pkg_version cvsup = docbook = ... De symbolen in de tweede kolom geven aan hoe de geïnstalleerde versie staat ten opzichte van de versie die beschikbaar is in de lokale Portscollectie. Symbool Betekenis = De versie van het geïnstalleerde package komt overeen met die in de lokale Portscollectie. < De geïnstalleerde versie is ouder dan die beschikbaar is in de ports. > De geïnstalleerde versie is nieuwer dan die in de lokale Portscollectie. De lokale Portscollectie is waarschijnlijk verouderd. ? Het geïnstalleerde package kan niet gevonden worden in index van de Portscollectie. Dit kan bijvoorbeeld gebeuren als een geïnstalleerde port uit de Portscollectie wordt verwijderd of hernoemd. * Er zijn meerdere versies van het package. Packages verwijderen pkg_delete packages deleting Voor het verwijderen van een geïnstalleerd package wordt het hulpprogramma &man.pkg.delete.1; gebruikt. &prompt.root; pkg_delete xchat-1.7.1 Diversen Alle informatie over packages wordt opgeslagen in de map /var/db/pkg. De lijst met geïnstalleerde bestanden en beschrijvingen van ieder package staat in de bestanden in deze map. De Portscollectie gebruiken In de volgende paragrafen worden basisinstructies gegeven over het gebruik van de Portscollectie om programma's op een systeem te installeren of ervan te verwijderen. De Portscollectie Voordat ports geïnstalleerd kunnen worden moet eerst de Portscollectie op een systeem staan, die in essentie een set van Makefiles, patches en bestanden met beschrijvingen is in /usr/ports. Tijdens het installeren van een &os; systeem, vraagt sysinstall of de Portscollectie geïnstalleerd moet worden. Als daar NO is aangegeven, dan kan met behulp van de volgende instructies alsnog de Portscollectie op een systeem gezet worden: Met <application>sysinstall</application> Bij deze methode wordt sysinstall weer gebruikt om de Portscollectie te installeren. sysinstall (/stand/sysinstall in &os; versies ouder dan 5.2) dient als root uitgevoerd te worden: >&prompt.root; sysinstall Selecteer onderaan Configure en druk op Enter; Selecteer onderaan Distributions en druk op Enter; Selecteer ports en druk op Space; Selecteer bovenaan Exit en druk op Enter; Selecteer het gewenste installatiemedium, zoals cd-rom, FTP, enzovoort; Selecteer bovenaan Exit en druk op Enter; Druk op X om sysinstall te verlaten. De alternatieve methode om de Portscollectie te installeren en bij te werken maakt gebruik van CVSup. Zie hiervoor het bestand /usr/share/examples/cvsup/ports-supfile uit de port CVSup. In dat bestand en CVSup gebruiken () staat meer informatie over het gebruik van CVSup. Met CVSup Dit is een snelle methode om de Portscollectie te installeren met behulp van CVSup. Meer informatie over CVSup of over het bijgewerkt houden van de Portscollectie staat in de eerder genoemde paragraaf. - De port net/cvsup - dient geïnstalleerd te worden. Meer details zijn te - vinden in CVSup - Installatie (); - - - - /usr/share/examples/cvsup/ports-supfile - dient als root naar een nieuwe lokatie - zoals /root of een thuismap gekopieerd - te worden; - + Installeer het package net/cvsup-without-gui: - - ports-supfile dient aangepast te - worden; - + &prompt.root; pkg_add -r cvsup-without-gui - - CHANGE_THIS.FreeBSD.org - dient gewijzigd te worden in een - CVSup server in de buurt. In - CVSup Mirrors () staat een complete lijst van - mirrorsites; + Meer details staan in CVSup Installatie (); - Start cvsup: - - &prompt.root; cvsup -g -L 2 /root/ports-supfile + Draai cvsup: + + &prompt.root; cvsup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile + + Wijzig cvsup.FreeBSD.org + in een CVSup server in de buurt. + In CVSup Mirrors + () staat een complete lijst + van mirrorsites; + + + Het kan wenselijk zijn een aangepaste + ports-supfile te gebruiken, + bijvoorbeeld om een CVSup + server niet mee te hoeven geven op de + commandoregel. + + + + Kopieer in dit geval, als + root, + /usr/share/examples/cvsup/ports-supfile + naar een nieuwe locatie, zoals /root of een + thuismap. + + + + Wijzig ports-supfile. + + + + Wijzig + CHANGE_THIS.FreeBSD.org in + een CVSup server in de + buurt. In CVSup + Mirrors () + staat een volledige lijst met mirrorsites. + + + + Roep nu als volgt cvsup + aan: + + &prompt.root; cvsup -L 2 /root/ports-supfile + + + Als dit commando later wordt herhaald, dan worden alle recente veranderingen binnengehaald. De ports die al geïnstalleerd zijn worden niet opnieuw gebouwd! Ports installeren ports installeren Het eerste wat uitleg behoeft als het over de Portscollectie gaat is de term skelet (skeleton). In een notendop is een portskelet een minimaal aantal bestanden dat &os; aangeeft hoe een programma gecompileerd en geïnstalleerd kan worden. Ieder portskelet bevat: Een Makefile. De Makefile bevat verschillende definities die aangeven hoe de applicatie gecompileerd moet worden en waar die op een systeem geïnstalleerd moet worden; Een bestand distinfo. Dit bestand bevat informatie over de bestanden die gedownload moeten worden om de port te bouwen en hun checksums, om met &man.md5.1; vast te stellen dat de bestanden niet corrupt zijn geraakt tijdens de download.; Een map files. Deze map bevat patches om het programma op een &os; systeem te laten compileren en installeren. Patches zijn in essentie kleine bestanden waarin kleine veranderingen aan andere, specifieke, bestanden staan aangegeven. Ze zijn opgesteld in platte tekst en er staan dingen in als Verwijder regel 10 of Wijzig regel 26 in .... Patches staan ook wel bekend als diffs omdat ze gemaakt worden met het programma &man.diff.1;. Deze map kan ook andere bestanden bevatten die gebruikt worden om de port te bouwen; Een bestand pkg-descr. Dit is een meer gedetailleerde beschijving van het programma, vaak in één regel; Een bestand pkg-plist. Dit is een lijst met alle bestanden die door de port geïnstalleerd worden. Het geeft het portssysteem ook aan welke bestanden bij het verwijderen van de port weer verwijderd kunnen worden. Sommige ports bevatten nog andere bestanden, zoals pkg-message. Het portssysteem gebruikt die bestanden voor het afhandelen van bijzondere situaties. Meer details over die bestanden en over ports in het algemeen zijn na te lezen in het &os; Handboek voor Porters. De port bevat instructies over hoe de broncode gebouwd moet worden, maar de broncode zelf is er geen onderdeel van. De broncode staat op een cd-rom of op internet. De broncode wordt verspreid op de wijze waarop de auteur dat wenst. Vaak is dat als een tar of gzip bestand, maar het kan ook ingepakt zijn met een ander programma of helemaal niet ingepakt zijn. De broncode van een programma, in welke vorm dan ook, heet een distfile. De twee methoden om een &os; port te installeren worden hieronder beschreven. Ports installeren dient als root te gebeuren. Voordat een port wordt geïnstalleerd is het aan te raden op na kijken of er geen beveiligingsproblemen voor de gewenste applicatie bekend zijn. Het is ook mogelijk om security/portaudit te installeren. Hiermee wordt die controle automatisch uitgevoerd voordat een port wordt geïnstalleerd. Met het commando portaudit -F kan de meest recente versie van de database met beveiligingsproblemen opgehaald worden. Door deze port wordt dagelijks een beveiligingsaudit gedaan en wordt ook dagelijks de database bijgewerkt. Meer informatie is te vinden in &man.portaudit.1; en &man.periodic.8;. Ports vanaf cd-rom installeren ports installeren vanaf cd-rom De officiële &os; Project cd-rom images bevatten geen distfiles meer. Die kostten veel ruimte die beter gevuld kon worden met voorgecompileerde packages. cd-rom producten als het &os; PowerPak bevatten wel distfiles en deze kunnen besteld worden bij een verkoper als de &os; Mall. In deze paragraaf wordt aangenomen dat er een &os; cd-rom set aanwezig is. De &os; cd-rom dient in de drive te zitten en gemount te worden op /cdrom. Als er een ander mountpunt wordt gebruikt, dient de make variable CD_MOUNTPTS te worden ingesteld. Om te beginnen dient de juiste map voor een port aangegeven te worden: &prompt.root; cd /usr/ports/sysutils/lsof Eenmaal in de map lsof is het skelet van de port te zien. In de volgende stap wordt de broncode voor de port gecompileerd of gebouwd. Dit wordt gedaan door op het prompt make in te voeren. Dat levert iets als het volgende op: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from file:/cdrom/ports/distfiles/. ===> Extracting for lsof-4.57 ... [uitvoer van uitpakken verwijderd] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [uitvoer van configure verwijderd] ... ===> Building for lsof-4.57 ... [uitvoer van compileren verwijderd] ... &prompt.root; Als het compileren is afgerond is het prompt weer zichtbaar. In de volgende stap wordt de port geïnstalleerd. Om dat te bewerkstelligen wordt het woord install aan make toegevoegd: &prompt.root; make install ===> Installing for lsof-4.57 ... [uitvoer installatie verwijderd] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Als het prompt weer beschikbaar is, is de applicatie klaar voor gebruik. Omdat lsof met verhoogde rechten wordt uitgevoerd, wordt er een waarschuwing getoond. Tijdens het bouwen en installeren van ports zijn de getoonde waarschuwingen van belang. Het is mogelijk een stap minder te gebruiken door make install uit te voeren in plaats van make en make install als twee afzonderlijke stappen. Sommige shells houden een cache bij van de commando's die in de mappen uit de omgevingsvariabele PATH staan om het opzoeken van een uitvoerbaar bestand te versnellen. Als zo'n shell wordt gebruikt, moet er na de installatie van een port het commando rehash worden uitgevoerd voordat zojuist geïnstalleerde commando's kunnen worden gebruikt. Dit commando werkt voor shells zoals tcsh. Voor shells als sh of shells/bash dient hash -r gebruikt te worden. In de documentatie van een shell staat meer informatie. Licenties van sommige ports staan niet toe dat de code wordt opgenomen in een cd-rom. Dit kan komen doordat er een formulier ingevuld moet worden voor een download of doordat herdistributie niet is toegestaan of om een andere reden. Om een port te installeren die niet op de cd-rom staat moet de computer waarop de port geïnstalleerd wordt een internetverbinding hebben. Dit staat in de volgende paragraaf beschreven. Ports vanaf Internet installeren Net als in de vorige paragraaf wordt hier aangenomen dat er voor een systeem een werkende internetverbinding is. Als die er niet is, dient de cd-rom installatie gevolgd te worden of moet met de hand de distfile in /usr/ports/distfiles gezet worden. Het installeren van een ports vanaf internet gaat op precies dezelfde manier als de installatie vanaf cd-rom. Het enige verschil is dat de distfile van internet komt in plaats vanaf de cd-rom. Het stappenplan is ook hetzelfde: &prompt.root; make install >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% 439860 bytes transferred in 18.0 seconds (23.90 kBps) ===> Extracting for lsof-4.57 ... [uitvoer van uitpakken verwijderd] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [uitvoer van configure verwijderd] ... ===> Building for lsof-4.57 ... [uitvoer van compileren verwijderd] ... ===> Installing for lsof-4.57 ... [uitvoer van installatie verwijderd] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Het enige verschil is de regel die aangeeft waar de distfile wordt opgehaald. Het portssysteem gebruikt &man.fetch.1; om bestanden te downloaden. Dat programma maakt gebruik van een aantal omgevingsvariabelen, waaronder FTP_PASSIVE_MODE, FTP_PROXY, en FTP_PASSWORD. Als een systeem achter een firewall staat, is het wellicht noodzakelijk om een of meer van deze omgevingsvriabelen in te stellen of om gebruik te maken van een FTP/HTTP proxy. In &man.fetch.3; staat een complete lijst. Als er geen continue internetverbinding is, kan gebruik gemaakt worden van make fetch. Door dit commando in de map /usr/ports uit te voeren worden alle benodigde bestanden gedownload. Dit commando werkt ook op een lager niveau als /usr/ports/net of /usr/ports/net/xmule. Als een port afhankelijk is van bibliotheken of andere ports dan worden de distfiles van die ports niet opgehaald. Om dat de bereiken dient fetch vervangen te worden door fetch-recursive. Het is mogelijk alle ports in een categorie te bouwen door make in een hogere map uit te voeren, naar analogie van het voorbeeld voor make fetch. Dit is wel gevaarlijk, omdat sommige ports niet tegelijk met andere geïnstalleerd kunnen zijn. In andere gevallen installeren twee ports hetzelfde bestand met een andere inhoud. In zeldzame gevallen willen of moeten gebruikers de tar bestanden van een andere site dan de MASTER_SITES halen (de locatie waar de bestanden vandaan komen). Dat is mogelijk met de optie MASTER_SITES met een volgend commando: &prompt.root; cd /usr/ports/directory &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch In het voorgaande voorbeeld is de optie MASTER_SITES gewijzigd naar ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Sommige ports staan toe (of schrijven zelfs voor) dat er een aantal instellingen worden meegegeven die bepaalde onderdelen (niet gebruikt, beveiligingsinstellingen en andere aanpassingen) van de applicatie in- of uitschakelen. Voorbeelden van ports waarbij dat het geval is zijn www/mozilla, security/gpgme en mail/sylpheed-claws. Er wordt een bericht getoond als dit soort instellingen beschikbaar zijn. Standaardmappen voor ports wijzigen Soms is het handig (of verplicht) om een andere map voor distfiles of ports te gebruiken. Met de variabelen PORTSDIR en PREFIX kunnen de standaardmappen veranderd worden: &prompt.root; make PORTSDIR=/usr/home/example/ports install Het voorbeeld hierboven compileert de port in /usr/home/example/ports en installeert alles in /usr/local. &prompt.root; make PREFIX=/usr/home/example/local install Het voorbeeld hierboven compileert in /usr/ports en installeert in /usr/home/example/local. &prompt.root; make PORTSDIR=../ports PREFIX=../local install Het voorbeeld hierboven combineert de twee instellingen. Het gaat te ver om dit volledig in het handboek te beschrijven, maar hier krijgt de lezer een idee van de mogelijkheden. Het is ook mogelijk de bovenstaande variabelen als deel van de omgeving in te stellen. In de hulppagina's van de gebruikte shell staat hoe dat mogelijk is. Omgaan met <command>imake</command> Er zijn ports die imake gebruiken (een onderdeel van het X Window systeem) die niet goed werken met PREFIX en erop staan te installeren in /usr/X11R6. Er zijn ook een aantal Perl ports die PREFIX negeren en in de Perl hiërarchie installeren. Deze ports op de PREFIX locatie laten installeren is meestal erg moeilijk of onmogelijk. Geïnstalleerde ports verwijderen ports verwijderen In deze paragraaf wordt het verwijderen van ports behandeld. Dat kan nodig zijn als een port niet langer wordt gebruikt of als de verkeerde ports is geïnstalleerd. Dit wordt geïllustreerd door de port uit het vorige voorbeeld te verwijderen (lsof). Net als bij het installeren van ports, moet eerst naar de juiste map gegaan worden (/usr/ports/sysutils/lsof). Daarna kan lsof verwijderd worden. Dit gaat met het commando make deinstall: &prompt.root; cd /usr/ports/sysutils/lsof &prompt.root; make deinstall ===> Deinstalling for lsof-4.57 Erg makkelijk dus. Nu is lsof van een systeem verwijderd. Om het opnieuw te installeren kan vanuit de map /usr/ports/sysutils/lsof make reinstall uitgevoerd worden. Het uitvoeren van make deinstall en make reinstall werkt niet als ooit make clean voor die port is uitgevoerd. Om een port te verwijderen na het cleanen van die port kan &man.pkg.delete.1; gebruikt worden, zoals wordt toegelicht in de paragraaf Het Packagessysteem Gebruiken. Ports en schijfruimte ports schijfruimte Werken met de Portscollectie kan in de loop der tijd veel schijfruimte gebruiken. Omdat de portsstructuur de neiging heeft in de loop der tijd in grootte te groeien, na het bouwen en installeren van software uit de ports, is het van belang altijd de tijdelijke werkmappen work op te ruimen met het commando make clean. Hiermee wordt de map work verwijderd nadat een port is gebouwd en geïnstalleerd. Daarnaast kunnen ook de distfiles met de broncode verwijderd worden uit de map distfiles en kunnen ports die niet meer gebruikt worden verwijderd worden. Sommige gebruikers kiezen ervoor om de beschikbare port categorieën te beperken met instellingen in het bestand refuse. Zo kan bij het draaien van de applicatie CVSup voorkomen worden dat bestanden in een categorie worden gedownload. Meer informatie over refuse staat in . Ports bijwerken portupgrade ports bijwerken Als de Portscollectie eenmaal is bijgewerkt vóór het bijwerken van ports, is het verstandig het bestand /usr/ports/UPDATING te raadplegen. In dat bestand staan aanwijzingen en wijzigingen voor gebruikers die van belang zijn bij het bijwerken van ports. Het bijwerken van ports kan een vervelend klusje zijn. Om bijvoorbeeld een port bij te werken is het nodig om naar de juiste portsmap te gaan, de port te bouwen, de oude port te verwijderen, de nieuwe port te installeren en daarna de werkmap op te ruimen. Het is voorstelbaar dat dit voor bijvoorbeeld vijf ports een vervelend klusje is. Dit was een groot probleem voor systeembeheerders, dus zijn daar hulpprogramma's voor gemaakt. Zo voert het hulpprogramma sysutils/portupgrade het complete hiervoor beschreven proces uit! Die port is gewoon als iedere andere port te installeren met make install clean. Nu kan er een database gemaakt worden met het commando pkgdb -F. Hiermee wordt de lijst van geïnstalleerde ports gelezen en wordt een databasebestand gemaakt in de map /var/db/pkg. Als daarna portupgrade -a wordt uitgevoerd, wordt die database gelezen en het bestand INDEX van de ports. Tenslotte begint portupgrade met het downloaden, bouwen, back-uppen, installeren en opschonen van de ports die zijn bijgewerkt. portupgrade kent veel opties voor verschillend gebruik. De meest belangrijke worden hieronder besproken. Om een specifieke applicatie bij te werken en niet de hele database, kan portupgrade pkgname gebruikt worden. De vlag kan gebruikt worden om portupgrade ook te draaien voor alle packages waar het opgegeven package van afhankelijk is en de optie zorgt ervoor dat het wordt gedraaid voor alle packages die van het opgegeven package afhankelijk zijn. Om bij installatie van packages in plaats van ports gebruik te maken kan gebruikt worden. Met deze optie zoekt portupgrade in de lokale mappen uit PKG_PATH of haalt de packages van via het netwerk op als het lokaal niet wordt aangetroffen. Als een package niet lokaal en niet via het netwerk wordt gevonden, dan gebruikt portupgrade ports. Om het gebruik van ports te voorkomen kan gebruik gemaakt worden van de optie . Om alleen de distfiles op te halen (of packages als is opgegeven), zonder bouwen of installeren, is beschikbaar. Meer informatie staat in &man.portupgrade.1;. Het is van belang om regelmatig de packagedatabase bij te werken met pkgdb -F om inconsistenties de repareren, in het bijzonder als portupgrade daar om vraagt. Als portupgrade tijdens het bijwerken van de packagedatabase wordt onderbroken levert dat een inconsistente database op. Er bestaan ook andere hulpprogramma's die de besproken taken uit kunnen voeren. Deze zijn te vinden in de map ports/sysutils. Activiteiten na het installeren Na het installeren van een nieuwe applicatie is het meestal verstandig om de documentatie te lezen die bij een applicatie zit, bestanden met instellingen die vereist zijn aan te passen, ervoor te zorgen dat de applicatie start na het booten (als het een daemon is), enzovoort. De exacte stappen om een applicatie in te stellen zijn natuurlijk voor iedere applicatie anders. Maar als er net een nieuwe applicatie is geïnstalleerd en het is niet vanzelfsprekend hoe verder te gaan, dan kunnen de volgende tips helpen: Met &man.pkg.info.1; kan uitgevonden worden welke bestanden geïnstalleerd zijn en waar. Om bijvoorbeeld uit te vinden welke bestanden door FooPackage versie 1.0.0 zijn geïnstalleerd: &prompt.root; pkg_info -L foopackage-1.0.0 | less Bestanden in mapnamen met man/ zijn hulppagina's, etc/ bevat bestanden met instellingen en doc/ bevat uitgebreidere documentatie. Als niet helemaal duidelijk is welke versie van het programma is geïnstalleerd, kan een commando als volgt gebruikt worden: &prompt.root; pkg_info | grep -i foopackage Hiermee worden alle packages getoond waar foopackage in de packagenaam voorkomt. Als de hulppagina's zijn gevonden, kunnen die bekeken worden met &man.man.1;. Zo kan er ook in de bestanden met voorbeeldinstellingen gekeken worden en naar aanvullende documentatie, als die is bijgeleverd. Als er een website is voor de applicatie staat daar vaak ook aanvullende documentatie, veelgestelde vragen, enzovoort. Als het webadres niet bekend is, kan dat nog staan in de uitvoer van het volgende commando: &prompt.root; pkg_info foopackage-1.0.0 Als er een regel met WWW: in staat, is dat de URL naar de website voor de applicatie. Ports die na het booten moeten starten (zoals internet diensten) hebben meestal een voorbeeldscript in /usr/local/etc/rc.d. Dit script kan bekeken, aangepast en hernoemd worden waar nodig. Meer informatie staat in Diensten Starten. Omgaan met kapotte ports Als een port niet werkt, zijn er een aantal mogelijke manieren om verder te komen: Repareren! In het Handboek voor de Porter is gedetailleerde informatie te vinden over de infrastructuur van de Ports, zodat een kapotte port gemaakt kan worden of er zelfs een nieuwe port ingestuurd kan worden. Klaag alleen per e-mail! Er kan eerst een e-mail naar de beheerder van de port gestuurd worden. Voor het mailadres van de beheerder kan make maintainer ingegeven worden of het kan in de Makefile staan. In de mail dienen in ieder geval de naam en versie van de port te staan (de regel met $&os;: in de Makefile) en de uitvoer tot en met de foutmelding. Als er geen antwoord komt van de beheerder, kan er met &man.send-pr.1; een foutrapport ingestuurd worden. Zoek een package van een FTP site in de buurt. De master packagecollectie staat op ftp.FreeBSD.org in de map packages, maar het is van belang dat er eerst in de buurt wordt gekeken! Dat het package werkt is waarschijnlijker dan wanneer uit de de broncode wordt gecompileerd en het is nog sneller ook. Een package kan met &man.pkg.add.1; geïnstalleerd worden. diff --git a/nl_NL.ISO8859-1/books/handbook/preface/preface.sgml b/nl_NL.ISO8859-1/books/handbook/preface/preface.sgml index 787a86fda1..0bbc23e476 100644 --- a/nl_NL.ISO8859-1/books/handbook/preface/preface.sgml +++ b/nl_NL.ISO8859-1/books/handbook/preface/preface.sgml @@ -1,733 +1,733 @@ Voorwoord Bedoeld publiek De nieuwkomers bij &os; zullen zien dat de eerste sectie van dit boek ze begleidt door de &os; installatieprocedure en de geleidelijke introductie in de concepten van &unix;. Om deze sectie goed te kunnen doorlopen is meer nodig dan de wens om te ontdekken en de mogelijkheid om nieuwe concepten op te nemen wanneer ze geïntroduceerd worden. De tweede, veel grotere, sectie van het handboek is een uitvoerige referentie naar alle mogelijke (relevante) onderwerpen die interessant zijn voor &os; systeembeheerders. Sommige van deze hoofdstukken adviseren mogelijk om eerdere documentatie te lezen. Dit wordt aangegeven in de samenvatting aan het begin van elk hoofdstuk. Voor een lijst van extra bronnen van informatie zie . Wijzigingen ten - opzichte van de Tweede Editie + opzichte van de tweede editie Deze derde editie is het resultaat van meer dan twee jaar werk van de toegewijde leden van het &os; Documentatieproject. Hieronder staan de grootste veranderingen in deze nieuwe editie: , Instellingen en optimalisatie, is uitgebreid met nieuwe informatie over ACPI power en resource management, het systeemhulpprogramma cron en er staan meer opties voor het optimaliseren van de kernel beschreven. , Beveiliging, is uitgebreid met meer informatie over virtuele private netwerken (VPN's), toegangscontrolelijsten voor het bestandssysteem (ACL's) en beveiligingswaarschuwingen. , Verplichte toegangscontrole (MAC), is een nieuw hoofdstuk in deze editie. Er wordt in uitgelegd wat MAC is en hoe het gebruikt kan worden om &os; te beveiligen. , Opslag, is uitgebreid met informatie over USB opslagapparaten, snapshots van bestandssystemen, bestandssystemen op basis van bestanden en het netwerk en versleutelde partities op disks. , Vinum, is een nieuw hoofdstuk in deze editie. Er wordt in beschreven hoe Vinum gebruikt kan worden. Vinum is een logische volume manager die apparaat onafhankelijke logische disks kan aanbieden en software RAID-0, RAID-1 en RAID-5. Aan , PPP en SLIP, is een paragraaf toegevoegd over problemen oplossen. , E-mail, is uitgebreid met informatie over alternatieve transport programma's, SMTP authenticatie, UUCP, fetchmail, procmail en een aantal andere gevorderde onderwerpen. , Netwerkdiensten, is nieuw in deze editie. Dit hoofdstuk bevat informatie over het opzetten van een Apache HTTP Server, FTPd en het opzetten van een server voor Microsoft &windows; clients met Samba. Een aantal paragrafen uit , Netwerken voor Gevorderden, zijn om reden van presentatie naar dit hoofdstuk verplaatst. , Netwerken voor gevorderden, is uitgebreid met informatie over het gebruik van Bluetooth apparaten met &os;, het opzetten van draadloze netwerken en Asynchronous Transfer Mode (ATM) netwerken. Er is een termenoverzicht toegevoegd als centrale locatie voor definities van technische termen die in dit boek gebruikt worden. Tenslotte zijn er nog veel estetische wijzigingen doorgevoerd aan tabellen en figuren in het boek. Veranderingen ten opzichte van de eerste editie Deze tweede editie is een optelsom van meer dan twee jaar werk door vaste leden van het &os; Documentation Project. Het volgende zijn de grote wijzigingen in deze editie: Er is een complete INDEX toegevoegd. Alle ASCII figuren zijn vervangen door grafische diagrammen. Aan elk hoofdstuk is een standaardsamenvatting toegevoegd om een snel overzicht te geven welke informatie zich in het hoofdstuk bevindt en wat de lezer geacht wordt te weten. De inhoud is logisch ingedeeld in drie delen: Starten, Systeembeheer en Appendix. (&os; installeren) is compleet herschreven met veel screenshots erbij om het makkelijker te maken voor nieuwe gebruikers om greep te krijgen op de tekst. (&unix; beginselen) is uitgebreid met extra informatie over processen, daemons en signalen. (Applicaties installeren) is uitgebreid met extra informatie over binair package-beheer. (Het X Window systeem) is compleet herschreven met de nadruk op het gebruik van moderne bureaubladtechnologiën zoals KDE en GNOME op &xfree86; 4.X. (Het &os; Opstartproces) is uitgebreid. (Opslag) is herschreven uit wat eens twee aparte hoofdstukken waren over disks en backups. We vinden dat de onderwerpen beter begrijpbaar zijn wanneer ze in één hoofdstuk zijn ondergebracht. Er is ook een sectie ver RAID (zowel hardware als softwarematig) toegevoegd. (Seriële communicatie) is compleet gereorganiseerd en bijgewerkt voor &os; 4.X/5.X. (PPP en SLIP) is aanzienlijk bijgewerkt. Veel nieuwe secties zijn toegevoegd aan (Geavanceerd netwerken). (E-mail) is uitgebreid met meer informatie over het instellen van sendmail. ( &linux; binaire compatibiliteit) is uitgebreid met informatie over het installeren van &oracle; en &sap.r3; De volgende nieuwe onderwerpen worden behandeld in de tweede editie: Instellingen en optimalisatie (). Multimedia () De opbouw van dit boek Dit boek is opgedeeld in vijf logische secties. De eerste sectie, Beginnen, behandelt de installatie en het basisgebruik van &os;. Er wordt verwacht dat lezers deze hoofdstukken volgt, en mogelijk hoofdstukken overslaat met bekende onderwerpen. De tweede sectie, Algemene Taken, behandelt veelgebruikte functies van &os;. Deze sectie en alle volgende kunnen in een willekeurige volgorde gelezen worden. Iedere sectie begint met een beknopte samenvatting die beschrijft wat het hoofdstuk inhoudt en wat de lezer al moet weten. Dit is bedoeld om de lezer de kans te geven alleen dat te lezen wat voor hem van belang is. In de derde sectie, Systeembeheer, wordt het beheer behandeld. De vierde sectie, Netwerkcommunicatie, gaat over netwerken en servers. De vijfde sectie bevat appendices met referentiemateriaal. , Introductie Introduceert &os; aan een nieuwe gebruiker. Het beschrijft de geschiedenis van het &os; project, de doelen en het ontwikkelmodel. , Installatie Begeleidt een gebruiker door de installatieprocedure. Sommige geavanceerde installatie-onderwerpen zoals installatie door middel van een seriële console worden ook behandeld. , &unix; beginselen Behandelt de basiscommando's en functionaliteit van het &os; besturingssyteem. Als de lezer bekend is met &linux; of een andere &unix; variant, kan dit hoofdstuk waarschijnlijk overgeslagen worden. , Applicaties installeren Behandelt de installatie van software van derden, met zowel &os;'s innovatieve Portscollectie als de standaard binaire packages. , Het X Window systeem Beschrijft het X Window systeem in het algemeen en het gebruik van X11 op &os; in het bijzonder. Het beschrijft ook standaard bureaubladomgevingen zoals KDE en GNOME. , Bureaubladapplicaties Levert standaard bureaubladapplicaties in een lijst, zoals webbrowsers en productiviteitspakketten, en beschrijft hoe ze te installeren op &os;. , Multimedia Laat zien hoe geluid- en video-ondersteuning te installeren voor een systeem. Het beschrijft ook een aantal voorbeeld audio- en video- applicaties. , Instellen van de &os; kernel Beschrijft waarom misschien een nieuwe kernel ingesteld moet worden en levert gedetailleerde instructies voor het instellen, bouwen en installeren van een eigen kernel. , Afdrukken Beschrijft hoe printers beheerd worden onder &os;, met informatie over bannerpagina's, afdruk-accouting en initiële installatie. , Instellingen en optimalisatie Beschrijft de parameters beschikbaar voor systeembeheerders om een &os; te optimaliseren voor de beste prestaties. Het beschrijft ook diverse instellingenbestanden die gebruikt worden in &os; en waar die te vinden zijn. , Het &os; opstartproces Beschrijft de &os; opstartprocedure en legt uit hoe deze aan te passen met instellingen. , Gebruikers en basis accountbeheer Beschrijft hoe gebruikers-accounts aan te maken en te wijzigen. Het beschrijft ook welke resource-beperkingen er gezet kunnen worden op gebruikers en andere account-beheerstaken. , Beveiliging Beschrijft vele verschillende hulpapplicaties die beschikbaar zijn die helpen om een &os; systeem veilig te houden, met oa: Kerberos, IPsec en OpenSSH. , Verplichte Toegangscontrole (MAC) Legt uit was Verplichte Toegangscontrole (MAC) is en hoe het gebruikt kan worden om een &os; te beveiligen. , Opslag Beschrijft hoe opslagmedia en bestandssystemen beheerd worden onder &os;. Dit omvat fysieke schijven, RAID arrays, optische en tape media, geheugenschijven en netwerkbestandssystemen. , Vinum Beschrijft hoe Vinum gebruikt wordt, een logische volumebeheerder die apparaatonafhankelijke logische disken levert, met software RAID-0, RAID-1 en RAID-5. , Lokalisatie - I18N/L10N gebruiken en instellen Beschrijft hoe &os; met andere talen dan Engels te gebruiken is. Behandelt zowel het systeem- als applicatieniveau van localisatie. , Het scherp van de snede Geeft uitleg over de verschillen tussen &os;-STABLE, &os;-CURRENT en &os; releases. Beschrijft welke gebruikers voordeel hebben van het bijhouden van een ontwikkelsysteem en legt dat proces uit. , Seriële communicatie Legt uit hoe een verbinding te maken met terminals en modems op een &os; systeem voor zowel dial-in als dial-out verbindingen. , PPP en SLIP Beschrijft hoe PPP, SLIP en PPP over Ethernet te gebruiken om verbinding te maken met remote systemen met &os;. , E-mail Legt verschillende componenten uit van een mailserver en gaat dieper in op simpele instellingen voor de populairste mailserver software: sendmail. , Netwerkdiensten Geeft gedetailleerde instructies en voorbeeldinstellingen om een &os; machine als een netwerk bestandssysteem server, DNS server, netwerk informatiesysteem server of tijdserver in te stellen. , Firewalls Licht de filosofie achter op software gebaseerde firewalls toe en beschrijf in detail hoe de verschillende firewalls die in &os; beschikbaar zijn ingesteld kunnen worden. , Netwerken voor gevorderden Beschrijft meerdere netwerk onderwerpen, inclusief het delen van een internetverbinding met andere computers in een LAN, routeren voor gevorderden, draadloze netwerken, bluetooth, ATM, IPv6 en nog veel meer. , &os; verkrijgen Geeft verschillende bronnen aan voor het verkrijgen van &os; media op cd-rom of DVD evenals verschillende sites op het internet die gebruikers in staat stellen &os; te downloaden en te installeren. , Bibliografie Dit boek behandelt veel verschillende onderwerpen die de lezer misschien hongerig maken naar een gedetaileerdere uitleg. De bibliografie bevat verwijzingen naar een aantal uitstekende boeken. , Bronnen op Internet Beschrijft de vele forums die beschikbaar zijn voor &os; gebruikers om vragen te stellen, en om deel te nemen aan technische conversaties over &os;. , PGP sleutels Geeft de PGP-vingerafdrukken van verschillende &os; ontwikkelaars. Overeenkomsten in dit boek Om consistentie en leesbaarheid te behouden en de leesbaarheid te behouden worden er een aantal overeenkomsten nageleefd in dit boek. Typografische overeenkomsten Italic Een italic lettertype wordt gebruikt voor bestandsnamen, URL's, benadrukte tekst, en het eerste gebruik van technische termen. Monospace Een monospaced lettertype wordt gebruikt voor foutmeldingen, commando's, omgevingsvariabelen, namen van ports, hostnamen, gebruikersnamen, groepsnamen, apparaatnamen, variabelen en stukjes code. Vet Een vet lettertype wordt gebruikt voor applicaties, commando's en toetsen. Gebruikersinvoer Toetsen worden weergegeven in bold om op te vallen tussen andere tekst. Toetscombinaties die bedoeld zijn om tegelijkertijd getypt te worden worden weergeven met +' tussen de toetsen zoals Ctrl AltDel Betekent dat de gebruiker de volgende toetsen op hetzelfde moment moet indrukken: Ctrl, Alt en Del. Toetsen die bedoeld zijn om achter elkaar te typen worden gescheiden door komma's, bijvoorbeeld Ctrl X, Ctrl S zou betekenen dat de gebruiker de Ctrl en X toetsen tegelijk moet indrukken en erna Ctrl en S tegelijkertijd moet indrukken. Voorbeelden Voorbeelden die beginnen met E:\> geven aan dat het een &ms-dos; commando betreft. Tenzij anders vermeld, kunnen deze commando's in een Command promptscherm in een moderne µsoft.windows; omgeving worden gebruikt. E:\> tools\fdimage floppies\kern.flp A: Voorbeelden die starten met een &prompt.root; geven aan dat een commando ingegeven moet worden als de superuser in &os;. Er kan aangemeld worden met root om het commando in te typen, of er kan na als gewone gebruiker aangemeld te hebben gebruikt gemaakt worden van &man.su.1; om superuser-rechten te verkrijgen. &prompt.root; dd if=kern.flp of=/dev/fd0 Voorbeelden die starten met &prompt.user; geven aan dat een commando opgegeven moet worden vanuit een normale gebruikersaccount. Tenzij anders vermeld, wordt de C-shell syntaxis gebruikt voor het instellen van omgevingsvariabelen en andere shellcommando's. &prompt.user; top Dankwoorden Het boek dat nu voorligt representeert de inspanningen van honderden mensen over de hele wereld. Of ze nu foutjes verbeteren of complete hoofdstukken inleveren, ze hebben allemaal nuttig bijgedragen. Verschillende bedrijven hebben bijgedragen aan het maken van dit document door de schrijvers te betalen om hier full-time aan te werken, door te betalen voor de publicatie, etc. In het bijzonder heeft BSDi (Overgenomen door Wind River Systems) leden van het &os; Documentatie Project betaald om full-time te werken aan het verbeteren van dit boek, wat leidde tot de publicatie van de eerste editie in maart 2000 (ISBN 1-57176-241-8). Wind River Systems heeft daarna verschillende schrijvers betaald om een aantal verbeteringen uit te voeren voor de printuitvoer-infrastructuur en om extra hoofdstukken toe te voegen aan de tekst. Dit werk leverde de publicatie van de tweede gedrukte editie in november 2001 (ISBN 1-57176-303-1). In 2003-2004 heeft &os; Mall, Inc een aantal mensen die bijdragen hebben geleverd betaald om het handboek te verbeteren voor een derde gedrukte editie. diff --git a/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml index 078acce13c..8dad1e715d 100644 --- a/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml @@ -1,1931 +1,1949 @@ Ken Tom Geupdate voor X.Org's X11 server door Marc Fonvieille Erik Radder Vertaald door Het X Window systeem Overzicht &os; gebruikt X11 om gebruikers een krachtige grafische gebruikersschil te bieden. X11 is een open-source implementatie van het X Window System dat zowel &xorg; als &xfree86; bevat. &os; versies tot en met &os; 4.11-RELEASE en &os; 5.2.1-RELEASE hebben &xfree86; als standaard, de X11 server die is uitgebracht door The &xfree86; Project, Inc. Vanaf &os; 5.3-RELEASE is de officiële standaardversie van X11 gewijzigd naar &xorg;, de X11 server die is ontwikkeld door de X.Org Foundation. In dit hoofdstuk wordt de installatie en instelling van X11 behandeld met de nadruk op &xorg;. Meer informatie over de videohardware die X11 ondersteunt kan gevonden worden op &xorg; of &xfree86; websites. Na het lezen van dit hoofdstuk weet de lezer: Wat de componenten van het X Window systeem zijn en hoe zij samenwerken. Hoe X11 geïnstalleerd en ingesteld kan worden. Hoe verschillende window managers geïnstalleerd en gebruikt kunnen worden. Hoe &truetype; lettertypen in X11 te gebruiken. Hoe het systeem ingesteld moet worden voor grafisch aanmelden (XDM). Aangeraden voorkennis: Hoe extra software van derden te installeren (). In dit hoofdstuk wordt het installeren en instellen van de &xorg; en &xfree86; X11 servers behandeld. De bestanden met instellingen, commando's en syntaxis is overwegend hetzelfde. Waar dat anders is wordt het aangegeven. X begrijpen X voor de eerste keer gebruiken kan een hele schok zijn voor mensen die gewend zijn aan andere grafische omgevingen, zoals µsoft.windows; of &macos;. Het is niet noodzakelijk om alle details te kennen over de X componenten en hoe zij samenwerken, maar enige basiskennis draagt wel bij aan krachtiger gebruik kunnen maken van X. Waarom X? X is niet het eerste windows systeem dat geschreven is voor &unix;, maar wel het meest populaire. Het oorspronkelijke X ontwikkelteam werkte eerst aan een ander window systeem. De naam van dat systeem was W (van Window). X was gewoon de volgende letter in het alfabet. X kan gewoon X, X Window systeem, X11 of nog anders genoemd worden. X11 X Windows noemen kan door sommigen als een belediging opgevat worden. &man.X.7; kan hierover wat licht laten schijnen. Het X client/server model X is vanaf het begin aan ontworpen om netwerk-centraal te zijn en gebruikt een client-server model. In het X model, draait de X server op de computer waar het toetsenbord, beeldscherm en muis aan vast zit. De server is verantwoordelijk voor het regelen van beeldinformatie, verwerken van invoer van toetsenbord en muis, enzovoort. Iedere X applicatie (zoals XTerm, of &netscape;) is een client. Een client stuurt berichten naar de server zoals teken een venster op deze coördinaten en de server stuurt berichten terug zoals de gebruiker heeft op de OK knop gedrukt. Thuis of in kleine bedrijven draaien zowel de X server als de X clients op dezelfde machine. Het is heel goed mogelijk dat de X server op een minder krachtige desktop computer draait en de X applicaties (de clients) op een, zeg maar, dure krachtige machine van het bedrijf. Hier vindt de communicatie tussen de X client en server plaats over het netwerk. Dit verwart sommige mensen, omdat de X terminologie geheel omgekeerd is aan wat ze verwachten. Dat is namelijk dat de X server de grote krachtige machine aan het eind van de gang is en de X client de machine op hun bureau is. De X server is de machine met het beeldscherm en het toetsenbord en de X clients zijn de programma's die de vensters tonen. Het protocol vereist niet dat de clients en servers hetzelfde besturingssysteem moeten draaien of hetzelfde soort computer moeten zijn. Het is heel goed mogelijk om X server op een µsoft.windows; of Apple's &macos; te draaien en er zijn verschillende gratis en commerciële applicaties die dat doen. &xorg;, zit vanaf &os; 5.3-RELEASE als standaard X server bij &os; en is gratis onder een gelijksoortig licentie als de &os; licentie. Er zijn ook commerciële X servers voor &os; verkrijgbaar. De window manager De filosofie van het X ontwerp lijkt veel op die van &unix;: gereedschappen, geen beleid. Dit houdt in dat X niet bepaalt hoe een taak volbracht moet worden. In plaats daarvan worden gereedschappen geleverd aan de gebruiker die verantwoordelijk is voor het juiste gebruik hiervan. Deze filosofie verbreedt zich door X niet te laten bepalen hoe vensters er moeten uitzien op het scherm, hoe ze verplaatst moeten worden met de muis, welke toetsaanslagen gebruikt moeten worden om te schakelen tussen vensters (bijvoorbeeld AltTab in het geval van µsoft.windows;), hoe de titelbalken eruit moeten zien, of ze wel of niet sluitknoppen moeten hebben, enzovoort. In plaats daarvan delegeert X deze verantwoordelijkheid aan een applicatie die Window Manager heet. Er zijn tientallen window managers voor X: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker en vele anderen. Elk van deze window managers heeft een eigen voorkomen en werking. Er zijn window managers met virtual desktops of met eigen toetscombinaties om de desktop te beheren; of hebben een Start knop of iets gelijksoortigs. Sommige gebruiken thema's die uiterlijk en beleving compleet veranderen door een nieuw thema te kiezen. Window managers zijn te vinden in de categorie x11-wm van de Portscollectie. De KDE en GNOME desktop omgevingen hebben hun eigen window managers die in het bureaublad zijn geïntegreerd. Iedere windows manager heeft zijn eigen manier van instellen. Sommige werken met handgetypte bestanden, anderen beschikken over grafische gereedschappen voor de meeste instellingen. Er is er minstens één (Sawfish) waarvan het instellingenbestand is geschreven in een dialect van de taal Lisp. Focusbeleid De window manager is ook verantwoordelijk voor het focusbeleid van de muis. Ieder window geörienteerd systeem heeft een manier nodig om te bepalen welk venster actief is, toetsaanslagen ontvangt en daarbij zichtbaar aangeeft welk venster actief is. Een bekend focus beleid heet click-to-focus. Dit model wordt gebruikt door µsoft.windows;, waarbij een venster actief wordt door er met de muis op te klikken. X ondersteunt geen specifiek focusbeleid. In plaats daarvan bepaalt de window manager op welk venster, op welk moment, de focus ligt. Een aantal window managers ondersteunen verschillende focusmethoden. Ze ondersteunen allemaal click to focus en de meerderheid ondersteunt ook nog andere. De meest populaire zijn: focus-volgt-muis (focus-follows-mouse) Het venster dat onder de muis zit is het venster waarop de focus ligt. Dit hoeft niet het venster te zijn dat bovenop alle andere vensters ligt. De focus verandert door te wijzen naar een ander venster. Het is niet nodig om er ook nog eens op te klikken. slordige-focus (sloppy-focus) Dit beleid is een kleine uitbreiding op focus-follows-mouse. Indien bij focus-follows-mouse de muis over het root venster (of de achtergrond) gaat, ligt op geen enkel venster de focus en gaan alle toetsaanslagen verloren. Bij sloppy-focus, verandert de focus alleen als de muis in een nieuw venster komt en niet als het huidige venster wordt verlaten. klik-voor-focus (click-to-focus) Het actieve venster wordt geselecteerd door erop te klikken. Het venster wordt dan opgetild en verschijnt dan voor alle andere vensters. Alle toetsaanslagen worden nu naar dit venster gestuurd, zelfs als de cursor naar een ander scherm wordt verplaatst. Veel window managers ondersteunen andere soorten of variaties op de bovenstaande typen muisbeleid. Hierover staat meestal meer in de documentatie van de betreffende window manager. Widgets De X aanpak door gereedschappen te leveren en niets af te dwingen breidt zich uit naar de widgets die in elk applicatievenster te zien zijn. Widget is een term voor alle dingen van de gebruikersinterface waarop geklikt kan worden of een andere actie mee uitgevoerd kan worden: knoppen, vinkvakjes, iconen, lijsten en ga zo maar door. µsoft.windows; noemt ze controls. µsoft.windows; en Apple's &macos; hebben beide een erg strikt widgetbeleid. Van de applicatieontwikkelaars wordt verwacht dat hun applicaties eenduidig zijn wat betreft uiterlijk en beleving. Bij X is ervoor gekozen geen grafische stijl of widgets te verplichten. X applicaties hebben dus niet allemaal hetzelfde uiterlijk. Er zijn populaire widgetsets en variaties, inclusief de originele Athena widgetset van MIT, &motif; (waarvan de widgetset van µsoft.windows; is afgeleid: schuine randen en drie gradaties grijs), OpenLook en anderen. De meeste nieuwe X applicaties gebruiken een modern uitziende widgetset: Qt, gebruikt door KDE, of GTK+ van het GNOME project. Vanuit dit oogpunt lijkt het enigzins op de &unix; desktop, wat het makkelijker maakt voor de beginnende gebruiker. X11 installeren Zowel &xorg; als &xfree86; kan op &os; geïnstalleerd worden. Vanaf &os; 5.3-RELEASE is &xorg; de standaard X11 implementatie voor &os;. &xorg; is de X11 server van de open source implementatie die is uitgebracht door de X.Org Foundation. &xorg; is gebaseerd op de code van &xfree86 4.4RC2 en X11R6.6. De X.Org Foundation heeft X11R6.7 uitgebracht in april 2004 en X11R6.8.2 in februari 2005. De laatstgenoemde versie is beschikbaar via de &os; Portscollectie. Om &xorg; vanuit de Portscollectie te bouwen en te installeren: &prompt.root; cd /usr/ports/x11/xorg &prompt.root; make install clean Om &xorg; compleet te bouwen is tenminste 4 GB vrije schijfruimte nodig. Om &xfree86; vanuit de Portscollectie te bouwen en te installeren: &prompt.root; cd /usr/ports/x11/XFree86-4 &prompt.root; make install clean X11 kan ook als package geïnstalleerd worden doordat er binaire packages beschikbaar zijn voor &man.pkg.add.1;. Als hiervoor de optie remote fetching van &man.pkg.add.1; wordt gebruikt, dan moet het versienummer verwijderd worden. &man.pkg.add.1; haalt automatisch de laatste versie van het programma op. Om het package voor &xorg; op te halen en te installeren: &prompt.root; pkg_add -r xorg Het &xfree86; 4.X package kan geïnstalleerd worden met: &prompt.root; pkg_add -r XFree86 Het voorbeeld hierboven installeert de complete X11 distributie inclusief de servers, clients, lettertypen enz. Er zijn ook afzondelijke packages en ports beschikbaar voor verschillende delen van X11. De rest van dit hoofdstuk licht toe hoe X11 wordt ingesteld en hoe een productieve desktopomgeving gebouwd kan worden. Van <application>&xfree86;</application> naar <application>&xorg;</application> Zoals voor iedere port, moet /usr/ports/UPDATING bekeken worden voor de wijzigingen. In dit bestand staan instructies die nodig zijn om een systeem te migreren van &xfree86; naar &xorg;. CVSup kan gebruikt worden om de ports tree bij te werken voordat er wordt begonnen met een migratie. Naast deze maatregel moet ook sysutils/portupgrade geïnstalleerd worden voor de migratie van een X11 systeem. In /etc/make.conf kan de variabele X_WINDOW_SYSTEM=xorg ingesteld worden. Hierdoor is het zeker dat een systeem weet welke X11 er wordt gebruikt. De oude variabele XFREE86_VERSION is komen te vervallen en vervangen door de variabele X_WINDOW_SYSTEM. Dan kunnen de volgende commando's uitgevoerd worden: &prompt.root; pkg_delete -f /var/db/pkg/imake-4* /var/db/pkg/XFree86-* &prompt.root; cd /usr/ports/x11/xorg &prompt.root; make install clean &prompt.root; pkgdb -F &man.pkgdb.1; is onderdeel van de portupgrade software en kan packages inclusief afhankelijkheden bijwerken. Om &xorg; compleet te bouwen is tenminste 4 GB vrije schijfruimte nodig. Christopher Shumway Geschreven door X11 instellen &xfree86; 4.X &xfree86; &xorg; X11 Voorbereiding Voordat er wordt begonnen met het instellen van X11 is de volgende informatie van de te installeren machine nodig: Monitor specificaties Chipset van de videokaart Geheugen van de videokaart horizontale scansnelheid verticale scansnelheid De specificaties van de monitor worden door X11 gebruikt om de resolutie en ververssnelheid te bepalen. Deze specificaties kunnen normaal gesproken verkregen worden uit de bij de monitor geleverde documentatie of van de website van de leverancier. Er zijn twee nummerreeksen nodig: de horizontale scansnelheid (scan rate) en de vertikale syncronisatiesnelheid (vertical synchronization). De chipset van de videokaart bepaalt welk stuurprogramma X11 gebruikt om de grafische hardware aan te spreken. Bij de meeste chipsets kan dit automatisch bepaald worden, maar het is altijd handig om dit te weten voor het geval de automatische detectie niet correct werkt. Het geheugen op de videokaart bepaalt de resolutie en kleurdiepte waarmee het systeem kan werken. Dit is belangrijk omdat de gebruiker zo de grenzen van zijn systeem kent. X11 instellen Het instellen van X11 bestaat uit meerdere stappen. De eerste stap is het bouwen van een instellingenbestand. Dit kan met: &prompt.root; Xorg -configure In het geval van &xfree86; is dat: &prompt.root; XFree86 -configure Dit genereert een kaal X11 instellingbestand in de map /root met de naam xorg.conf.new. Feitelijk wordt bepaald waar de map staat door hoe er superuser rechten zijn verkregen. $HOME is anders bij gebruik van &man.su.1; of bij direct aanmelden. Het X11 programma probeert dan de grafische hardware te detecteren en schrijft een instellingenbestand dat de juiste stuurprogramma's laadt voor de gevonden hardware van het systeem. De volgende stap is het testen van de bestaande instellingen om te controleren of &xorg; met de grafische kaart van het doelsysteem kan werken. Dit kan met: &prompt.root; Xorg -config xorg.conf.new Voor &xfree86; gebruikers: &prompt.root; XFree86 -xf86config XF86Config.new Als er een zwart/grijs rooster en een X muis cursor verschijnen was de instelling successvol. Om de test te stoppen dient gelijktijdig op CtrlAlt Backspace gedrukt te worden. Als de muis niet werkt, dan moet deze eerst ingesteld worden. Zie in het &os; installatie hoofdstuk. X11 optimaliseren Nu moet xorg.conf.new (of XF86Config.new als &xfree86; wordt gebruikt) worden aangepast aan de smaak van de gebruiker. Hiervoor moet het bestand in een teksteditor zoals &man.emacs.1; of &man.ee.1; worden geladen. Eerst moeten de frequenties van de monitor toegevoegd worden. Die zijn meestal weergegeven als horizontale en vertikale synchronisatiesnelheid. Deze waarden worden toegevoegd aan xorg.conf.new in het onderdeel "Monitor": Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" HorizSync 30-107 VertRefresh 48-120 EndSection In het instellingenbestand kunnen de sleutelwoorden HorizSync en VertRefresh missen. Als ze er niet staan, moeten ze toegevoegd worden met de juiste horizontale synchronisatiesnelheid achter het HorizSync sleutelwoord en de vertikale synchronisatiesnelheid achter het VertRefresh sleutelwoord. In het bovenstaande voorbeeld werden de gegevens van de monitor ingevoerd. X kan DPMS (Energy Star) eigenschappen gebruiken bij monitoren die dit ondersteunen. &man.xset.1; regelt de time-outs en kan de statussen standby, suspend of uit forceren. Om DPMS eigenschappen voor een monitor te activeren, moet de volgende regel toegevoegd worden aan de monitor sectie: Option "DPMS" xorg.conf XF86Config Als het instellingenbestand xorg.conf.new (of XF86Config.new) toch open staat in de editor dan kan ook meteen de gewenste standaardresolutie en kleurdiepte gekozen worden. Dit staat in het onderdeel "Screen": Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1024x768" EndSubSection EndSection Het sleutelwoord DefaultDepth beschrijft de kleurdiepte die standaard wordt gebruikt. Met de commandoregeloptie van &man.Xorg.1; (of &man.XFree86.1;) kan dit overschreven worden. Het sleutelwoord Modes beschrijft de resolutie waarmee gewerkt wordt bij de opgegeven kleurdiepte. Alleen VESA standaarden die door de grafische kaart van het systeem worden gedefinieerd worden ondersteund. In het voorbeeld hierboven is de standaardkleurdiepte 24 bits per pixel. Bij deze kleurdiepte is de toegestane resolutie 1024 bij 768 pixels. Bij het oplossen van problemen zijn de logboekbestanden van X11 vaak een goede hulp. Ze bevatten informatie voor ieder apparaat waar de X11 server verbinding mee maakt. Namen van &xorg; logboekbestanden hebben de vorm /var/log/Xorg.0.log (namen van &xfree86; logboekbestanden hebben de vorm XFree86.0.log). De precieze naam van een logboekbestand van variëren van Xorg.0.log tot Xorg.8.log enzovoort. Als alles is ingesteld, moet het instellingenbestand op een plaats gezet worden waar &man.Xorg.1; (of &man.XFree86.1;) het kan vinden. Dit is meestal /etc/X11/xorg.conf of /usr/X11R6/etc/X11/xorg.conf (voor &xfree86; heet het /etc/X11/XF86Config of /usr/X11R6/etc/X11/XF86Config): &prompt.root; cp xorg.conf.new /etc/X11/xorg.conf Voor &xfree86;: &prompt.root; cp XF86Config.new /etc/X11/XF86Config Het instellen van X11 is nu gereed. Om &xfree86; 4.X te kunnen starten met &man.startx.1; dient de x11/wrapper port geïnstalleert te worden. &xorg; heeft wrappercode en heeft geen extra wrapper nodig. De X11 server kan ook gestart worden met &man.xdm.1;. Er zit ook een grafisch instellingenprogramma bij de X11 distributie: &man.xorgcfg.1; (man.xf86cfg.1; voor &xfree86;). Hiermee kunnen de instellingen en stuurprogramma's interactief gekozen worden. Dit kan ook op het console gebruikt worden: xorgcfg -textmode. Meer details zijn te vinden in &man.xorgcfg.1; en &man.xf86cfg.1;. Er is ook nog het hulpprogramma &man.xorgconfig.1; (&man.xf86config.1; voor &xfree86;). Dit programma is op het console te gebruiken en is veel minder gebruikersvriendelijk, maar het zou wel kunnen werken in gevallen waarin andere hulpprogramma's dat niet doen. Bijzondere instellingen Instellen met de &intel; i810 graphische chipset Intel i810 grafische chipset Instellen met &intel; i810 integrated chipsets vereist de agpgart AGP programmeringsinterface voor X11 om de kaart aan te sturen. Het &man.agp.4; stuurprogramma zit in de GENERIC kernel sinds 4.8-RELEASE en 5.0-RELEASE. Bij eerdere versies dient het volgende toegevoegd te worden aan het bestand met kernelinstellingen: device agp Hierna dient een nieuwe kernel gebouwd te worden. In plaats hiervan, kan de kernelmodule agp.ko automatisch geladen worden met &man.loader.8; tijdens het opstarten. Hiervoor moet het volgende in /boot/loader.conf staan: agp_load="YES" Als gebruik wordt gemaakt van &os; 4.X of recenter, dan moet een apparaatnode gemaakt worden voor de programmainterface. Om deze AGP apparaatnode te maken, dient &man.MAKEDEV.8; gestart te worden in de map /dev: &prompt.root; cd /dev &prompt.root; sh MAKEDEV agpgart &os; 5.X of later gebruikt &man.devfs.5; om apparaatnodes transparant te verwerken, dan is de stap met &man.MAKEDEV.8; niet meer nodig. Hierdoor wordt het instellen van de hardware net als ieder andere grafische kaart. Bij systemen die zonder &man.agp.4; stuurprogramma gecompileerd zijn slaagt het laden van module met &man.kldload.8; niet. Het stuurprogramma moet in de kernel geladen zijn tijdens het opstarten door te compileren of door /boot/loader.conf te gebruiken. Als &xfree86; 4.1.0 (of later) gebruikt wordt en er verschijnen berichten over unresolved symbols zoals fbPictureInit, dan kan het toevoegen van de regel aan het &xfree86; instellingenbestand na Driver "i810" de oplossing zijn: Option "NoDDC" Murray Stokely Bijgedragen door Lettertypen gebruiken in X11 Type1 lettertypen De standaard lettertypen van X11 zijn allerminst ideaal voor het typische bureaubladprogramma. Grote presentatielettertypen zien er hoekig en onprofessioneel uit en kleine lettertypen in &netscape; zijn bijna onleesbaar. Er zijn diverse gratis, kwalitatief goede Type1 (&postscript;) lettertypen die meteen gebruikt kunnen worden met X11. De URW lettertypecollectie (x11-fonts/urwfonts) heeft bijvoorbeeld hoge kwaliteit versies van standaard Type1 lettertypen (Times Roman, Helvetica, Palatino en anderen). De Freefonts collectie (x11-fonts/freefonts) heeft nog meer lettertypen, maar de meesten ervan zijn bedoeld om in grafische software als Gimp gebruikt te worden en zijn niet compleet genoeg om als schermlettertypen te gebruiken. Daarbij kan X11 zonder veel moeite ingesteld worden worden om &truetype; lettertypen te gebruiken. Meer informatie staat in &man.X.7; of de paragraaf over &truetype; Lettertypen. Om de bovenstaande Type1 lettertypecollectie van de Portscollectie te installeren: &prompt.root; cd /usr/ports/x11-fonts/urwfonts &prompt.root; make install clean Dat geldt ook voor de freefont en andere collecties. Om de X server te vertellen dat deze lettertypen bestaan, dient de volgende regel toegevoegd te worden in XF86Config (in /etc/ voor &xfree86; versie 3 of in /etc/X11/ voor versie 4): FontPath "/usr/X11R6/lib/X11/fonts/URW/" Ook kan op de commando regel in de X sessie het volgende gestart worden: &prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/URW &prompt.user; xset fp rehash Dit werkt wel, maar zodra de X sessie wordt afgesloten is het weer verdwenen tenzij het is toegevoegd aan het opstartbestand (~/.xinitrc voor een normale startx sessie of ~/.xsession als er wordt aangemeld met een grafische aanmeldmanager als XDM). Een derde manier is het gebruik van het nieuwe bestand /usr/X11R6/etc/fonts/local.conf: zie hiervoor de paragraaf over over Anti-aliasing. &truetype; lettertypen TrueType lettertypen lettertypen TrueType &xfree86; 4.X en &xorg; hebben ingebouwde ondersteuning voor het renderen van &truetype; lettertypen. Er zijn twee verschillende modules die deze functionaliteit activeren. In dit voorbeeld wordt de freetype module gebruikt omdat deze beter werkt met de andere lettertypen die back-ends renderen. Om de freetype module te activeren dient de volgende regel toegevoegd te worden aan het onderdeel "Module" van /etc/X11/xorg.conf of /etc/X11/XF86Config. Load "freetype" Voor &xfree86; 3.3.X is een aparte &truetype; lettertypeserver nodig. Meestal wordt Xfstt gebruikt. Om Xfstt te installeren hoeft alleen de port x11-servers/Xfstt geïnstalleerd te worden. Hierna dient een map voor de &truetype; lettertypen gemaakt te worden (bijvoorbeeld /usr/X11R6/lib/X11/fonts/TrueType) en alle &truetype; lettertypen moeten naar deze map gekopieerd worden. &truetype; lettertypen kunnen niet direct van een &macintosh; gehaald worden. Ze moeten in een &unix;/&ms-dos;/&windows; formaat zijn voor X11. Zodra de bestanden naar deze map zijn gekopieerd, kan ttmkfdir gestart worden om een fonts.dir bestand te maken zodat de X lettertyperenderer weet waar deze nieuwe bestanden zijn geïnstalleerd. ttmkfdir zit in de &os; Portscollectie als x11-fonts/ttmkfdir. &prompt.root; cd /usr/X11R6/lib/X11/fonts/TrueType &prompt.root; ttmkfdir > fonts.dir Nu moet de &truetype; map toe aan het lettertypepad toegevoegd worden. Dit gebeurt op dezelde wijze als boven is beschreven voor Type1 lettertypen: &prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/TrueType &prompt.user; xset fp rehash of door een FontPath regel toe te voegen aan xorg.conf (of XF86Config). Dat is alles. Nu herkennen &netscape;, Gimp, &staroffice; en alle andere X applicaties de geïnstalleerde &truetype; lettertypen. Extreem kleine lettertypen (zoals hoge resolutie tekst op een webpagina) en extreme grote lettertypen (in &staroffice;) zien er nu veel beter uit. Joe Marcus Clarke Bijgewerkt door Anti-alias lettertypen anti-alias lettertypen lettertypen anti-alias Anti-aliasing wordt door X11 sinds ondersteund sinds &xfree86; versie 4.0.2. Maar instellingen voor lettertypen waren bewerkelijk voordat &xfree86; 4.3.0 geïntroduceerd werd. Vanaf &xfree86; 4.3.0 zijn alle lettertypen die X11 in de mappen /usr/X11R6/lib/X11/fonts/ en ~/.fonts/ aantreft automatisch beschikbaar voor anti-aliasing in applicaties die Xft ondersteunen. Niet alle applicaties ondersteunen Xft. Voorbeelden van applicaties met Xft ondersteuning zijn Qt 2.3 en hoger (de hulpprogramma's voor het KDE bureaublad), GTK+ 2.0 en hoger (de hulpprogramma's voor het GNOME bureaublad) en Mozilla 1.2 en hoger. Om te kunnen regelen welke lettertypen gebruik maken van anti-alias of om de eigenschappen van anti-aliasing in te stellen kan /usr/X11R6/etc/fonts/local.conf gemaakt of gewijzigd worden. In dit bestand kunnen speciale eigenschappen van het Xft lettertypesysteem aangepast worden. Deze paragraaf beschijft wat eenvoudige mogelijkheden. Meer details staan in &man.fonts-conf.5;. XML Dit bestand moet in het XML formaat opgemaakt worden. Hoofdletters en kleine letters worden onderscheiden en alle tags moeten netjes worden afgesloten. Het bestand begint met de gewone XML header gevolgd door een DOCTYPE definitie en daarna de <fontconfig> tag: <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> Zoals al eerder is vermeld zijn alle lettertypen in /usr/X11R6/lib/X11/fonts/ en in ~/.fonts/ al geschikt gemaakt voor Xft applicaties. Als naast deze twee mappen nog een andere lettertypen moeten kunnen bevatten, dan dient een soortgelijke regel als de onderstaande aan /usr/X11R6/etc/fonts/local.conf toegevoegd te worden: <dir>/path/to/my/fonts</dir> Na het toevoegen van nieuwe lettertypen en zeker nieuwe lettertypemappen dienen de lettertypecaches opnieuw opgebouwd worden met: &prompt.root; fc-cache -f Anti-aliasing maakt randen een beetje wazig wat kleine teksten beter leesbaar maakt en voorkomt trapvorming van grote letters. Maar het kan oogkramp veroorzaken als het op normale tekst wordt toegepast. Om lettertypen kleiner dan 14 punten uit te sluiten van anti-aliasing moeten de volgende regels toegevoegd worden: <match target="font"> <test name="size" compare="less"> <double>14</double> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> <match target="font"> <test name="pixelsize" compare="less" qual="any"> <double>14</double> </test> <edit mode="assign" name="antialias"> <bool>false</bool> </edit> </match> lettertypen spacing Spatiëring voor sommige enkel gespatieerde lettertypen kan ook ongepast zijn bij anti-aliasing. Dit lijkt vooral een probleem te zijn bij KDE. Een mogelijke oplossing hiervoor is het vergroten van de spatiëring van die lettertypen naar 100: <match target="pattern" name="family"> <test qual="any" name="family"> <string>fixed</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> <match target="pattern" name="family"> <test qual="any" name="family"> <string>console</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> Het bovenstaande hernoemt de standaardnamen van lettertypen naar "mono"). Voeg daarna het volgende toe: <match target="pattern" name="family"> <test qual="any" name="family"> <string>mono</string> </test> <edit name="spacing" mode="assign"> <int>100</int> </edit> </match> Bepaalde lettertypen, zoals Helvetica, kunnen problemen hebben met anti-aliasing. Dit uit zich meestal in een lettertype dat vertikaal door midden lijkt gesneden. Op zijn ergst kan het applicaties zoals Mozilla laten crashen. Om dit te voorkomen kan overwogen worden om ook de volgende regels toe te voegen aan local.conf: <match target="pattern" name="family"> <test qual="any" name="family"> <string>Helvetica</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match> Als de wijzigingen in local.conf zijn gemaakt dient niet vergeten te worden het bestand te eindigen met de tag </fontconfig> tag. Als dit niet gedaan wordt, dan worden de wijzigingen niet gezien. De standaard lettertypeset die geleverd wordt bij X11 is niet erg geschikt als het aankomt op anti-aliasing. Een veel betere set standaardlettertypen is de x11-fonts/bitstream-vera port. Deze port maakt /usr/X11R6/etc/fonts/local.conf aan als het nog niet bestaat. Als het al wel bestaat maakt de port /usr/X11R6/etc/fonts/local.conf-vera aan. De inhoud van dit bestand dient in /usr/X11R6/etc/fonts/local.conf geplaatst te worden en dan vervangen de Bitstream lettertypen automatisch de standaard X11 Serif, Sans Serif en Monospaced lettertypen. Als laatste kunnen gebruikers hun eigen instellingen aan een persoonlijk .fonts.conf bestand toevoegen. Om dit te doen moet iedere gebruiker het bestand ~/.fonts.conf maken. Ook dit bestand moet in het XML formaat zijn. LCD screen lettertypen LCD screen Nog een laatste punt: bij een LCD scherm kan sub-pixel sampling prettig zijn. Eigenlijk zorgt dit er voor dat de (horizontaal gesplitste) rode, groene en blauwe componenten gewijzigd worden om de horizontale resolutie te verbeteren. Het resultaat is geweldig. Voeg hiervoor de volgende regels ergens aan local.conf toe: <match target="font"> <test qual="all" name="rgba"> <const>unknown</const> </test> <edit name="rgba" mode="assign"> <const>rgb</const> </edit> </match> Afhankelijk van het soort beeldscherm kan rgb veranderd moeten worden in bgr, vrgb of vbgr. Experimenteren levert de beste instelling op. Mozilla anti-aliasing lettertypen uitschakelen Anti-aliasing moet werken zodra de X server opnieuw gestart is. Programma's dienen echter wel te weten hoe ze er mee moeten werken. Op dit moment geldt dat voor de Qt toolkit en de hele KDE omgeving kan met anti-alias omgaan (zie over KDE). GTK+ en GNOME anti-aliasing gebruiken via de Font capplet (zie ). Mozilla 1.2 en hoger gebruiken automatisch anti-aliasing. Om dit uit te zetten moet Mozilla opnieuw gebouwd worden met de optie -DWITHOUT_XFT. Seth Kingsley Bijgedragen door De X beeldschermmanager Overzicht X beeldschermmanager De X beeldschermmanager (XDM) is een optioneel onderdeel van het X Window systeem dat gebruikt wordt voor beheer van aanmeldsessies. Dit is vaak erg handig bij bijvoorbeeld X Terminals, desktops en grote netwerk beeldschermservers. Omdat het X Window systeem netwerk- en protocolonafhankelijk is, zijn er veel mogelijkheden om X clients en servers op verschillende machines in een netwerk te verbinden. XDM levert een grafische interface waarmee er gekozen kan worden welke beeldschermserver gebruikt moet worden en handelt authorisatie informatie (gebruikersnaam en wachtwoord) af. XDM levert de gebruiker dezelfde funtionaliteit levert als &man.getty.8; (zie ). Dus het regelt de systeemaanmeldingen voor de schermen waaraan verbonden moet worden en start dan een sessie manager namens de gebruiker (meestal een X window manager). XDM wacht dan tot het programma stopt en geeft aan dat de gebruiker klaar is en afgemeld kan worden. Hierna kan XDM het aanmeldscherm weer tonen zodat de volgende gebruiker kan aanmelden. XDM gebruiken De XDM daemon staat in /usr/X11R6/bin/xdm. Dit programma kan als root altijd gestart worden en regelt dan het X weergavegedeelte van de lokale machine. Als XDM iedere keer bij het opstarten moet starten is het handig om een regel toe te voegen aan /etc/ttys. Meer informatie over het gebruik van dit bestand staat in . In de standaardversie van /etc/ttys staat een regel om de applicatie deamon XDM op een virtuele terminal te draaien: ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure Standaard staat deze regel uit. Om hem aan te zetten moet veld 5 van off naar on gewijzigd worden en moet met &man.init.8; herstart worden met gebruikmaking van de aanwijzingen in . Het eerste veld, de naam van de terminal die het programma aanstuurt, is ttyv8. Dit houdt in dat XDM op de negende virtuele terminal begint te draaien. XDM instellen De map met instellingen voor XDM is /usr/X11R6/lib/X11/xdm. In deze map staan diverse bestanden die gebruikt kunnen worden om het gedrag en uiterlijk van XDM te veranderen. Meestal zijn dit de volgende bestanden: Bestand Omschrijving Xaccess Regels voor client authorisatie. Xresources Standaard waarden voor X bronnen. Xservers Lijst met op afstand en lokaal te beheren schermen. Xsession Standaard sessie script voor logins. Xsetup_* Script die applicaties start voordat de login interface start. xdm-config Algehele instellingen voor alle schermen op deze machine. xdm-errors Errors die gegenereerd zijn door het server programma. xdm-pid Het proces ID van de draaiende XDM. Tevens staan in deze map een aantal scripts en programma's om het bureaublad in te stellen als XDM draait. Het doel van elk van deze bestanden wordt kort omschreven. De juiste syntaxis en het gebruik van deze bestanden staat in &man.xdm.1;. De standaardinstelling regelt een eenvoudig rechthoekig aanmeldvenster met bovenin de hostnaam van de machine in een groot lettertype met een Login: en Password: prompt eronder. Dit is een goed beginpunt om het uiterlijk en werking van het XDM venster te veranderen. Xaccess Om een verbinding te maken met XDM gestuurde schermen wordt het protocol X Display Manager Connection Protocol (XDMCP) gebruikt. Het bestand is een set regels die XDMCP verbindingen met andere machines bestuurt. Standaard mag iedere client een verbinding maken. Zolang xdm-config niet is aangepast om verbindingen te accepteren is dat geen probleem. Xresources Dit is een bestand met standaarden voor de schermkiezer en de aanmeldschermen. Hier kan het uiterlijk van het aanmeldprogramma gewijzigd worden. De indeling is hetzelfde als bij het app-defaults bestand en is beschreven in de X11 documentatie. Xservers Dit is een lijst met netwerkschermen waaruit gekozen kan worden. Xsession Dit is het standaard sessiescript voor XDM dat start nadat de gebruiker is aangemeld. Normaal heeft iedere gebruiker een eigen sessiescript in ~/.xsession dat dit script overheerst. Xsetup_* Deze starten automatisch voordat de kiezers of aanmeldschermen getoond worden. Er is een script voor ieder gebruikt scherm met de naam Xsetup_ gevolgd door het lokale schermnummer (bijvoorbeeld Xsetup_0). Normaal draaien deze scripts éé of twee programma's in de achtergrond zoals xconsole. xdm-config Dit bevat de instellingen die toegepast worden op ieder scherm die deze installatie aanstuurt. De indeling is hetzelfde als van app-defaults. xdm-errors Hierin staan de meldingen die de X servers geven als XDM ze probeert te starten. Als een scherm dat gestart is door XDM om onduidelijke reden hangt, is dit een goede plaats om te zoeken naar foutmeldingen. Deze meldingen worden ook per sessie naar het ~/.xsession-errors van de gebruiker gestuurd. Een netwerk beeldschermserver gebruiken Om gebruikers een verbinding te laten maken met een X server moeten de toegangsregels gewijzigd worden en de connectielistener moet aangezet worden. Deze hebben standaard wat terughoudende waarden. Om XDM te laten luisteren naar verbindingen moet als eerste een regel uitgecommentarieerd worden in xdm-config: ! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with XDM DisplayManager.requestPort: 0 Hierna moet XDM herstart worden. Afwijkend in dit bestand is dat commentaar in app-defaults bestanden begint met het karakter ! en niet met het karakter #. Het kan wenselijk zijn om de toegangcontrole aan te scherpen. Hiervoor staan voorbeeldregels in Xaccess en &man.xdm.1;. Alternatieven voor XDM Er bestaan diverse alternatieven voor XDM programma. kdm (wordt geleverd bij KDE) wordt later in dit hoofstuk behandeld. De kdm beeldschermmanager biedt vele grafische verbeteringen en cosmetische franje en de mogelijkheid om de gebruiker de kans te geven een window manager te laten kiezen bij het aanmelden. Valentino Vaschetto Bijgedragen door Bureaubladomgevingen Deze sectie beschrijft de verschillende bureaubladomgevingen voor X op &os;. Een bureaubladomgeving kan van alles inhouden: van een simpele window manager tot een complete suite van bureaubladapplicaties zoals KDE of GNOME. GNOME Over GNOME GNOME GNOME is een gebruikersvriendelijke bureaubladomgeving die de gebruiker de mogelijkheid geeft om gemakkelijk de computer te gebruiken en in te stellen. GNOME heeft een paneel (voor het starten en tonen van statusinformatie van applicaties), een bureaublad (waar data en applicaties geplaatst kunnen worden), een set standaard bureaubladapplicaties en een regels die het makkelijker maakt voor applicaties om eenduidig met elkaar samen te werken. Gebruikers van andere besturingssystemen of omgevingen voelen zich meestal meteen thuis bij het gebruik van de krachtige grafisch gestuurde omgeving die GNOME biedt. Meer informatie over GNOME op &os; staat op de &os; GNOME - Project website. + Project website. De website bevat ook redelijk + complete FAQ's over het installeren, instellen en beheren van + GNOME. GNOME installeren De makkelijkste manier om GNOME te installeren is door middel van het Desktop Configuration menu tijdens de &os; installatie zoals beschreven in . Het kan ook makkelijk geïnstalleerd worden van een package of uit de Portscollectie: Om het GNOME package te installeren: &prompt.root; pkg_add -r gnome2 Om GNOME vanuit de Portscollectie te installeren: &prompt.root; cd /usr/ports/x11/gnome2 &prompt.root; make install clean Zodra GNOME geïnstalleerd is, moet de X server verteld worden dat in plaats van de standaard window manager GNOME - gebruikt moet worden. Als er al een - .xinitrc is, dan hoeft alleen de regel - die de huidige windows manager start veranderd te worden in - een regel die + gebruikt moet worden. + + De meest eenvoudige manier om + GNOME te starten is via + GDM, de GNOME Display Manager. + GDM wordt meegeïnstalleerd + met de GNOME bureaubladomgeving, + maar staat standaard uitgeschakeld. Dit programma kan + ingeschakeld worden door gdm_enable="YES" + toe te voegen aan /etc/rc.conf. Na + herstarten start GNOME + automatisch bij het aanmelden. Er zijn geen verdere + instellingen nodig. + + GNOME kan ook gestart worden + vanaf de commandoregel door het bestand + .xinitrc juist in te stellen. Als er al + een .xinitrc is, dan hoeft alleen de + regel die de huidige window manager start veranderd te worden + in een regel die /usr/X11R6/bin/gnome-session start. Als er niets speciaals met dit instellingenbestand is gedaan: &prompt.user; echo "/usr/X11R6/bin/gnome-session" > ~/.xinitrc Nu kan met startx de GNOME bureaubladomgeving gestart worden. Als een beeldschermmanager als XDM gebruikt wordt werkt het bovenstaande niet. In plaats daarvan moet een uitvoerbaar .xsession gemaakt worden met hetzelfde commando erin. Hiervoor moet het bestand aangepast worden door het bestaande window manager commando te vervangen door /usr/X11R6/bin/gnome-session: &prompt.user; echo "#!/bin/sh" > ~/.xsession &prompt.user; echo "/usr/X11R6/bin/gnome-session" >> ~/.xsession &prompt.user; chmod +x ~/.xsession Het is ook mogelijk de beeldschermanager zo in te stellen dat de window manager gekozen kan worden tijdens het aanmelden. In de paragraaf Meer KDE Details wordt uitgelegd hoe dit gedaan moet worden voor de kdm beeldschermmanager van KDE. Anti-alias lettertypen in GNOME GNOME anti-alias lettertypen X11 ondersteunt anti-aliasing via de RENDER uitbreiding. GTK+ 2.0 en hoger (de toolkit die gebruikt wordt bij GNOME) kunnen dit gebruiken. Het instellen van anti-aliasing is beschreven in . Dus met up-to-date software is anti-aliasing in de GNOME bureaublagomgeving mogelijk. In ApplicationsDesktop PreferencesFont kan gekozen wordne voor Best shapes, Best contrast of Subpixel smoothing (LCDs). Bij een GTK+ applicatie die geen onderdeel is van het GNOME bureaublad moet de omgevingsvariabele GDK_USE_XFT op 1 gezet worden voordat het programma wordt gestart. KDE KDE Over KDE KDE is een bureaubladomgeving die eigentijds is en makkelijk in gebruik. KDE biedt de gebruiker: Een schitterende eigentijdse desktop; Een desktop die volledig netwerktransparant is; Een geïntegreerd hulpsysteem dat eenvoudig bruikbare informatie geeft over het gebruik van het KDE bureaublad en de applicaties; Alle KDE applicaties werken op dezelfde manier en zien er hetzelfde uit; Gestandaardiseerde menu's en werkbalken, keybindings, kleurschema's, enzovoort; Internationalisatie: KDE is beschikbaar in meer dan 40 talen; Gecentraliseerde vraag en antwoord gestuurde bureaubladinstelling; Een grote hoeveelheid bruikbare KDE applicaties; KDE heeft een office applicatie suite die gebaseerd is op KDE's KParts technologie en bestaat uit een spread-sheet, een presentatieprogramma, een organizer, een nieuwsclient en meer. KDE heeft ook de webbrowser Konqueror die niet onder doet voor de andere bestaande webbrowsers op &unix; systemen. Meer informatie over KDE staat op de KDE website. Voor &os; specifieke informatie en bronnen over KDE is er de &os;-KDE team website. KDE installeren Net als bij GNOME of iedere andere bureaubladomgeving is de makkelijkste manier om KDE te installeren door middel van het Desktop Configuration menu in het &os; installatie proces. Dat wordt beschreven in . Ook nu geldt weer dat de software eenvoudig geïnstalleerd met een package of uit de Portscollectie: Om KDE van een package te installeren: &prompt.root; pkg_add -r kde &man.pkg.add.1; haalt automatisch de laatste versie van de applicatie op. Om KDE vanuit de Portscollectie te bouwen en te installeren: &prompt.root; cd /usr/ports/x11/kde3 &prompt.root; make install clean Nadat KDE geïnstalleerd is, moet de X server verteld worden dat déze applicatie gestart moet worden in plaats van de standaard window manager. Hiervoor kan .xinitrc aangepast worden: &prompt.user; echo "exec startkde" > ~/.xinitrc Als het X Window System wordt gestart met startx is KDE het bureaublad. Als er een beeldschermmanager als XDM gebruikt wordt, is de instelling anders. Dan moet .xsession gewijzigd worden. Instructies voor kdm worden later in dit hoofdstuk beschreven. Meer KDE details Nadat KDE geïnstalleerd is op een systeem, kunnen de meeste dingen uitgezocht worden via de hulppagina's of door de verschillende menu's aan te wijzen en erop te klikken. &windows; en &mac; gebruikers voelen zich meestal helemaal thuis. Het beste naslagwerk voor KDE is de on-line documentatie. KDE heeft zijn eigen web browser, Konqueror, tientallen handige applicatie's en uitgebreide documentatie. De volgende paragrafen beschrijven de technische zaken die moeilijk proefondervindelijk te achterhalen zijn. De KDE beeldschermmanager KDE beeldschermmanager Een beheerder van een multi-user systeem die een grafisch aanmeldscherm willen hebben voor zijn gebruikers kan hiervoor XDM gebruiken, zoals eerder beschreven. KDE biedt kdm als alternatief. Dat is ontworpen met een beter uiterlijk en heeft meer aanmeldopties. Gebruikers kunnen via een menu kiezen welke bureaubladomgeving (KDE, GNOME of een andere) zij na het aanmelden willen gebruiken. Om te beginnen dient het KDE beheerpaneel kcontrol door root uitgevoerd te worden. Er wordt in het algemeen vanuit gegaan dat het niet veilig is om als root de X omgeving te gebruiken. In plaats daarvan wordt de window manager als normale gebruiker gestart en in een terminalvenster (zoals xterm of KDE's konsole) wordt root met su aangemeld. De gebruiker moet hiervoor wel in de groep wheel in /etc/group staan). In het terminalvenster kan dan kcontrol ingegeven worden. Eerst dient geklikt te worden op het linker icoon System, daarna op Login manager. Rechts staan nu verschillende opties om in te stellen die de KDE handleiding uitgebreid behandelt. Klik op sessions aan de rechterzijde. Klik New type om de verschillende window managers en bureaubladomgevingen toe te voegen. Dit zijn alleen de labels, hierop staat dan KDE en GNOME in plaats van startkde of gnome-session. Er dient ook nog een label failsafe gemaakt te worden. Er wordt aangeraden ook met de andere menu's te spelen. Die zijn hoofdzakeklijk voor cosmetische zaken en spreken voor zich. Als de instellingen gemaakt zijn kan onderaan op Apply geklikt worden en kan het beheerprogramma verlaten worden. Om te zorgen kdm begrijpt wat de labels (KDE en GNOME etc) betekenen, dienen de bestanden die XDM gebruikt gewijzigd te worden. In KDE 2.2 is dit veranderd: kdm gebruikt nu zijn eigen instellingenbestanden. In de KDE 2.2 documentatie staan meer details. Als root, in een terminal venster, dient /usr/X11R6/lib/X11/xdm/Xsession gewijzigd te worden. In het midden van het bestand is een onderdeel dat er als volgt uitziet: case $# in 1) case $1 in failsafe) exec xterm -geometry 80x24-0-0 ;; esac esac Er moeten een aantal regels toegevoegd worden aan dit onderdeel. Aangenomen dat de gebruikte labels KDE en GNOME waren, dient dat het volgende de worden: case $# in 1) case $1 in kde) exec /usr/local/bin/startkde ;; GNOME) exec /usr/X11R6/bin/gnome-session ;; failsafe) exec xterm -geometry 80x24-0-0 ;; esac esac Om bij het aanmelden de KDE bureaubladachtergrond hetzelfde te laten zijn als na het aanmelden, dient de volgende regel toegevoegd worden aan /usr/X11R6/lib/X11/xdm/Xsetup_0: /usr/local/bin/krootimage Nu moet kdm voorkomen in /etc/ttys en starten bij de volgende herstart. Om dit te doen kunnen de instructies uit XDM gebruikt worden en kan /usr/X11R6/bin/xdm vervangen worden in /usr/local/bin/kdm. Anti-alias lettertypen KDE anti-alias lettertypen X11 ondersteunt anti-aliasing door de toevoeging de RENDER toevoeging en vanaf Qt versie 2.3 ondersteunt Qt (de toolkit die bij KDE zit) deze toevoeging. Het instellen hiervan is beschreven in over anti-aliasing X11 lettertypen. Dus met up-to-date software is anti-aliasing mogelijk op een KDE bureaublad. In het KDE menu moet in PreferencesLook and FeelFonts het vinkvakje Gebruik Anti-aliasing voor Lettertypen en Iconen aangevinkt worden. Voor Qt applicaties die geen onderdeel zijn van KDE moet de omgevingsvariabele QT_XFT op true gezet worden voordat het programma wordt gestart. XFce Over XFce XFce is een bureaubladomgeving die gebaseerd is op de GTK+ toolkit die gebruikt wordt bij GNOME, maar is eenvoudiger en bedoeld voor gebruikers die een simpel en efficient bureaublad willen dat toch eenvoudig en makkelijk in te stellen is. Het ziet er bijna hetzelfde uit als CDE dat bij commerciële &unix; systemen zit. Een aantal XFce functies zijn: Een eenvoudige, makkelijk te bedienen desktop; Geheel in te stellen met de muis, met klikken en slepen, enzovoort; Hoofdpaneel hetzelfde als CDE met menu's, applets en applicaties Geïntegreerde window manager, bestandsmanager, geluidsmanager, GNOME compliance module en andere zaken; Thema's (sinds het gebruik van GTK+); Snel, licht en efficient: ideaal voor de oudere of langzamere machines of machines met beperkte hoeveelheid geheugen; Meer informatie over XFce staat op de XFce website. Installeren van XFce XFce is met een package te installeren: &prompt.root; pkg_add -r xfce4 Of vanuit de Portscollectie: &prompt.root; cd /usr/ports/x11-wm/xfce4 &prompt.root; make install clean Nu moet de X server weten dat XFce gestart moet worden als X de volgende keer start: &prompt.user; echo "/usr/X11R6/bin/startxfce4" > ~/.xinitrc De volgende keer dat X start is XFce het bureaublad. Wederom: als een beeldschermmanager als XDM gebruikt wordt, moet .xsession gemaakt worden zoals beschreven in de paragraaf over GNOME. Nu moet echter het command /usr/X11R6/bin/startxfce4 gebruikt. Het is ook mogelijk de beeldschermmanager in te stellen om bureaublad te kiezen bij het aanmelden, zoals is uitgelegd in de paragraaf over kdm. diff --git a/nl_NL.ISO8859-1/share/sgml/freebsd.dsl b/nl_NL.ISO8859-1/share/sgml/freebsd.dsl index c8676c3d2a..f1161f813b 100644 --- a/nl_NL.ISO8859-1/share/sgml/freebsd.dsl +++ b/nl_NL.ISO8859-1/share/sgml/freebsd.dsl @@ -1,251 +1,252 @@ ]> (define %refentry-xref-link% #t) (define ($email-footer$) (make sequence (make element gi: "p" attributes: (list (list "align" "center")) (make element gi: "small" (literal "Deze en andere documenten kunnen worden gedownload van ") (create-link (list (list "HREF" "ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/")) (literal "ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/")) (literal "."))) (make element gi: "p" attributes: (list (list "align" "center")) (make element gi: "small" (literal "Lees voor vragen over FreeBSD de ") (create-link (list (list "HREF" "http://www.FreeBSD.org/docs.html")) (literal "documentatie")) (literal " alvorens contact te zoeken <") (create-link (list (list "HREF" "mailto:questions@FreeBSD.org")) (literal "questions@FreeBSD.org")) (literal ">.") (make empty-element gi: "br") - (literal "Vragen over deze documentatie kunnen per e-mail naar<") + (literal "Vragen over deze documentatie kunnen per e-mail naar <") (create-link (list (list "HREF" "mailto:doc@FreeBSD.org")) (literal "doc@FreeBSD.org")) (literal ">."))))) ]]> number ;; then get the apparent level (substring renderas 4 5)) ;; from "renderas", (SECTLEVEL))) ;; else use the real level (hs (HSIZE (- 4 hlevel)))) (make sequence (make paragraph font-family-name: %title-font-family% font-weight: (if (< hlevel 5) 'bold 'medium) font-posture: (if (< hlevel 5) 'upright 'italic) font-size: hs line-spacing: (* hs %line-spacing-factor%) space-before: (* hs %head-before-factor%) space-after: (if (node-list-empty? subtitles) (* hs %head-after-factor%) 0pt) start-indent: (if (or (>= hlevel 3) (member (gi) (list (normalize "refsynopsisdiv") (normalize "refsect1") (normalize "refsect2") (normalize "refsect3")))) %body-start-indent% 0pt) first-line-start-indent: 0pt quadding: %section-title-quadding% keep-with-next?: #t heading-level: (if %generate-heading-level% (+ hlevel 1) 0) ;; SimpleSects are never AUTO numbered...they aren't hierarchical (if (> hlevel (- max-section-level-labels 1)) (empty-sosofo) (if (string=? (element-label (current-node)) "") (empty-sosofo) (literal (element-label (current-node)) (gentext-label-title-sep (gi sect))))) (element-title-sosofo (current-node))) (with-mode section-title-mode (process-node-list subtitles)) ($section-info$ info)))) ]]> (define (local-en-label-title-sep) (list (list (normalize "warning") ": ") (list (normalize "caution") ": ") (list (normalize "chapter") " ") (list (normalize "sect1") " ") (list (normalize "sect2") " ") (list (normalize "sect3") " ") (list (normalize "sect4") " ") (list (normalize "sect5") " ") )) diff --git a/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent b/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent index 0234fe3b7e..308df954e7 100644 --- a/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent +++ b/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent @@ -1,412 +1,421 @@ FreeBSD lijstserver"> &a.mailman.listinfo;"> FreeBSD ACPI mailinglijst"> freebsd-acpi"> FreeBSD steun mailinglijst"> freebsd-advocacy"> FreeBSD AFS porting mailinglijst"> freebsd-afs"> FreeBSD Adaptec AIC7xxx discussies mailinglijst"> freebsd-aic7xxx"> FreeBSD Alpha porting mailinglijst"> freebsd-alpha"> FreeBSD porten naar AMD64 systemen"> freebsd-amd64"> FreeBSD aankondigingen mailinglijst"> freebsd-announce"> FreeBSD Apache mailinglijst"> freebsd-apache"> FreeBSD architectuur en ontwerp mailinglijst"> freebsd-arch"> FreeBSD ARM porting mailinglijst"> freebsd-arm"> FreeBSD ATM netwerken mailinglijst"> freebsd-atm"> FreeBSD broncode audit mailinglijst"> freebsd-audit"> FreeBSD binair updatesysteem systeem mailinglijst"> freebsd-binup"> FreeBSD Bluetooth mailinglijst"> freebsd-bluetooth"> FreeBSD bugbusters mailinglijst"> freebsd-bugbusters"> FreeBSD problem reports mailinglijst"> freebsd-bugs"> FreeBSD babbel mailinglijst"> freebsd-chat"> FreeBSD clustering mailinglijst"> freebsd-cluster"> &os.current; mailinglijst"> freebsd-current"> CTM aankondigingen"> ctm-announce"> CTM distributie van CVS bestanden"> ctm-cvs-cur"> CTM 4-STABLE src tak distributie mailinglijst"> ctm-src-4"> CTM -CURRENT src tak distributie mailinglijst"> ctm-src-cur"> CTM gebruikersdiscussie mailinglijst"> ctm-users"> FreeBSD CVS commitberichten mailinglijst"> cvs-all"> FreeBSD CVS doc commitlijst"> cvs-doc"> FreeBSD CVS ports commitlijst"> cvs-ports"> FreeBSD CVS projecten commitlijst"> cvs-projects"> FreeBSD CVS src commitlijst"> cvs-src"> FreeBSD CVSweb beheer mailinglijst"> freebsd-cvsweb"> FreeBSD gebaseerde Databases mailinglijst"> freebsd-database"> FreeBSD documentatieproject mailinglijst"> freebsd-doc"> + +Apparaatstuurprogramma's schrijven voor FreeBSD"> +freebsd-drivers"> + FreeBSD-emulatie mailinglijst"> freebsd-emulatie"> FreeBSD FireWire (IEEE 1394) discussion mailinglijst"> freebsd-firewire"> FreeBSD bestandssysteem project mailinglijst"> freebsd-fs"> FreeBSD GEOM mailinglijst"> freebsd-geom"> FreeBSD GNOME and GNOME applications mailinglijst"> freebsd-gnome"> FreeBSD technische discussie mailinglijst"> freebsd-hackers"> FreeBSD hardware and apparatuur mailinglijst"> freebsd-hardware"> FreeBSD mirror sites mailinglijsts"> freebsd-hubs"> FreeBSD internationalisatie mailinglijst"> freebsd-i18n"> FreeBSD i386-specifieke onderwerpen mailinglijst"> freebsd-i386"> FreeBSD IA32 porting mailinglijst"> freebsd-ia32"> FreeBSD IA64 porting mailinglijst"> freebsd-ia64"> FreeBSD IPFW code mailinglijst"> freebsd-ipfw"> FreeBSD ISDN mailinglijst"> freebsd-isdn"> FreeBSD Internet service provider mailinglijst"> freebsd-isp"> FreeBSD Java Language mailinglijst"> freebsd-java"> FreeBSD gerelateerd werk mailinglijst"> freebsd-jobs"> FreeBSD KDE/Qt en KDE applicaties mailinglijst"> freebsd-kde"> FreeBSD LFS porting mailinglijst"> freebsd-lfs"> FreeBSD libh installatie and packagingsysteem mailinglijst"> freebsd-libh"> FreeBSD MIPS porting mailinglijst"> freebsd-mips"> FreeBSD mirrorsite beheerders"> mirror-announce"> FreeBSD laptop computer mailinglijst"> freebsd-mobile"> FreeBSD port van de Mozilla browser mailinglijst"> freebsd-mozilla"> FreeBSD multimedia mailinglijst"> freebsd-multimedia"> FreeBSD netwerken mailinglijst"> freebsd-net"> FreeBSD nieuwe gebruikers mailinglijst"> freebsd-newbies"> FreeBSD new-bus mailinglijst"> freebsd-new-bus"> FreeBSD OpenOffice mailinglijst"> freebsd-openoffice"> FreeBSD prestaties mailinglijst"> freebsd-performance"> FreeBSD Perl mailinglijst"> freebsd-perl"> FreeBSD pakketfilter mailinglijst"> freebsd-pf"> FreeBSD niet-Intel platformen porting mailinglijst"> freebsd-platforms"> FreeBSD core team beleidsbeslissingen mailinglijst"> freebsd-policy"> FreeBSD ports mailinglijst"> freebsd-ports"> FreeBSD ports bugs mailinglijst"> freebsd-ports-bugs"> FreeBSD PowerPC porting mailinglijst"> freebsd-ppc"> Technische discussie over FreeBSD op HP ProLiant serverplatforms"> freebsd-proliant"> FreeBSD Python mailinglijst"> freebsd-python"> FreeBSD Quality Assurance mailinglijst"> freebsd-qa"> FreeBSD algemene vragen mailinglijst"> freebsd-questions"> FreeBSD boot script system mailing list"> freebsd-rc"> FreeBSD realtime extensions mailinglijst"> freebsd-realtime"> FreeBSD SCSI subsysteem mailinglijst"> freebsd-scsi"> FreeBSD beveiliging mailinglijst"> freebsd-security"> FreeBSD beveiligingswaarschuwingen mailinglijst"> freebsd-security-notifications"> FreeBSD-small mailinglijst"> freebsd-small"> FreeBSD symmetric multiprocessing mailinglijst"> freebsd-smp"> FreeBSD SPARC porting mailinglijst"> freebsd-sparc64"> &os.stable; mailinglijst"> freebsd-stable"> FreeBSD C99 en POSIX compliance mailinglijst"> freebsd-standards"> FreeBSD test mailinglijst"> freebsd-test"> FreeBSD prestaties en stabiliteit test mailinglijst"> freebsd-testing"> FreeBSD threads mailinglijst"> freebsd-threads"> FreeBSD tokenring mailinglijst"> freebsd-tokenring"> FreeBSD USB mailinglijst"> freebsd-usb"> FreeBSD gebruikersgroep coördinatie mailinglijst"> freebsd-user-groups"> FreeBSD wederverkopers pre-release coördinatie mailinglijst"> freebsd-vendors"> Discussis over de VuXML infrastructuur"> freebsd-vuxml"> FreeBSD Webmaster mailinglijst"> freebsd-www"> FreeBSD X11 mailinglijst"> freebsd-x11"> + + +bug-followup@FreeBSD.org"> + + majordomo@FreeBSD.org">