FreeBSD handboek

The FreeBSD Dutch Documentation Project

Welkom bij FreeBSD! Dit handboek behandelt de installatie en het dagelijks gebruik van FreeBSD 6.4-RELEASE en FreeBSD 7.2-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 FreeBSD documentatieproject mailinglijst. De meest recente versie van dit document is te vinden op de FreeBSD website. Eerdere versies van dit handboek zijn te vinden op http://docs.FreeBSD.org/doc/. Het kan ook gedownload worden in veel verschillende formaten en compressiewijzen van de FreeBSD FTP server of een van de vele mirrorsites. Een gedrukt exemplaar van het handboek is te koop bij de FreeBSD Mall (Engels). Het handboek kan ook doorzocht worden.

Redistribution and use in source (SGML DocBook) and 'compiled' forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code (SGML DocBook) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.

  2. Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Belangrijk: THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

FreeBSD is een geregistreerd handelsmerk van de FreeBSD Foundation.

3Com en HomeConnect zijn geregistreerde handelsmerken van 3Com Corporation.

3ware en Escalade zijn geregistreerde handelsmerken van 3ware Inc.

ARM is een geregistreerd handelsmerk van ARM Limited.

Adaptec is een geregistreerd handelsmerk van Adaptec, Inc.

Adobe, Acrobat, Acrobat Reader, en PostScript zijn òfwel geregistreerde handelsmerken òf handelsmerken van Adobe Systems Incorporated in de Verenigde Staten en/of andere landen.

Apple, AirPort, FireWire, Mac, Macintosh, Mac OS, Quicktime, en TrueType zijn handelsmerken van Apple Computer, Inc., geregistreerd in de Verenigde Staten en andere landen.

Corel en WordPerfect zijn handelsmerken of geregistreerde handelsmerken van Corel Corporation en/of haar dochterondernemingen in Canada, de Verenigde Staten en/of andere landen.

Sound Blaster is een handelsmerk van Creative Technology Ltd. in de Verenigde Staten en/of andere landen.

CVSup is een geregistreerd handelsmerk van John D. Polstra.

Heidelberg, Helvetica, Palatino, en Times Roman zijn òfwel geregistreerde handelsmerken òf handelsmerken van Heidelberger Druckmaschinen AG in de Verenigde Staten en andere landen.

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, en ThinkPad zijn handelsmerken van International Business Machines Corporation in de Verenigde Staten, andere landen, of beide.

IEEE, POSIX, en 802 zijn geregistreerde handelsmerken van Institute of Electrical and Electronics Engineers, Inc. in de Verenigde Staten.

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, en Xeon zijn handelsmerken of geregistreerde handelsmerken van Intel Corporation of haar dochterondernemingen in de Verenigde Staten en andere landen.

Intuit en Quicken zijn geregistreerde handelsmerken en/of geregistreerde dienstmerken van Intuit Inc., of een van haar dochterondernemingen, in de Verenigde Staten en andere landen.

Linux is een geregistreerd handelsmerk van Linus Torvalds.

LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID en Mylex zijn handelsmerken of geregistreerde handelsmerken van LSI Logic Corp.

M-Systems en DiskOnChip zijn handelsmerken of geregistreerde handelsmerken van M-Systems Flash Disk Pioneers, Ltd.

Macromedia, Flash, en Shockwave zijn handelsmerken geregistreerde handelsmerken van Macromedia, Inc. in de Verenigde Staten en/of andere landen.

Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media en Windows NT zijn òfwel geregistreerde handelsmerken òf handelsmerken van Microsoft Corporation in de Verenigde Staten en/of andere landen.

Netscape en de Netscape Navigator zijn geregistreerde handelsmerken van Netscape Communications Corporation in de Verenigde Staten en andere landen.

GateD en NextHop zijn geregistreerde en ongeregistreerde handelsmerken van NextHop in de Verenigde Staten en andere landen.

Motif, OSF/1, en UNIX zijn geregistreerde handelsmerken en IT DialTone en The Open Group zijn handelsmerken van The Open Group in de Verenigde Staten en andere landen.

Oracle is een geregistreerd handelsmerk van Oracle Corporation.

PowerQuest en PartitionMagic zijn geregistreerde handelsmerken van PowerQuest Corporation in de Verenigde Staten en/of andere landen.

RealNetworks, RealPlayer, en RealAudio zijn de geregistreerde handelsmerken van RealNetworks, Inc.

Red Hat, RPM, zijn handelsmerken of geregistreerde handelsmerken van Red Hat, Inc. in de Verenigde Staten en andere landen.

SAP, R/3, en mySAP zijn handelsmerken of geregistreerde handelsmerken van SAP AG in Duitsland en in verschillende andere wereldwijde landen.

Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JRE, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS, en Ultra zijn handelsmerken of geregistreerde handelsmerken van Sun Microsystems, Inc. in de Verenigde Staten en andere landen.

Symantec en Ghost zijn geregistreerde handelsmerken van Symantec Corporation in de Verenigde Staten en andere landen.

MATLAB is een geregistreerd handelsmerk van The MathWorks, Inc.

SpeedTouch is een handelsmerk van Thomson.

U.S. Robotics en Sportster zijn geregistreerde handelsmerken van U.S. Robotics Corporation.

VMware is een handelsmerk van VMware, Inc.

Waterloo Maple en Maple zijn handelsmerken of geregistreerde handelsmerken van Waterloo Maple Inc.

Mathematica is een geregistreerd handelsmerk van Wolfram Research, Inc.

XFree86 is een handelsmerk van The XFree86 Project, Inc.

Ogg Vorbis en Xiph.Org zijn handelsmerken van Xiph.Org.

Veel van de termen die door fabrikanten en verkopers worden gebruikt om hun producten te onderscheiden worden geclaimd als handelsmerk. Op de plaatsen waar deze handelsmerken in dit document voorkomen, en het FreeBSD Project op de hoogte was van de claim op het handelsmerk, worden de termen gevolgd door het symbool “™” of het symbool “®”.


Inhoudsopgave
Voorwoord
I. Beginnen
1. Introductie
1.1. Overzicht
1.2. Welkom bij FreeBSD!
1.3. Over het FreeBSD Project
2. FreeBSD installeren
2.1. Overzicht
2.2. Hardware-eisen
2.3. Voorbereidende taken
2.4. Beginnen met de installatie
2.5. Inleiding Sysinstall
2.6. Schijfruimte toewijzen
2.7. Wat installeren
2.8. Installatiemedia kiezen
2.9. De installatie bevestigen
2.10. Instellingen na de installatie
2.11. Problemen oplossen
2.12. Installeren voor gevorderden
2.13. Aangepaste installatiemedia maken
3. UNIX® beginselen
3.1. Overzicht
3.2. Virtuele consoles en terminals
3.3. Rechten
3.4. Mappenstructuur
3.5. Organisatie van schijven
3.6. Het koppelen en ontkoppelen van bestandssystemen
3.7. Processen
3.8. Daemons, signalen en het stoppen van processen
3.9. Shells
3.10. Teksteditors
3.11. Apparaten en apparaatnodes
3.12. Binaire formaten
3.13. Meer informatie
4. Applicaties installeren: pakketten en ports
4.1. Overzicht
4.2. Overzicht van softwareinstallatie
4.3. Applicaties zoeken
4.4. Het pakkettensysteem gebruiken
4.5. De Portscollectie gebruiken
4.6. Activiteiten na het installeren
4.7. Omgaan met kapotte ports
5. Het X Window systeem
5.1. Overzicht
5.2. X begrijpen
5.3. X11 installeren
5.4. X11 instellen
5.5. Lettertypen gebruiken in X11
5.6. De X beeldschermmanager
5.7. Bureaubladomgevingen
II. Algemene taken
6. Bureaubladapplicaties
6.1. Overzicht
6.2. Browsers
6.3. Productiviteit
6.4. Documentviewers
6.5. Financiën
6.6. Samenvatting
7. Multimedia
7.1. Overzicht
7.2. Geluidskaart installeren
7.3. MP3 audio
7.4. Video afspelen
7.5. TV-kaarten installeren
7.6. Scanners
8. De FreeBSD-kernel instellen
8.1. Samenvatting
8.2. Redenen om een aangepaste kernel te bouwen
8.3. De systeemhardware vinden
8.4. Kernel stuurprogramma's, subsystemen, en modules
8.5. Bouwen en installeren van een aangepaste kernel
8.6. Het instellingenbestand
8.7. Problemen oplossen
9. Afdrukken
9.1. Overzicht
9.2. Inleiding
9.3. Standaardinstallatie
9.4. Geavanceerde printerinstallatie
9.5. Printers gebruiken
9.6. Alternatieven voor het standaard wachtrijsysteem
9.7. Problemen oplossen
10. Linux® binaire compatibiliteit
10.1. Overzicht
10.2. Installatie
10.3. Mathematica® installeren
10.4. Maple™ installeren
10.5. MATLAB® installeren
10.6. Oracle® installeren
10.7. SAP® R/3® installeren
10.8. Gevorderde onderwerpen
III. Systeembeheer
11. Instellingen en optimalisatie
11.1. Overzicht
11.2. Initiële instellingen
11.3. Hoofdinstellingen
11.4. Toepassingen instellen
11.5. Diensten starten
11.6. cron instellen
11.7. Gebruik van rc met FreeBSD
11.8. Netwerkkaarten instellen
11.9. Virtuele hosts
11.10. Instellingenbestanden
11.11. Optimaliseren met sysctl
11.12. Harde schijven optimaliseren
11.13. Fijnafstemming van kernellimieten
11.14. Wisselbestandruimte toevoegen
11.15. Energie- en bronnenbeheer
11.16. FreeBSD ACPI gebruiken en debuggen
12. Het FreeBSD opstartproces
12.1. Overzicht
12.2. Het bootprobleem
12.3. De bootmanager en opstartstadia
12.4. Interactie met de kernel tijdens opstarten
12.5. Device hints
12.6. Init: start van procesbesturing
12.7. Afsluitvolgorde
13. Gebruikers en basis accountbeheer
13.1. Overzicht
13.2. Inleiding
13.3. De superuser account
13.4. Systeemaccounts
13.5. Gebruikersaccounts
13.6. Accounts wijzigen
13.7. Gebruikers beperken
13.8. Groepen
14. Beveiliging
14.1. Overzicht
14.2. Introductie
14.3. FreeBSD beveiligen
14.4. DES, Blowfish, MD5, en crypt
14.5. Eenmalige wachtwoorden
14.6. TCP Wrappers
14.7. KerberosIV
14.8. Kerberos5
14.9. OpenSSL
14.10. VPN via IPsec
14.11. OpenSSH
14.12. Bestandssysteem toegangscontrolelijsten
14.13. Monitoren van beveiligingsproblemen met andere software
14.14. FreeBSD beveiligingswaarschuwingen
14.15. Procesaccounting
15. Jails
15.1. Overzicht
15.2. Termen en begrippen van jails
15.3. Introductie
15.4. Creeëren en controleren van jails
15.5. Optimaliseren en administratie
15.6. Toepassing van jails
16. Verplichte Toegangscontrole (MAC)
16.1. Overzicht
16.2. Sleuteltermen in dit hoofdstuk
16.3. Uitleg over MAC
16.4. MAC-labels begrijpen
16.5. De beveiligingsconfiguratie plannen
16.6. Module-instellingen
16.7. MAC-module seeotheruids
16.8. MAC-module bsdextended
16.9. MAC-module ifoff
16.10. MAC-module portacl
16.11. MAC-module partition
16.12. MAC-module Multi-Level Security
16.13. MAC-module Biba
16.14. MAC-module LOMAC
16.15. Nagios in een MAC-jail
16.16. Gebruikers afsluiten
16.17. Problemen oplossen met het MAC-raamwerk
17. Security Event Auditing
17.1. Overzicht
17.2. Sleutelwoorden in dit hoofdstuk
17.3. Installeren van audit ondersteuning.
17.4. Audit Configuratie
17.5. Het audit subsysteem beheren.
18. Opslag
18.1. Overzicht
18.2. Apparaatnamen
18.3. Schijven toevoegen
18.4. RAID
18.5. USB-opslagapparaten
18.6. Optische media (CD's) aanmaken en gebruiken
18.7. Optische media (DVD's) aanmaken en gebruiken
18.8. Diskettes aanmaken en gebruiken
18.9. Gegevensbanden aanmaken en gebruiken
18.10. Naar diskettes back-uppen
18.11. Back-up strategieën
18.12. Back-upbeginselen
18.13. Netwerk-, geheugen-, en bestandsgebaseerde bestandssystemen
18.14. Snapshots van bestandssystemen
18.15. Bestandssysteemquota
18.16. Schijfpartities versleutelen
18.17. Het versleutelen van de wisselbestand ruimte
19. GEOM: Modulair schijftransformatie raamwerk
19.1. Overzicht
19.2. GEOM inleiding
19.3. RAID0 - aaneengeschakeld
19.4. RAID1 - spiegelen
19.5. GEOM Gate netwerk apparaten
19.6. Het labelen van schijven
19.7. UFS logboeken door middel van GEOM
20. Ondersteuning van bestandssystemen
20.1. Overzicht
20.2. Het Z File System
21. De VINUM volumebeheerder
21.1. Overzicht
21.2. Schijfgrootte
21.3. Snelheid van toegang
21.4. Betrouwbaarheid van gegevens
21.5. Vinum objecten
21.6. Voorbeelden
21.7. Objectnamen
21.8. Vinum instellen
21.9. Het rootbestandssysteem op Vinum
22. Virtualisatie
22.1. Overzicht
22.2. FreeBSD als een gast-besturingssysteem
22.3. FreeBSD als een gastheer-besturingssysteem
23. Lokalisatie - I18N/L10N gebruiken en instellen
23.1. Overzicht
23.2. Beginselen
23.3. Lokalisatie gebruiken
23.4. I18N-programma's compileren
23.5. FreeBSD lokaliseren naar talen
24. FreeBSD updaten en upgraden
24.1. Overzicht
24.2. FreeBSD Update
24.3. Portsnap: een updategereedschap voor de Portscollectie
24.4. De documentatie bijwerken
24.5. Een ontwikkelingstak volgen
24.6. Broncode synchroniseren
24.7. De “wereld” opnieuw bouwen
24.8. Meerdere machines bijwerken
25. DTrace
25.1. Overzicht
25.2. Implementatieverschillen
25.3. Ondersteuning voor DTrace aanzetten
25.4. DTrace gebruiken
25.5. De taal D
IV. Netwerkcommunicatie
26. Seriële communicatie
26.1. Overzicht
26.2. Inleiding
26.3. Terminals
26.4. Inbeldienst
26.5. Uitbeldienst
26.6. Seriële console opzetten
27. PPP en SLIP
27.1. Overzicht
27.2. Gebruik maken van gebruiker PPP
27.3. Kernel PPP gebruiken
27.4. Het problemen oplossen van PPP verbindingen
27.5. PPP gebruiken over Ethernet (PPPoE)
27.6. Gebruik maken van PPP over ATM (PPPoA)
27.7. Gebruik maken van SLIP
28. Elektronische mail
28.1. Overzicht
28.2. Gebruik maken van elektronische mail
28.3. sendmail instellen
28.4. De Mail Transfer Agent vervangen
28.5. Problemen oplossen
28.6. Geavanceerde onderwerpen
28.7. SMTP met UUCP
28.8. Instellen om alleen te versturen
28.9. Mail gebruiken met een inbelverbinding
28.10. SMTP-authenticatie
28.11. Mail User Agents
28.12. fetchmail gebruiken
28.13. procmail gebruiken
29. Netwerkdiensten
29.1. Overzicht
29.2. De inetd “Super-Server”
29.3. Netwerkbestandssysteem (NFS)
29.4. Netwerkinformatiesysteem (NIS/YP)
29.5. Automatisch netwerk instellen (DHCP)
29.6. Domeinnaamsysteem (DNS)
29.7. Apache HTTP server
29.8. File Transfer Protocol (FTP)
29.9. Bestands- en printdiensten voor Microsoft Windows cliënten (Samba)
29.10. Tijd synchroniseren met NTP
29.11. Hosts op afstand loggen met syslogd
30. Firewalls
30.1. Inleiding
30.2. Firewallconcepten
30.3. Firewallsoftware
30.4. De OpenBSD Packet Filter (PF) en ALTQ
30.5. De IPFILTER (IPF) firewall
30.6. IPFW
31. Geavanceerde netwerken
31.1. Samenvatting
31.2. Gateways en routes
31.3. Draadloze netwerken
31.4. Bluetooth
31.5. Bridging
31.6. Verbindingsaggregatie en failover
31.7. Schijfloos werken
31.8. ISDN
31.9. Network Address Translation
31.10. Parallel Line IP (PLIP)
31.11. IPv6
31.12. Asynchronous Transfer Mode (ATM)
31.13. Common Address Redundancy Protocol (CARP)
V. Appendix
A. FreeBSD verkrijgen
A.1. CD-ROM en DVD uitgevers
A.2. FTP sites
A.3. BitTorrent
A.4. Anonieme CVS
A.5. CTM gebruiken
A.6. CVSup gebruiken
A.7. CVS labels
A.8. AFS sites
A.9. rsync sites
B. Bibliografie
B.1. Boeken & tijdschriften over FreeBSD
B.2. Voor gebruikers
B.3. Voor beheerders
B.4. Voor programmeurs
B.5. Dieper in het besturingssysteem
B.6. Over beveiliging
B.7. Over hardware
B.8. UNIX geschiedenis
B.9. Tijdschriften en periodieken
C. Bronnen op Internet
C.1. Mailinglijsten
C.2. Usenet-nieuwsgroepen
C.3. World wide webservers
C.4. Email-adressen
D. PGP sleutels
D.1. Beambten
D.2. Leden Kernteam
D.3. Ontwikkelaars
FreeBSD begrippenlijst
Colofon
Lijst van tabellen
2-1. Voorbeeld van beschrijving van componenten
2-2. Partitieopmaak voor de eerste schijf
2-3. Partitieopmaak voor volgende schijven
2-4. FreeBSD 6.X en 7.X ISO imagenamen en verklaring
3-1. Schijf apparaatcodes
18-1. Naamconventies voor fysieke Schijven
21-1. Vinum samenstellingen
26-1. DB-25 naar DB-25 nulmodem-kabel
26-2. DB-9 naar DB-9 nulmodem-kabel
26-3. DB-9 naar DB-25 nulmodem-kabel
26-4. Signaalnamen
31-1. Een parallelle kabel voor netwerken bedraden
31-2. Gereserveerde IPv6-adressen
Lijst van figuren
2-1. FreeBSD bootloader-menu
2-2. Voorbeeld resultaten hardware-onderzoek
2-3. Landmenu kiezen
2-4. Sysinstall verlaten
2-5. Usage selecteren in het sysinstall hoofdmenu
2-6. Menu Documentation selecteren
2-7. Sysinstall menu Documentation
2-8. Sysinstall hoofdmenu
2-9. Sysinstall menu Keymap
2-10. Sysinstall hoofdmenu
2-11. Sysinstall opties
2-12. Een standaardinstallatie starten
2-13. Schijf kiezen voor FDisk
2-14. Typische FDisk partities voor wijzigen
2-15. FDisk partitie voor een hele schijf
2-16. Sysinstall menu Boot Manager
2-17. Schijf selecteren verlaten
2-18. Sysinstall Disklabel Editor
2-19. Sysinstall Disklabel Editor met standaardwaarden
2-20. Vrije ruimte voor de rootpartitie
2-21. Grootte van de rootpartitie wijzigen
2-22. Type van de rootpartitie kiezen
2-23. Root mountpunt kiezen
2-24. Sysinstall Disklabel Editor
2-25. Distributies kiezen
2-26. Distributies kiezen
2-27. Mediaselectie
2-28. Ethernetapparaat kiezen
2-29. Netwerkinstellingen voor ed0
2-30. inetd.conf bewerken
2-31. Standaard anonieme FTP instellingen
2-32. FTP welkomstbericht bewerken
2-33. exports bewerken
2-34. Systeemconsole instellingen
2-35. Schermbeveiligingsopties
2-36. Schermbeveiliging activeringstijd
2-37. Systeemconsole instellingen verlaten
2-38. Regio instellen
2-39. Land kiezen
2-40. Tijdzone kiezen
2-41. Muisprotocoltype selecteren
2-42. Muisprotocol kiezen
2-43. Muispoort instellen
2-44. Muispoort instellen
2-45. Muisdaemon inschakelen
2-46. Het testen van de muisdaemon
2-47. Pakketcategorie kiezen
2-48. Pakketten selecteren
2-49. Pakketten installeren
2-50. Pakketinstallatie bevestigen
2-51. Gebruiker kiezen
2-52. Gebruikersinformatie toevoegen
2-53. Gebruikers en groepbeheer
2-54. Install afsluiten
2-55. Netwerkinstellingen - bovenste opties
2-56. Standaard MTA kiezen
2-57. Ntpdate instellingen
2-58. Netwerkinstellingen - onderste opties
21-1. Aaneengeschakeld georganiseerd
21-2. Verdeeld georganiseerd
21-3. RAID-5 georganiseerd
21-4. Een eenvoudig Vinum volume
21-5. Een gespiegeld Vinum volume
21-6. Een verdeeld Vinum volume
21-7. Een gespiegeld en verdeeld Vinum volume
Lijst van voorbeelden
2-1. Gebruik van een bestaande, ongewijzigde partitie
2-2. Een bestaande partitie verkleinen
3-1. Voorbeeld schijf-, slice- en partitienamen
3-2. Conceptmodel van een schijf
4-1. Handmatig pakketten downloaden en lokaal installeren
11-1. Een wisselbestand aanmaken op FreeBSD
12-1. boot0 schermafbeelding
12-2. boot2 schermafbeelding
12-3. Onveilige console in /etc/ttys
13-1. Een gebruiker toevoegen aan FreeBSD
13-2. Interactief accounts verwijderen met rmuser
13-3. Interactieve chpass door superuser
13-4. Interactieve chpass door een gewone gebruiker
13-5. Wachtwoord wijzigen
13-6. Als superuser het wachtwoord van een andere gebruiker wijzigen
13-7. Groepen toevoegen met pw(8)
13-8. De lijst van groepsleden instellen met pw(8)
13-9. Een nieuw lid aan een groep toevoegen met pw(8)
13-10. id(1) gebruiken om groepslidmaatschap te bepalen
14-1. SSH gebruiken om een veilige tunnel te maken voor SMTP
18-1. Het gebruik van dump via ssh
18-2. Het gebruik van dump via ssh met ingestelde RSH
18-3. Script voor het aanmaken van de opstartdiskette
18-4. mdconfig gebruiken om een bestaand beeld van een bestandssysteem aan te koppelen
18-5. Nieuwe bestandsgebaseerde schijf aanmaken met mdconfig
18-6. Instellen en aankoppelen van een bestandsgebaseerde schijf met mdmfs
18-7. Nieuwe geheugengebaseerde schijf aanmaken met mdconfig
18-8. Nieuwe geheugengebaseerde schijf aanmaken met mdmfs
19-1. Partities op de opstartschijf labelen
26-1. Terminalregels aan /etc/ttys toevoegen
28-1. Configureren van de sendmail toegangsdatabase
28-2. Mailaliassen
28-3. Voorbeeld van een mailtabel voor een virtueel domein
29-1. Het instellingenbestand van inetd herladen
29-2. Een export aankoppelen met amd
29-3. Django installeren met Apache2, mod_python3, en PostgreSQL
29-4. Apache-configuratie voor Django/mod_python
31-1. LACP-aggregatie met een Cisco® switch
31-2. Failover-modus
31-3. Netwerk van afdelingskantoor of thuis
31-4. Hoofdkantoor- of ander LAN
A-1. SSH gebruiken om de src/ tree uit te checken:
A-2. Iets uitchecken uit -CURRENT (ls(1)):
A-3. SSH gebruiken om de src/ structuur uit te checken:
A-4. De versie van ls(1) in de 6-STABLE tak uitchecken:
A-5. Een lijst wijzigingen maken (als unified diffs) voor ls(1)
A-6. Uitzoeken welke modulenamen gebruikt kunnen worden:

Voorwoord

Bedoeld publiek

De nieuwkomers bij FreeBSD zullen zien dat de eerste sectie van dit boek ze begeleidt door de FreeBSD 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 FreeBSD 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 Bijlage B.

Wijzigingen ten opzichte van de derde editie

De huidige online versie van het Handboek representeert de gezamenlijke inspanning van vele honderden bijdragende vrijwilligers van de laatste 10 jaar. Hieronder staan enkele van de belangrijke wijzigingen sinds de tweedelige derde editie in 2004 werd uitgegeven:

Wijzigingen ten opzichte van de tweede editie (2004)

De derde editie was het resultaat van meer dan twee jaar werk van de toegewijde leden van het FreeBSD Documentation Project. De gedrukte editie werd zo groot dat het noodzakelijk was om het was om het als twee afzonderlijke delen te publiceren. Hieronder staan de grootste veranderingen in deze nieuwe editie:

Veranderingen ten opzichte van de eerste editie (2001)

Deze tweede editie is een optelsom van meer dan twee jaar werk door vaste leden van het FreeBSD Documentation Project. Het volgende zijn de grote wijzigingen in deze editie:

De opbouw van dit boek

Dit boek is opgedeeld in vijf logische secties. De eerste sectie, Beginnen, behandelt de installatie en het basisgebruik van FreeBSD. Er wordt verwacht dat lezers deze hoofdstukken volgt, en mogelijk hoofdstukken overslaat met bekende onderwerpen. De tweede sectie, Algemene Taken, behandelt veelgebruikte functies van FreeBSD. 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.

Hoofdstuk 1, Introductie

Introduceert FreeBSD aan een nieuwe gebruiker. Het beschrijft de geschiedenis van het FreeBSD project, de doelen en het ontwikkelmodel.

Hoofdstuk 2, Installatie

Begeleidt een gebruiker door de installatieprocedure. Sommige geavanceerde installatie-onderwerpen zoals installatie door middel van een seriële console worden ook behandeld.

Hoofdstuk 3, UNIX beginselen

Behandelt de basiscommando's en functionaliteit van het FreeBSD besturingssysteem. Als de lezer bekend is met Linux of een andere UNIX variant, kan dit hoofdstuk waarschijnlijk overgeslagen worden.

Hoofdstuk 4, Applicaties installeren

Behandelt de installatie van software van derden, met zowel FreeBSD's innovatieve “Portscollectie” als de standaard binaire packages.

Hoofdstuk 5, Het X Window systeem

Beschrijft het X Window systeem in het algemeen en het gebruik van X11 op FreeBSD in het bijzonder. Het beschrijft ook standaard bureaubladomgevingen zoals KDE en GNOME.

Hoofdstuk 6, Bureaubladapplicaties

Levert standaard bureaubladapplicaties in een lijst, zoals webbrowsers en productiviteitspakketten, en beschrijft hoe ze te installeren op FreeBSD.

Hoofdstuk 7, Multimedia

Laat zien hoe geluid- en video-ondersteuning te installeren voor een systeem. Het beschrijft ook een aantal voorbeeld audio- en video- applicaties.

Hoofdstuk 8, Instellen van de FreeBSD kernel

Beschrijft waarom misschien een nieuwe kernel ingesteld moet worden en levert gedetailleerde instructies voor het instellen, bouwen en installeren van een eigen kernel.

Hoofdstuk 9, Afdrukken

Beschrijft hoe printers beheerd worden onder FreeBSD, met informatie over bannerpagina's, afdruk-accounting en initiële installatie.

Hoofdstuk 10, Linux binaire compatibiliteit

Beschrijft de mogelijkheden van FreeBSD voor binaire compatibiliteit met Linux. Het biedt ook gedetailleerde installatie-instructies voor vele populaire Linux applicaties zoals Oracle, SAP R/3, en Mathematica®.

Hoofdstuk 11, Instellingen en optimalisatie

Beschrijft de parameters beschikbaar voor systeembeheerders om een FreeBSD te optimaliseren voor de beste prestaties. Het beschrijft ook diverse instellingenbestanden die gebruikt worden in FreeBSD en waar die te vinden zijn.

Hoofdstuk 12, Het FreeBSD opstartproces

Beschrijft de FreeBSD opstartprocedure en legt uit hoe deze aan te passen met instellingen.

Hoofdstuk 13, Gebruikers en basis accountbeheer

Beschrijft hoe gebruikersaccounts aan te maken en te wijzigen. Het beschrijft ook welke resourcebeperkingen er gezet kunnen worden op gebruikers en andere account-beheerstaken.

Hoofdstuk 14, Beveiliging

Beschrijft vele verschillende hulpapplicaties die beschikbaar zijn die helpen om een FreeBSD systeem veilig te houden, met oa: Kerberos, IPsec en OpenSSH.

Hoofdstuk 15, Jails

Beschrijft het jail-raamwerk, en de verbeteringen van jails (gevangenissen) ten opzichte van de traditionele ondersteuning voor chroot van FreeBSD.

Hoofdstuk 16, Verplichte Toegangscontrole (MAC)

Legt uit was Verplichte Toegangscontrole (MAC) is en hoe het gebruikt kan worden om een FreeBSD te beveiligen.

Hoofdstuk 17, Security Event Auditing

Beschrijft wat FreeBSD Event Auditing is, hoe het geïnstalleerd kan worden, en hoe audit trails geïnspecteerd en gemonitord kunnen worden.

Hoofdstuk 18, Opslag

Beschrijft hoe opslagmedia en bestandssystemen beheerd worden onder FreeBSD. Dit omvat fysieke schijven, RAID arrays, optische en tape media, geheugenschijven en netwerkbestandssystemen.

Hoofdstuk 19, GEOM

Beschrijft wat het GEOM raamwerk in FreeBSD is en hoe de verschillende ondersteunde RAID-niveau's in te stellen.

Hoofdstuk 20, Ondersteuning van bestandssystemen

Gaat de ondersteuning voor vreemde bestandssystemen in FreeBSD na, zoals het Z File System van Sun.

Hoofdstuk 21, Vinum

Beschrijft hoe Vinum gebruikt wordt, een logische volumebeheerder die apparaatonafhankelijke logische schijven levert, met software RAID-0, RAID-1 en RAID-5.

Hoofdstuk 22, Virtualisatie

Beschrijft wat virtualisatiesystemen bieden, en hoe ze met FreeBSD gebruikt kunnen worden.

Hoofdstuk 23, Lokalisatie - I18N/L10N gebruiken en instellen

Beschrijft hoe FreeBSD met andere talen dan Engels te gebruiken is. Behandelt zowel het systeem- als applicatieniveau van localisatie.

Hoofdstuk 24, FreeBSD updaten en upgraden

Geeft uitleg over de verschillen tussen FreeBSD-STABLE, FreeBSD-CURRENT en FreeBSD uitgaven. Beschrijft welke gebruikers voordeel hebben van het bijhouden van een ontwikkelsysteem en legt dat proces uit. Beschrijft de manier waarop gebruikers hun systeem naar de laatste beveiligingsuitgave kunnen bijwerken.

Hoofdstuk 25, DTrace

Beschrijft hoe het gereedschap DTrace van Sun te configureren en gebruiken in FreeBSD. Dynamisch tracen kan helpen bij het lokaliseren van prestatieproblemen, door real-time systeemanalyse uit te voeren.

Hoofdstuk 26, Seriële communicatie

Legt uit hoe een verbinding te maken met terminals en modems op een FreeBSD systeem voor zowel dial-in als dial-out verbindingen.

Hoofdstuk 27, PPP en SLIP

Beschrijft hoe PPP, SLIP en PPP over Ethernet te gebruiken om verbinding te maken met remote systemen met FreeBSD.

Hoofdstuk 28, E-mail

Legt verschillende componenten uit van een mailserver en gaat dieper in op simpele instellingen voor de populairste mailserver software: sendmail.

Hoofdstuk 29, Netwerkdiensten

Geeft gedetailleerde instructies en voorbeeldinstellingen om een FreeBSD machine als een netwerk bestandssysteem server, DNS server, netwerk informatiesysteem server of tijdserver in te stellen.

Hoofdstuk 30, Firewalls

Licht de filosofie achter op software gebaseerde firewalls toe en beschrijf in detail hoe de verschillende firewalls die in FreeBSD beschikbaar zijn ingesteld kunnen worden.

Hoofdstuk 31, 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.

Bijlage A, FreeBSD verkrijgen

Geeft verschillende bronnen aan voor het verkrijgen van FreeBSD media op CD-ROM of DVD evenals verschillende sites op het Internet die gebruikers in staat stellen FreeBSD te downloaden en te installeren.

Bijlage B, Bibliografie

Dit boek behandelt veel verschillende onderwerpen die de lezer misschien hongerig maken naar een gedetailleerdere uitleg. De bibliografie bevat verwijzingen naar een aantal uitstekende boeken.

Bijlage C, Bronnen op Internet

Beschrijft de vele forums die beschikbaar zijn voor FreeBSD gebruikers om vragen te stellen, en om deel te nemen aan technische conversaties over FreeBSD.

Bijlage D, PGP sleutels

Geeft de PGP-vingerafdrukken van verschillende FreeBSD 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+Alt+Del

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 prompt”scherm in een moderne Microsoft Windows omgeving worden gebruikt.

E:\> tools\fdimage floppies\kern.flp A:

Voorbeelden die starten met een # geven aan dat een commando ingegeven moet worden als de superuser in FreeBSD. 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 su(1) om superuser-rechten te verkrijgen.

# dd if=kern.flp of=/dev/fd0

Voorbeelden die starten met % 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.

% 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 voltijds aan te werken, door te betalen voor de publicatie, etc. In het bijzonder heeft BSDi (Overgenomen door Wind River Systems) leden van het FreeBSD Documentation Project betaald om voltijds 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 FreeBSD Mall, Inc een aantal mensen die bijdragen hebben geleverd betaald om het handboek te verbeteren voor een derde gedrukte editie.

I. Beginnen

Dit deel van het FreeBSD handboek is voor gebruikers en beheerders die net beginnen met FreeBSD. Deze hoofdstukken:

  • Geven een inleiding in FreeBSD;

  • Lichten het installatieproces toe;

  • Bespreken de UNIX basisbegrippen en grondslag;

  • Tonen hoe de vele aanvullende applicaties voor FreeBSD 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.


Hoofdstuk 1. Introductie

Gereorganiseerd en delen herschreven door Jim Mock. Vertaald door Arjan van Leeuwen.

1.1. Overzicht

Welkom bij FreeBSD! Dit hoofdstuk beschrijft de verschillende aspecten van het FreeBSD Project: geschiedenis, doelen, ontwikkelmodel en meer.

Na het lezen van dit hoofdstuk weet de lezer:

  • Hoe FreeBSD gerelateerd is aan andere besturingssystemen;

  • De geschiedenis van het FreeBSD Project;

  • De doelen van het FreeBSD Project;

  • De fundering van het FreeBSD open-source ontwikkelmodel;

  • En natuurlijk: waar de naam “FreeBSD” vandaan komt.


1.2. Welkom bij FreeBSD!

FreeBSD is een op 4.4BSD-Lite gebaseerd besturingssysteem voor Intel (x86 en Itanium®), AMD64, Alpha™ en Sun UltraSPARC® computers. Er zijn ook ports naar andere architecturen in voorbereiding. Er is nog meer informatie over de geschiedenis van FreeBSD of over de huidige uitgave. Als de lezer wil bijdragen aan het project (code, hardware, geld) wordt aangeraden het artikel Bijdragen aan FreeBSD te lezen.


1.2.1. Wat kan FreeBSD?

FreeBSD heeft veel mogelijkheden die het bespreken waard zijn. Hier zijn er enkele op een rij gezet:

  • Preemptive multitasking zorgt ervoor dat meerdere programma's en gebruikers op dezelfde computer kunnen werken, zonder dat de systeemrespons of stabiliteit beïnvloed wordt.

  • Ondersteuning voor meerdere gebruikers maakt het mogelijk dat verschillende mensen een FreeBSD systeem tegelijkertijd kunnen gebruiken voor een groot aantal taken. Dit betekent bijvoorbeeld dat randapparaten als printers en tapedrives gedeeld kunnen worden door alle gebruikers van het systeem en dat individuele beperkingen ingesteld kunnen worden voor gebruikers of voor groepen gebruikers, zodat kritieke systeembronnen beschermd kunnen worden tegen onrechtmatig of overmatig gebruik.

  • Krachtige mogelijkheden voor TCP/IP netwerken met ondersteuning voor industriestandaarden als SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec en IPv6. Dit betekent dat een FreeBSD-systeem makkelijk kan samenwerken met andere systemen en dat het kan functioneren als bedrijfsserver, waarbij het belangrijke functies als NFS (bestandsdeling over het netwerk), email, webdiensten, FTP, routing en firewall-diensten kan aanbieden.

  • Geheugenbeveiliging garandeert dat applicaties (of gebruikers) elkaar niet kunnen storen. Een crashende applicatie heeft totaal geen effect op andere applicaties.

  • FreeBSD is een 32-bits besturingssysteem (64-bits op de Alpha, Itanium, AMD64, en UltraSPARC) en is van de grond af aan zo ontworpen.

  • Het X Window systeem (X11R7), een industriële standaard, biedt een grafische gebruikersinterface (GUI) met als enige benodigdheden een VGA-kaart en een beeldscherm.

  • Door binaire compatibiliteit met veel programma's voor Linux, SCO, SVR4, BSDI en NetBSD is het mogelijk om deze programma's zonder snelheidsverlies op FreeBSD te draaien.

  • Er zijn duizenden applicaties beschikbaar in de FreeBSD ports en pakketten collectie. Waarom zoeken op het Internet als het allemaal al klaarstaat?

  • Duizenden andere en makkelijk over te zetten applicaties zijn beschikbaar op het Internet. FreeBSD is broncode-compatibel met de meeste populaire commerciële UNIX systemen, wat betekent dat veel applicaties nagenoeg geen wijzigingen vereisen om te compileren op FreeBSD.

  • Het demand-paged virtueel geheugen en de “gecombineerde VM/buffer cache” van FreeBSD zorgen ervoor dat applicaties met grote geheugenbehoeften niets te kort komen, terwijl de systeemrespons niet achteruit gaat.

  • SMP-ondersteuning voor computers met meerdere processoren.

  • Een volledige C, C++, Fortran ontwikkelomgeving. Vele andere programmeertalen, te gebruiken voor onderzoek of geavanceerde ontwikkeling, zijn ook beschikbaar in de ports- en pakketcollectie.

  • De broncode van het hele systeem is beschikbaar, zodat gebruikers de volledige controle over het systeem in handen hebben. Waarom genoegen nemen met alleen het erewoord van de softwarefabrikant, als een compleet open systeem ook tot de mogelijkheden behoort?

  • Uitgebreide online documentatie.

  • En nog veel meer!

FreeBSD is gebaseerd op de 4.4BSD-Lite uitgave van de Computer Systems Research Group (CSRG) aan de University of California in Berkeley en borduurt voort op een lange traditie van ontwikkeling van BSD-systemen. Het FreeBSD Project heeft duizenden uren gestoken in het afstellen van het systeem voor maximale prestaties en betrouwbaarheid in realistische en veel voorkomende situaties. Terwijl veel commerciële bedrijven blijven worstelen met het uitbrengen van besturingssystemen met dergelijke mogelijkheden, prestaties en betrouwbaarheid, kan FreeBSD deze nu bieden!

De toepassingen voor FreeBSD worden alleen beperkt door eigen fantasie. Van software-ontwikkeling tot fabrieksautomatisering, van voorraadbeheersing tot de azimuth-correctie van een satellietantenne: als het kan met een commercieel UNIXproduct, dan kan het ook met FreeBSD! FreeBSD vaart ook wel bij de letterlijk duizenden open-source programma's, vaak van bijzonder hoge kwaliteit, die ontwikkeld zijn in onderzoekscentra, universiteiten over de hele wereld en open-source gemeenschappen, en die beschikbaar zijn voor weinig of geen geld. Ook steeds meer commerciële applicaties vinden hun weg naar FreeBSD.

Omdat ook de broncode van FreeBSD zelf vrij beschikbaar is, kan het systeem aangepast worden voor speciale toepassingen of projecten, op manieren die meestal niet mogelijk zijn met besturingssystemen van vooraanstaande commerciële softwarehuizen. Hier zijn een aantal voorbeelden van toepassingen waar FreeBSD voor gebruikt wordt:

  • Internetdiensten: de robuuste TCP/IP netwerkarchitectuur die in FreeBSD zit, maakt het een ideaal platform voor uiteenlopende Internetdiensten als:

    • FTP servers;

    • World Wide Webservers (standaard of beveiligd [SSL]);

    • IPv4 en IPv6 routering

    • Firewalls en NAT (“IP-maskering”) gateways;

    • E-mail servers;

    • USENET nieuws of Bulletin Board (BBS) systemen;

    • En meer...

    FreeBSD kan eenvoudig geleerd worden op een goedkope standaard-PC, om later verder te groeien naar een professioneel Xeon-systeem met 4 processoren (of meer!) en RAID opslagsystemen als een bedrijf groeit.

  • Onderwijs: is de lezer informaticastudent of werkzaam in een ander vakgebied dat hier mee te maken heeft? Er is geen betere manier om besturingssystemen, computerarchitecturen en netwerken te bestuderen dan de hands-on open-source ervaring die FreeBSD kan bieden. Gratis beschikbare programma's voor CAD, wiskundige toepassingen en grafisch ontwerp maken FreeBSD ook heel handig voor mensen wiens primaire interesse voor de computer ligt bij het voltooien van ander werk!

  • Onderzoek: omdat de broncode van het volledige systeem beschikbaar is, vormt FreeBSD een uitstekende basis voor het onderzoeken van besturingssystemen of andere takken in de informatica. De open natuur van FreeBSD maakt het ook mogelijk voor groepen mensen over de hele wereld om met elkaar samen te werken, zonder dat men zich zorgen hoeft te maken over speciale licentieovereenkomsten of beperkingen op wat er besproken kan worden in open fora.

  • Netwerken: nieuwe router nodig? Of een nameserver (DNS)? Een firewall om een intern netwerk te beschermen? FreeBSD kan die ongebruikte 486 of Pentium PC die nog ergens in een hoekje ligt gemakkelijk omtoveren tot een geavanceerde router met uitgebreide pakketfilter mogelijkheden.

  • X Window werkstation: FreeBSD is een prima keuze als goedkope X terminal oplossing, door gebruik te maken van de gratis beschikbare X11 server. In tegenstelling tot een pure X terminal kan FreeBSD ook applicaties lokaal draaien, wat een verlichting van de centrale server tot gevolg kan hebben. FreeBSD heeft zelfs de mogelijkheid om “schijfloos” op te starten, zodat individuele werkstations nog goedkoper en makkelijker te beheren zijn.

  • Bureaublad: de beschikbaarheid van geavanceerde bureaubladomgevingen als KDE en GNOME en kantoortoepassingen als tekstverwerkers en spreadsheet-programma's in de ports- en pakketcollectie maken van FreeBSD een uitgebreid desktop-platform. Thuis en op het werk zorgt FreeBSD ervoor dat er snel, efficiënt en veilig gewerkt kan worden!

  • Software Ontwikkeling: bij het standaard FreeBSD-systeem zit al een volledige verzameling van ontwikkelgereedschappen, inclusief de bekende GNU C/C++ compiler en debugger.

FreeBSD is beschikbaar in zowel broncode als binaire vorm op CD-ROM, DVD en via FTP. In Bijlage A staat meer informatie over het verkrijgen van FreeBSD.


1.2.2. Wie gebruiken FreeBSD?

FreeBSD wordt gebruikt als platform voor apparaten en producten van vele van 's werelds grootste IT-bedrijven, waaronder:

FreeBSD wordt ook gebruikt om sommige van de grootste sites op het Internet te draaien, waaronder:

en nog veel meer sites.


1.3. Over het FreeBSD Project

Deze paragraaf geeft wat meer achtergrondinformatie over het project, inclusief een korte geschiedenis, projectdoelen, en het ontwikkelmodel van het project.


1.3.1. Een korte geschiedenis van FreeBSD

Bijgedragen door Jordan Hubbard.

Het FreeBSD Project zag het licht in het begin van 1993, gedeeltelijk als een voortzetting van de “Unofficial 386BSD Patchkit” door de 3 laatste coördinatoren van de patchkit: Nate Williams, Rod Grimes en ikzelf.

Het oorspronkelijke doel was om een zogenaamde 'snapshot'-uitgave te maken van 386BSD, om zo een aantal problemen op te lossen die niet op te lossen waren met het patchkit-mechanisme dat eerder gebruikt was. Sommigen kunnen zich misschien nog herinneren dat de werktitel van het project in het begin nog “386BSD 0.5” of “386BSD Interim” was, refererend aan het oorspronkelijke doel.

386BSD was het besturingssysteem van Bill Jolitz en had tot op dat moment geleden onder het feit dat er al bijna een jaar niet naar omgekeken was. Terwijl de patchkit steeds groter en onhandiger werd, was een groep mensen het er over eens dat er iets moest gebeuren en beslisten om Bill te assisteren bij het maken van een tussentijdse “cleanup”-snapshot. Deze plannen kwamen echter tot een plotseling einde toen Bill Jolitz besliste om zijn toestemming voor het project in te trekken, zonder dat er een alternatief werd geboden.

Het duurde niet lang om te beslissen dat het doel nog steeds belangrijk was, zelfs zonder de ondersteuning van Bill, dus werd de naam “FreeBSD” aangenomen, naar een idee van David Greenman. De oorspronkelijke doelen werden opgesteld na het raadplegen van de gebruikers van het systeem. Toen het erop begon te lijken dat dit project misschien wel snel realiteit kon worden, werd contact opgenomen met Walnut Creek CD-ROM vanuit het oogpunt om de distributiekanalen van FreeBSD te verbeteren voor diegenen die geen toegang hadden tot Internet. Walnut Creek CD-ROM ondersteunde niet alleen het idee om FreeBSD op CD-ROM te distribueren, maar bood het project ook een systeem en een snelle Internetverbinding om mee te werken. Zonder Walnut Creek CD-ROM's bijna onbeperkte vertrouwen in wat op dat moment nog een compleet onbekend project was, is het onwaarschijnlijk dat FreeBSD zo ver gekomen zou zijn, en zo snel, als het vandaag de dag is.

De eerste CD-ROM (en algemene op het net beschikbare) distributie was FreeBSD 1.0, uitgebracht in december 1993. Deze versie was gebaseerd op de 4.3BSD-Lite (“Net/2”) tape van U.C. Berkeley, met veel toevoegingen van 386BSD en de Free Software Foundation. Het werd een redelijk succes voor een eerste aanbod, en werd opgevolgd door de zeer succesvolle FreeBSD 1.1 uitgave in mei 1994.

Rond deze tijd vormde zich nogal onverwacht een stormachtige lucht aan de horizon toen Novell en U.C. Berkeley hun langlopende rechtszaak over de legale status van de Berkeley Net/2 tape oplosten met een schikking. Een voorwaarde van deze schikking was dat U.C. Berkeley toegaf dat grote delen van Net/2 “beladen” code was en het eigendom van Novell, die deze code op haar beurt overgenomen had van AT&T enige tijd hiervoor. Wat Berkeley hiervoor terugkreeg was Novell's “zegen” over de 4.4BSD-Lite uitgave; wanneer deze uitkwam zou Novell verklaren dat geen van de code hierin eigendom van Novell was, en bestaande Net/2 gebruikers zou sterk aanbevolen worden om over te stappen naar deze nieuwe versie. Dit gold ook voor FreeBSD en het project werd de tijd gegeven tot juli 1994 om te stoppen met het distribueren van het eigen op Net/2-gebaseerde product. De schikking liet wel toe dat nog een laatste uitgave werd uitgebracht voor de deadline en dat was FreeBSD 1.1.5.1.

FreeBSD nam toen de enorme taak op zich om zichzelf letterlijk opnieuw uit te vinden, met als basis een volledig nieuwe en nogal incomplete verzameling van delen van 4.4BSD-Lite. De “Lite” uitgaven werden zo genoemd omdat Berkeley's CSRG grote delen code die nodig waren om een werkend systeem te construeren had weggelaten (om allerlei legale redenen) en omdat de Intel port van 4.4 grotendeels incompleet was. Het kostte het project tot november 1994 om deze overstap te maken. Op dat moment werd FreeBSD 2.0 op het net en op CD-ROM (aan het einde van december) uitgebracht. Ondanks het feit dat deze uitgave nog wat ruige kanten had, werd het een groot succes en werd het gevolgd door de robuustere en makkelijker te installeren FreeBSD 2.0.5 in juni 1995.

In augustus 1996 is FreeBSD 2.1.5 uitgebracht en deze bleek populair genoeg bij Internet service providers (ISP's) en andere commerciële gebruikers van FreeBSD om nog een uitgave van de 2.1-STABLE tak te rechtvaardigen. Dit was FreeBSD 2.1.7.1, uitgebracht in februari 1997. Deze uitgave markeerde het einde van de hoofdstroomontwikkeling op 2.1-STABLE; alleen beveilingsupdates en andere kritieke bugfixes werden nog op deze tak uitgevoerd (RELENG_2_1_0).

FreeBSD 2.2 werd afgesplitst van de ontwikkelingstak (“-CURRENT”) in november 1996 als RELENG_2_2 en de eerste volledige uitgave (2.2.1) werd uitgebracht in april 1997. Andere uitgaven van de 2.2 tak werden uitgebracht in de zomer en herfst van '97. De laatste (2.2.8) verscheen in november 1998. De eerste officiële 3.0 uitgave verscheen in oktober 1998 en was het begin van het einde voor de 2.2 tak.

Er was opnieuw een afsplitsing op 20 januari 1999, wat leidde tot de 4.0-CURRENT en 3.x-STABLE takken. Vanuit 3.X-STABLE werd versie 3.1 uitgebracht op 15 februari 1999, 3.2 op 15 mei 1999, 3.3 op 16 september 1999, 3.4 op 20 december 1999 en 3.5 op 24 juni 2000. De laatste werd enkele dagen later gevolgd door een point uitgave update naar 3.5.1, om enkele net-ontdekte beveiligingsfouten in Kerberos te corrigeren. Dit was de laatste uitgave van de 3.X tak.

Een nieuwe tak werd gemaakt op 13 maart 2000, de 4.X-STABLE tak. Er zijn verschillende uitgaven van deze tak gemaakt: 4.0-RELEASE werd geïntroduceerd in maart 2000, en de laatste 4.11-RELEASE verscheen in januari 2005.

De langverwachte 5.0-RELEASE werd aangekondigd op 19 januari 2003. Dit resultaat van bijna drie jaar werk zette FreeBSD stevig neer op de weg naar geavanceerde multiprocessor- en threading-ondersteuning en introduceerde nieuwe FreeBSD ports voor de UltraSPARC en ia64 architecturen. Deze uitgave werd gevolgd door 5.1 in juni 2003. De laatste 5.X uitgave uit de -CURRENT-tak was 5.2.1-RELEASE uit februari 2004.

De RELENG_5 tak is gemaakt in augustus 2004 en werd gevolgd door 5.3-RELEASE, die het begin van de 5-STABLE tak markeert. De meest recente 5.5-RELEASE is uitgekomen in mei 2006. Er staan geen nieuwe versies gepland voor de RELENG_5 tak.

De RELENG_6 tak is gemaakt in juli 2005, de eerste uitgave van de 6.X tak werd vrijgegeven in november 2005. De meest recente 6.4-RELEASE kwam uit op Nov 2008. Er zullen geen verdere uitgaven komen van de 6.X tak.

De RELENG_7 tak is gemaakt in oktober 2007. De eerste uitgave van deze tak is 7.0-RELEASE, welke is uitgekomen in februari 2008. De meest recente 7.2-RELEASE kwam uit in May 2009. Er zullen nog andere uitgaven van de RELENG_7 tak uitkomen.

Op dit moment vinden lange-termijn ontwikkelprojecten plaats in de 8.X-CURRENT tak, en snapshot uitgaven van 8.X op CD-ROM (en natuurlijk op het Net) worden continu beschikbaar gemaakt op de snapshot server.


1.3.2. Doelen van het FreeBSD Project

Bijgedragen door Jordan Hubbard.

Het doel van het FreeBSD Project is om software aan te bieden die gebruikt kan worden voor iedere mogelijke toepassing, zonder beperkingen. Vele ontwikkelaars hebben een belangrijke investering in de code (en het project) zitten en vinden het niet erg om af en toe een financiële compensatie te ontvangen, maar dat is zeker geen voorwaarde. De ontwikkelaars van FreeBSD geloven dat de eerste en belangrijkste “missie” het aanbieden van code is, aan iedereen die het wil hebben, voor wat voor doel dan ook, zodat de code zo breed mogelijk gebruikt kan worden tot voordeel van zoveel mogelijk mensen. Dit is een van de meest fundamentele doelen van Vrije Software dat FreeBSD enthousiast ondersteunt.

Sommige code in FreeBSD valt onder de GNU General Public License (GPL) of Library General Public License (LGPL). Deze code heeft iets meer beperkingen, maar in ieder geval aan de kant waarbij vrije toegang tot de code geforceerd wordt, in plaats van het gebruikelijke tegenovergestelde hiervan. Door de toegevoegde moeilijkheden die kunnen voortkomen uit het commerciële gebruik van GPL software geeft het FreeBSD Project echter de voorkeur aan het meer vrije BSD copyright, wanneer er een redelijk alternatief voor handen is.


1.3.3. Het FreeBSD ontwikkelmodel

Bijgedragen door Satoshi Asami.

De ontwikkeling van FreeBSD is een erg open en flexibel proces en wordt gevormd door de bijdragen van letterlijk honderden mensen over de hele wereld, zoals te zien is in de lijst van medewerkers. De infrastructuur die wordt gebruikt voor de ontwikkeling van FreeBSD zorgt ervoor dat deze honderden ontwikkelaars kunnen samenwerken over het Internet. Het FreeBSD Project is continu op zoek naar nieuwe ontwikkelaars en ideeën. Om bij te dragen aan de ontwikkeling van FreeBSD is een mail naar FreeBSD technische discussie mailinglijst voldoende. De FreeBSD aankondigingen mailinglijst is beschikbaar om mededelingen te doen aan andere FreeBSD-gebruikers over grote veranderingen.

Een aantal dingen over het FreeBSD Project en haar ontwikkelingsproces zijn handig om te weten, of een bijdrage nu onafhankelijk of in samenwerking met anderen komt:

Het CVS-archief

Gedurende een aantal jaren werd de centrale broncode voor FreeBSD bijgehouden door CVS (Concurrent Versions System), een vrij verkrijgbaar pakket voor het onderhouden van broncode dat bij FreeBSD zit. In juni 2008 is het Project SVN (Subversion) gaan gebruiken. Deze overgang werd nodig geacht omdat de technische beperkingen die door CVS worden opgelegd duidelijk werden wegens de snelle uitbreiding van de broncode en de hoeveelheid geschiedenis die reeds is opgeslagen. Hoewel het hoofdarchief nu SVN gebruikt, blijven cliëntgereedschappen zoals CVSup en csup die van de oudere CVS-infrastructuur afhankelijk zijn normaal werken -- veranderingen in het SVN-archief worden voor dit doel teruggeplaatst naar CVS. Momenteel wordt alleen de centrale broncode beheerst door SVN. De documentatie, World Wide Web, en Ports-archieven gebruiken nog steeds CVS. Het primaire archief staat op een systeem in Santa Clara, Californië, in de VS, waar het wordt gesynchroniseerd met verschillende “mirrors” over de hele wereld. De boomstructuur van SVN , waarin de broncode voor -CURRENT en -STABLE is te vinden, kan ook makkelijk met die op een eigen systeem gesynchroniseerd worden. Synchroniseren van broncode bevat meer informatie over dit onderwerp.

Committers

De zogenaamde committers zijn alle mensen die schrijf-rechten hebben in het CVS archief van FreeBSD. Deze mensen mogen veranderingen maken aan de FreeBSD broncode (de term “committer” is afkomstig uit het cvs(1) commit commando, wat gebruikt wordt om veranderingen door te voeren in het CVS-archief). De beste manier om eigen bijdragen te laten keuren door een van de committers is door gebruik te maken van send-pr(1). Als het erop lijkt dat een bijdrage ergens in het systeem blijft hangen, dan is het ook mogelijk om mail te sturen naar de FreeBSD committer's mailinglijst.

Het FreeBSD Core Team

Het FreeBSD core team zou het equivalent zijn van een raad van bestuur als het FreeBSD Project een bedrijf zou zijn. De primaire taak van het core team is ervoor zorg te dragen dat het project, in zijn geheel, in goede vorm verkeert en de goede richting opgaat. Toegewijde en verantwoordelijke ontwikkelaars uitnodigen om deel te worden van de committers is één van de taken van het core team, net als het rekruteren van nieuwe leden van het core team. Het huidige core team is gekozen door de committers uit een groep van kandidaten (ook allen committers) in juli 2008. Elke twee jaar worden verkiezingen gehouden.

Sommige leden van het core team hebben een bijzondere verantwoordelijkheid, wat wil zeggen dat zij er speciaal op toezien dat een bepaald deel van het systeem werkt zoals het hoort. In de lijst van medewerkers staat een complete lijst van ontwikkelaars en hun verantwoordelijkheden.

Opmerking: De meeste leden van het core team zijn vrijwilligers. “Toewijding” betekent dus niet “gegarandeerde ondersteuning”. De “raad van bestuur”-analogie hierboven klopt niet helemaal en het is misschien beter om te zeggen dat dit de mensen zijn die hun leven opgaven voor FreeBSD, tegen beter weten in!

Externe Bijdragen

De grootste groep ontwikkelaars zijn de gebruikers zelf, die FreeBSD continu voorzien van constructief commentaar en oplossingen voor fouten. De handigste manier om contact te houden met het niet-gecentraliseerde deel van de ontwikkeling van FreeBSD is een abonnement nemen op de FreeBSD technische discussie mailinglijst, waar allerlei bijdragen, patches en nieuwe ideeën worden bediscussieerd. In Bijlage C is meer informatie te vinden over de verschillende FreeBSD mailinglijsten.

De lijst van medewerkers is lang en groeit iedere dag, dus wat let de lezer om zelf een bijdrage te doen aan FreeBSD?

Programmeren is niet de enige manier om een bijdrage te leveren aan het project. Een meer volledige lijst van dingen die gedaan moeten worden staat op de FreeBSD website.

Samengevat is het FreeBSD ontwikkelmodel georganiseerd als een onsamenhangende verzameling van concentrische cirkels. Het gecentraliseerde model is ontworpen voor het gemak van de gebruikers van FreeBSD, die op deze manier makkelijk de wijzigingen in het project kunnen volgen. Niet om potentiële medewerkers buiten de deur te houden! Het is wenselijk om een stabiel besturingssysteem te maken, met een grote verzameling samenhangende applicaties. Dit model heeft zijn waarde op dat gebied bewezen.

Om bij te dragen en samen FreeBSD verder te ontwikkelen, is het enige wat het FreeBSD Project vraagt dat te doen met dezelfde toewijding als de huidige ontwikkelaars: succes gegarandeerd!


1.3.4. Huidige FreeBSD uitgave

FreeBSD is een open source, op 4.4BSD-Lite gebaseerd besturingssysteem voor Intel (x86 en Itanium), AMD64, Alpha en Sun UltraSPARC computers. Het is grotendeels gebaseerd op software van de Computer Systems Research Group (CSRG) van de University of California in Berkeley (U.C. Berkeley), met verbeteringen overgenomen van NetBSD, OpenBSD, 386BSD en de Free Software Foundation.

Sinds het uitbrengen van FreeBSD 2.0 tegen het einde van 1994, zijn de prestaties, mogelijkheden en stabiliteit van FreeBSD dramatisch verbeterd. FreeBSD heeft namelijk de beschikking over een compleet nieuw subsysteem voor virtueel geheugen, dat niet alleen de prestaties ten goede komt, maar er ook voor zorgt dat het systeem minder geheugen gebruikt dan ooit tevoren. Andere belangrijke verbeteringen zijn de ondersteuning van veel nieuwe hardware, een compleet nieuw systeem voor de ondersteuning van machines met meerdere processoren (SMP) en een nieuwe bibliotheek voor de ondersteuning van multithreading in applicaties.

Behalve de basisdistributie van het besturingssysteem, biedt FreeBSD ook een enorme softwarecollectie met duizenden veelgebruikte programma's, de zogenaamde ports. Op het moment van schrijven zijn er al meer dan 20,000 ports! In de ports zitten alle mogelijke klassen van software die te bedenken zijn, van HTTP-servers tot spellen, van kantoorapplicaties tot multimedia en alles wat er tussenin zit. De complete Portscollectie beslaat zo'n 417 MB aan schijfruimte. Meer informatie over de ports en over de pakketten is te vinden in Hoofdstuk 4.

Een aantal andere documenten die kunnen helpen bij het installeren en gebruiken van FreeBSD staan in de map /usr/share/doc op ieder recente FreeBSD-installatie. De lokaal geïnstalleerde documentatie kan in een browser bekeken worden door de volgende URLs te gebruiken:

De nieuwste versies van deze documenten zijn altijd te vinden op http://www.FreeBSD.org/.


Hoofdstuk 2. FreeBSD installeren

Geherstructureerd, gereorganiseerd en delen herschreven door Jim Mock. De sysinstall handleiding, schermafdrukken en algemene bijdragen door Randy Pratt. Vertaald door Willem Jaap Zwart.

2.1. Overzicht

FreeBSD heeft een tekstgebaseerd, gebruikersvriendelijk installatieprogramma genaamd sysinstall. Dit is het standaard installatieprogramma, maar leveranciers kunnen hun eigen installatieprogrammatuur leveren. Dit hoofdstuk beschrijft hoe sysinstall gebruikt moet worden om FreeBSD te installeren.

Na het lezen van dit hoofdstuk weet de lezer:

  • Hoe FreeBSD installatieschijven gemaakt kunnen worden;

  • Hoe FreeBSD harde schijven benoemt en onderverdeelt;

  • Hoe sysinstall gestart kan worden;

  • Welke vragen sysinstall stelt, wat ze betekenen en hoe er geantwoord kan worden.

Veronderstelde voorkennis:

  • De ondersteunde hardwarelijst doornemen van de versie van FreeBSD die geïnstalleerd gaat worden op aanwezigheid van de beschikbare hardware.

Opmerking: In zijn algemeenheid zijn deze installatie-instructies geschreven voor computers met een i386™ architectuur (“PC compatible”). Waar van toepassing worden instructies voor andere platformen (bijvoorbeeld Alpha) gegeven. Deze handleiding is zoveel mogelijk bijgewerkt, maar toch kunnen er verschillen optreden tussen de installatieprocedure en deze tekst. Er wordt aangeraden dit hoofdstuk te beschouwen als een algemene richtlijn en niet als een letterlijke handleiding voor installatie.


2.2. Hardware-eisen

2.2.1. Minimale configuratie

De minimale configuratie om FreeBSD te installeren varieert met de versie van FreeBSD en de hardware-architectuur.

Informatie over de minimale configuratie is beschikbaar in de Installatie Notes op de Uitgave Informatie pagina op de FreeBSD website. Een samenvatting van deze informatie is gegeven in de volgende secties. Afhankelijk van de methode die u kiest om FreeBSD te installeren, heeft u misschien ook een floppydrive, een ondersteunde CDROM drive, en in sommige gevallen een netwerkadapter nodig. Dit zal worden behandeld door het Paragraaf 2.3.7.


2.2.1.1. FreeBSD/i386 en FreeBSD/pc98

Zowel FreeBSD/i386 en FreeBSD/pc98 hebben een 486 of betere processor en tenminste 24 MB aan RAM nodig. U zult tenminste 150 MB aan vrije hardeschijfruimte nodig hebben voor de meest minimale installatie.

Opmerking: In het geval van oude configuraties is het verkrijgen van meer RAM en meer hardeschijfruimte meestal belangrijker dan het verkrijgen van een snellere processor.


2.2.1.2. FreeBSD/alpha

Om FreeBSD/alpha te installeren heeft u een ondersteund platform (zie Paragraaf 2.2.2) en een toegewijde schijf voor FreeBSD nodig. Het is momenteel niet mogelijk om een schijf met een ander besturingssysteem te delen. Deze schijf dient aan een SCSI-controller gekoppeld te worden die wordt ondersteund door de SRM firmware of een IDE-schijf aangenomen dat de SRM in uw machine het opstarten van IDE-schijven ondersteunt.

U zult de SRM consolefirmware nodig hebben voor uw platform. In sommige gevallen is het mogelijk om te wisselen tussen AlphaBIOS (of ARC) firmware en SRM. In andere gevallen zal het nodig zijn om nieuwe firmware van de website van de verkoper te downloaden.

Opmerking: Ondersteuning voor de Alpha was verwijderd te beginnen met FreeBSD 7.0. De FreeBSD 6.X uitgaveserie is de laatste die ondersteuning bevat voor deze architectuur.


2.2.1.3. FreeBSD/amd64

Er zijn twee klassen processoren die FreeBSD/amd64 kunnen draaien. De eerste zijn AMD64 processoren, inclusief de AMD Athlon™64, AMD Athlon64-FX, AMD Opteron™ of betere processoren.

De tweede klasse van processoren die FreeBSD/amd64 kan gebruiken omvat die die de Intel® EM64T architectuur gebruiken. Voorbeelden van deze processoren omvatten de Intel Core™ 2 Duo, Quad, en Extreme processorfamilies en de Intel Xeon™ 3000, 5000, en 7000 rijen van processoren.

Indien u een machine heeft die gebaseerd is op een nVidia nForce3 Pro-150, moet u de BIOS-setup gebruiken om IO APIC uit te zetten. Indien u geen optie heeft om dit te doen, moet u waarschijnlijk in plaats hiervan ACPI uitzetten. Er zitten bugs in de Pro-150 chipset waarvoor we nog geen oplossing hebben gevonden.


2.2.1.4. FreeBSD/sparc64

Om FreeBSD/sparc64 te installeren heeft u een ondersteund platform nodig (zie Paragraaf 2.2.2).

U heeft een toegewijde schijf nodig voor FreeBSD/sparc64. Het is momenteel niet mogelijk om een schijf met een ander besturingssysteem te delen.


2.2.2. Ondersteunde hardware

Een lijst van ondersteunde hardware wordt geleverd bij elke uitgave van FreeBSD in de FreeBSD Hardware Notes. Dit document kan normaliter worden gevonden in een bestand genaamd HARDWARE.TXT, in de bovenste map van een CDROM- of FTP-distributie of in het documentatiemenu van sysinstall. Het somt, voor een gegeven architectuur, op welke hardware-apparaten door welke uitgave van FreeBSD worden ondersteund. Kopiën van de lijst van ondersteunde hardware voor verschillende uitgaven en architecturen kunnen ook gevonden worden op de Uitgave Informatie pagina van de FreeBSD website.


2.3. Voorbereidende taken

2.3.1. Beschrijf de computer

Probeer een computer te inventariseren voordat FreeBSD wordt geïnstalleerd. De FreeBSD installatieroutines geven een overzicht van alle componenten (harde schijven, netwerkkaarten, cd-rom-spelers, enzovoort) met hun typenummer en fabrikant. FreeBSD probeert ook de juiste instellingen te achterhalen, zoals IRQ en IO-poort gebruik. Vanwege de verscheidenheid aan PC-hardware verloopt dit niet altijd helemaal succesvol en daarom kan het nodig zijn om de gegevens die FreeBSD achterhaalt te verbeteren.

Mocht er al een ander besturingssysteem geïnstalleerd zijn, zoals Windows of Linux, dan is het aan te raden de mogelijkheden van dat besturingssysteem te gebruiken om te achterhalen hoe hardware is ingesteld. Als niet volledig bekend is welke instellingen een uitbreidingskaart heeft, dan kan het zijn dat ze op de kaart zelf zijn afgedrukt. Veelvoorkomende IRQ nummers zijn 3, 5 en 7 en IO-poort adressen zijn meestal geschreven als hexadecimale getallen, zoals 0x330.

Er wordt aangeraden deze informatie af te drukken of op te schrijven voordat FreeBSD wordt geïnstalleerd. Het kan handig zijn om een tabel te maken, zoals deze:

Tabel 2-1. Voorbeeld van beschrijving van componenten

Component IRQ IO-poort(en) Opmerkingen
Eerste harde schijf N/A N/A 40 GB, Seagate, eerste IDE master
cd-rom N/A N/A Eerste IDE slave
Tweede harde schijf N/A N/A 20 GB, IBM, tweede IDE master
Eerste IDE controller 14 0x1f0  
Netwerkkaart N/A N/A Intel 10/100
Modem N/A N/A 3Com® 56K faxmodem, op COM1
...      

Nadat de inventarisatie van de componenten in uw computer voltooid is, dient u te controleren of ze aan de hardware-eisen van de uitgave van FreeBSD die u wilt installeren voldoen.


2.3.2. Maak een back-up van gegevens

Als de computer waarop FreeBSD geïnstalleerd gaat worden waardevolle gegevens bevat, dan dient er een back-up te zijn en dient deze back-up getest te zijn voordat FreeBSD wordt geïnstalleerd. De FreeBSD installatieprocedure vraagt om bevestiging voordat er naar de schijven geschreven wordt, maar als dat eenmaal is begonnen kan het niet meer teruggedraaid worden.


2.3.3. Bepaal waar FreeBSD geïnstalleerd wordt

Als de hele harde schijf voor FreeBSD beschikbaar is, dan hoeft op dit punt verder niets gedaan te worden. Ga verder naar de volgende sectie.

Als FreeBSD echter naast een ander besturingssysteem op een computer komt, dan moet basaal bekend zijn hoe gegevens op schrijven worden opgeslagen en wat dat voor consequenties heeft.


2.3.3.1. Indeling van schrijven voor FreeBSD/i386

Een PC schijf kan worden onderverdeeld in aparte stukken. Deze stukken heten partities. Aangezien FreeBSD intern ook partities heeft, kan de naamgeving snel verwarrend worden, daarom wordt naar deze schijfstukken verwezen als schijfsnedes of simpelweg snedes (slices) in FreeBSD zelf. Het FreeBSD gereedschap fdisk bijvoorbeeld, dat met PC diskpartities werkt, verwijst naar snedes in plaats van partities. In het ontwerp van de PC is opgenomen dat een schijf slechts vier partities kan bevatten. Deze partities heten de primaire partities. Om deze beperking te omzeilen is een nieuwe soort partitie bedacht, de extended partitie. Een schijf kan slechts één extended partitie bevatten. Binnen een extended partitie kunnen speciale partities, genaamd logische partities, worden aangemaakt.

Elke partitie heeft een partitie-ID, een getal dat aangeeft welk soort gegevens er op die partitie staan. FreeBSD-partities hebben partitie-ID 165.

In zijn algemeenheid benoemt elk besturingssysteem partities op zijn eigen manier. Bijvoorbeeld: MS-DOS en zijn afgeleiden, zoals Windows, geven elke primaire en logische partitie een (station) letter, beginnend met C:.

FreeBSD moet geïnstalleerd worden op een primaire partitie. FreeBSD kan al zijn gegevens, inclusief alle bestanden die zelf zijn gemaakt, op deze partitie opslaan. Als er meerdere schijven zijn, dan kunnen er FreeBSD-partities worden aangemaakt op alle of op sommige schijven. Als FreeBSD wordt geïnstalleerd moet er een partitie beschikbaar zijn. Dit kan een lege partitie zijn die is aangemaakt of het mag een bestaande partitie zijn met gegevens die niet langer bewaard hoeven te blijven.

Als alle partities op alle schijven gebruikt worden, dan moet er een leeg gemaakt worden voor FreeBSD met de hulpprogramma's van het andere besturingssysteem dat wordt gebruikt (bijvoorbeeld fdisk onder MS-DOS of Windows).

Als er een partitie over is, dan kan die gebruikt worden. Het kan zo zijn dat één of meer van de bestaande partities verkleind moet worden.

Een minimale installatie van FreeBSD heeft 100 MB schijfruimte nodig. Dat is wel een zeer minimale installatie, waarop bijna geen ruimte over is voor eigen bestanden. Een meer realistisch minimum is 250 MB zonder grafische gebruikersomgeving en 350 MB of meer als er ook een grafische gebruikersomgeving moet draaien. Als er ook nog gebruikt gemaakt wordt van een heleboel programma's van derde partijen dan is nog meer ruimte nodig.

Met commerciële software zoals PartitionMagic®, of gratis software zoals GPartEd, kunnen partities van grootte gewijzigd worden om ruimte te maken voor FreeBSD. De map tools op de CDROM bevat twee freeware programma's die dit ook kunnen, FIPS en PResizer. Handleidingen hiervoor staan in dezelfde map. FIPS, PResizer en PartitionMagic kunnen FAT16 en FAT32-partities wijzigen als ze gebruikt worden in MS-DOS tot Windows ME. Van zowel PartitionMagic als GPartEd is bekend dat ze met NTFS kunnen werken. GPartEd is beschikbaar op een aantal Live CD Linux-distributies, zoals SystemRescueCD.

Er zijn problemen gemeld met het veranderen van de grootte van Microsoft Vista-partities. Het beschikbaar hebben van een Vista installatie-CDROM tijdens het pogen van zo'n bewerking is aanbevolen. Zoals met al zulke schijfonderhoudtaken is een recente verzameling backups ook sterk aangeraden.

WaarschuwingVerkeerd gebruik van deze programma's kan gegevens van een schijf verwijderen. Er dient een goede, werkende back-up te zijn voordat deze programma's gebruikt worden.

Voorbeeld 2-1. Gebruik van een bestaande, ongewijzigde partitie

Stel er is al een computer met een enkele 4 GB harde schijf waarop een versie van Windows is geïnstalleerd en de schijf is verdeeld in twee schijfstations, C: en D:, van elk 2 GB. Er staat 1 GB aan gegevens op C: en 0.5 GB aan gegevens op D:.

Dit betekent dat de harde schijf twee partities heeft, één voor elke letter. Alle gegevens op D: kunnen gekopieerd worden naar C:, waardoor de tweede partitie beschikbaar komt voor FreeBSD.

Voorbeeld 2-2. Een bestaande partitie verkleinen

Stel er is een computer met een enkele 4 GB harde schijf waarop een versie van Windows is geïnstalleerd. Bij het installeren van Windows is een grote partitie gemaakt, station C: van 4 GB. Er is 1.5 GB in gebruik en voor FreeBSD is 2 GB schijfruimte wenselijk.

Voor een installatie van FreeBSD is één van onderstaande opties de oplossing:

  1. Maak een back-up van de Windows gegevens en installeer Windows opnieuw, waarbij een partitie van 2 GB wordt aanmaakt bij het installeren.

  2. Gebruik één van de bovengenoemde programma's zoals PartitionMagic om de Windows-partitie te verkleinen.


2.3.3.2. Schijfindelingen voor Alpha computers

Op Alpha computers is een aparte harde schijf nodig voor FreeBSD. Het is onmogelijk om een schijf te delen met een ander besturingssysteem. Afhankelijk van de Alpha computer kan de schijf een SCSI- of IDE-schijf zijn, als de computer er maar van kan opstarten.

Conform de conventies van Digital / Compaq handleidingen is alle SRM invoer weergegeven in hoofdletters. SRM is ongevoelig voor hoofd- en kleine letters.

Om de namen en types van de schijven in een machine te achterhalen kan het commando SHOW DEVICE in de SRM console prompt gebruikt worden:

>>>SHOW DEVICE
dka0.0.0.4.0               DKA0           TOSHIBA CD-ROM XM-57  3476
dkc0.0.0.1009.0            DKC0                       RZ1BB-BS  0658
dkc100.1.0.1009.0          DKC100             SEAGATE ST34501W  0015
dva0.0.0.0.1               DVA0
ewa0.0.0.3.0               EWA0              00-00-F8-75-6D-01
pkc0.7.0.1009.0            PKC0                  SCSI Bus ID 7  5.27
pqa0.0.0.4.0               PQA0                       PCI EIDE
pqb0.0.1.4.0               PQB0                       PCI EIDE

Dit is een voorbeeld van een Digital Personal Workstation 433au en geeft aan dat er drie schijven verbonden zijn met de computer. De eerste is een cd-rom station genaamd DKA0 en de andere twee zijn harde schijven die achtereenvolgens DKC0 en DKC100 heten.

Schijven met namen in het formaat DKx zijn SCSI schijven. DKA100 is bijvoorbeeld een SCSI schijf met SCSI “target ID” 1 op de eerste SCSI bus (A), terwijl DKC300 een SCSI schijf is met SCSI ID 3 op de derde SCSI bus (C). Apparaatnaam PKx is de SCSI host bus adapter. Zoals te zien in de uitvoer van SHOW DEVICE worden SCSI cd-rom stations op dezelfde manier behandeld als SCSI harde schijven.

IDE schijven hebben namen in het formaat DQx, terwijl PQx de naam is van de bijbehorende IDE controller.


2.3.4. Netwerkgegevens verzamelen

Als bij de installatie van FreeBSD gebruik gemaakt wordt van een netwerk (bijvoorbeeld bij een installatie vanaf een FTP site of een NFS server), dan moeten de netwerkinstellingen bekend zijn. Deze informatie wordt gevraagd tijdens het installeren, zodat FreeBSD contact kan maken met het netwerk om de installatie te voltooien.


2.3.4.1. Contact maken met een Ethernet netwerk of kabel/DSL modem

Als er contact gemaakt wordt met een Ethernet netwerk of een Internetverbinding met een Ethernet netwerkkaart via de kabel of DSL, dan is de volgende informatie nodig:

  1. IP-adres

  2. IP-adres van de default gateway

  3. Hostnaam

  4. IP-adressen van de DNS server(s)

  5. Subnetmasker

Als deze informatie niet bekend is, dan kan deze meestal nagevraagd worden bij de systeembeheerder of service provider. Het kan zijn dat zij aangeven dat één en ander automatisch wordt toegekend door middel van DHCP. Het is van belang hier een notitie van te maken.


2.3.4.2. Contact maken met een modem

Ook door middel van inbellen bij een Internet service provider met een gewoon modem kan FreeBSD geïnstalleerd worden via Internet, het duurt alleen erg lang.

Dan is nodig:

  1. Het inbelnummer van een ISP

  2. De COM: poort waaraan het modem zit

  3. Gebruikersnaam en wachtwoord bij de ISP


2.3.5. Controleer op FreeBSD Errata

Hoewel het FreeBSD project er naar streeft om elke versie van FreeBSD zo stabiel mogelijk te laten zijn, kan het voorkomen dat er foutjes in het systeem sluipen. Heel af en toe beïnvloeden deze foutjes de installatieprocedure. Als ze ontdekt en opgelost zijn worden ze beschreven in de FreeBSD Errata op de FreeBSD website. Het is verstandig voor een installatie te controleren of er errata zijn om er zeker van te zijn dat er geen obstakels zijn.

Informatie over alle uitgaven, inclusief de errata staan in de uitgave-informatie op de FreeBSD website.


2.3.6. De FreeBSD installatiebestanden

De FreeBSD installatieprocedure kan FreeBSD installeren vanaf één van de volgende plaatsen:

Lokale media

  • Cd-rom of DVD

  • DOS-partitie op dezelfde computer

  • SCSI of QIC tape

  • Diskettestation

Netwerk

  • FTP site, indien noodzakelijk door een firewall of via een HTTP proxy

  • NFS server

  • Parallelle of seriële verbinding

Als FreeBSD gekocht is op CD of DVD dan is alles wat nodig is aanwezig om door te gaan naar Paragraaf 2.3.7.

Als de installatiebestanden nog niet beschikbaar zijn wordt in Paragraaf 2.13 uitgelegd hoe de installatie via bovenstaande methoden voorbereid kan worden. Nadat de installatiebestanden beschikbaar zijn kunnen de voorbereidingen voor de installatie verdergaan in Paragraaf 2.3.7.


2.3.7. Opstartmedia aanmaken

De FreeBSD installatieprocedure begint met het opstarten van een computer met het FreeBSD installatieprogramma. Dit programma wordt niet uitgevoerd vanuit een ander besturingssysteem. Normaliter start een computer op met het besturingssysteem dat is geïnstalleerd op een harde schijf, maar hij kan ook ingesteld worden om op te starten van een “bootable” diskette. De meeste hedendaagse computers kunnen ook opstarten van een cd-rom in het cd-rom station.

Tip: Als FreeBSD op cd-rom of DVD beschikbaar is (gekocht of zelf gebrand) en een computer kan opstarten van een cd-rom of DVD (meestal een BIOS optie genaamd “Boot Order” of iets dergelijks), dan is het doorwerken van deze sectie niet nodig. De FreeBSD cd-rom en DVD images zijn bootable en kunnen zonder verdere voorbereidingen gebruikt worden om FreeBSD te installeren.

Om opstartdiskettes te maken kunnen de volgende stappen gevolgd worden:

  1. Bemachtig de images voor opstartdiskettes

    De opstartschijven zijn beschikbaar op de installatiemedia in de map floppies/ en kunnen ook gedownload worden uit de map floppies, ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<arch>/<versie>-RELEASE/floppies/. Vervang <arch> en <versie> door de architectuur en het versienummer dat geïnstalleerd moet worden. De images voor bootdiskettes voor bijvoorbeeld FreeBSD/i386 7.2-RELEASE zijn beschikbaar op ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/7.2-RELEASE/floppies/.

    De diskette-images hebben de extensie .flp. De map floppies/ bevat een aantal images en het hangt af van de gewenste FreeBSD versie, en in sommige gevallen ook van de hardware, welke images nodig zijn. In de meeste gevallen zijn er vier floppies nodig, boot.flp, kern1.flp, kern2.flp, en kern3.flp. In dezelfde map staat README.TXT voor de laatste informatie over de diskette-images.

    Belangrijk: Het FTP-programma moet ingesteld staan in binary modus om de disk-images te downloaden. Sommige webbrowsers blijken de text (of ASCII) modus te gebruiken en dan kan er niet van de diskettes opgestart worden.

  2. Maak de diskettes aan

    Per gedownload image wordt een diskette aangemaakt. Vanzelfsprekend moeten deze diskettes vrij zijn van fouten. Het gemakkelijkst is dit te testen door de diskettes te formatteren. Vanaf de fabriek geformatteerde floppies kunnen niet vertrouwd worden. Het programma format in Windows meldt niet of er bad blocks zijn, het markeert ze gewoon als “bad” en negeert ze. Het wordt geadviseerd schone, nieuwe floppies te gebruiken als op deze manier wordt geïnstalleerd.

    Belangrijk: Als bij het installeren van FreeBSD het installatieprogramma vastloopt, blijft hangen of zich op een andere manier vreemd gedraagt, dan ligt dat meestal aan de floppies. Probeer dan de diskette-images op nieuwe schijven te schrijven en probeer het opnieuw.

  3. Schrijf de imagebestanden op diskettes

    De .flp-bestanden zijn geen gewone bestanden die naar een diskette te kopiëren zijn. Het zijn images van de complete inhoud van een diskette. Dit betekent dat ze niet eenvoudigweg gekopieerd kunnen worden van de ene schijf naar de andere. In plaats daarvan moet speciale software gebruikt worden om de images rechtstreeks op de diskettes te schrijven.

    Als de diskettes aanmaakt worden op een computer met MS-DOS/Windows, dan levert het FreeBSD project de software fdimage.

    Als de floppies van de cd-rom worden gebruikt en het cd-rom station is E:, dan kan dit als volgt:

    E:\> tools\fdimage floppies\boot.flp A:
    

    Herhaal dit commando voor elk .flp-bestand, waarbij steeds een nieuwe diskette wordt gebruikt. Merk elke diskette met de naam van het bestand dat erop wordt gekopieerd. Pas de opdrachtregel steeds aan, afhankelijk van waar de .flp-bestanden staan. Als er geen cd-rom beschikbaar is dan kan fdimage gedownload worden vanuit de map tools op de FreeBSD FTP site.

    Als de diskettes worden aanmaakt op een UNIX systeem (zoals een ander FreeBSD systeem) dan kan dd(1) gebruikt worden om de imagebestanden naar diskette te kopiëren. Onder FreeBSD:

    # dd if=boot.flp of=/dev/fd0
    

    Onder FreeBSD verwijst /dev/fd0 naar het eerste diskettestation (de A:-schijf). /dev/fd1 zou de B:-schijf zijn enzovoorts. Andere UNIX-varianten kunnen andere namen hebben voor de diskettestations. Meer informatie staat in de documentatie van ieder systeem .

Het installeren van FreeBSD kan nu beginnen.


2.4. Beginnen met de installatie

Belangrijk: De installatie maakt geen wijzigingen op schijven totdat het volgende bericht verschijnt:

Last Chance: Are you SURE you want continue the installation?

If you're running this on a disk with data you wish to save then WE
STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!

We can take no responsibility for lost disk contents!

De installatie kan worden beëindigd op elk moment voor deze laatste waarschuwing zonder dat de inhoud van harde schijven wordt gewijzigd. Als de angst bestaat dat er iets verkeerd is ingesteld, dan kan op dat moment gewoon de computer uitgezet worden zonder dat er schade optreedt.


2.4.1. Opstarten

2.4.1.1. Opstarten van i386

  1. Begin met een computer die uit staat.

  2. Zet de computer aan. Als hij aangaat laat hij een optie zien om het systeeminstelmenu, of BIOS, te bereiken, gewoonlijk via F2, F10, Del, of Alt+S. Gebruik de toets die op het scherm wordt aangegeven. In sommige gevallen laat de computer een plaatje zien terwijl hij opstart. Gewoonlijk verdwijnt dit plaatje door het intypen van Esc zodat eventuele verborgen berichten zichtbaar worden.

  3. Zoek de instelling die bepaalt vanaf welk medium de computer opstart. Dit wordt meestal aangeduid met “Boot Order” en laat een lijst met media zien, zoals Floppy, CD-ROM, eerste harde schijf, enzovoorts.

    Als het nodig was om diskettes aan te maken, stel dan floppy disk in. Als wordt opstart van een cd-rom stel dat dan in. Raadpleeg in geval van twijfel de documentatie van de computer en/of het moederbord.

    Maak de instellingen, bewaar de veranderingen en sluit het instelprogramma af. De computer moet dan opnieuw starten.

  4. Als het nodig was opstartdiskettes te maken, zoals beschreven in Paragraaf 2.3.7, dan is er één opstartschijf, waarschijnlijk die met boot.flp erop. Stop die diskette in het diskettestation.

    Bij opstarten vanaf CD moet na het aanzetten van de computer zo snel mogelijk de cd-rom ingestoken worden.

    Als de computer opstart zoals altijd en met het huidige besturingssysteem begint, dan kan dat om de volgende redenen zijn:

    1. De opstartschijven waren niet vroeg genoeg in de computer gedaan om ervan op te starten. Laat ze er dan inzitten en probeer de computer te herstarten.

    2. De gemaakte wijzigingen in de BIOS zijn niet goed doorgekomen. Doe dat dan nog een keer totdat de juiste instelling gevonden is.

    3. De BIOS ondersteunt het opstarten van het gekozen medium niet.

  5. FreeBSD start nu op. Bij opstarten vanaf cd-rom is iets als het volgende op het scherm te zien (versie-informatie weggelaten):

    Booting from CD-Rom...
    CD Loader 1.2
    
    Building the boot loader arguments
    Looking up /BOOT/LOADER... Found
    Relocating the loader and the BTX
    Starting the BTX loader
    
    BTX loader 1.00 BTX version is 1.01
    Console: internal video/keyboard
    BIOS CD is cd0
    BIOS drive C: is disk0
    BIOS drive D: is disk1
    BIOS 639kB/261120kB available memory
    
    FreeBSD/i386 bootstrap loader, Revision 1.1
    
    Loading /boot/defaults/loader.conf
    /boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d]
    \
    

    Bij opstarten vanaf diskette is iets als het volgende op het scherm te zien (versie-informatie weggelaten):

    Booting from Floppy...
    Uncompressing ... done
    
    BTX loader 1.00  BTX version is 1.01
    Console: internal video/keyboard
    BIOS drive A: is disk0
    BIOS drive C: is disk1
    BIOS 639kB/261120kB available memory
    
    FreeBSD/i386 bootstrap loader, Revision 1.1
    
    Loading /boot/defaults/loader.conf
    /kernel text=0x277391 data=0x3268c+0x332a8 |
    
    Insert disk labelled "Kernel floppy 1" and press any key...
    

    Volg de instructies op en haal de diskette met boot.flp eruit, stop de diskette met kern1.flp in het station en druk op Enter. Start op vanaf de eerste diskette en geef volgende diskettes in als daarom wordt gevraagd.

  6. Of nu wordt opstart van diskette of cd-rom, de opstartprocedure komt op een gegeven moment bij het bootloader-menu van FreeBSD:

    Figuur 2-1. FreeBSD bootloader-menu

    Wacht 10 seconden of druk op Enter.


2.4.1.2. Opstarten voor Alpha

  1. Begin met een computer die uit staat.

  2. Zet de computer aan en wacht op de boot monitor prompt.

  3. Als het nodig was opstartdiskettes te maken, zoals beschreven in Paragraaf 2.3.7, dan is er één eerste opstartschijf, waarschijnlijk die met boot.flp erop. Stop deze diskette in het diskettestation en geef het volgende commando om op te starten vanaf die schijf (vervang de naam van het diskettestation waar nodig):

    >>>BOOT DVA0 -FLAGS '' -FILE ''
    

    Bij opstarten vanaf cd-rom: stop dan de cd-rom in het cd-rom station en geef het volgende commando om de installatie te starten (vervang daarbij de naam van het cd-rom station als nodig):

    >>>BOOT DKA0 -FLAGS '' -FILE ''
    
  4. FreeBSD start nu op. Bij opstarten vanaf diskette is op een gegeven moment het volgende op het scherm te zien:

    Insert disk labelled "Kernel floppy 1" and press any key...
    

    Volg de instructies op en haal de boot.flp diskette eruit, stop de kern1.flp diskette erin en druk op Enter.

  5. Of nu wordt opstart van diskette of cd-rom, de opstartprocedure komt op een gegeven moment op het volgende punt:

    Hit [Enter] to boot immediately, or any other key for command prompt.
    Booting [kernel] in 9 seconds... _
    

    Wacht 10 seconden of druk op Enter. Nu start het menu voor kernelinstellingen.


2.4.1.3. Opstarten voor Sparc64®

De meeste Sparc64®-systemen zijn ingesteld om automatisch vanaf schijf op te starten. Om FreeBSD te installeren dient u over het netwerk of vanaf een CDROM op te starten, waarvoor u in de PROM (OpenFirmware) dient te breken.

Start het systeem opnieuw op, en wacht totdat te opstartboodschappen verschijnen om dit te doen. Het hangt af van het model, maar het zou er ongeveer zo uit moeten zien:

Sun Blade 100 (UltraSPARC-IIe), Keyboard Present
Copyright 1998-2001 Sun Microsystems, Inc.  All rights reserved.
OpenBoot 4.2, 128 MB memory installed, Serial #51090132.
Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.

Als uw systeem vanaf hier verder gaat met opstarten vanaf schijf, dient u L1+A of Stop+A op het toetsenbord in te drukken, of een BREAK over de seriële console te versturen (door bijvoorbeeld ~# in tip(1) of cu(1) te gebruiken) om bij de PROM-prompt te komen. Het ziet er als volgt uit:

ok        (1)
ok {0}     (2)
(1)
Deze prompt wordt gebruikt op systemen met slechts één CPU.
(2)
Deze prompt wordt op SMP-systemen gebruikt, het cijfer geeft het aantal actieve CPUs aan.

Stop hier de CDROM in uw drive, en typ op de PROM-prompt boot cdrom.


2.4.2. Resultaten van het hardware-onderzoek bekijken

De laatste paar honderd regels die op het scherm verschenen zijn bewaard en kunnen bekeken worden.

Druk op Scroll Lock om ze te bekijken. Hiermee wordt de scrollmodus ingeschakeld. Gebruik de pijltjestoetsen en PageUp en PageDown om de resultaten te bekijken. Druk weer op Scroll Lock om de scrollmodus uit te schakelen.

Dit kan nu gedaan worden om de tekst te bekijken die over het scherm rolde terwijl de kernel de hardware onderzocht. Er is tekst te zoals in Figuur 2-2, maar de exacte tekst is anders, afhankelijk van de componenten in een computer.

Figuur 2-2. Voorbeeld resultaten hardware-onderzoek

avail memory = 253050880 (247120K bytes)
Preloaded elf kernel "kernel" at 0xc0817000.
Preloaded mfs_root "/mfsroot" at 0xc0817084.
md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4

md1: Malloc disk
Using $PIR table, 4 entries at 0xc00fde60
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11
isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
isa0: <iSA bus> on isab0
atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci
0
usb0: <VIA 83572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1
uhub0: 2 ports with 2 removable, self powered
pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3
dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir
q 11 at device 8.0 on pci0
dc0: Ethernet address: 00:04:5a:74:6b:b5
miibus0: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10.
0 on pci0
ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit)
isa0: too many dependant configs (8)
isa0: unexpected small tag 14
orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5'' drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/@ mouse, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/15 bytes threshold
plip0: <PLIP network interface> on ppbus0
ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33
acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4
Mounting root from ufs:/dev/md0c
/stand/sysinstall running as init on vty0

Controleer de resultaten van het hardware-onderzoek nauwgezet om er zeker van te zijn dat FreeBSD alle componenten gevonden heeft die verwacht worden. Als een component niet is gevonden, dan wordt die niet genoemd. Een eigen kernel staat u toe om apparaten te ondersteunen die niet in de GENERIC kernel zitten, zoals geluidskaarten.

Voor FreeBSD 6.2 en later ziet u na de procedure voor het opsporen van apparaten Figuur 2-3. Gebruik de pijltoetsen om een land, regio, of groep te kiezen. Druk daarna op Enter, dit stelt gemakkelijk uw land en toetsenafbeelding in. Het is ook gemakkelijk om het programma sysinstall te verlaten en opnieuw te beginnen.

Figuur 2-3. Landmenu kiezen

Figuur 2-4. Sysinstall verlaten

Gebruik de pijltjestoetsen om in het hoofdmenu Exit Install te selecteren. Het volgende bericht verschijnt:

                      User Confirmation Requested
         Are you sure you wish to exit? The system will reboot
           (be sure to remove any floppies/CDs/DVDs from the drives).

                            [ Yes ]    No

Het installatieprogramma start opnieuw als de cd-rom nog in het station zit en [ Yes ] gekozen wordt.

Bij opstarten van diskettes is het nodig om de diskette met boot.flp uit de drive te halen voordat opnieuw wordt gestart.


2.5. Inleiding Sysinstall

Het hulpprogramma sysinstall is het installatieprogramma voor FreeBSD. Het is tekstgebaseerd en is onderverdeeld in een aantal menu's en schermen die gebruikt kunnen worden om de installatieprocedure in te stellen en te beheren.

Het menu van sysinstall wordt bestuurd met de pijltjestoetsen, Enter, Tab, Space en andere toetsen. Een gedetailleerde beschrijving van de gebruikte toetsen en wat ze doen is opgenomen in de gebruikersinformatie voor sysinstall.

Selecteer de optie Usage om deze informatie te lezen. Selecteer de knop [Select], zoals in Figuur 2-5, en druk op Enter.

De instructies om het menusysteem te gebruiken worden getoond. Na het lezen kan met Enter het hoofdmenu weer getoond worden.

Figuur 2-5. Usage selecteren in het sysinstall hoofdmenu


2.5.1. Menu Documentation selecteren

Kies met de pijltjestoetsen in het hoofdmenu Doc en druk op Enter.

Figuur 2-6. Menu Documentation selecteren

Dit toont het menu Documentation.

Figuur 2-7. Sysinstall menu Documentation

Het is belangrijk om de documentatie te lezen.

Selecteer een document met de pijltjestoetsen en druk op Enter om het te bekijken. Na het lezen wordt met Enter teruggekeerd naar het menu Documentation.

Selecteer Exit met de pijltjestoetsen en druk op Enter om het menu Documentation te verlaten.


2.5.2. Menu Keymap selecteren

Kies met de pijltjestoetsen Keymap in het menu en druk op Enter om de toetsenbordinstellingen te wijzigen. Dit is alleen nodig als geen standaard of VS-toetsenbord wordt gebruikt.

Figuur 2-8. Sysinstall hoofdmenu

Een andere toetsenbordindeling is te kiezen door het menu-item te selecteren met omhoog/omlaag en dan op Space te drukken. Nog een keer Space deselecteert het item. Nadat de keuze is gemaakt kan met de pijltjestoetsen [ OK ] gekozen worden en op Enter gedrukt worden.

In de schermafbeelding wordt maar een deel van de lijst getoond. Selecteer [ Cancel ] door op Tab te drukken. Dan wordt de standaard toetsenbordindeling gebruikt en het programma gaat terug naar het hoofdmenu voor de installatie.

Figuur 2-9. Sysinstall menu Keymap


2.5.3. Installatiescherm Options

Kies Options en druk op Enter.

Figuur 2-10. Sysinstall hoofdmenu

Figuur 2-11. Sysinstall opties

De standaardwaarden zijn in orde voor de meeste gebruikers en hoeven meestal niet gewijzigd te worden. De release name hangt af van de versie die geïnstalleerd wordt.

Er staat een beschrijving van het geselecteerde item aan de onderkant van het scherm, geaccentueerd in blauw. Eén van de opties is Use Defaults waarmee opnieuw de beginwaarden worden ingesteld.

Druk op F1 om de helptekst van de diverse opties te bekijken.

Druk op Q om terug te gaan naar het hoofdmenu van de installatie.


2.5.4. Een standaardinstallatie starten

De Standard installatie wordt aangeraden voor nieuwe gebruikers van UNIX of FreeBSD. Gebruik de pijltjestoetsen om Standard te selecteren en druk op Enter om de installatie te starten.

Figuur 2-12. Een standaardinstallatie starten


2.6. Schijfruimte toewijzen

Als eerste moet schijfruimte aan FreeBSD worden toegewezen en die ruimte dient gemerkt te worden zodat sysinstall deze kan voorbereiden.Om dit te kunnen doen is kennis nodig over hoe FreeBSD informatie op schijven verwacht aan te treffen.


2.6.1. BIOS schijfnummering

Voordat FreeBSD op een systeem geïnstalleerd en ingesteld kan worden is er een belangrijk onderwerp waarover kennis nodig is, met name als er meerdere harde schijven zijn.

Op een PC met een BIOS-afhankelijk besturingssysteem zoals MS-DOS en Microsoft Windows, kan het BIOS de normale schijfvolgorde abstraheren en volgt het besturingssysteem die wijzigingen. Dit stelt de gebruiker in staat op te starten van een andere schijf dan de zogenaamde “primary master”. Dit is erg handig voor gebruikers die er achter zijn gekomen dat de gemakkelijkste en goedkoopste manier om een systeembackup te maken het plaatsen van een identieke tweede harde schijf is en het daarop regelmatig kopieëren van de inhoud van de eerste schijf met Ghost® of XCOPY. Als de eerste schijf weigert of aangevallen is door een virus of vervuild is door een fout in het besturingssysteem, dan kan eenvoudig overgeschakeld worden door in het BIOS de twee schijven logisch te wisselen. Dat is als het verwisselen van de kabels, maar dan zonder de systeemkast open te maken.

Duurdere systemen met SCSI controllers hebben vaak BIOS-uitbreidingen die het mogelijk maken SCSI-schijven op soortgelijke wijze in te delen voor maximaal zeven schijven.

Een gebruiker die gewend is hiervan gebruik te maken kan verrast worden als de resultaten met FreeBSD niet overeenkomen met de verwachtingen. FreeBSD maakt geen gebruik van het BIOS en heeft dus geen kennis van “logical BIOS drive mapping”. Dit kan leiden tot verbazingwekkende situaties, met name als de schijven fysiek gelijk zijn in geometrie en ook de data klonen van elkaar zijn.

Bij het gebruik van FreeBSD moet altijd de natuurlijke schijfnummering hersteld worden voordat een installatie wordt gestart en die moet ook zo blijven. Als de schijven gewisseld moeten worden, dan moet dat op de moeilijke manier: maak de systeemkast open en verplaats jumpers en kabels.


2.6.2. Slices maken met FDisk

Opmerking: Wijzigingen die op dit punt gemaakt worden, worden niet weggeschreven naar de schijf. Als er een fout gemaakt is kan opnieuw begonnen worden door via de menu's sysinstall te verlaten en het nog een keer te proberen of door U te toetsen kan de optie Undo gebruikt worden. Als alles te verwarrend is kan zelfs de computer uitgezet worden.

Na de keuze een standaardinstallatie te beginnen toont sysinstall het volgende bericht:

                                 Message
 In the next menu, you will need to set up a DOS-style ("fdisk")
 partitioning scheme for your hard disk. If you simply wish to devote
 all disk space to FreeBSD (overwriting anything else that might be on
 the disk(s) selected) then use the (A)ll command to select the default
 partitioning scheme followed by a (Q)uit. If you wish to allocate only
 free space to FreeBSD, move to a partition marked "unused" and use the
 (C)reate command.
                                [  OK  ]

                      [ Press enter or space ]

Toets Enter. Er wordt dan een lijst getoond met alle harde schijven die de kernel gevonden heeft bij het onderzoeken van de hardware. Figuur 2-13 toont een voorbeeld van een systeem met twee IDE-schijven. Ze heten ad0 en ad2.

Figuur 2-13. Schijf kiezen voor FDisk

Waarom staat ad1 niet in de lijst?

Stel er zitten twee IDE-schijven in een systeem, de eerste als master op de eerste IDE controller en de andere als master op de tweede IDE controller. Als FreeBSD deze zou nummeren zoals ze worden aangetroffen, als ad0 en ad1, dan zou het allemaal werken.

Maar als dan een derde schijf wordt toegevoegd, als slave op de eerste IDE controller, dan wordt die ad1 en de vorige ad1 wordt dan ad2. Omdat apparaatnamen (zoals ad1s1a) in gebruik zijn om bestandssystemen te vinden, lijken bestandssystemen niet meer in orde zijn en moeten de FreeBSD instellingen gewijzigd worden.

Om dit te omzeilen kan de kernel zo ingesteld worden dat de IDE schijven namen krijgen gebaseerd op hun lokatie en niet in de volgorde waarin ze gevonden worden. Met dat schema wordt de masterschijf op de tweede IDE controller altijd ad2, ook als er geen ad0 of ad1 apparaten zijn.

Dit is de standaardinstelling van de FreeBSD kernel, vandaar dat dit scherm ad0 en ad2 laat zien. De machine waarop deze schermafdruk gemaakt is had IDE schijven op beide masterkanalen van de IDE controllers en geen schijven op de slavekanalen.

Nu kan de schijf waarop de FreeBSD installatie moet komen worden geselecteerd. Druk daarna op [ OK ]. FDisk start op met een scherm vergelijkbaar met Figuur 2-14.

Het scherm van FDisk bestaat uit drie delen.

Het eerste deel, de eerste twee regels van het scherm, toont de details zien van de selecteerde schijf, inclusief de FreeBSD naam, de schijfgeometrie en de totale grootte van de schijf.

Het tweede deel laat de slices zien die momenteel op de schijf aanwezig zijn, waar ze beginnen en eindigen, hoe groot ze zijn en de namen die FreeBSD ze geeft, hun omschrijving en subtype. In dit voorbeeld zijn twee kleine ongebruikte delen te zien, die een afspiegeling zijn van de schijfindeling op het systeem. Het laat ook een grote FAT-slice zien, die bijna zeker zichtbaar is als C: in MS-DOS of Windows, en een extended deel, dat de andere schijfletters kan bevatten voor MS-DOS of Windows.

Het derde deel toont de commando's zien die beschikbaar zijn in FDisk.

Figuur 2-14. Typische FDisk partities voor wijzigen

De volgende stap hangt af van hoe de schijf moet worden opgedeeld.

Als de hele schijf voor FreeBSD wordt gebruikt (waardoor alle andere data op die schijf verwijderd wordt als later in de procedure met sysinstall wordt bevestigd dat de installatie verder kan gaan) toets dan A, de optie Use Entire Disk. De bestaande delen worden verwijderd en daarvoor in de plaats komt een klein gebied, dat als unused wordt aangegeven (alweer een afspiegeling van de PC schijfopmaak) en dan een groot deel voor FreeBSD. Hierna dient het nieuwe FreeBSD-deel met de pijltjestoetsen geselecteerd te worden en daarna kan S ingetoetst worden om het deel bootable te maken. Het scherm ziet er dan ongeveer uit als in Figuur 2-15. Let op de A in de kolom Flags. Deze geeft aan dat dit deel actief is en er van opgestart wordt.

Als er ruimte voor FreeBSD gemaakt wordt door een bestaande slice te verwijderen, dan moet dat deel geselecteerd worden met de pijltjestoetsen en kan vervolgens op D gedrukt worden. Daarna kan C getoetst worden en wordt er gevraagd hoe groot het deel moet zijn. Geef het gewenste getal in en druk op Enter. De standaardwaarde in dit invoervak is het grootst mogelijke deel dat gemaakt kan worden. Dat kan de grootst mogelijke aaneengesloten ruimte op de harde schijf zijn of de hele schijf.

Als er al ruimte gemaakt is voor FreeBSD (bijvoorbeeld met een programma als PartitionMagic), dan kan de optie C gebruikt worden om een nieuw deel te maken. Opnieuw komt de vraag naar de grootte van het gebied dat aangemaakt moet worden.

Figuur 2-15. FDisk partitie voor een hele schijf

Toets na afronding Q. De wijzigingen worden bewaard in sysinstall, maar worden nog niet op de schijf weggeschreven.


2.6.3. Bootmanager installeren

Hierna is het mogelijk een bootmanager te installeren. Het installeren van de FreeBSD bootmanager is verstandig als:

  • Er meer dan één schijf in een systeem zit en FreeBSD op een andere dan de eerste schijf wordt geïnstalleerd;

  • FreeBSD geïnstalleerd wordt naast een ander besturingssysteem op dezelfde schijf en er bij het opstarten van de computer gekozen moet worden of FreeBSD of het andere besturingssysteem wordt gestart.

Als FreeBSD het enige besturingssysteem op een computer wordt en het is geïnstalleerd op de eerste harde schijf, dan volstaat de Standard bootmanager. Kies None als een bootmanager van een derde partij wordt gebruikt die in staat is om FreeBSD te starten.

Maak de keuze en druk op Enter.

Figuur 2-16. Sysinstall menu Boot Manager

Het hulpscherm, bereikbaar via F1, beschrijft de problemen die mogelijk zijn als de harde schijf voor meerdere besturingssystemen gebruikt gaat worden.


2.6.4. Slices maken op een andere schijf

Als er meer dan één schijf is komt het programma terug in het scherm “Select Drives” na het installeren van de bootmanager. Als FreeBSD wordt geïnstalleerd op meerdere schijven, selecteer dan een andere schijf en herhaal het indelen van de schijf met FDisk.

Belangrijk: Als FreeBSD wordt geïnstalleerd op een andere dan de eerste schijf, dan moet de FreeBSD bootmanager geïnstalleerd worden op beide schijven.

Figuur 2-17. Schijf selecteren verlaten

Met Tab wordt gewisseld tussen de laatst geselecteerde schijf, [ OK ] en [ Cancel ].

Druk één keer op Tab om [ OK ] actief te maken en druk dan op Enter om door te gaan met de installatie.


2.6.5. Partities maken met Disklabel

Nu moeten er slices in elke zojuist aangemaakte partitie aangemaakt worden. Onthoud dat elke partitie een letter heeft van a tot en met h en dat partities b, c en d een betekenis hebben die gehonoreerd moet worden.

Bepaalde programma's hebben voordeel van specifieke partitieschema's, met name als partities worden aanmaakt over meerdere schijven. Maar voor nu, als eerste FreeBSD installatie, is het niet zo van belang hoe de schijf wordt gepartitioneerd. Het is belangrijker dat FreeBSD wordt geïnstalleert en geleerd wordt hoe ermee te werken. FreeBSD kan altijd opnieuw geïnstalleerd worden om een partitieschema te wijzigen als er meer bekendheid is met het besturingssysteem.

Het onderstaande schema heeft vier partities. Eén als swapgebied en drie voor bestandssystemen.

Tabel 2-2. Partitieopmaak voor de eerste schijf

Partitie Bestandssysteem Grootte Omschrijving
a / 512 MB Dit is het root-bestandssysteem. Elk ander bestandssyteem wordt ergens in dit systeem aangekoppeld. 512 MB is een redelijke grootte voor dit bestandssysteem. Er wordt niet al te veel data in opgeslagen, want een normale FreeBSD installatie slaat hier ongeveer 128 MB aan gegevens op. De rest van de ruimte is voor tijdelijke gegevens en laat extra ruimte over voor het geval nieuwere versies van FreeBSD meer ruimte nodig hebben in /.
b N/A 2-3 x RAM

De swapruimte van een systeem wordt op de b-partitie opgeslagen. De keuze van de juiste hoeveelheid swapruimte is een beetje een kunst. Een goede vuistregel is dat swapruimte twee of drie keer de hoeveelheid intern geheugen (RAM) moet zijn. Er moet minstens 64 MB aan swap zijn, dus als er minder dan 32 MB RAM in een computer zit, zet dan de swapruimte op 64 MB.

Als er meer dan één schijf in een computer zit, dan kan er op iedere schijf swapruimte gemaakt worden. FreeBSD gebruikt dan elke schijf als swap, wat effectief de snelheid van het swappen verhoogt. Bereken in dat geval de totale hoeveelheid swap die nodig is (bijv. 128 MB) en deel dat door het aantal schijven dat aanwezig is (bijvoorbeeld twee schijven) om de hoeveelheid swap per schijf te bepalen, in dit voorbeeld 64 MB swapruimte per schijf.

e /var 256 MB tot 1024 MB De map /var bevat bestanden die constant veranderen: logboekbestanden en andere administratieve bestanden. Veel van deze bestanden worden intensief gelezen of beschreven gedurende het dagelijks draaien van FreeBSD. Door deze bestanden op een apart bestandssysteem te zetten heeft FreeBSD de mogelijkheid de toegang tot deze bestanden te optimaliseren, zonder invloed te hebben op bestanden in andere map die niet zo'n toegangspatroon hebben.
f /usr Overige schijfruimte (minstens 2 GB) Alle andere bestanden worden gewoonlijk opgeslagen in /usr en submappen.

WaarschuwingDe bovenstaande waardes dienen als voorbeeld en dienen alleen door ervaren gebruikers gebruikt te worden. Gebruikers worden aangeraden om de automatische partitie-indeling genaamd Auto Defaultsvan de partitiebewerker van FreeBSD te gebruiken.

Als FreeBSD wordt geïnstalleerd op meer dan één schijf dan moeten ook partities aangemaakt worden op de andere slices die zijn ingesteld. De meest eenvoudige manier om dat te doen is het aanmaken van twee partities op elke schijf: een als swap en een voor een bestandssysteem.

Tabel 2-3. Partitieopmaak voor volgende schijven

Partitie Bestandssysteem Grootte Omschrijving
b N/A Zie omschrijving Zoals beschreven kan swapruimte over alle schijven verdeeld worden. Ook al is de a partitie vrij, de conventie schrijft voor dat de swapruimte op partitie b staat.
e /diskn Overige schijfruimte De overige schijfruimte wordt gebruikt voor één grote partitie. Dit kan gemakkelijk op de a-partitie, in plaats van de e-partitie. De conventie schrijft echter voor dat partitie a op een slice is gereserveerd voor het bestandssysteem dat de root (/) van het bestandssysteem is. Deze conventie hoeft niet gevolgd te worden, maar sysinstall doet dat wel, dus als de conventie wordt nageleefd wordt de installatie iets schoner. Er kan gekozen worden om dit bestandssysteem waar dan ook te mounten. Dit voorbeeld suggereert dat het wordt aangekoppeld als /diskn, waarbij n een getal is dat verandert voor elke schijf. Er kan natuurlijk ook een ander schema worden aanhouden als dat de voorkeur heeft.

Na het kiezen van de partitieopmaak kunnen ze worden aangemaakt met sysinstall. Dan verschijnt het volgende bericht:

                                 Message
 Now, you need to create BSD partitions inside of the fdisk
 partition(s) just created. If you have a reasonable amount of disk
 space (200MB or more) and don't have any special requirements, simply
 use the (A)uto command to allocate space automatically. If you have
 more specific needs or just don't care for the layout chosen by
 (A)uto, press F1 for more information on manual layout.

                                [  OK  ]
                          [ Press enter or space ]

Druk op Enter om de FreeBSD partitie-editor, Disklabel te starten.

Figuur 2-18 toont het scherm als Disklabel opstart. Het scherm bestaat uit drie delen.

De eerste paar regels tonen de naam van de actieve schijf en het gebied dat de partities bevat die worden aangemaakt (op dit punt noemt Disklabel dit de Partitienaam in plaats van de slicenaam). Dit scherm toont ook de hoeveelheid vrije ruimte in de slice. Dat is de gereserveerde ruimte in de slice die nog niet aan een partitie is toegewezen.

Het middelste deel toont de partities die aangemaakt zijn, de naam van het bestandssysteem dat elke partitie bevat, de grootte en enkele opties betreffende het aanmaken van het bestandssysteem.

Het onderste deel van het scherm toont de toetsaanslagen die geldig zijn in Disklabel.

Figuur 2-18. Sysinstall Disklabel Editor

Disklabel kan automatisch de partities aanmaken en ze de standaardgrootte geven. De standaardgroottes worden met behulp van een intern algoritme om de partitiegrootte te bepalen gebaseerd op de schijfgrootte berekend. Dit kan door op A te drukken. Dan verschijnt een scherm zoals in Figuur 2-19. Afhankelijk van de grootte van de schrijf die wordt gebruikt zijn de standaardwaarden wel of niet van toepassing. Dit maakt niets uit, omdat de standaardwaarden niet geaccepteerd hoeven te worden.

Opmerking: De standaard partitionering wijst /tmp zijn eigen partitie toe en is die geen onderdeel meer van de partitie /. Dit voorkomt het vollopen van de partitie / met tijdelijke bestanden.

Figuur 2-19. Sysinstall Disklabel Editor met standaardwaarden

Als er gekozen is om niet de standaard partities te gebruiken en ze te vervangen door een eigen indeling, gebruik dan de pijltjestoetsen om de eerste partitie te selecteren en druk dan op D om deze te verwijderen. Herhaal dit om alle aanbevolen partities te verwijderen.

Selecteer het juiste schijfdeel aan de bovenkant van het scherm om de eerste partitie aan te maken (a, gemount als / - root) en druk op C. Een dialoogscherm verschijnt met de vraag hoe groot de nieuwe partitie moet zijn (zoals te zien in Figuur 2-20). De grootte kan opgeven worden in schijfblokken of als een getal gevolgd door M voor megabytes, G voor gigabytes of C voor cylinders.

Figuur 2-20. Vrije ruimte voor de rootpartitie

De standaardgrootte maakt een partitie aan zo groot als de rest van het schijfdeel. Als de partitiegroottes worden gebruikt als beschreven in het eerdere voorbeeld, verwijder dan het reeds ingevulde getal met Backspace en type 512M, zoals te zien in Figuur 2-21. Druk dan op [ OK ].

Figuur 2-21. Grootte van de rootpartitie wijzigen

Als de grootte van een partitie gekozen is, wordt gevraagd of deze partitie een bestandssysteem of een wisselbestand (swap) bevat. Deze dialoog is te zien in Figuur 2-22. Deze eerste partitie bevat een bestandssysteem, dus controleer of FS geselecteerd is en druk op Enter.

Figuur 2-22. Type van de rootpartitie kiezen

Omdat een bestandssysteem wordt aangemaakt moet disklabel verteld worden waar het bestandssysteem gemount moet worden. Het dialoogscherm is te zien in Figuur 2-23. Het mountpunt van het root-bestandssysteem is /, dus type / en druk dan op Enter.

Figuur 2-23. Root mountpunt kiezen

Het scherm wordt dan bijgewerkt met de nieuw aangemaakte partitie. Deze stappen moeten herhaald worden voor de andere partities. Als een wisselbestandpartitie wordt aanmaakt, wordt niet gevraagd naar het mountpunt, want wisselbestanden worden nooit gemount. Als de laatste partitie is aanmaakt, /usr, kan de aangegeven grootte blijven staan, want dat is de rest van de schijf.

Het uiteindelijke FreeBSD Disklabel Editor scherm kan kan eruit zien als Figuur 2-24, maar de waarden kunnen afwijken. Druk op Q om af te sluiten.

Figuur 2-24. Sysinstall Disklabel Editor


2.7. Wat installeren

2.7.1. Distributieset selecteren

De keuze van de distributieset om te installeren hangt af van het gebruiksdoel van een systeem en de beschikbare schijfruimte. De voorgedefiniëerde opties variëren van het installeren van kleinste mogelijke installatie tot “alles”. Nieuwelingen in UNIX en/of FreeBSD kiezen bijna zeker één van voorgedefinieerde opties. Het aanpassen van de distributieset is typisch iets voor de meer ervaren gebruikers.

Druk op F1 voor meer informatie over de distributiesets en wat ze bevatten. Na het bekijken van de informatie geeft het toetsen van Enter opnieuw het menu Select Distributions weer.

Als een grafische gebruikersinterface gewenst is, kies dan een distributieset waar een X voor staat. Het instellen van de X-server en de selectie van een standaard bureaublad wordt na de installatie van FreeBSD uitgevoerd. Meer informatie over het instellen van een X-server staat beschreven in Hoofdstuk 5.

Xorg is de standaardversie van X11 die wordt geïnstalleerd.

Als het wenselijk is een aangepaste kernel te compileren, kies dan een optie die de broncode bevat. Meer informatie over de redenen om een aangepaste kernel te bouwen en hoe dat moet staat in Hoofdstuk 8.

Vanzelfsprekend is het meest uitgebreide systeem het systeem dat alles omvat. Als er genoeg schijfruimte is, kies dan met de pijltjestoetsen All, zoals in Figuur 2-25 en druk op Enter. Als schijfruimte een zorg is, overweeg dan een optie die meer toegespitst is op de gewenste situatie. De perfecte keuze maken is niet nodig, naderhand kunnen distributies worden toevoegd.

Figuur 2-25. Distributies kiezen


2.7.2. Portscollectie installeren

Na het kiezen van de gewenste distributie komt de vraag of de FreeBSD Portscollectie geïnstalleerd moet worden. De Portscollectie is een gemakkelijke en handige manier om software te installeren. De Portscollectie bevat niet de broncode die nodig is om de software te compileren. In plaats daarvan is het een verzameling bestanden die het downloaden, compileren en installeren van software automatiseert. In Hoofdstuk 4 wordt beschreven hoe de Portscollectie gebruikt kan worden.

Het installatieprogramma controleert niet of er genoeg schijfruimte is. Deze optie dient alleen gekozen te worden als er voldoende schijfruimte is. In FreeBSD 7.2 neemt de Portscollectie ongeveer 417 MB schijfruimte in. Het is verstandig om aan te nemen dat in recentere versies van FreeBSD meer ruimte nodig is.

                         User Confirmation Requested
 Would you like to install the FreeBSD ports collection?

 This will give you ready access to over 20,000 ported software packages,
 at a cost of around 417 MB of disk space when "clean" and possibly much
 more than that if a lot of the distribution tarballs are loaded
 (unless you have the extra CDs from a FreeBSD CD/DVD distribution
 available and can mount it on /cdrom, in which case this is far less
 of a problem).

 The ports collection is a very valuable resource and well worth having
 on your /usr partition, so it is advisable to say Yes to this option.

 For more information on the ports collection & the latest ports,
 visit:
     http://www.FreeBSD.org/ports

                              [ Yes ]     No

Selecteer [ Yes ] met de pijltjestoetsen om de Portscollectie te installeren of [ No ] om deze optie over te slaan. Druk op Enter om verder te gaan. Het menu Choose Distributions wordt opnieuw getoond.

Figuur 2-26. Distributies kiezen

Als alle keuzes gemaakt zijn, selecteer dan Exit met de pijltjestoetsen, zorg ervoor dat [ OK ] actief is en druk op Enter om verder te gaan.


2.8. Installatiemedia kiezen

Als wordt geïnstalleerd vanaf een cd-rom of DVD kies dan met de pijltjestoetsen de optie Install from a FreeBSD CD/DVD. Zorg ervoor dat [ OK ] actief is en druk op Enter om verder te gaan.

Kies voor andere installatiemethodes de desbetreffende optie en volg de aanwijzingen.

Druk op F1 om de online help voor de installatiemedia te lezen. Druk op Enter om terug te gaan naar het menu mediaselectie.

Figuur 2-27. Mediaselectie


2.8.1. FTP installatiemethoden

Er zijn drie manieren van installeren via FTP: active FTP, passive FTP of via een HTTP proxy.

Actieve FTP: Install from an FTP server

Deze optie zorgt ervoor dat alle FTP acties gebruik maken van de “Active” modus. Dit werkt niet door firewalls, maar werkt wel met oudere FTP-servers die de passieve modus niet ondersteunen. Als een verbinding blijft hangen met de passieve modus probeer dan de actieve modus!

Passieve FTP: Install from an FTP server through a firewall

Deze optie geeft sysinstall aan gebruik te maken van de “Passive” modus voor al het FTP-verkeer. Dit zorgt ervoor dat verbindingen door firewalls heen kunnen die inkomende verbindingen niet toelaten op willekeurige TCP-poorten.

FTP via een HTTP proxy: Install from an FTP server through a http proxy

Deze optie geeft sysinstall aan gebruik te maken van het HTTP protocol (zoals een webbrowser) om verbinding te maken met een proxy voor alle FTP verbindingen. De proxy vertaalt de verzoeken en stuurt ze naar de FTP server. Dit zorgt ervoor dat verbindingen door firewalls heen kunnen die helemaal geen FTP toestaan, maar wel een HTTP proxy hebben. In dit geval moet naast de FTP-server ook een HTTP proxy opgegeven worden.

Bij het gebruik van een proxy FTP-server moet meestal de server waar uiteindelijk verbinding mee gemaakt moet worden onderdeel zijn van de gebruikersnaam, na het teken “@”. De proxy server “imiteert” dan de echte server. Zo kan bijvoorbeeld geïnstalleerd worden vanaf ftp.FreeBSD.org, gebruikmakend van proxy FTP-server foo.example.com, luisterend op poort 1234.

In dit geval kan in het menu opties menu als FTP gebruikersnaam ftp@ftp.FreeBSD.org ingevuld worden en als wachtwoord een emailadres. Als installatiemedium kan FTP ingevuld worden (of passieve FTP als de gebruikte proxy het ondersteunt) en als URL ftp://foo.example.com:1234/pub/FreeBSD.

Omdat /pub/FreeBSD van ftp.FreeBSD.org via de proxy van foo.example.com wordt benaderd kan vanaf die machine geïnstalleerd worden (die de bestanden ophaalt van ftp.FreeBSD.org als het installatieprogramma erom vraagt).


2.9. De installatie bevestigen

Nu kan de installatie verder gaan. Dit is ook de laatste mogelijkheid om de installatie te beëindigen ter voorkoming van wijzigingen op de harde schijf.

                       User Confirmation Requested
 Last Chance! Are you SURE you want to continue the installation?

 If you're running this on a disk with data you wish to save then WE
 STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!

 We can take no responsibility for lost disk contents!

                             [ Yes ]    No

Kies [ Yes ] en druk op Enter om verder te gaan.

De duur van de installatie hangt af van de gekozen distributie, het installatiemedium en de snelheid van de computer. Er wordt een serie berichten getoond die de voortgang aangeeft.

De installatie is klaar als het volgende bericht wordt getoond:

                               Message

Congratulations! You now have FreeBSD installed on your system.

We will now move on to the final configuration questions.
For any option you do not wish to configure, simply select No.

If you wish to re-enter this utility after the system is up, you may
do so by typing: /usr/sbin/sysinstall.

                                 [ OK ]

                      [  Press enter or space  ]

Druk op Enter om verder te gaan met instellingen na de installatie.

Kiezen voor [ No ] en bevestigen met Enter beëindigt de installatie en er worden geen wijzigingen aan het systeem gemaakt. Het volgende bericht verschijnt:

                                Message
Installation complete with some errors.  You may wish to scroll
through the debugging messages on VTY1 with the scroll-lock feature.
You can also choose "No" at the next prompt and go back into the
installation menus to retry whichever operations have failed.

                                 [ OK ]

Het bovenstaande bericht verschijnt omdat er niets is geïnstalleerd. Kies Enter om terug te gaan naar het menu Main Installation en de installatie te verlaten.


2.10. Instellingen na de installatie

Na het installeren volgt de instelling van diverse opties. Een optie kan worden ingesteld door opnieuw naar de instellingenopties te gaan voordat de nieuwe FreeBSD-installatie wordt gestart of door na de installatie sysinstall te gebruiken en te kiezen voor Configure.


2.10.1. Netwerkapparaten instellen

Als al eerder PPP is ingesteld voor een FTP-installatie verschijnt het volgende scherm niet en kan dit onderdeel worden geïnstalleerd zoals eerder beschreven.

Gedetailleerde informatie over lokale netwerken (LAN's) en het instellen van FreeBSD als een gateway of router staat in het hoofdstuk Netwerken voor Gevorderden.

                      User Confirmation Requested
   Would you like to configure any Ethernet or SLIP/PPP network devices?

                             [ Yes ]   No

Kies [ Yes ] en druk op Enter om een netwerkapparaat in te stellen. Kies anders [ No ] om verder te gaan.

Figuur 2-28. Ethernetapparaat kiezen

Kies de in te stellen interface met de pijltjestoetsen en druk op Enter.

                      User Confirmation Requested
       Do you want to try IPv6 configuration of the interface?

                              Yes   [ No ]

In dit gesloten lokale netwerk was het huidige type Internet protocol (IPv4) toereikend en dus werd [ No ] geselecteerd met de pijltjestoetsen en kon met Enter verder gegaan worden.

Als er verbinding is met een bestaand IPv6 netwerk met een RA server, kies dan [ Yes ] en druk op Enter. Zoeken naar RA servers duurt een paar seconden.

                             User Confirmation Requested
        Do you want to try DHCP configuration of the interface?

                              Yes   [ No ]

Kies [ No ] met de pijltjestoetsen en druk op Enter als DHCP (Dynamic Host Configuration Protocol) niet nodig is.

[ Yes ] kiezen start dhclient op en als het goed gaat stelt het netwerk zichzelf in. In Paragraaf 29.5 staat meer informatie.

Het volgende scherm met netwerkinstellingen toont de instellingen van een Ethernetapparaat van een systeem dat als gateway voor een lokaal netwerk functioneert.

Figuur 2-29. Netwerkinstellingen voor ed0

Met Tab kunnen de velden geselecteerd worden waarna de juiste informatie ingevuld kan worden:

Host

De “fully-qualified hostname”, in dit geval k6-2.example.com.

Domain

De naam van het domein waar toe de machine behoort, in dit geval example.com.

IPv4 Gateway

Het IP-adres van de host die pakketjes doorstuurt naar niet-lokale bestemmingen. Dit moet ingesteld worden als een machine een onderdeel is van netwerk. Laat dit veld leeg als de machine de gateway is naar het Internet voor het netwerk. De IPv4 Gateway staat ook bekend onder de naam default gateway of default route.

Name server

Het IP-adres van de lokale DNS server. Er is op dit gesloten lokale netwerk geen DNS server, dus wordt het IP-adres van de DNS server van de provider gebruikt (208.163.10.2).

IPv4 Address

Het IP-adres dat gebruikt moet worden voor deze interface (192.168.0.1).

Netmask

Het adresblok dat gebruikt wordt door het lokale netwerk is 192.168.0.0 - 192.168.255.255 met netmasker 255.255.255.0.

Extra options to ifconfig

Elke interface-specifieke optie voor ifconfig die toegevoegd moet worden. In dit geval waren er geen.

Gebruik Tab om [ OK ] te selecteren als de instellingen gereed zijn en druk op Enter.

                      User Confirmation Requested
        Would you like to Bring Up the ed0 interface right now?

                             [ Yes ]   No

Het kiezen van [ Yes ] en het drukken op Enter maakt een machine onderdeel van een netwerk en daarna is hij klaar voor gebruik. Dit heeft echter nog weinig zin, omdat de machine nog opnieuw opgestart moet worden.


2.10.2. Als gateway instellen

                       User Confirmation Requested
       Do you want this machine to function as a network gateway?

                              [ Yes ]    No

Als de machine gateway voor een lokaal netwerk is en pakketjes doorstuurt naar andere machines kies dan [ Yes ] en druk op Enter. Als de machine alleen host op een netwerk is, kies dan [ No ] en druk op Enter om verder te gaan.


2.10.3. Internetdiensten instellen

                      User Confirmation Requested
Do you want to configure inetd and the network services that it provides?

                               Yes   [ No ]

Door het selecteren van [ No ] worden diverse diensten als telnetd niet aangezet. Dat betekent dat gebruikers op afstand niet met telnet bij de machine kunnen. Lokale gebruikers kunnen wel met telnet naar andere machines.

Deze diensten kunnen na de installatie worden aangezet door /etc/inetd.conf te wijzigen met een editor naar keuze. In Paragraaf 29.2.1 staat meer informatie.

Selecteer [ Yes ] om deze diensten in te stellen tijdens de installatie. Er wordt een extra bevestiging getoond:

                      User Confirmation Requested
The Internet Super Server (inetd) allows a number of simple Internet
services to be enabled, including finger, ftp and telnetd.  Enabling
these services may increase risk of security problems by increasing
the exposure of your system.

With this in mind, do you wish to enable inetd?

                             [ Yes ]   No

Selecteer [ Yes ] om verder te gaan.

                      User Confirmation Requested
inetd(8) relies on its configuration file, /etc/inetd.conf, to determine
which of its Internet services will be available.  The default FreeBSD
inetd.conf(5) leaves all services disabled by default, so they must be
specifically enabled in the configuration file before they will
function, even once inetd(8) is enabled.  Note that services for
IPv6 must be separately enabled from IPv4 services.

Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to
use the current settings.

                             [ Yes ]   No

Het selecteren van [ Yes ] geeft de mogelijkheid diensten toe te voegen door het teken # aan het begin van een regel te verwijderen.

Figuur 2-30. inetd.conf bewerken

Druk na het toevoegen van de gewenste diensten, op Esc om het menu te krijgen waarin de wijzigingen opgeslagen kunnen worden en de editor verlaten kan worden.


2.10.4. SSH-login aanzetten

                      User Confirmation Requested
                 Would you like to enable SSH login?
                          Yes        [  No  ]

Het kiezen van [ Yes ] zal sshd(8) aanzetten, het daemon-programma voor OpenSSH. Dit zal beveiligde toegang op afstand tot uw machine toestaan. Zie voor meer informatie over OpenSSH Paragraaf 14.11.


2.10.5. Anonieme FTP

                      User Confirmation Requested
 Do you want to have anonymous FTP access to this machine?

                              Yes    [ No ]

2.10.5.1. Anonieme FTP weigeren

Het selecteren van de standaardwaarde [ No ] en het drukken op Enter stelt gebruikers met toegang en een wachtwoord nog steeds in staat om de machine via FTP te benaderen.


2.10.5.2. Anonieme FTP toestaan

Als anonieme FTP wordt toegestaan kan iedereen de machine met FTP benaderen. De gevolgen voor de veiligheid van de machine moeten overwogen worden voordat deze optie wordt ingeschakeld. Meer informatie over beveiliging staat in Hoofdstuk 14.

Selecteer met de pijltjestoetsen [ Yes ] om anonieme FTP toe te staan en druk op Enter. Een aanvullende bevestiging zal verschijnen:

                       User Confirmation Requested
Anonymous FTP permits un-authenticated users to connect to the system
FTP server, if FTP service is enabled.  Anonymous users are
restricted to a specific subset of the file system, and the default
configuration provides a drop-box incoming directory to which uploads
are permitted.  You must separately enable both inetd(8), and enable
ftpd(8) in inetd.conf(5) for FTP services to be available.  If you
did not do so earlier, you will have the opportunity to enable inetd(8)
again later.

If you want the server to be read-only you should leave the upload
directory option empty and add the -r command-line option to ftpd(8)
in inetd.conf(5)

Do you wish to continue configuring anonymous FTP?

                         [ Yes ]         No

Dit bericht informeert u dat de FTP-dienst ook in /etc/inetd.conf aangezet moet worden als u anonieme FTP-verbindingen wilt toestaan, zie Paragraaf 2.10.3. Kies [ Yes ] en druk op Enter om verder te gaan; het volgende scherm zal verschijnen:

Figuur 2-31. Standaard anonieme FTP instellingen

Gebruik Tab om de informatievelden te selecteren en de juiste informatie in te vullen:

UID

De gebruikers-ID die u aan de anonieme FTP-gebruiker wilt toekennen. Alle geuploade bestanden zullen eigendom zijn van deze ID.

Group

In welke groep de anonieme FTP-gebruiker dient te zitten.

Comment

Een string die deze gebruiker in /etc/passwd beschrijft.

FTP Root Directory

Waar de bestanden beschikbaar voor anonieme FTP worden bewaard.

Upload Subdirectory

Waar bestanden geupload door anonieme FTP-gebruikers naar toe gaan.

De startmap voor FTP wordt standaard ingesteld op /var. Als daar niet genoeg ruimte is voor de geschatte FTP-wensen dan kan /usr gebruikt worden door de waarde FTP root directory op /usr/ftp in te stellen.

Druk op Enter om verder te gaan als de instellingen gemaakt zijn.

                          User Confirmation Requested
         Create a welcome message file for anonymous FTP users?

                              [ Yes ]    No

Na het kiezen van [ Yes ] en op Enter drukken opent zich een editor waarin het welkomstbericht bewerkt kan worden.

Figuur 2-32. FTP welkomstbericht bewerken

De bovenstaande editor is ee. Volg de instructies om het bericht te wijzigen of wijzig het bericht later door gebruik te maken van een editor naar keuze. Let op de bestandsnaam en lokatie onderaan het scherm van de editor.

Druk op Esc en een pop-up menu verschijnt met als standaardoptie a) leave editor. Druk op Enter om de editor te verlaten en verder te gaan. Druk nog een keer op Enter om de eventuele wijzigingen te bewaren.


2.10.6. Network File System instellen

Network File System (NFS) maakt het mogelijk bestanden te delen over een netwerk. Een machine kan worden ingesteld als server, client of beide. In Paragraaf 29.3 staat meer informatie.


2.10.6.1. NFS Server

                       User Confirmation Requested
 Do you want to configure this machine as an NFS server?

                              Yes    [ No ]

Kies [ No ] als er geen noodzaak is voor een Network File System server en druk op Enter.

Na het kiezen van [ Yes ] wordt een bericht getoond dat aangeeft dat er een betand exports moet worden gemaakt.

                               Message
Operating as an NFS server means that you must first configure an
/etc/exports file to indicate which hosts are allowed certain kinds of
access to your local filesystems.
Press [Enter] now to invoke an editor on /etc/exports
                               [ OK ]

Druk op Enter om verder te gaan. Een editor start om exports te maken en te bewerken.

Figuur 2-33. exports bewerken

Volg de instructies om een te exporteren bestandssysteem toe te voegen of doe het later met een editor naar keuze. Let op de bestandsnaam en lokatie onderaan het scherm van de editor.

Druk op Esc en een pop-up menu verschijnt met als standaardoptie a) leave editor. Druk op Enter om de editor te verlaten en verder te gaan.


2.10.6.2. NFS Client

De NFS client maakt het mogelijk om NFS servers te benaderen.

                       User Confirmation Requested
 Do you want to configure this machine as an NFS client?

                              Yes   [ No ]

Kies met de pijltjestoetsen de optie [ Yes ] of [ No ] en druk op Enter.


2.10.7. Systeemconsole instellen

Er is een aantal opties beschikbaar om de systeemconsole in aan te passen.

                      User Confirmation Requested
       Would you like to customize your system console settings?

                              [ Yes ]  No

Om de opties te bekijken en in te stellen, kies [ Yes ] en druk op Enter.

Figuur 2-34. Systeemconsole instellingen

Een gebruikelijke optie is de schermbeveiliging. Gebruik de pijltjestoetsen om Saver te selecteren en druk op Enter.

Figuur 2-35. Schermbeveiligingsopties

Kies met de pijltjestoetsen de gewenste schermbeveiliging en druk op Enter. Het instellingenmenu System Console verschijnt weer.

De standaard activeringstijd is 300 seconden. Kies voor het wijzigen van de activeringstijd weer Saver. Kies in het optiemenu Screen Saver met de pijltjestoetsen Timeout en druk op Enter. Een pop-up verschijnt:

Figuur 2-36. Schermbeveiliging activeringstijd

Wijzig de waarde, selecteer [ OK ] en druk op Enter om terug te gaan naar het instellingenmenu System Console.

Figuur 2-37. Systeemconsole instellingen verlaten

Met het selecteren van Exit en drukken op Enter kan verdergegaan worden met de andere instellingen.


2.10.8. Tijdzone instellen

Het instellen van de tijdzone van een machine maakt het mogelijk om automatisch correcties door te voeren voor regionale tijdswijzigingen en het juist uitvoeren van andere tijdzone-afhankelijke functies.

Het voorbeeld toont een machine die staat in de oostelijke tijdzone van de Verenigde Staten. De keuze voor een specifiek systeem hangt af van de geografische locatie.

                      User Confirmation Requested
          Would you like to set this machine's time zone now?

                            [ Yes ]   No

Selecteer [ Yes ] en druk op Enter om de tijdzone in te stellen.

                       User Confirmation Requested
 Is this machine's CMOS clock set to UTC? If it is set to local time
 or you don't know, please choose NO here!

                              Yes   [ No ]

Kies [ Yes ] of [ No ] afhankelijk van de instellingen van de klok van de machine en druk op Enter.

Figuur 2-38. Regio instellen

Kies met de pijltjestoetsen de juiste regio en druk op Enter.

Figuur 2-39. Land kiezen

Kies met de pijltjestoetsen het juiste land en druk op Enter.

Figuur 2-40. Tijdzone kiezen

Kies met de pijltjestoetsen de juiste tijdzone en druk op Enter.

                            Confirmation
            Does the abbreviation 'EDT' look reasonable?

                            [ Yes ]   No

Bevestig dat de afkorting van de tijdzone juist is. Als die er goed uit ziet, druk dan op Enter om verder te gaan met de overige instellingen.


2.10.9. Linux compatibiliteit

                      User Confirmation Requested
          Would you like to enable Linux binary compatibility?

                            [ Yes ]   No

Selecteer [ Yes ] en druk op Enter als de mogelijkheid om Linux software te draaien op FreeBSD geactiveerd moet worden. Deze optie installeert de voor Linux compatibiliteit benodigde pakketten.

Als via FTP wordt geïnstalleerd, dan moet de machine verbonden zijn met Internet. Soms heeft een FTP-site niet alle distributies, zoals de Linux comptabiliteit, beschikbaar. Zonodig kan deze ook later geïnstalleerd worden.


2.10.10. Muisinstellingen

Deze optie geeft de mogelijkheid om tekst te kopiëren en te plakken in de console en programma's met een 3-knops muis. Als een 2-knops muis wordt gebruikt, ga dan naar de hulppagina moused(8) na de installatie voor de details over het emuleren van een 3-knops muis. Dit voorbeeld toont een niet-USB muisinstelling (zoals een PS/2 of seriële poort muis):

                      User Confirmation Requested
         Does this system have a PS/2, serial, or bus mouse?

                            [ Yes ]    No

Selecteer [ Yes ] voor een PS/2-, seriële of busmuis of [ No ] voor een USB-muis en druk op Enter.

Figuur 2-41. Muisprotocoltype selecteren

Gebruik de pijltjestoetsen om Type te selecteren en druk op Enter.

Figuur 2-42. Muisprotocol kiezen

De muis in dit voorbeeld is een PS/2-muis, dus de standaardoptie Auto was van toepassing. Selecteer met de pijltjestoetsen een andere optie om het protocol te wijzigen. Zorg ervoor dat [ OK ] geselecteerd is en druk op Enter om dit menu te verlaten.

Figuur 2-43. Muispoort instellen

Gebruik de pijltjestoetsen om Port te selecteren en druk op Enter.

Figuur 2-44. Muispoort instellen

Dit systeem heeft een PS/2 muis, dus de standaardoptie PS/2 was van toepassing. Gebruik de pijltjestoetsen en druk op Enter om de poort te wijzigen.

Figuur 2-45. Muisdaemon inschakelen

Gebruik tenslotte de pijltjestoetsen om Enable te selecteren en druk op Enter om de muisdaemon aan te zetten en te testen.

Figuur 2-46. Het testen van de muisdaemon

Beweeg de muis over het scherm en controleer of de cursor op de juiste manier reageert. Als dat in orde is, selecteer dan [ Yes ] en druk op Enter. Als het niet goed gaat, dan is de muis niet goed ingesteld. Kies dan [ No ] en probeer het met andere instellingen.

Kies met de pijltjestoetsen Exit en druk op Enter om terug te gaan naar het instellingenmenu.


2.10.11. Pakketten installeren

Pakketten zijn voorgebouwde binaire bestanden en zijn een gemakkelijke manier om software te installeren.

De installatie van één pakket wordt als voorbeeld getoond. Er kunnen nog meer pakketten geïnstalleerd worden als dat wenselijk is. Na de installatie kan sysinstall gebruikt worden om extra pakketten te installeren.

                     User Confirmation Requested
 The FreeBSD package collection is a collection of hundreds of
 ready-to-run applications, from text editors to games to WEB servers
 and more. Would you like to browse the collection now?

                            [ Yes ]   No

Na het kiezen van [ Yes ] en drukken op Enter verschijnt het menu pakketkeuze:

Figuur 2-47. Pakketcategorie kiezen

Alleen pakketten die aanwezig zijn op het huidige installatiemedium zijn beschikbaar voor installatie op dat moment.

Alle beschikbare pakketten worden getoond na het selecteren van All, maar er kan ook een bepaalde categorie geselecteerd worden. De categorie kan gekozen worden met de pijltjestoetsen en door te bevestigen met Enter.

Dan wordt een menu getoond met alle beschikbare pakketten binnen de gemaakte selectie:

Figuur 2-48. Pakketten selecteren

De shell bash is geselecteerd. Er kunnen zoveel pakketten als wenselijk gekozen worden door ze te selecteren en op de spatiebalk te drukken. Een korte beschrijving van elk pakket verschijnt in de linker benedenhoek van het scherm.

Door te drukken op Tab wordt gewisseld tussen het laatst geselecteerde pakket, [ OK ] en [ Cancel ].

Druk na het selecteren van pakketten voor installatie één keer op Tab om naar [ OK ] te gaan en druk op Enter om terug te gaan naar het menu pakketkeuze.

De linker- en rechterpijltjestoets wisselen eveneens tussen [ OK ] en [ Cancel ]. Die manier kan ook gebruikt worden om [ OK ] te kiezen en op Enter te drukken om terug te gaan naar het menu pakketkeuze.

Figuur 2-49. Pakketten installeren

Gebruik Tab en de pijltjestoetsen om [ Install ] te selecteren en druk op Enter. Daarna moet de pakketinstallatie bevestigd worden:

Figuur 2-50. Pakketinstallatie bevestigen

Het selecteren van [ OK ] en drukken op Enter start de installatie. Er worden installatieberichten getoond tot alle installaties zijn afgerond. Maak een notitie van eventuele foutmeldingen.

Na het installeren van pakketten gaat het maken van de laatste instellingen verder. Als er geen pakketten geselecteerd zijn kan om terug te gaan naar het menu toch Install gekozen worden.


2.10.12. Gebruikers en groepen toevoegen

Er moet minstens één gebruiker toegevoegd worden tijdens de installatie, zodat het systeem gebruikt kan worden zonder als root aan te hoeven melden. De rootpartitie is in het algemeen klein en het draaien van programma's als root kan de schijfruimte snel vullen. Een groter gevaar wordt hieronder aangegeven:

                     User Confirmation Requested
 Would you like to add any initial user accounts to the system? Adding
 at least one account for yourself at this stage is suggested since
 working as the "root" user is dangerous (it is easy to do things which
 adversely affect the entire system).

                            [ Yes ]   No

Kies [ Yes ] en druk op Enter om verder te gaan met het toevoegen van een gebruiker.

Figuur 2-51. Gebruiker kiezen

Selecteer User met de pijltjestoetsen en druk op Enter.

Figuur 2-52. Gebruikersinformatie toevoegen

De volgende beschrijvingen verschijnen in het onderste deel van het scherm als opties zijn geselecteerd met Tab en kunnen behulpzaam zijn bij het invullen van de benodigde informatie:

Login ID

De aanmeldnaam van de nieuwe gebruiker (verplicht).

UID

Het numerieke ID van de gebruiker (laat leeg voor automatische toewijzing).

Group

De naam van de aanmeldgroep van de gebruiker (laat leeg voor automatische keuze).

Password

Het wachtwoord voor de gebruiker (vul dit zorgvuldig in!).

Full name

De volledige naam van de gebruiker (commentaar).

Member groups

De groepen waar de gebruiker in zit (waar hij toegangsrechten voor krijgt).

Home directory

De locatie van de thuismap van de gebruiker (laat leeg voor de standaardwaarde).

Login shell

De aanmeldshell voor de gebruiker (laat leeg voor de standaardwaarde, zoals /bin/sh).

De aanmeldshell is hier veranderd van /bin/sh in /usr/local/bin/bash om de shell bash te gebruiken die eerder is geïnstalleerd als pakket. Probeer geen shell op te geven die niet bestaat, want dan kan niet aangemeld worden. De meest gebruikte shell in de BSD-wereld is de C shell, die aangegeven kan worden als /bin/tcsh.

De gebruiker is ook toegevoegd aan de groep wheel om het mogelijk te maken superuser te worden met root-rechten.

Druk op [ OK ] als de instellingen zijn gemaakt om naar het menu User and Group Management terug te gaan:

Figuur 2-53. Gebruikers en groepbeheer

Op dit moment kunnen ook groepen worden toegevoegd als de specifieke behoeften bekend zijn. Dit kan ook door sysinstall (/stand/sysinstall in FreeBSD versies ouder dan 5.2) na de installatie te gebruiken.

Kies na het toevoegen van gebruikers Exit met de pijltjestoetsen en druk op Enter om verder te gaan met de installatie.


2.10.13. root wachtwoord instellen

                        Message
 Now you must set the system manager's password.
 This is the password you'll use to log in as "root".

                         [ OK ]

               [ Press enter or space ]

Druk op Enter om het root wachtwoord in te stellen.

Het wachtwoord moet twee keer gelijk ingegeven worden. Het is vast overbodig om op te merken dat het belangrijk is zorg te dragen voor een manier om het wachtwoord terug te vinden in het geval het wordt vergeten. Tijdens de ingave van het wachtwoord wordt dit niet weergegeven en er worden ook geen sterretjes getoond.

Changing local password for root.
New password:
Retype new password :

De installatie gaat verder als het wachtwoord succesvol is ingevoerd.


2.10.14. Install verlaten

Als het nodig is om extra netwerkapparaten toe te voegen of andere instellingen te maken, dan kan dat nu of later met sysinstall.

                     User Confirmation Requested
 Visit the general configuration menu for a chance to set any last
 options?

                              Yes   [ No ]

Selecteer [ No ] met de pijltjestoetsen en druk op Enter om terug te gaan naar het menu Main Installation.

Figuur 2-54. Install afsluiten

Selecteer [X Exit Install] met de pijltjestoetsen en druk op Enter. Er wordt om bevestiging gevraagd:

                     User Confirmation Requested
 Are you sure you wish to exit? The system will reboot (be sure to
 remove any floppies/CDs/DVDs from the drives).

                            [ Yes ]   No

Selecteer [ Yes ] en verwijder de diskette als er van een diskette is opgestart. Het cd-rom station is op slot tot de machine begint met herstarten. Het cd-rom station wordt dan vrijgegeven en de CD kan dan (snel) verwijderd worden.

Het systeem start op, dus let op eventuele foutberichten die getoond worden, zie Paragraaf 2.10.16 voor meer details.


2.10.15. Extra netwerkdiensten instellen

Geschreven door Tom Rhodes.

Het instellen van netwerkdiensten kan afschrikwekkend zijn voor nieuwe gebruikers zonder (voldoende) voorkennis op dit gebied. Netwerken, inclusief Internet, is van levensbelang voor alle moderne besturingssystemen, inclusief FreeBSD. Als gevolg daarvan is het handig enig begrip te hebben van de uitgebreide netwerkmogelijkheden van FreeBSD. Door dit tijdens de installatie te doen hebben gebruikers in elk geval enige kennis van de diverse netwerkdiensten die hen ter beschikking staan.

Netwerkdiensten zijn programma's die invoer accepteren vanaf het netwerk. Al het mogelijke is gedaan om er voor te zorgen dat deze programma's niets “schadelijks” doen. Helaas zijn programmeurs niet perfect en in de loop van de tijd zijn er fouten gevonden in netwerkdiensten die door aanvallers zijn uitgebuit om slechte dingen te doen. Het is belangrijk alleen netwerkdiensten aan te zetten die nodig zijn. Bij twijfel kan een netwerkdienst het beste niet ingeschakeld worden totdat duidelijk is dat de dienst wél nodig is. Diensten kunnen later alsnog ingeschakeld worden door sysinstall nog een keer te draaien of door middel van de mogelijkheden van het bestand /etc/rc.conf.

Het kiezen van de optie Networking toont het volgende menu:

Figuur 2-55. Netwerkinstellingen - bovenste opties

De eerste optie, Interfaces, is al behandeld in Paragraaf 2.10.1, dus die wordt overgeslagen.

Kies AMD voor het toevoegen van ondersteuning voor het BSD hulpprogramma voor automatisch mounten. Dit wordt meestal gebruikt in combinatie met het NFS protocol (zie verderop) voor het automatisch mounten van externe bestandssystemen. Hier zijn geen speciale instellingen nodig.

De volgende optie is AMD Flags. Als deze optie wordt selecteert komt er een pop-up menu waarin de specifieke AMD vlaggen kunnen worden ingesteld. Het menu bevat al een lijst standaardopties:

-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map

De optie -a bepaalt de standaard mountlocatie die is hier ingesteld op /.amd_mnt. De optie -l bepaalt het standaardbestand voor log, maar als syslogd wordt gebruikt, dan worden alle acties naar de systeemlogdaemon gestuurd. De map /host wordt gebruikt om een geëxporteerd bestandssysteem van een externe host te mounten, terwijl de map /net wordt gebruikt om een geëxporteerd bestandssysteem van een IP-adres te mounten. Het bestand /etc/amd.map bepaalt de standaardopties voor AMD exports.

De optie Anon FTP staat anonieme FTP verbindingen toe. Kies deze optie om van een machine een anonieme FTP server te maken. Hierbij zijn de beveiligingsimplicaties van belang. Er wordt een volgend menu getoond om de beveiligingsrisico's en verdere instellingen te verklaren.

Het instellingenmenu Gateway maakt van de machine een gateway, zoals eerder beschreven. Hier kan de optie Gateway ook gebruikt worden om de optie uit te zetten als die eerder in de installatie per ongeluk is aangezet.

De optie Inetd kan gebruikt worden om de inetd(8) daemon in te stellen of helemaal uit te schakelen, zoals boven beschreven.

De optie Mail kan gebruikt worden om de standaard MTA (Mail Transfer Agent) van het systeem in te stellen. Hiervoor wordt het volgende menu gebruikt:

Figuur 2-56. Standaard MTA kiezen

Hier kan gekozen worden welke MTA moet worden geïnstalleerd en gebruikt. Een MTA is niets meer dan een mailserver die mail aflevert bij gebruikers op het systeem of op Internet.

Het kiezen van Sendmail installeert de populaire server sendmail, die de standaard is voor FreeBSD. De optie Sendmail local maakt van sendmail de standaard MTA, maar zet de mogelijkheid om mail te ontvangen vanaf het Internet uit. De andere opties, Postfix en Exim werken net zo als Sendmail. Allebei leveren ze mail af. Sommige gebruikers geven de voorkeur aan deze alternatieven boven de sendmail MTA.

Na het kiezen van een MTA of de keuze geen MTA te installeren, verschijnt het menu netwerkinstellingen met als volgende optie NFS client.

De optie NFS client stelt het systeem in om te communiceren met een server via NFS. Een NFS server stelt bestandssystemen beschikbaar aan andere machines via het NFS protocol. Als de te installeren machine een op zichzelf staande machine is, dan kan deze optie uitgeschakeld blijven. Het kan zijn dat het systeem later meer instellingen nodig heeft. In Paragraaf 29.3 staat meer informatie over client- en serverinstellingen.

De volgende optie is NFS server, die het mogelijk maakt een systeem in te stellen als NFS server. Deze optie voegt de nodige informatie toe om de dienst RPC, “remote procedure call”, op te starten. RPC wordt gebruikt om de verbindingen tussen hosts en programma's te coördineren.

Daarna volgt de optie Ntpdate die de tijdsynchronisatie afhandelt. Als deze wordt geselecteerd verschijnt het volgende menu:

Figuur 2-57. Ntpdate instellingen

Kies uit dit menu de server die het dichtst bij het te installeren systeem staat. Door het kiezen van een server in de buurt is de synchronisatie preciezer omdat een verder gelegen server meer vertraging in de verbinding kan hebben.

De volgende optie is de PCNFSD selectie. Deze optie installeert het pakket net/pcnfsd uit de Portscollectie. Dat is een handig hulpprogramma dat het mogelijk maakt om aan te melden bij NFS met systemen die zelf geen aanmeldsysteem hebben, zoals het besturingssysteem MS-DOS van Microsoft.

Door naar beneden te scrollen in het hoofdmenu worden de onderstaande opties zichtbaar:

Figuur 2-58. Netwerkinstellingen - onderste opties

De hulpprogramma's rpcbind(8), rpc.statd(8) en rpc.lockd(8) worden allemaal gebruikt voor “Remote Procedure Calls” (RPC). Het hulpprogramma rpcbind beheert de communicatie tussen NFS servers en clients en is noodzakelijk om NFS servers correct te laten werken. De daemon rpc.statd communiceert met de daemon rpc.statd op andere machines om statusinformatie te leveren. De gerapporteerde status wordt gewoonlijk bijgehouden in het bestand /var/db/statd.status. De volgende optie in de lijst is rpc.lockd die, mits geselecteerd, bestandslockdiensten mogelijk maakt. Dit wordt meestal gebruikt door rpc.statd om bij te houden welke hosts vragen om bestanden te locken en hoe vaak ze dat doen. Hoewel deze laatste twee opties fantastisch zijn om fouten om te sporen, zijn ze niet noodzakelijk voor NFS servers en clients om correct te werken.

De dan volgende optie in de lijst is Routed, een routeringsdaemon. Het hulpprogramma routed(8) beheert netwerkrouteringstabellen, ontdekt “multicast” routers en stelt op verzoek kopieën van de routeringstabellen ter beschikking aan fysiek verbonden apparaten. Dit wordt vooral gebruikt door machines die dienst doen als gateway voor het lokale netwerk. Na het selecteren van deze optie verschijnt een menu waarin naar de standaardlocatie van het hulpprogramma wordt gevraagd. De standaardlocatie is al gedefiniëerd en kan met Enter worden geactiveerd. Dan komt er een ander menu dat vraagt om de opties die doorgegeven moeten worden aan routed op te geven. De standaard is -q en die staat al op het scherm.

Dan volgt de optie Rwhod die, als geselecteerd, de daemon rwhod(8) inschakelt bij het opstarten. Het hulpprogramma rwhod zendt periodiek systeemberichten uit over het netwerk of verzamelt die in de modus “consumer”. Meer informatie staat in de hulppagina's ruptime(1) en rwho(1).

De één na laatste optie in de lijst is de daemon sshd(8). Dat is de “secure shell server” van OpenSSH en deze wordt sterk aangeraden boven de standaardservers telnet en FTP. De server sshd wordt gebruikt om een veilige verbinding op te zetten van de ene computer naar de andere door een versleutelde verbinding te gebruiken.

Tenslotte is er de optie TCP Extensions. Dit schakelt TCP uitbreidingen in zoals gedefiniëerd in RFC 1323 en RFC 1644. Hoewel dit op veel machines de verbindingen kan versnellen, kan het ook de oorzaak zijn van het wegvallen van sommige verbindingen. Het wordt niet aangeraden voor servers, maar voor alleenstaande machines kan het voordelig zijn.

Nu de netwerkmogelijkheden zijn ingesteld kan het menu via Exit verlaten worden en doorgegaan worden met het instellen in de volgende sectie.


2.10.16. FreeBSD opstarten

2.10.16.1. FreeBSD/i386 opstarten

Als alles goed is gegaan komen er berichten over het scherm rollen en komt dit uit bij de aanmeldprompt. De inhoud van de berichten kan bekeken worden door te drukken op Scroll-Lock en dan met PgUp en PgDn door de tekst heen te lopen. Druk weer op Scroll-Lock om terug te gaan naar de prompt.

Het kan zijn dat het totale bericht niet getoond kan worden (beperking van de buffer). Dan kunnen de berichten later bekeken worden op de commandoregel door na het aanmelden dmesg in te geven op de prompt.

Meld aan met de gebruikersnaam en het wachtwoord die zijn aangemaakt tijdens de installatie (in dit voorbeeld rpratt). Vermijd het aanmelden als root, behalve als het noodzakelijk is.

Gebruikelijke opstartberichten (versie-informatie verwijderd):

Copyright (c) 1992-2002 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.

Timecounter "i8254"  frequency 1193182 Hz
CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU)
  Origin = "AuthenticAMD"  Id = 0x580  Stepping = 0
  Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX>
  AMD Features=0x80000800<SYSCALL,3DNow!>
real memory  = 268435456 (262144K bytes)
config> di sn0
config> di lnc0
config> di le0
config> di ie0
config> di fe0
config> di cs0
config> di bt0
config> di aic0
config> di aha0
config> di adv0
config> q
avail memory = 256311296 (250304K bytes)
Preloaded elf kernel "kernel" at 0xc0491000.
Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c.
md0: Malloc disk
Using $PIR table, 4 entries at 0xc00fde60
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11
isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0
ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at
device 10.0 on pci0
ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit)
isa0: too many dependant configs (8)
isa0: unexpected small tag 14
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x1 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/15 bytes threshold
ppbus0: IEEE1284 device found /NIBBLE
Probing for PnP devices on ppbus0:
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33
ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33
acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4
Mounting root from ufs:/dev/ad0s1a
swapon: adding /dev/ad0s1b as swap device
Automatic boot in progress...
/dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation)
/dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation)
/dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation)
/dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS
/dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation)
Doing initial network setup: hostname.
ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
        inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1
        ether 52:54:05:de:73:1b
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
Additional routing options: IP gateway=YES TCP keepalive=YES
routing daemons:.
additional daemons: syslogd.
Doing additional network setup:.
Starting final network daemons: creating ssh RSA host key
Generating public/private rsa1 key pair.
Your identification has been saved in /etc/ssh/ssh_host_key.
Your public key has been saved in /etc/ssh/ssh_host_key.pub.
The key fingerprint is:
cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com
 creating ssh DSA host key
Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com.
setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib
/usr/local/lib
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
starting standard daemons: inetd cron sshd usbd sendmail.
Initial rc.i386 initialization:.
rc.i386 configuring syscons: blank_time screensaver moused.
Additional ABI support: linux.
Local package initialization:.
Additional TCP options:.

FreeBSD/i386 (k6-2.example.com) (ttyv0)

login: rpratt
Password:

Het aanmaken van de RSA en DSA sleutels kan een tijdje duren op langzamere machines. Dit gebeurt alleen bij de eerste keer aanmelden na een nieuwe installatie. De volgende keren gaan sneller.

Als de X-server ingesteld is en er een standaard desktop is gekozen, dan kan die worden gestart door startx in te geven op de commandoregel.


2.10.16.2. FreeBSD/alpha opstarten

Nadat de installatieprocedure voltooid is, kan FreeBSD starten door iets als onderstaand in te voeren op de SRM prompt:

>>>BOOT DKC0

Dit geeft de firmware de opdracht op te starten vanaf de aangegeven schijf. Gebruik om FreeBSD in de toekomst automatisch op te laten starten deze commando's:

>>> SET BOOT_OSFLAGS A
>>> SET BOOT_FILE ''
>>> SET BOOTDEF_DEV DKC0
>>> SET AUTO_ACTION BOOT

De opstartberichten zijn vergelijkbaar (maar niet hetzelfde) als tijdens het opstarten van FreeBSD op i386.


2.10.17. FreeBSD uitschakelen

Het is belangrijk om het besturingssysteem op de juiste manier uit te schakelen. Schakel niet gewoon de stroom uit. Neem eerst de rol van superuser aan door su in te geven op de commandoregel en het root wachtwoord in te geven. Dit kan alleen als gebruiker die lid is van de groep wheel. Anders moet eerst worden aangemeld als root. Gebruik shutdown -h now om het systeem uit te schakelen.

The operating system has halted.
Please press any key to reboot.

Het is veilig om de stroom uit te schakelen als na het commando shutdown het bericht “Please press any key to reboot” getoond wordt. Als een toets wordt ingedrukt in plaats van het uitschakelen van de stroom, dan start het systeem opnieuw.

De combinatie Ctrl+Alt+Del kan ook gebruikt worden om het systeem te herstarten, maar dit wordt niet aangeraden tijdens normaal gebruik.


2.11. Problemen oplossen

Dit onderdeel behandelt het oplossen van installatieproblemen, zoals veel voorkomende problemen die gebruikers hebben gerapporteerd. Er is ook een aantal vragen en antwoorden voor mensen die een systeem willen hebben met zowel FreeBSD als MS-DOS of Windows (dual-boot).


2.11.1. Wat als er iets misgaat?

Door de beperkingen van de PC-architectuur is het onmogelijk om 100% betrouwbaar een hardware-onderzoek te doen, maar er zijn een paar dingen die wel gedaan kunnen worden in geval van storingen.

Controleer het Hardware Notes document voor uw versie van FreeBSD om er zeker van te zijn dat de hardware ondersteund wordt.

Als de hardware wordt ondersteund, maar het systeem loopt nog steeds vast of heeft andere problemen, dient u een eigen kernel te bouwen. Dit maakt het mogelijk om ondersteuning voor apparaten toe te voegen de niet in de GENERIC kernel zitten. De kernel op de opstartschijven gaat er vanuit dat de hardware ingesteld is op de fabrieksinstellingen wat betreft IRQ's, IO adressen en DMA kanalen. Als de hardware anders is ingesteld, dan moet waarschijnlijk de instellingeneditor gebruikt worden om FreeBSD te vertellen waar de apparaten te vinden zijn.

Het is ook mogelijk dat een onderzoek naar een apparaat dat niet aanwezig is een probleem veroorzaakt bij een later onderzoek naar een ander apparaat dat er wel is. In dat geval moet het conflicterende stuurprogramma uitgeschakeld worden.

Opmerking: Sommige installatieproblemen kunnen voorkomen of verminderd worden door de firmware op de diverse hardwarecomponenten bij te werken, zeker als het om het moederbord gaat. De firmware voor een moederbord wordt ook aangeduid als het BIOS en de meeste moederbord- en computerfabrikanten hebben een website waar upgrades en upgrade-informatie beschikbaar is.

De meeste fabrikanten raden sterk af om het BIOS te upgraden, tenzij er een goede reden voor is, zoals bijvoorbeeld een kritische update. Het upgradeproces kan misgaan, wat beschadiging van de BIOS chip kan veroorzaken.


2.11.2. MS-DOS® en Windows® bestandssystemen gebruiken

FreeBSD ondersteunt geen bestandssystemen die gecomprimeerd zijn met het programma Double Space™. Daarom moet het bestandssysteem eerst gedecomprimeerd worden voordat FreeBSD de gegevens kan benaderen. Dit kan met de Compression Agent, te vinden in het menu Start> Programma's > Bureau-accessoires > Systeemwerkset.

FreeBSD kan MS-DOS gebaseerde bestandssystemen (soms FAT bestandssystemen genoemd) ondersteunen. Het commando mount_msdosfs(8) plaatst zulke bestandssystemen in de bestaande maphierarchie, waardoor de inhoud van het bestandssysteem benaderd kan worden. Het programma mount_msdosfs(8) wordt normaliter niet direct gebruikt; in plaats hiervan wordt het aangeroepen door een regel in /etc/fstab of door een aanroep van het gereedschap mount(8) met de juiste parameters.

Een typische regel in /etc/fstab is:

/dev/ad0sN  /dos  msdosfs rw  0  0

Opmerking: De map /dos moet reeds bestaan om dit te laten werken. Zie fstab(5) voor details over het formaat van /etc/fstab.

Een typische aanroep naar mount(8) voor een MS-DOS bestandssysteem ziet er uit als:

# mount -t msdosfs /dev/ad0s1 /mnt

In dit voorbeeld staat het MS-DOS bestandssysteem op de eerste partitie van de primaire harde schijf. Iedere situatie kan anders zijn, dus controleer de uitvoer van de commando's dmesg en mount. Dat zou voldoende informatie moeten leveren om een idee te vormen over het partitieschema.

Opmerking: FreeBSD kan schijfstukken (dat zijn MS-DOS partities) anders nummeren dan andere besturingssystemen. In het bijzonder krijgen extended MS-DOS partities gewoonlijk hogere schijfstuknummers dan primaire MS-DOS partities. Het gereedschap fdisk(8) kan helpen te bepalen welke schijfstukken bij FreeBSD en welke bij andere besturingssystemen horen.

NTFS-partities kunnen op soortgelijke manier aangekoppeld worden met het commando mount_ntfs(8).


2.11.3. Vragen en antwoorden bij het oplossen van problemen

2.11.3.1. Mijn systeem hangt bij het opsporen van hardware tijdens het opstarten, of het gedraagt zich vreemd tijdens het installeren, of de floppydrive wordt niet onderzocht.
2.11.3.2. Ik ga naar opstarten van harde schijf voor de eerste keer na het installeren van FreeBSD, de kernel laadt en onderzoekt mijn hardware, maar stopt met berichten zoals deze:
2.11.3.3. Ik ga naar opstarten van harde schijf voor de eerste keer na de installatie van FreeBSD, maar de prompt van de Boot Manager geeft telkens alleen F? weer in het opstartmenu maar het opstarten gaat niet verder.
2.11.3.4. Het systeem vindt mijn ed(4) netwerkkaart, maar ik blijf apparaat-timeout-fouten krijgen.
2.11.3.5. Wanneer sysinstall in een X11-terminal wordt gebruikt, is het moeilijk om het gele font op de lichtgrijze achtergrond te lezen. Is er een manier om het contrast van deze applicatie te verhogen?

2.11.3.1. Mijn systeem hangt bij het opsporen van hardware tijdens het opstarten, of het gedraagt zich vreemd tijdens het installeren, of de floppydrive wordt niet onderzocht.

FreeBSD maakt veelvuldig gebruik van de ACPI-diensten van het systeem op de i386, amd64 en ia64 platformen bij het helpen van de systeemconfiguratie als het tijdens het opstarten is gedetecteerd. Helaas bestaan er nog enkele bugs in zowel het ACPI-stuurprogramma als in sommige systeemmoederborden en BIOSsen. ACPI kan worden uitgeschakeld door de hint hint.acpi.0.disabled in te stellen in de derde-fase-bootloader:

set hint.acpi.0.disabled="1"

Dit wordt telkens wanneer het systeem opnieuw wordt opgestart teruggezet, dus is het nodig om hint.acpi.0.disabled="1" aan het bestand /boot/loader.conf toe te voegen. Meer informatie over de bootloader kan worden gevonden in Paragraaf 12.1.

2.11.3.2. Ik ga naar opstarten van harde schijf voor de eerste keer na het installeren van FreeBSD, de kernel laadt en onderzoekt mijn hardware, maar stopt met berichten zoals deze:

changing root device to ad1s1a panic: cannot mount root

Wat is er verkeerd? Wat kan ik doen?

Wat is dit bios_drive:interface(unit,partition)kernel_name dat wordt weergegeven met de opstarthulp?

Er is een langdurig probleem in het geval dat de opstartschijf niet de eerste schijf in het systeem is. Het BIOS gebruikt een ander nummeringsschema dan FreeBSD, en uitzoeken welke nummers met welke overeenkomen is lastig goed te krijgen.

In het geval dat de opstartschijf niet de eerste schijf in het systeem is, kan FreeBSD wel wat hulp gebruiken om het te vinden. Er zijn hier twee bekende situaties, en in beide gevallen dient u FreeBSD te vertellen waar het root-bestandssysteem zich bevindt. U kunt dit doen door het BIOS schijfnummer te specificeren, het soort schijf en het FreeBSD schijfnummer voor die soort.

De eerste situatie is wanneer u twee IDE-schijven heeft, elk geconfigureerd als de meester op hun respectievelijke IDE-bus, en u FreeBSD wilt opstarten vanaf de tweede schijf. Het BIOS ziet dit als schijf 0 en schijf 1, terwijl FreeBSD ze als ad0 en ad2.

FreeBSD staat op BIOS schijf 1, van het soort ad en het FreeBSD schijfnummer is 2, dus geldt:

1:ad(2,a)kernel

Merk op dat indien u een slaaf op de primaire bus heeft, bovenstaande niet nodig is (en effectief onjuist is).

De tweede situatie is omvat opstarten van een SCSI-schijf wanneer u één of meer IDE-schijven in het systeem heeft. In dit geval is het FreeBSD schijfnummer lager dan het BIOS schijfnummer. Als u twee IDE-schijven alsook de SCSI-schijf heeft, dan is de SCSI-schijf BIOS schijf 2, soort da en FreeBSD schijfnummer 0, dus geldt:

2:da(0,a)kernel

wanneer u FreeBSD wilt vertellen dat u van BIOS schijf 2 wilt opstarten, welke de eerste SCSI-schijf in het systeem is. Als u slechts één IDE-schijf had, zou 1: gegolden hebben.

Wanneer u de juiste waardes heeft bepaald om te gebruiken, kunt u het commando precies zoals u het zou typen in het bestand /boot.config plaatsen met een standaard tekstverwerker. Tenzij anders geïnstrueerd, gebruikt FreeBSD de inhoud van dit bestand als het standaardantwoord op de prompt boot:.

2.11.3.3. Ik ga naar opstarten van harde schijf voor de eerste keer na de installatie van FreeBSD, maar de prompt van de Boot Manager geeft telkens alleen F? weer in het opstartmenu maar het opstarten gaat niet verder.

De geometrie van de harde schijf was verkeerd ingesteld in de partitiebewerker toen u FreeBSD installeerde. Ga terug naar de partitiebewerker en specificeer de eigenlijke geometrie van uw harde schijf. U moet FreeBSD weer van het begin af herinstalleren met de juiste geometrie.

Als u geheel faalt in het bepalen van de juiste geometrie van uw machine, is hier een tip: Installeer een kleine DOS partitie aan het begin van de schijf en installeer FreeBSD na die partitie. Het installatieprogramma zal de DOS partitie zien en proberen de juiste geometrie er uit af te leiden, wat gewoonlijk werkt.

De volgende tip wordt niet meer aangeraden, maar is hier achtergelaten ter referentie:

Als u een echt toegewijde FreeBSD server of werkstation installeert waar u geen (toekomstige) compatibiliteit met DOS, Linux of een ander besturingssysteem wilt, heeft u ook de mogelijkheid om de gehele schijf (A in de partitiebewerker) te gebruiken, de niet-standaard optie selecterende waarbij FreeBSD de gehele schijf van de allereerste tot de allerlaatste sector beslaat. Dit laat alle geometrieoverwegingen buiten beschouwing, maar is wat beperkend tenzij u nooit iets anders dan FreeBSD op een schijf gaat draaien.

2.11.3.4. Het systeem vindt mijn ed(4) netwerkkaart, maar ik blijf apparaat-timeout-fouten krijgen.

Uw kaart zit waarschijnlijk op een andere IRQ dan wat is gespecificeerd in het bestand /boot/device.hints. Het stuurprogramma ed(4) gebruikt standaard niet de “soft”-configuratie (waardes gegeven met EZSETUP in DOS), maar het zal de softwareconfiguratie gebruiken wanneer u -1 specificeert in de hints voor de interface.

Verplaats òf de jumper op de kaart naar een vaste configuratie-instelling (pas indien nodig de kernelinstellingen aan), òf specificeer het IRQ als -1 door de hint hint.ed.0.irq="-1" in te stellen. Dit vertelt de kernel om de softconfiguratie te gebruiken.

Een andere mogelijkheid is dat uw kaart op IRQ 9 zit, welke gedeeld is met IRQ 2 en vaak een bron van problemen is (al helemaal wanneer u een VGA-kaart heeft die IRQ 2 gebruikt!). U dient IRQ 2 en 9 te vermijden indien mogelijk.

2.11.3.5. Wanneer sysinstall in een X11-terminal wordt gebruikt, is het moeilijk om het gele font op de lichtgrijze achtergrond te lezen. Is er een manier om het contrast van deze applicatie te verhogen?

Als X11 reeds geïnstalleerd is en de kleuren die standaard door sysinstall worden gekozen de tekst onleesbaar maken wanneer xterm(1) of rxvt(1) wordt gebruikt, voeg dan het volgende aan ~/.Xdefaults toe om een donkerder grijs als achtergrond te krijgen: XTerm*color7: #c0c0c0


2.12. Installeren voor gevorderden

Geschreven door Valentino Vaschetto.

In dit onderdeel wordt het installeren van FreeBSD in bijzondere situaties beschreven.


2.12.1. FreeBSD installeren op een systeem zonder monitor of toetsenbord

Dit type installatie heet ook wel een “headless install”, omdat de met FreeBSD te installeren machine of geen monitor heeft aangesloten of zelfs geen VGA-uitvoer heeft. Hoe is dat mogelijk, kan de vraag zijn. Dat kan met een seriële console. Een seriële console is gewoonweg een andere machine die optreedt als monitor en toetsenbord voor een systeem. Om dit te doen moeten eerst opstartdiskettes gemaakt worden, zoals beschreven in Paragraaf 2.3.7.

Volg de volgende stappen om deze diskettes aan te passen om op te starten met een seriële console:

  1. Opstartdiskettes geschikt maken voor een seriële console

    Als wordt opgestart van de zojuist gemaakt diskettes, start FreeBSD op in de normale installatiemodus. FreeBSD moet echter opstarten naar een seriële console voor de installatie. Om dit te regelen moet de diskette met boot.flp gekoppeld worden aan het FreeBSD systeem met het commando mount(8).

    # mount /dev/fd0 /mnt
    

    Nu de diskette is aangekoppeld kan de map /mnt worden geopend:

    # cd /mnt
    

    Hier moet de diskette worden ingesteld om naar een seriële console op te starten. Maak een bestand genaamd boot.config met daarin /boot/loader -h. Dit geeft een instelling aan de bootloader door om naar een seriële console te starten.

    # echo "/boot/loader -h" > boot.config
    

    Nu de diskette goed is ingesteld moet deze weer afgekoppeld worden met umount(8):

    # cd /
    # umount /mnt
    

    Nu kan de diskette uit het diskettestation gehaald worden.

  2. Null-modem kabel aansluiten

    Nu moeten de twee machines verbonden worden met een null-modem kabel. De kabel kan gewoon aangesloten worden tussen de seriële poorten van de machines. Een gewone seriële kabel werkt niet, er is een null-modem kabel nodig omdat daarin sommige draden kruiselings zijn verbonden.

  3. Opstarten voor het installeren

    Nu is het tijd om te beginnen met installeren. Steek de diskette boot.flp in het station van de machine die headless wordt geïnstalleerd en zet hem aan.

  4. Verbinden met de headless machine

    Nu moet verbinding gemaakt worden met die machine met cu(1):

    # cu -l /dev/cuad0
    

Dat is alles! De headless machine kan bediend worden via de cu sessie. Het installatieprogramma vraagt de diskette kern1.flp in te geven en vraagt dan wat voor terminal er gebruikt moeten worden. Selecteer de FreeBSD color console en ga verder met de installatie!


2.13. Aangepaste installatiemedia maken

Opmerking: Om herhaling te voorkomen: “FreeBSD-schijf” betekent in deze context een FreeBSD cd-rom of DVD die gekocht is of zelf is gemaakt.

Er kunnen zich situaties voordoen waarin aangepaste FreeBSD installatiemedia en/of bronnen gemaakt moeten worden. Dat kunnen fysieke media zijn zoals een tape of een bron die sysinstall kan gebruiken om bestanden op te halen, zoals een lokale FTP site of een MS-DOS-partitie.

Bijvoorbeeld:

  • Er zijn veel machines aangesloten op een lokaal netwerk en er is maar één FreeBSD-schijf. Er moet een lokale FTP site gemaakt worden met de inhoud van de FreeBSD schijf en vervolgens gebruiken andere machines die in plaats van steeds naar het Internet te moeten.

  • Er is een FreeBSD-schijf, FreeBSD herkent de CD/DVD-speler niet, maar MS-DOS/Windows wel. De FreeBSD installatiebestanden moeten gekopieerd worden naar een DOS-partitie op dezelfde computer en dan moet FreeBSD geïnstalleerd worden met die bestanden.

  • De computer die geïnstalleerd moet worden heeft geen CD/DVD-speler of netwerkkaart, maar kan wel verbonden worden via een “Laplink-achtige” seriële of parallelle kabel met een computer die wel een CD/DVD-speler heeft.

  • Er moet een tape gemaakt worden die gebruikt kan worden om FreeBSD te installeren.


2.13.1. Installatie cd-rom maken

Als onderdeel van elke versie stelt het FreeBSD project tenminste twee CDROM images beschikbaar (“ISO images”) per ondersteunde architectuur. Deze images kunnen op een CD-R gebrand worden en dan gebruikt worden om FreeBSD te installeren. Als een CD-schrijver aanwezig is en bandbreedte is goedkoop, dan is dit de makkelijkste manier om FreeBSD te installeren.

  1. De juiste ISO images downloaden

    De ISO images voor iedere versie kunnen worden gedownload van ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-arch/versie of de dichtstbijzijnde mirror. Vervang arch en versie door de gewenste waarden.

    De bovenstaande map bevat meestal de volgende images:

    Tabel 2-4. FreeBSD 6.X en 7.X ISO imagenamen en verklaring

    Bestandsnaam Bevat
    versie-RELEASE-arch-bootonly.iso Alles wat nodig is om in een FreeBSD kernel te starten en in het installatieprogramma te komen. De installatiebestanden dienen van FTP of een andere ondersteunde bron te komen.
    versie-RELEASE-arch-disc1.iso Alles wat nodig is om FreeBSD te installeren en een “live bestandssyteem” dat gebruikt wordt in samenwerking met de optie “Repair” in sysinstall.
    versie-RELEASE-arch-disc2.iso Zoveel programma's van derde partijen als op de schijf passen.
    versie-RELEASE-arch-docs.iso FreeBSD documentatie.

    Of het bootonly ISO image of het disc one image moet gedownload worden. Download niet beiden, want disc one bevat alles wat ook op het bootonly ISO image staat.

    Gebruik de bootonly ISO als toegang tot Internet goedkoop is. Hiermee kan FreeBSD geïnstalleerd worden, waarna pakketten van derde partijen gedownload en geïnstalleerd kunnen worden via het ports/packages systeem (zie Hoofdstuk 4).

    Gebruik het disc one image om een uitgave van FreeBSD te installeren en een redelijke hoeveelheid pakketten op de schijf te installeren.

    De additionele disc images zijn nuttig, maar niet noodzakelijk, zeker niet als er breedband toegang tot Internet is.

  2. CD's branden

    Daarna moeten de CD images op een schijf gebrand worden. Als dat wordt gedaan op een ander FreeBSD systeem, dan staat in Paragraaf 18.6 meer informatie (meer in het bijzonder in Paragraaf 18.6.3 en Paragraaf 18.6.4).

    Als de CD's op een ander platform worden gebrand, gebruik dan de op dat platform beschikbare hulpprogramma's om een CD-brander aan te sturen. De images zijn samengesteld in het standaard ISO-formaat dat ondersteund wordt door de meeste CD-brandprogramma's.

Opmerking: Als er interesse is in het bouwen van een aangepaste versie van FreeBSD dan staat hierover informatie in het Release Engineering artikel.


2.13.2. Een lokale FTP site maken met een FreeBSD-schijf

FreeBSD-schijven zijn op dezelfde manier ingedeeld als de FTP site. Dat maakt het erg gemakkelijk om een lokale FTP site te maken die gebruikt kan worden door andere machines op een netwerk bij het installeren van FreeBSD.

  1. Op de FreeBSD computer die de FTP site bevat moet de cd-rom in het cd-rom station zitten en aangekoppeld zijn op /cdrom.

    # mount /cdrom
    
  2. Maak een gebruikersaccount voor anonieme FTP toegang in /etc/passwd het bestand te bewerken met vipw(8) en de volgende regel toe te voegen:

    ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent
    
  3. Zorg ervoor dat de dienst FTP aan staat in /etc/inetd.conf.

Iedereen met een netwerkverbinding naar de machine kan nu als mediumtype FTP kiezen en ftp://de-machine ingeven na het kiezen van “Other” in het menu FTP sites tijdens de installatie.

Opmerking: Als de bootmedia (meestal diskettes) voor een FTP client niet precies dezelfde versie hebben als die van de lokale FTP site, dan kan sysinstall de installatie niet volledig afronden. Als de versies niet gelijk zijn, dan kan in het menu Options de distributienaam gewijzigd worden in any.

WaarschuwingDeze aanpak is in orde voor een machine die aan een lokaal netwerk hangt en beschermd wordt door een firewall. Het aanbieden van FTP-diensten aan andere machines over Internet (en niet alleen het lokale netwerk) stelt een computer bloot aan de aandacht van krakers en andere ongewenste personen. We raden sterk aan om voldoende voorzorgsmaatregelen te nemen als hiervoor wordt gekozen.


2.13.3. Installatiediskettes maken

Als wordt geïnstalleerd met diskettes (we adviseren om dit niet te doen), hetzij vanwege niet ondersteunde hardware of eenvoudigweg omdat de persoon die installeert er op staat dingen op de moeilijkste manier te doen, dan moeten eerst diskettes gemaakt worden voor de installatie.

Er zijn minstens zoveel 1.44 MB diskettes nodig als nodig zijn om alle bestanden die in de map base (basisdistributie) staan op te slaan. Als de diskettes worden gemaakt vanuit DOS, dan moeten ze geformatteerd worden met het MS-DOS commando FORMAT. Als Windows wordt gebruikt, formatteer de schijven dan via de verkenner (rechtermuisklik op A: en kies dan “Format”).

Vertrouw voorgeformatteerde schijven niet. Formatteer ze voor de zekerheid opnieuw. Veel door gebruikers gerapporteerde problemen kwamen voort uit het gebruik van verkeerd geformatteerde media, vandaar dat dit punt hier wordt benadrukt.

Als de diskettes worden gemaakt op een andere FreeBSD machine is formatteren nog steeds geen slecht idee, hoewel niet op elke diskette een DOS bestandssysteem nodig is. Met de commando's bsdlabel en newfs kan er een UFS bestandssysteem op gezet worden, zoals met de volgende commando's wordt getoond (voor een 3.5" 1.44 MB diskette):

# fdformat -f 1440 fd0.1440
# bsdlabel -w fd0.1440 floppy3
# newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0

Daarna kunnen ze aangekoppeld en beschreven worden als elk ander bestandssysteem.

Nadat de diskettes zijn geformatteerd moeten de bestanden op de diskettes gezet worden. De distributiebestanden zijn opgedeeld in porties zodat vijf stuks gemakkelijk op een ouderwetse 1.44 MB diskette passen. Ga door met alle diskettes en zet zoveel bestanden als mogelijk op elke diskette tot alle distributies op die manier gekopiëerd zijn. Elke distributie moet in een submap op de diskette komen, bijvoorbeeld: a:\base\base.aa, a:\base\base.ab, enzovoorts.

Belangrijk: Het bestand base.inf dient ook op de eerste diskette van de base verzameling te staan aangezien het door het installatieprogramma wordt gelezen om uit te zoeken naar hoeveel aanvullende delen te kijken wanneer de distributie opgehaald en aan elkaar geregen wordt.

Als tijdens de installatie het scherm Media verschijnt kan Floppy gekozen worden en het installatiesysteem vraagt daarna om de overige diskettes.


2.13.4. Installeren vanaf een MS-DOS-partitie

Om een installatie voor te bereiden vanaf een MS-DOS-partitie kunnen alle bestanden vanaf de distributie in een map genaamd freebsd in de hoofdmap van de partitie gezet worden, bijvoorbeeld c:\freebsd. De mappenstructuur van de cd-rom of FTP site moet gedeeltelijk worden gereproduceerd in deze map, dus we raden aan het DOS commando xcopy te gebruiken als de bron een cd-rom is. Om bijvoorbeeld een minimale installatie van FreeBSD voor te bereiden:

C:\> md c:\freebsd
C:\> xcopy e:\bin c:\freebsd\bin\ /s
C:\> xcopy e:\manpages c:\freebsd\manpages\ /s

Hierbij wordt aangenomen dat C: de schijf is met voldoende vrije ruimte en dat E: het cd-rom station is.

Als er geen cd-rom station is, dan kan de distributie gedownload worden van ftp.FreeBSD.org. Elke distributie heeft zijn eigen map. De base distributie staat bijvoorbeeld in de map 7.2/base/.

Kopiëer de vanaf een MS-DOS-partitie te installeren distributies (en waar schijfruimte voor is) en plaats ze elk onder c:\freebsd. De distributie BIN is de enige noodzakelijke voor een minimale installatie.


2.13.5. Installeren van tape

Het installeren vanaf een tape is waarschijnlijk de gemakkelijkste manier, sneller dan een online FTP installatie of een cd-rom installatie. Het installatieprogramma verwacht dat de bestanden eenvoudigweg getarred zijn op een tape. Na het ophalen van alle benodigde distributiebestanden moeten ze op een tape getarred worden:

# cd /freebsd/distdir
# tar cvf /dev/rwt0 dist1 ... dist2

Bij het uitvoeren van de installatie moet ervoor gezorgd worden dat er voldoende ruimte is in een tijdelijke map (die gekozen kan worden) om de volledige inhoud van de gemaakte tape te bevatten. Door de sequentiële toegangsmethode van een tape heeft deze manier van installeren nogal wat tijdelijke schijfruimte nodig.

Opmerking: Bij het begin van de installatie moet de tape al in de drive zitten voor het opstarten van de opstartdiskette. Het installatieprogramma kan hem anders niet vinden.


2.13.6. Installeren over een netwerk

Er zijn drie soorten netwerkinstallaties beschikbaar: Ethernet (een standaard Ethernet-controller), seriële poort (SLIP of PPP), of parallelle poort (PLIP, laplink-kabel).

De ondersteuning van SLIP is nogal primitief en hoofdzakelijk beperkt tot “hard-wired” links, zoals een seriële kabel tussen een laptop en een andere computer. De link moet “hard-wired” zijn, omdat de SLIP installatie geen inbelfaciliteiten biedt. Zo'n faciliteit wordt wel geboden met het PPP-hulpprogramma, dat dan ook gebruikt moet in worden in plaats van SLIP als maar enigszins mogelijk.

Als een modem wordt gebruikt is PPP hoogstwaarschijnlijk de enige mogelijkheid. Er dient informatie over de provider beschikbaar te zijn omdat die redelijk vroeg in het installatieproces nodig is.

Als PAP of CHAP wordt gebruikt om een verbinding te maken met een ISP (met andere woorden als een verbinding gemaakt kan worden met een ISP onder Windows zonder een script te gebruiken), dan is alles wat gedaan moet worden het ingeven van het dial commando op de ppp prompt. Anders moet bekend zijn hoe de ISP gebeld moet worden met “AT commando's” die specifiek zijn voor een modem, aangezien de PPP-dialer slechts een erg eenvoudige terminal emulator bevat. In het ppp-gebruikers handboek en de FAQ staat meer informatie. Bij problemen kan de log naar het scherm worden gestuurd met het commando set log local ....

Als een hard-wired verbinding naar een andere FreeBSD (2.0-R of later) machine beschikbaar is kan ook overwogen worden te installeren via een “laplink” parallelle poort kabel. De snelheid van een parallelle poort is veel hoger dan wat normaal mogelijk is over een seriële kabel (tot 50 kbytes/sec), resulterend een veel snellere installatie.

Tenslotte, voor de snelst mogelijke netwerkinstallatie is een Ethernet adapter altijd een goede keuze! FreeBSD ondersteunt de meeste Ethernetkaarten. Een overzicht van de ondersteunde kaarten (en de benodigde instellingen) is beschikbaar in de Hardware Notes voor elke versie van FreeBSD. Als gebruik gemaakt wordt van een ondersteunde PCMCIA kaart, stop deze dan in het slot vóór de laptop wordt aangezet. FreeBSD ondersteunt momenteel helaas geen “hot insertion” van PCMCIA-kaarten tijdens de installatie.

Een toe te wijzen IP-adres op het netwerk, het netmask van de adresklasse en de naam voor de te installeren machine moeten ook bekend zijn. Als wordt geïnstalleerd over een PPP-verbinding en er is geen vast IP-adres, wanhoop dan niet. Het IP-adres kan dynamisch toegekend worden door een ISP. Een systeembeheerder kan aangeven welke waarden gebruikt moeten worden voor netwerkinstellingen. Als andere hosts benaderd moeten worden op naam en niet op IP-adres, dan moet ook een nameserver en mogelijk het adres van een gateway opgegeven worden (als PPP wordt gebruikt is dat het IP-adres van de provider). Bij installatie met FTP via een HTTP-proxy moet ook het adres van de proxy bekend zijn. Als het antwoord op één of meerdere vragen niet bekend is, dan moet echt gesproken worden met de systeembeheerder of ISP vóóor dit soort installaties worden uitgevoerd.


2.13.6.1. Installeren via NFS

De installatie via NFS is redelijk rechttoe-rechtaan. Kopiëer gewoon de FreeBSD distributiebestanden die nodig zijn naar een NFS server en geef die server dan aan in de NFS-media selectie.

Als de server alleen zogenaamde “privileged ports” toestaat (zoals in z'n algemeenheid de standaard voor Sun workstations), dan moet ook de optie NFS Secure aangezet worden in het menu Options voor de installatie verder kan gaan.

Bij het gebruik van een Ethernetkaart van lage kwaliteit die last heeft van erg lage overdrachtssnelheden kan ook de vlag NFS Slow aangezet worden.

Om de installatie van NFS te laten werken, moet de server het aankoppelen van submappen ondersteunen. Als bijvoorbeeld een FreeBSD 7.2 distributie op ziggy:/usr/archive/stuff/FreeBSD staat, dan moet ziggy toestaan dat /usr/archive/stuff/FreeBSD rechtstreeks wordt aangekoppeld en niet alleen /usr of /usr/archive/stuff.

Dit wordt vanuit het FreeBSD-bestand /etc/exports geregeld door de opties -alldirs. Andere NFS servers kunnen andere gewoontes hebben. Bij een foutbericht “permission denied” van de server is het waarschijnlijk dat deze niet goed is ingesteld.


Hoofdstuk 3. UNIX® beginselen

Herschreven door Chris Shumway. Vertaald door Remko Lodder.

3.1. Overzicht

Het volgende hoofdstuk behandelt de basiscommando's en functionaliteit van het FreeBSD 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 FreeBSD te maken hebben gehad wordt aangeraden door te lezen.

Na het lezen van dit hoofdstuk weet de lezer:

  • Hoe “virtuele consoles” in FreeBSD gebruikt kunnen worden;

  • Hoe UNIX bestandspermissies werken en hoe bestandsvlaggen in FreeBSD werken;

  • Hoe het standaard FreeBSD bestandssysteem eruit ziet;

  • Hoe een FreeBSD harde schijf is ingedeeld;

  • Hoe bestandssystemen gekoppeld en ontkoppeld 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 apparaatkoppelpunten zijn;

  • Welk binair formaat FreeBSD gebruikt;

  • Hoe handleidingen te gebruiken meer informatie.


3.2. Virtuele consoles en terminals

FreeBSD 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 FreeBSD op deze manier gebruikt. Dit onderdeel beschrijft wat “terminals ” en “consoles” zijn en hoe je deze kan gebruiken in FreeBSD.


3.2.1. De console

Als FreeBSD 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

FreeBSD/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:

FreeBSD/i386 (pc3.example.org) (ttyv0)

Deze regel bevat enkele informatie over het systeem dat net gestart is: dit is een “FreeBSD” console, draaiend op een Intel of soortgelijke processor op de x86 architectuur. [1] 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 FreeBSD. Het volgende deel beschrijft hoe dat werkt.


3.2.2. Aanmelden op FreeBSD

FreeBSD 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 FreeBSD (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”). FreeBSD vraagt om deze twee gegevens voordat het een gebruiker toegestaat om programma's te draaien.

Direct nadat FreeBSD is opgestart en de opstartscripts [2] 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 FreeBSD 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 FreeBSD.


3.2.3. Meerdere consoles

UNIX programma's draaien in één console is prima, maar FreeBSD 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 FreeBSD waar meerdere programma's tegelijkertijd op kunnen draaien. Hier kunnen “virtuele consoles” van pas komen.

FreeBSD 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 FreeBSD zorgt ervoor dat alle toetsenbordinvoer en monitoruitvoer goed wordt gezet als er van de ene console naar de volgende wordt gewisseld.

In FreeBSD kunnen speciale toetscombinaties gebruikt worden om te wisselen naar een ander virtueel console. [3] In FreeBSD kan Alt-F1, Alt-F2 tot en met Alt-F8 gebruikt worden om te wisselen naar een ander virtueel console.

Als wordt gewisseld van de ene naar de andere console zorgt FreeBSD 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 FreeBSD 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.


3.2.4. Het bestand /etc/ttys

De standaardinstelling van FreeBSD 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 FreeBSD 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 ttys(5) hulppagina gebruiken.


3.2.5. Single-user console

In Paragraaf 12.6.2 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

Opmerking: Zoals het commentaar boven de console regel aangeeft, kan in deze regel het woord secure gewijzigd worden in insecure. In dat geval vraagt FreeBSD 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 FreeBSD niet zo goed kent met betrekking tot het opstarten en de programma's die daarbij gebruikt worden.


3.2.6. Het wijzigen van de console video mode

De FreeBSD standaard video mode kan worden gewijzigd in 1024x768, 1280x1024, of een van de vele andere formaten die ondersteund worden door de grafische kaart en monitor. Om gebruik te maken van de verschillende video modes, moet eerst de kernel opnieuw gecompileerd worden met twee extra opties:

options VESA
options SC_PIXEL_MODE

Zodra de kernel opnieuw gecompileerd is met deze twee opties kan gekeken worden welke video modes er ondersteund worden door de hardware door gebruik te maken van de vidcontrol(1) applicatie. Om een overzicht te krijgen van de ondersteunde video modes moet het volgende ingevoerd worden:

# vidcontrol -i mode

Het resultaat van dit commando is een lijst van video modes welke ondersteund worden door de hardware. Hierna kan de nieuwe video mode gekozen worden door dit aan te geven aan vidcontrol(1):

# vidcontrol MODE_279

Als de nieuwe video mode acceptabel is, kan dit permanent ingesteld worden door het volgende in /etc/rc.conf te zetten:

allscreens_flags="MODE_279"

3.3. Rechten

FreeBSD, direct afgeleid van BSD UNIX, is gebaseerd op verschillende belangrijke UNIX concepten. Het meest bekende is dat FreeBSD 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:

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

De -l optie kan gebruikt worden met 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:

% 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 alle overige gebruikers. 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 alle overige gebruikers kunnen ook het bestand 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? FreeBSD 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 chmod(1).


3.3.1. Symbolische rechten

Bijgedragen door Tom Rhodes.

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 chmod(1), net zoals eerder, alleen nu met letters. Het volgende commando kan gebruikt worden om de overige gebruikers toegang tot BESTAND te ontzeggen:

% 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:

% chmod go-w,a+x BESTAND

3.3.2. FreeBSD bestandsvlaggen

Geschreven door Tom Rhodes.

Naast de bestandsrechten die hiervoor zijn besproken, biedt FreeBSD 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 of wijzigen.

Bestandsvlaggen worden gewijzigd met het hulpprogramma chflags(1), dat een eenvoudige interface heeft. Om bijvoorbeeld de systeemvlag niet verwijderdbaar in te stellen op het bestand file1:

# chflags sunlink file1

Om de vlag niet verwijderbaar weer te verwijderen kan het voorgaande command met “no” voor sunlink worden uitgevoerd:

# chflags nosunlink file1

Om de vlaggen op een bestand te bekijken, kan het ls(1) commando met de vlaggen -lo gebruikt worden:

# 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 chflags(1) en chflags(2).


3.3.3. De setuid-, setgid-, en klevende toestemmingen

Bijgedragen door Tom Rhodes.

Buiten de toestemmingen die reeds besproken zijn, zijn er nog drie specifieke instellingen waarvan alle beheerders kennis dienen te hebben. Dit zijn de setuid-, setgid-, en sticky toestemmingen.

Deze instellingen zijn belangrijk voor sommige UNIX-bewerkingen omdat ze functionaliteit bieden die normaliter niet aan normale gebruikers wordt gegeven. Om ze te begrijpen, dient ook het verschil tussen de echte gebruikers-ID en de effectieve gebruikers-ID opgemerkt te worden.

De echte gebruikers-ID is de UID die het proces start of bezit. De effectieve UID is de gebruikers-ID waaronder het proces draait. Bijvoorbeeld, het gereedschap passwd(1) draait met de echte gebruikers-ID van de gebruiker die het wachtwoord verandert; echter, om de database met wachtwoorden te manipuleren, draait het met de effectieve ID van de gebruiker root. Dit is wat normale gebruikers in staat stelt om hun wachtwoorden te veranderen zonder een fout “Permission Denied” te zien.

Opmerking: De mount(8)-optie nosuid zorgt ervoor dat deze binairen zwijgend falen. Dit houdt in dat ze niet worden uitgevoerd zonder ooit de gebruiker op de hoogte te stellen. Deze optie is ook niet geheel betrouwbaar aangezien een nosuid-wrapper dit volgens de handleidingpagina mount(8) kan omzeilen.

De setuid-toestemming kan aangezet worden door het cijfer vier (4) voor een toestemmingenverzameling te plaatsen zoals te zien is in het volgende voorbeeld:

# chmod 4755 suidvoorbeeld.sh

De toestemmingen op het bestand suidvoorbeeld.sh dienen er nu als volgt uit te zien:

-rwsr-xr-x   1 trhodes  trhodes    63 Aug 29 06:36 suidvoorbeeld.sh

Het zou in dit voorbeeld te zien moeten zijn dat een s nu deel is van de toestemmingenverzameling bestemd voor de bestandseigenaar, en de uitvoerbare bit vervangt. Dit staat gereedschappen toe die verhoogde toestemmingen nodig hebben, zoals passwd.

Open twee terminals om dit in real-time te zien. Start op het ene het proces passwd als een normale gebruiker. Controleer de procestabel terwijl het op een nieuw wachtwoord wacht en kijk naar de gebruikersinformatie van het commando passwd.

In terminal A:

Changing local password for trhodes
Old Password:

In terminal B:

# ps aux | grep passwd
trhodes  5232  0.0  0.2  3420  1608   0  R+    2:10AM   0:00.00 grep passwd
root     5211  0.0  0.2  3620  1724   2  I+    2:09AM   0:00.01

Zoals boven vermeld, wordt passwd door een normale gebruiker gedraaid, maar gebruikt het de effectieve UID van root.

De setgid-toestemming voert dezelfde functie uit als de setuid-toestemming; behalve dat het de groepsinstellingen verandert. Wanneer een applicatie of gereedschap met deze instelling wordt gedraaid, krijgt het de toestemmingen gebaseerd op de groep die het bestand bezit, niet op de gebruiker die het proces startte.

Om de setgid-toestemming op een bestand aan te zetten, dient een voorlopende twee (2) aan het commando chmod gegeven te worden zoals in het volgende voorbeeld:

# chmod 2755 sgidvoorbeeld.sh

De nieuwe instelling kan zoals hierboven bekeken worden, merk op dat de s nu in het veld bestemd voor de instellingen van de groepstoestemmingen staat:

-rwxr-sr-x   1 trhodes  trhodes    44 Aug 31 01:49 sgidvoorbeeld.sh

Opmerking: In deze voorbeelden zal het shellscript niet met een andere EUID of effectief gebruikers-ID draaien, zelfs al is het shellscript uitvoerbaar. Dit is omdat shellscripts geen toegang hebben tot de setuid(2)-systeemaanroepen.

De eerste twee speciale toestemmingsbits die we besproken hebben (de toestemmingsbits setuid en setgid) kunnen de systeemveiligheid verlagen, door verhoogde toestemmingen toe te staan. Er is een derde bit voor speciale toestemmingen die de veiligheid van een systeem kan verhogen: de klevende bit.

De klevende bit, wanneer deze op een map is ingesteld, staat alleen het verwijderen van bestanden toe door de eigenaar van die bestanden. Deze toestemmingenverzameling is nuttig om het verwijderen van bestanden in publieke mappen, zoals /tmp, door gebruikers die het bestand niet bezitten te voorkomen. Zet een één (1) voor de toestemming om deze toestemming te gebruiken. Bijvoorbeeld:

# chmod 1777 /tmp

Het effect kan nu met het commando ls bekeken worden:

# ls -al / | grep tmp
drwxrwxrwt  10 root  wheel         512 Aug 31 01:49 tmp

De toestemming klevende bit is te onderscheiden met de t aan het einde van de verzameling.


3.4. Mappenstructuur

De FreeBSD 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 gekoppeld 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 koppelpunten voor elk ander bestandssysteem dat misschien gekoppeld wordt.

Een koppelpunt is een map waar extra bestandssystemen aan het een bestandssysteem gekoppeld kunnen worden (meestal het root bestandssysteem). Dit wordt beschreven in Paragraaf 3.5. Standaard koppelpunten zijn /usr, /var, /tmp, /mnt en /cdrom. Naar deze mappen wordt meestal verwezen in /etc/fstab, een tabel met bestandssystemen en koppelpunten ter referentie voor het systeem. De meeste bestandssystemen in /etc/fstab worden automatisch gekoppeld tijdens het opstarten door het script rc(8), behalve als de optie noauto gedefinieerd is. Details staan beschreven in Paragraaf 3.6.1.

Een complete beschrijving over het bestandssysteem staat in 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 loader.conf(5).
/dev/ Apparaatnodes;, zie intro(4).
/etc/ Bestanden met systeeminstellingen en scripts.
/etc/defaults/ Bestanden met standaard systeeminstellingen;, zie rc(8).
/etc/mail/ Instellingenbestanden voor mail transport programma's zoals sendmail(8).
/etc/namedb/ Instellingenbestanden voor named, zie named(8).
/etc/periodic/ Scripts die dagelijks, wekelijks en maandelijks via cron(8) worden uitgevoerd, zie periodic(8).
/etc/ppp/ Instellingenbestanden voor ppp, zie ppp(8).
/mnt/ Lege map, veel gebruikt door systeembeheerders als tijdelijk koppelpunt voor opslagruimtes.
/proc/ Process bestandssysteem;, zie procfs(5) en mount_procfs(8).
/rescue/ Statisch gelinkte programma's voor noodherstel, zie rescue(8).
/root/ Thuismap van de gebruiker root.
/sbin/ Systeemprogramma's en administratieprogramma's belangrijk voor zowel single-user en multi-user omgevingen.
/tmp/ Tijdelijke bestanden. De inhoud van /tmp blijft meestal NIET bewaard na een herstart. Er wordt vaak een geheugengebaseerd bestandssysteem gekoppeld op /tmp. Dit kan geautomatiseerd worden met de tmpmfs-gerelateerde variabelen van rc.conf(5) (of met een regel in /etc/fstab). Zie mdmfs(8).
/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 FreeBSD ports. Binnen /usr/local, wordt de algemene layout bepaald door 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 FreeBSD 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.



3.5. Organisatie van schijven

De kleinste vorm van organisatie die FreeBSD gebruikt om bestanden te vinden is de bestandsnaam. Bestandsnamen zijn hoofdlettergevoelig, wat betekent dat readme.txt en README.TXT twee verschillende bestanden zijn. FreeBSD 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 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 Mac OS® gebruik maakt van :.

FreeBSD gebruikt geen schijfletters, of andere schijfnamen in het pad. FreeBSD 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 gekoppeld onder het root bestandssysteem. Hoeveel schijven er ook aan een FreeBSD systeem 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:

Een bestandssysteem moet gekoppeld worden in een map op een ander bestandssysteem. Als nu bestandssysteem B wordt gekoppeld onder de map A1 vervangt B A1 en zien de koppelingen in B er als volgt uit:

Elk bestand dat in de mappen B1 en 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 ontkoppeldvan A.

Als B gekoppeld is onder A2 ziet de diagram er als volgt uit:

en de paden zouden dan respectievelijk /A2/B1 en /A2/B2 zijn.

Bestandssystemen kunnen op elkaar worden gekoppeld. Doorgaand op het vorige voorbeeld kan het bestandssysteem C gekoppeld worden bovenop de map B1 in het bestandssysteem B. Dit resulteert in:

Of C kan direct onder het bestandssysteem A gekoppeld worden, onder de map A1:

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 FreeBSD wordt geïnstalleerd en er wordt besloten waar ze gekoppeld worden. Meestal worden ze ook niet 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 gekoppeld 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 koppelen. Deze optie voorkomt dat suid/guid bits op uitvoerbare bestanden effectief gebruikt kunnen worden, waardoor de beveiliging mogelijk beter wordt.

  • FreeBSD 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 deze optimalisatie niet.

  • FreeBSD'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 FreeBSD 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.

    Belangrijk: FreeBSD heeft 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 FreeBSD'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 koppelpunt in de bestandssysteem hiërarchie of de letter van de partitie waar ze in opgeslagen zijn.

FreeBSD gebruikt ook schijfruimte voor wisselbestanden. Wisselbestanden geven FreeBSD 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 FreeBSD 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).

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. d zou nu kunnen werken als een normale partitie.

Elke partitie die een bestandssysteem bevat is opgeslagen in wat FreeBSD noemt een slice. Slice is FreeBSD's term voor wat meeste mensen partities noemen. Dit komt wederom door FreeBSD's UNIX achtergrond. Slices zijn genummerd van 1 tot en met 4.

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 Tabel 3-1.

Bij een referentie aan een partitie verwacht FreeBSD ook dat de slice en schijf refereert naar die partitie 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 Voorbeeld 3-1.

In Voorbeeld 3-2 staat een conceptmodel van een schijflayout die een en ander verduidelijkt.

Voordat FreeBSD geïnstalleerd kan worden moeten eerst de schijfslices gemaakt worden en daarna moeten de partities op de slices voor FreeBSD gemaakt worden. Daarna wordt op elke partitie het bestandssysteem (of wisselbestand) gemaakt en als laatste wordt besloten waar het filesysteem gekoppeld wordt.

Tabel 3-1. Schijf apparaatcodes

Code Betekenis
ad ATAPI (IDE) schijf
da SCSI directe toegang schijf
acd ATAPI (IDE) CDROM
cd SCSI CDROM
fd Floppydisk

Voorbeeld 3-1. 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).

Voorbeeld 3-2. Conceptmodel van een schijf

Het onderstaande diagram geeft aan hoe FreeBSD 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 FreeBSD installatie. Deze FreeBSD 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.


3.6. Het koppelen en ontkoppelen 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.

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.


3.6.1. Het bestand fstab

Tijdens het opstartproces, worden bestandssystemen die vermeld staan in /etc/fstab automatisch gekoppeld (tenzij ze vermeld staan met noauto).

/etc/fstab bevat een lijst van regels die aan het volgende formaat voldoen:

apparaat        /koppelpunt fstype     opties      dumpfreq     passno
apparaat

Een apparaatnaam (die moet bestaan) zoals uitgelegd in Paragraaf 18.2.

koppelpunt

Een map (die moet bestaan) waarop het bestandssysteem gekoppeld moet worden.

fstype

Het bestandssysteem type dat aan mount(8) gegeven wordt. Het standaard FreeBSD bestandssysteem is ufs.

opties

Dit is of rw voor lezen en schrijven bestandssytemen, of ro voor alleen lezen, gevolgd door elke andere optie die mogelijk nodig is. Een standaard optie is noauto voor bestandssystemen die niet automatisch gekoppeld worden tijdens het opstarten. Andere opties staan in mount(8).

dumpfreq

Dit wordt gebruikt door 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 fsck(8) deze bestandssystemen tegelijkertijd te controleren.

In fstab(5) staat meer informatie over de opmaak van /etc/fstab en de mogelijke opties.


3.6.2. Het commando mount

mount(8) wordt gebruikt om bestandsystemen te koppelen.

De meest eenvoudige vorm is:

# mount apparaat koppelpunt

Alle opties voor het commando staat in mount(8), maar de meest voorkomende zijn:

Mountopties

-a

Mount alle bestandssystemen die in /etc/fstab staan, behalve die gemarkeerd staan als “noauto”, uitgesloten zijn door de optie -t of die al gekoppeld zijn.

-d

Doe alles behalve het echt aanroepen van de mount systeemopdracht. Deze optie is handig in samen met de optie -v om te bepalen wat mount(8) eigenlijk probeert te doen.

-f

Forceert het koppelen van een niet schoon bestandssysteem (gevaarlijk) of forceert het innemen van schrijftoegang als de koppelstatus van een bestandssysteem wijzigt van lezen en schrijven naar alleen lezen.

-r

Mount het bestandssysteem alleen lezen. Dit is identiek aan de optie ro (rdonly voor FreeBSD versies ouder dan 5.2) voor de optie -o.

-t fstype

Mount het opgegeven bestandssysteem als het opgegeven type bestandssysteem of koppelt alleen bestandssystemen van het aangegeven type als ook de optie -a is opgegeven.

“ufs” is het standaard bestandssysteem.

-u

Werk koppel opties van het bestandssysteem bij.

-v

Geef uitgebreide informatie (verbose).

-w

Mount het bestandssysteem lezen en schrijven.

De optie -o accepteert een door komma's gescheiden lijst van opties, waaronder de volgende:

noexec

Sta geen uitvoerbare bestanden toe op dit bestandssysteem. Ook dit is een nuttige veiligheidsoptie.

nosuid

Interpreteer geen setuid of setgid opties op het bestandssysteem. Ook dit is een nuttige veiligheidsoptie.


3.6.3. Het commando umount

umount(8) heeft een koppelpunt, een apparaatnaam, -a of -A als parameter.

Alle vormen kunnen de optie -f hebben om een bestandsysteem te forceren te ontkoppelen en de optie -v voor uitgebreide informatie. De optie -f is meestal geen goed idee. Forceren dat een bestandssysteem ontkoppeld wordt kan de computer laten crashen of data op het bestandssysteem beschadigen.

De opties -a en -A worden gebruikt om alle bestandssystemen te unmounten, mogelijk nader gespecificeerd door de optie -t met daarachter op welke typen bestandssystemen het betrekking heeft. Voor de optie -A geldt dat deze niet probeert het root bestandssysteem te ontkoppelen.


3.7. Processen

FreeBSD 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 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 init(8). init is altijd het eerste proces, dus het PID is altijd 1. init wordt automatisch gestart door de kernel als FreeBSD opstart.

Twee commando's die erg handig zijn om te zien welke processen er draaien zijn ps(1) en 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:

% 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 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. (een PID wordt niet hergebruikt als deze reeds in gebruik is). 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.

ps(1) ondersteunt een aantal opties die de informatie wijzigen die wordt weergegeven. Één van de meest nuttige combinaties is auxww. De optie a toont informatie over alle draaiende processen, niet alleen die van de gebruiker die is aangemeld. De optie u toont de gebruikersnaam van de proceseigenaar, evenals geheugengebruik. De optie x toont informatie over daemonprocessen en met de optie ww laat ps(1) de volledige commandoregel zien voor elk proces, in plaats van een mogelijk afgekorte regel omdat die te lang is om op het scherm te passsen.

De uitvoer van top(1) is hetzelfde:

% 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 ps(1). Zo zijn het PID, de gebruikersnaam, de hoeveelheid processortijd en het commando dat gebruikt is om het proces te starten te zien. 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.

top(1) werkt het beeld automatisch iedere twee seconden bij. Dat kan gewijzigd worden met de optie s.


3.8. 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 Domain (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. Een manier om dit te doen is het versturen van een signaal (signals). 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 kill(1) of 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.

FreeBSD stuurt soms ook signalen naar applicaties. Als een applicatie slecht geschreven is en hij probeert geheugen te benaderen waar hij niet naartoe mag, stuurt FreeBSD het proces een Segmentation Violation signaal (SIGSEGV). Als een applicatie de systeemaanroep 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 FreeBSD het proces meteen. [4]

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 kill(1) verzonden.

Het versturen van een signaal naar een proces

Dit voorbeeld toont hoe een signaal naar 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.

  1. Eerst moet het proces ID worden opgezocht van het proces waar een signaal naar verzonden moeten worden. Dit kan door ps(1) en grep(1) te gebruiken. 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 inetd(8) wordt gedraaid onder de gebruiker root, dus aan ps(1) moet de optie ax meegegeven worden.

    % ps -ax | grep inetd
      198  ??  IWs    0:00.00 inetd -wW
    

    Dus PID van inetd(8) is 198. In sommige gevallen kan grep inetd ook voorkomen in de uitvoer. Dit komt door de manier waarop ps(1) de lijst van draaiende processen moet vinden.

  2. Met kill(1) kan het signaal verzonden worden. Omdat inetd(8) wordt gedraaid door root moet su(1) gebruikt worden om root te worden.

    % su
    Password:
    # /bin/kill -s HUP 198
    

    Zoals zovaak met UNIX commando's, geeft 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 /bin/kill 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.

Belangrijk: Het stoppen van willekeurige processen op een systeem is meestal een slecht idee. In het bijzonder bij 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 kill(1) worden meegegeven moeten altijd twee keer gecontroleerd worden voordat op Enter gedrukt wordt.


3.9. Shells

In FreeBSD wordt een groot deel van het alledaagse werk gedaan vanuit een omgeving met een commandoregel die shell heet. 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. FreeBSD heeft een aantal shells bijgeleverd zoals sh, de Bourne Shell en tcsh, de verbeterde C-shell. Er zijn veel andere shells beschikbaar in de FreeBSD 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.

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 betekenen:

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 FreeBSD.
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.

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:

% setenv EDITOR /usr/local/bin/emacs

In Bourne shells is dat:

% 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.


3.9.1. 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 -s 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:

% chsh -s /usr/local/bin/bash

Opmerking: De te gebruiken shell moet 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:

# echo "/usr/local/bin/bash" >> /etc/shells

Hierna kan chsh weer gedraaid worden.


3.10. Teksteditors

Een groot deel van de instellingen in FreeBSD wordt gemaakt door het bewerken van tekstbestanden. Hierdoor is het een goed idee om bekend te zijn met een tekstverwerker. FreeBSD heeft er een paar in het basissysteem en veel anderen zijn beschikbaar via de Portscollectie.

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 Ctrl+e. 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.

FreeBSD heeft ook uitgebreidere tekstverwerkers, zoals vi, in het basissysteem en andere editors als Emacs en vim maken onderdeel uit van de FreeBSD 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.

Veel applicaties die bestanden wijzigen of getypte invoer nodig hebben zullen automatisch een tekstverwerker openen. Om de tekstverwerker te wijzigen die standaard wordt gebruikt, stelt u de omgevingsvariabele EDITOR in. Zie de sectie shells voor meer details.


3.11. Apparaten en apparaatnodes

Apparaat is een term die meestal wordt gebruikt voor hardwareonderdelen in een systeem, zoals schijven, printers grafische kaarten en toetsenborden. Als FreeBSD 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.


3.11.1. Apparaatnodes maken

Als een nieuw apparaat wordt toegevoegd aan een systeem of als ondersteuning voor extra apparaten wordt gecompileerd, dan moeten er misschien nieuwe apparaat nodes aangemaakt worden.


3.11.1.1. DEVFS (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 devfs(5) staat meer informatie.


3.12. Binaire formaten

Om te kunnen begrijpen waarom FreeBSD gebruik maakt van het elf(5) formaat, is het belangrijk op de hoogte zijn van de drie “dominante” uitvoerbare formaten voor UNIX:

  • 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 (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.

  • 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).

    FreeBSD 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 brandelf(1) staat meer informatie.

FreeBSD komt uit het “klassieke” kamp en gebruikt het 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 FreeBSD systeem , verzette FreeBSD 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 FreeBSD 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 FreeBSD heeft afgeleid van hun bouwprogramma's (vooral de assembler en de loader) ontwikkeld in twee parallel lopende takken. De FreeBSD 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 FreeBSD, hadden die pech, omdat de oudere broncode van FreeBSD 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 FreeBSD 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.


3.13. Meer informatie

3.13.1. Handleidingen

De meest uitvoerige documentatie van FreeBSD 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:

% 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:

% man ls

De handleidingen zijn opgedeeld in genummerde onderdelen:

  1. Gebruikerscommando's.

  2. Systeemaanroepen en foutnummernummers.

  3. Functies in de C bibliotheken.

  4. Apparaatdrivers.

  5. Bestandsindelingen.

  6. Spelletjes en andere afleidingen.

  7. Diverse informatie.

  8. Systeemonderhoud en commando's

  9. 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:

% 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: chmod(1) verwijst naar het commando chmod en 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 -k te gebruiken:

% 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:

% cd /usr/bin
% man -f *

Het onderstaande commando resulteert in hetzelfde:

% cd /usr/bin
% whatis *

3.13.2. Gnu infobestanden

FreeBSD 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.

info(1) wordt als volgt gebruikt:

% info

h geeft een korte beschrijving en ? toont een een kort commando-overzicht.


Hoofdstuk 4. Applicaties installeren: pakketten en ports

Vertaald door René Ketelaars en Siebrand Mazeland.

4.1. Overzicht

FreeBSD 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. FreeBSD bevat twee complementaire technologieën om andere applicaties te installeren: de FreeBSD Portscollectie (voor het installeren vanuit broncode) en pakketten (voor het installeren vanuit voorgecompileerde binaire bestanden). 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 softwarepakketten van derden te installeren;

  • Hoe software van derden vanuit de Portscollectie vanuit broncode te installeren;

  • Hoe eerder geïnstalleerde pakketten of ports te verwijderen;

  • Hoe standaardwaarden die door de ports worden gebruikt te wijzigen;

  • Hoe het juiste softwarepakket te vinden;

  • Hoe applicaties bij te werken.


4.2. Overzicht van softwareinstallatie

Als u 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:

  1. Download de software als broncode of als binair bestand;

  2. Pak de software uit vanuit zijn originele distributietype (meestal een tar-bestand gecomprimeerd met compress(1), gzip(1), of bzip2(1));

  3. 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;

  4. 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;

  5. De software installeren en testen.

En dat geldt alleen als alles goed gaat. Als er een softwarepakket geïnstalleerd wordt dat niet specifiek gemaakt is voor FreeBSD moet mogelijkerwijs zelfs de code aangepast worden om alles goed te laten werken.

Als de gebruiker het wenst, kan hij in FreeBSD doorgaan met het installeren van software op de “traditionele” manier. FreeBSD levert echter twee technologieën die veel moeite kunnen besparen: pakketten en ports. Op dit moment zijn zo meer dan 20,000 applicaties beschikbaar.

Voor iedere gewenste applicatie is het FreeBSD pakket voor die applicatie één te downloaden bestand. Het pakket bevat voorgecompileerde kopiën met alle commando's voor de applicatie en alle instellingenbestanden of documentatie. Een gedownload pakketbestand kan gemanipuleerd worden met FreeBSD pakketbeheercommando's zoals pkg_add(1), pkg_delete(1), pkg_info(1), enzovoort. Het installeren van een nieuwe applicatie kan met één commando.

Een FreeBSD 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 pakketten te maken die later weer gemanipuleerd kunnen worden met pkg_add en andere pakketbeheercommando's, waarover later meer uitleg wordt gegeven.

Zowel pakketten 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 FreeBSD ports en pakketten. 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 FreeBSD de moeite neemt om beide te faciliteren. Pakketten en ports hebben ieder hun eigen kracht. Welke gebruikt wordt hangt af van voorkeuren en omstandigheden.

Voordelen van pakketten

  • Een gecomprimeerd pakket tar-bestand is meestal kleiner dan het gecomprimeerde tar-bestand met de broncode van de applicatie;

  • Pakketten vereisen geen additionele compilatie. Voor grote applicaties als Mozilla, KDE of GNOME kan dit belangrijk zijn, vooral als een systeem wat trager is;

  • Pakketten vereisen geen begrip van het proces van het compileren van software op FreeBSD.

Voordelen van ports

  • Pakketten worden meestal gecompileerd met conservatieve opties, omdat ze moeten draaien op een maximaal aantal systemen. Bij het installeren vanuit de port kunnen de compilatie-instellingen aangepast worden om zo bijvoorbeeld code te maken die specifiek voor een Pentium 4 of een Athlon processor is;

  • Sommige applicaties hebben compilatie-instellingen 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 pakketten voor dezelfde applicatie om specifieke instellingen aan te geven. Ghostscript is bijvoorbeeld beschikbaar als een ghostscript pakket en ghostscript-nox11 pakket, afhankelijk van het al dan niet geïnstalleerd hebben van een X11 server. Deze ruwe vorm van tweaking is mogelijk met pakketten, maar dit wordt snel onmogelijk als een applicatie meer dan één of twee verschillende compilatie-instellingen 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 FreeBSD ports mailinglijst en/of de FreeBSD ports bugs mailinglijst.

WaarschuwingVoordat een applicatie wordt geïnstalleerd is het aan te raden op http://vuxml.freebsd.org/ na kijken of er geen beveiligingsproblemen voor de gewenste applicatie bekend zijn.

Het is ook mogelijk om ports-mgmt/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 pakketten die al geïnstalleerd zijn worden gecontroleerd.

In de rest van dit hoofdstuk wordt uitgelegd hoe pakketten en ports gebruikt kunnen worden om software in FreeBSD te installeren en te beheren.


4.3. Applicaties zoeken

Voordat een applicatie geïnstalleerd kan worden, moeten de doelen bekend zijn en hoe de applicatie heet.

De lijst met voor FreeBSD beschikbare applicaties groeit continu. Gelukkig zijn er een aantal manieren om te zoeken:

  • Op de FreeBSD 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.

  • Dan Langille onderhoudt FreshPorts op http://www.FreshPorts.org/. FreshPorts volgt veranderingen in applicaties in de ports en biedt de mogelijkheid om of meer ports te volgen. Er wordt dan een email gestuurd als de port is bijgewerkt.

  • Als de naam van de gewenst applicatie niet bekend is, is het wellicht mogelijk deze te achterhalen via een website als FreshMeat (http://www.freshmeat.net/) en kan daarna op de FreeBSD site gecontroleerd worden of de applicatie al geschikt gemaakt is voor gebruik met FreeBSD.

  • Als de precieze naam van de port bekend is, maar niet bekend is in welke categorie deze staat, kan dit achterhaald worden met whereis(1). Door simpelweg whereis bestand in te geven, waar bestand het te installeren programma is. Als het op het systeem staat, wordt dat als volgt aangegeven:

    # whereis lsof
    lsof: /usr/ports/sysutils/lsof
    

    Dit geeft aan dat lsof (een systeemhulpprogramma) in de map /usr/ports/sysutils/lsof staat.

  • U kunt ook een eenvoudig echo(1)-statement gebruiken om uit te zoeken waar een port zich in te ports tree bevindt. Bijvoorbeeld:

    # echo /usr/ports/*/*lsof*
    /usr/ports/sysutils/lsof
    

    Merk op dat dit alle overeenkomstige bestanden die gedownload zijn in de map /usr/ports/distfiles terruggeeft.

  • Nog 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:

    # cd /usr/ports
    # 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”.


4.4. Het pakkettensysteem gebruiken

Bijgedragen door Chern Lee.

Er zijn verschillende gereedschappen die gebruikt worden om pakketten op FreeBSD te beheren:

  • Het gereedschap sysinstall kan op een draaiend systeem worden gebruikt om beschikbare en geïnstalleerde pakketten te installeren, te verwijderen, en weer te geven. Zie voor meer informatie Paragraaf 2.10.11.

  • De opdrachtregelgereedschappen om pakketten te beheren, welke het onderwerp van de rest van deze sectie zijn.


4.4.1. Pakketten installeren

Met pkg_add(1) kan een FreeBSD softwarepakket geïnstalleerd worden vanaf een lokaal bestand of vanaf een server op het netwerk.

Voorbeeld 4-1. Handmatig pakketten downloaden en lokaal installeren

# 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
# pkg_add lsof-4.56.4.tgz

Als er lokaal geen bron is voor pakketten (zoals de FreeBSD CD-ROM-verzameling) dan is het waarschijnlijk makkelijker om de -r optie te gebruiken met 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 -r lsof

Het voorbeeld hierboven haalt het correcte pakket binnen en installeert het zonder dat de gebruiker iets hoeft te doen. Als u een alternatieve FreeBSD Pakkettenmirror wilt specificeren, in plaats van de hoofddistributiesite, dan moet u de omgevingsvariabele PACKAGESITE overeenkomstig instellen om de standaardinstellingen aan te passen. pkg_add(1) gebruikt 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 fetch(3) staat de complete lijst. In het voorbeeld hierboven is gebruik gemaakt van lsof in plaats van lsof-4.56.4. Als het pakket wordt binnengehaald met behulp van de bovenstaande instellingen, dan moet het versienummer van het pakket niet gebruikt worden. pkg_add(1) haalt automatisch de laatste versie van de applicatie binnen.

Opmerking: pkg_add(1) downloadt de meest recente versie van een applicatie als FreeBSD-CURRENT of FreeBSD-STABLE. Als een -RELEASE versie wordt gebruikt, wordt het pakket dat bij die release hoort gebruikt. Het is mogelijk dit gedrag te veranderen door PACKAGESITE te wijzigen. Als u bijvoorbeeld FreeBSD 5.4-RELEASE draait, dan haalt pkg_add(1) standaard de pakketten uit ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/. Om pkg_add(1) de FreeBSD 5-STABLE pakketten te laten downloaden kan PACKAGESITE ingesteld worden op ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/.

Pakketbestanden worden gedistribueerd in de formaten .tgz en .tbz. Ze zijn te vinden op ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/ of op de FreeBSD CD-ROM-distributie. Iedere CD-ROM in de FreeBSD 4-CD-ROM-verzameling (en de PowerPak, enzovoort) bevat pakketten in de map /packages. De opbouw van de pakketten is ongeveer gelijk aan die van /usr/ports. Iedere categorie heeft zijn eigen map en ieder pakket staat ook in de map All.

De mappenstructuur van het pakkettensysteem is gelijk aan die van het portssysteem. Samen vormen ze het pakket/portssysteem.


4.4.2. Pakketten beheren

pkg_info(1) is een hulpprogramma dat de diverse geïnstalleerde pakketten toont en beschrijft.

# 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
...

pkg_version(1) is een hulpprogramma dat een samenvatting van de versie van alle geïnstalleerde pakketten geeft. Het vergelijkt de versie van het pakket met de huidige versie in de Portscollectie.

# 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 pakket 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 pakket 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 pakket.
! Het geïnstalleerde pakket bestaat in de index maar om de een of andere reden was pkg_version niet in staat om het versienummer van het geïnstalleerde pakket met de overeenkomstige ingang in de index te vergelijken.

4.4.3. Pakketten verwijderen

Voor het verwijderen van een geïnstalleerd pakket wordt het hulpprogramma pkg_delete(1) gebruikt.

# pkg_delete xchat-1.7.1

Merk op dat pkg_delete(1) de volledige naam en het volledige nummer van het pakket nodig heeft; het bovenstaande commando zou niet werken als xchat in plaats van xchat-1.7.1 was gegeven. Het is echter eenvoudig om pkg_version(1) te gebruiken om de versie van het geïnstalleerde pakket te achterhalen. U zou ook eenvoudigweg een wildcard kunnen gebruiken:

# pkg_delete xchat\*

In dit geval zullen alle pakketten waarvan de naam met xchat begint worden verwijderd.


4.4.4. Diversen

Alle informatie over pakketten wordt opgeslagen in de map /var/db/pkg. De lijst met geïnstalleerde bestanden en beschrijvingen van ieder pakket staat in de bestanden in deze map.


4.5. 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. Een gedetailleerde beschrijving van de make-doelen en omgevingsvariabelen staat in ports(7).


4.5.1. 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 FreeBSD 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 CVSup

Dit is een snelle methode voor het verkrijgen en bijhouden van een kopie van Portscollectie met behulp van het CVSup-protocol. Meer informatie over CVSup staat in CVSup gebruiken.

Opmerking: De implementatie van het CVSup-protocol dat met FreeBSD wordt geleverd heet csup. Het verscheen voor het eerst in FreeBSD 6.2. Gebruikers van oudere uitgaven kunnen het via de port of het pakket net/csup installeren.

Zorg ervoor dat /usr/ports leeg is voordat csup voor het eerst gebruikt wordt! Als er reeds een Ports Collectie aanwezig is die via een andere bron is opgehaald, zal csup verwijderde patchbestanden niet verwijderen.

  1. Draai csup:

    # csup -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 (Paragraaf A.6.7) staat een complete lijst van mirrorsites;

    Opmerking: Het kan wenselijk zijn een aangepaste ports-supfile te gebruiken, bijvoorbeeld om een CVSup server niet mee te hoeven geven op de commandoregel.

    1. Kopieer in dit geval, als root, /usr/share/examples/cvsup/ports-supfile naar een nieuwe locatie, zoals /root of een thuismap.

    2. Wijzig ports-supfile.

    3. Wijzig CHANGE_THIS.FreeBSD.org in een CVSup server in de buurt. In CVSup Mirrors (Paragraaf A.6.7) staat een volledige lijst met mirrorsites.

    4. Roep nu als volgt csup aan:

      # csup -L 2 /root/ports-supfile
      
  2. Het later draaien van csup(1) zal alle recente veranderingen aan uw Portscollectie downloaden en toepassen, behalve het eigenlijke herbouwen van ports voor uw eigen systeem.

Met Portsnap

Portsnap is een alternatief systeem voor het distribueren van de Portscollectie. In Portsnap gebruiken staat een gedetailleerde beschrijving van alle mogelijkheden van Portsnap.

  1. Download een gecomprimeerd snapshot van de Portscollectie naar /var/db/portsnap. Na deze stap kan eventueel de verbinding met Internet verbroken worden.

    # portsnap fetch
    
  2. Als Portsnap voor de eerste keer draait, pak het snapshot dan uit in /usr/ports:

    # portsnap extract
    

    Als /usr/ports al gevuld is en er alleen wordt bijgewerkt, voer dan het volgende commando uit in plaats van het bovenstaande:

    # portsnap update
    

Met sysinstall

Bij deze methode wordt sysinstall gebruikt om de Portscollectie van installatiemedia te installeren. Hier wordt wel de Portscollectie op het moment dat de release gemaakt is geïnstalleerd. Bij toegang tot Internet is het advies altijd een andere methode te gebruiken.

  1. Draai als root sysinstall (/stand/sysinstall in FreeBSD versies ouder dan 5.2) zoals hieronder aangegeven:

    # sysinstall
    
  2. Scroll naar beneden en selecteer Configure, druk op Enter.

  3. Scroll naar beneden en selecteer Distributions, druk op Enter.

  4. Scroll naar ports, druk op Space.

  5. Scroll naar boven naarExit, druk op Enter.

  6. Selecteer de gewenste installatiemedia, zoals CD-ROM, FTP, enzovoort.

  7. Scroll omhoog naar Exit en druk op Enter.

  8. Druk op X om sysinstall af te sluiten.


4.5.2. 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 FreeBSD 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 (door gebruik te maken van md5(1) en sha256(1)), om 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 FreeBSD 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 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 beschrijving 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 FreeBSD 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 “distributiebestand”. De twee methoden om een FreeBSD port te installeren worden hieronder beschreven.

Opmerking: Ports installeren dient als root te gebeuren.

WaarschuwingVoordat een port wordt geïnstalleerd is het aan te raden op http://vuxml.freebsd.org/ na kijken of er geen beveiligingsproblemen voor de gewenste port bekend zijn.

Er kan automatisch een controle op beveiligingsproblemen door portaudit gedaan worden voordat er een nieuwe applicatie wordt geïnstalleerd. Dit gereedschap kan in de Portscollectie gevonden worden (ports-mgmt/portaudit). Overweeg om portaudit -F te draaien voordat er een nieuwe port wordt geïnstalleerd, om de huidige database met beveiligingsproblemen op te halen. Tijdens de dagelijkse beveiligingscontrole van het systeem zal er een beveiligingsaudit en een update van de database plaatsvinden. Lees voor meer informatie de hulppagina's portaudit(1) en periodic(8).

De Portscollectie neemt aan dat er een werkende Internetverbinding is. Als die niet aanwezig is, zet dan handmatig een kopie van het benodigde distributiebestand in /usr/ports/distfiles.

Ga om te beginnen naar de juiste map voor een port:

# 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:

# make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===>  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]
...
#

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:

# 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.
#

Als de 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 verstandig om de submap die als werkmap wordt gebruikt te verwijderen. Hierin staan alle tijdelijke bestanden die tijdens het compileren worden gebruikt. Die bestanden gebruiken niet alleen waardevolle schijfruimte, maar ze kunnen later ook problemen veroorzaken als de port wordt bijgewerkt.

# make clean
===>  Cleaning for lsof-4.57
#

Opmerking: Het is mogelijk twee stappen minder te gebruiken door make install clean uit te voeren in plaats van make, make install en make clean als drie afzonderlijke stappen.

Opmerking: 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. Gebruik voor shells als sh hash -r. In de documentatie van een shell staat meer informatie.

Sommige DVD-ROM-producten van andere partijen, zoals de FreeBSD Toolkit van de FreeBSD Mall bevatten distributiebestanden. Die kunnen met de Portscollectie gebruikt worden. Koppel de DVD-ROM aan op /cdrom. Stel bij gebruik van een ander aankoppelpunt de make variabele CD_MOUNTPTS in. De benodigde distributiebestanden worden automatisch gebruikt als ze op de schijf aanwezig zijn.

Opmerking: 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.

Het portssysteem gebruikt 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 omgevingsvariabelen in te stellen of om gebruik te maken van een FTP/HTTP proxy. In 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 distributiebestanden van die ports niet opgehaald. Om dat de bereiken dient fetch vervangen te worden door fetch-recursive.

Opmerking: 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:

# cd /usr/ports/directory
# 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/.

Opmerking: 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.


4.5.2.1. Standaardmappen voor ports wijzigen

Soms is het handig (of verplicht) om een andere map voor werk of ports te gebruiken. Met de variabelen WRKDIRPREFIX en PREFIX kunnen de standaardmappen veranderd worden:

# make WRKDIRPREFIX=/usr/home/example/ports install

Het voorbeeld hierboven compileert de port in /usr/home/example/ports en installeert alles in /usr/local.

# make PREFIX=/usr/home/example/local install

Het voorbeeld hierboven compileert in /usr/ports en installeert in /usr/home/example/local.

# make WRKDIRPREFIX=../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.


4.5.2.2. Omgaan met imake

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.


4.5.2.3. Ports herconfigureren

Tijdens het bouwen van bepaalde ports kan er een menu dat op ncurses is gebaseerd verschijnen waaruit u bepaalde bouwopties kunt selecteren. Het is niet ongebruikelijk dat gebruikers dit menu opnieuw willen bezoeken om deze opties toe te voegen, te verwijderen, of te veranderen nadat een port is gebouwd. Er zijn vele manieren om dit te doen. Eén optie is om naar de map waarin de port staat te gaan en make config te typen, wat eenvoudigweg het menu opnieuw toont met daarin de zelfde opties geselecteerd. Een andere optie is om make showconfig te gebruiken, wat alle instelopties voor de port aan u laat zien. Nog een andere optie is om make rmconfig uit te voeren wat alle geselecteerde opties zal verwijderen en u toestaat opnieuw te beginnen. Al deze opties, en anderen, worden zeer gedetailleerd uitgelegd in de hulppagina voor ports(7).


4.5.3. Geïnstalleerde ports verwijderen

Nu u weet hoe ports te installeren, zult u zich waarschijnlijk afvragen hoe ze te verwijderen, in het geval dat u er een installeert en later besluit dat u de verkeerde port heeft geïnstalleerd. We zullen ons vorige voorbeeld (lsof) verwijderen. Ports worden op precies dezelfde manier verwijderd als pakketten met het commando pkg_delete(1) (zoals beschreven in het onderdeel Pakketten):

# pkg_delete lsof-4.57

4.5.4. Ports bijwerken

Stel als eerste een lijst samen met ports waarvoor een nieuwere versie beschikbaar is in de Portscollectie met het commando pkg_version(1):

# pkg_version -v

4.5.4.1. /usr/ports/UPDATING

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, zoals het veranderen van bestandsformaten, veranderen van de locatie van configuratie bestanden, en andere incompatibiliteiten met voorgaande versies.

Als UPDATING tegenstrijdig is met wat hier beschreven is, moet men UPDATING als waar beschouwen.


4.5.4.2. Ports bijwerken met portupgrade

Het hulpprogramma portupgrade is ontworpen om geïnstalleerde ports eenvoudig bij te werken. Het is beschikbaar via de port ports-mgmt/portupgrade. Installeer het net als iedere andere port met het commando make install clean:

# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

Scan de lijst met geïnstalleerde ports met het commando pkgdb -F en corrigeer alle gerapporteerde inconsistenties. Het is verstandig dit regelmatig te doen, voor iedere keer bijwerken.

Door het draaien van portupgrade -a zal portupgrade beginnen met het bijwerken van alle geïnstalleerde ports op een systeem waarvoor een nieuwere versie beschikbaar is. Met de vlag -i is het mogelijk in te stellen dat voor iedere bij te werken port om bevestiging wordt gevraagd.

# portupgrade -ai

Gebruik om alleen een specifieke applicatie bij te werken en niet alle beschikbare ports portupgrade pkgname. Gebruik de vlag -R om portupgrade eerst alle ports bij te laten werken die voor een bij te werken toepassing benodigd zijn.

# portupgrade -R firefox

Gebruik de vlag -P om bij installatie van pakketten in plaats van ports gebruik te maken. Met deze optie zoekt portupgrade in de lokale mappen uit PKG_PATH of haalt de pakketten via het netwerk op als ze lokaal niet worden aangetroffen. Als een pakket 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 -PP:

# portupgrade -PP gnome2

Om alleen de distributiebestanden op te halen (of pakketten als -P is opgegeven), zonder bouwen of installeren, is -F beschikbaar. Meer informatie staat in portupgrade(1).


4.5.4.3. Ports bijwerken met portmanager

Portmanager is een ander hulpprogramma voor het eenvoudig bijwerken van geïnstalleerde ports. Het is beschikbaar via de port ports-mgmt/portmanager:

# cd /usr/ports/sysutils/portmanager
# make install clean

Alle geïnstalleerde ports kunnen bijgewerkt worden met het volgende eenvoudige commando:

# portmanager -u

Met de vlag -ui kan ingesteld worden dat voor iedere stap die Portmanager wil uitvoeren vooraf toestemming moet worden gegeven. Portmanager kan ook nieuwe ports op een systeem installeren. Anders dan met het bekende commando make install clean worden alle afhankelijkheden bijgewerkt voordat de geselecteerde port wordt gebouwd en geïnstalleerd:

# portmanager x11/gnome2

Als er problemen zijn ten aanzien van de afhankelijkheden voor een geselecteerde port, dan kan Portmanager ze allemaal herbouwen in de juiste volgorde. Als dat is afgerond, wordt daarna ook de port die problemen opleverde opnieuw gebouwd:

# portmanager graphics/gimp -f

Meer informatie staat in portmanager(1).


4.5.4.4. Ports bijwerken met Portmaster

Portmaster is nog een gereedschap voor het bijwerken van geïnstalleerde ports. Portmaster was ontworpen om gebruik te maken van de gereedschappen die in het “basis” systeem te vinden zijn (het hangt niet af andere ports) en het gebruikt de informatie in /var/db/pkg om te bepalen welke ports bij te werken. Het is beschikbaar via de port ports-mgmt/portmaster:

# cd /usr/ports/ports-mgmt/portmaster
# make install clean

Portmaster verdeelt ports in vier categoriën:

  • Wortelpoorten (geen afhankelijkheden, wordt niet van afgehangen)

  • Stampoorten (geen afhankelijkheden, wordt van afgehangen)

  • Takpoorten (hebben afhankelijkheden, wordt van afgehangen)

  • Bladpoorten (hebben afhankelijkheden, wordt niet van afgehangen)

U kunt de optie -L gebruiken om alle geïnstalleerde ports tonen en naar updates te zoeken:

# portmaster -L
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
        ===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache-2.2.3
        ===>>> New version available: apache-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
        ===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports

===>>> 137 total installed ports
        ===>>> 83 have new versions available

Alle geïnstalleerde ports kunnen met dit eenvoudige commando worden bijgewerkt:

# portmaster -a

Opmerking: Standaard maakt Portmaster een backup-pakket aan voordat het een bestaande port verwijderd. Als de installatie van de nieuwe versie succesvol is, zal Portmaster de reservekopie verwijderen. Het gebruik van -b zal Portmaster instrueren om de reservekopie niet automatisch te verwijderen. Het toevoegen van de optie -i zal Portmaster in interactieve modus opstarten, en u vragen voordat het elke port bijwerkt.

Als u fouten tegenkomt tijdens het bijwerkproces, kunt u de optie -f gebruiken om alle ports bij te werken/te herbouwen:

# portmaster -af

U kunt Portmaster ook gebruiken om nieuwe ports op het systeem te installeren, en alle afhankelijkheden bijwerken voordat de nieuwe port gebouwd en geïnstalleerd wordt:

# portmaster shells/bash

Bekijk portmaster(8) voor meer informatie.


4.5.5. Ports en schijfruimte

Werken met de Portscollectie kan in de loop der tijd veel schijfruimte gebruiken. Na het bouwen en installeren van software uit de ports, is het van belang altijd de tijdelijke mappen work op te ruimen met het commando make clean. De complete Portscollectie kan geschoond worden met het volgende commando:

# portsclean -C

In de loop der tijd komen ook veel oude bestanden met broncode in de map distfiles te staan. Die kunnen handmatig verwijderd worden of met het volgende commando dat alle distributiebestanden waarnaar in de huidige ports geen verwijzingen meer staan verwijdert:

# portsclean -D

Of om alle distributiebestanden te verwijderen waardoor momenteel door geen één geïnstalleerde port op uw systeem wordt verwezen:

# portsclean -DD

Opmerking: Het hulpprogramma portsclean is onderdeel van de suite portupgrade.

Vergeet niet ports die niet langer gebruikt worden te verwijderen. Een handig hulpmiddel hiervoor kan de port ports-mgmt/pkg_cutleaves zijn.


4.6. 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 opstarten (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 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:

    # 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:

    # pkg_info | grep -i foopackage
    

    Hiermee worden alle pakketten getoond waar foopackage in de pakketnaam voorkomt.

  • Als de hulppagina's zijn gevonden, kunnen die bekeken worden met 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:

    # 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 opstarten 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.


4.7. Omgaan met kapotte ports

Als een port niet werkt, zijn er een aantal mogelijke manieren om verder te komen:

  1. Zoek uit of er een oplossing voor de port staat te wachten in de Problem Report database. Als dat zo is kan wellicht de voorgestelde reparatie gebruikt worden.

  2. Vraag de beheerder van de port om hulp. Voor het emailadres van de beheerder kan make maintainer getypt worden of het kan in de Makefile staan. Zet in de mail in ieder geval de naam en versie van de port (de regel met $FreeBSD: in de Makefile) en de uitvoer tot en met de foutmelding.

    Opmerking: Sommige ports worden niet beheerd door een individu maar in plaats daarvan door een mailinglijst. Veel, maar niet alle, van deze adressen zien eruit als . Houd hier alstublieft rekening mee bij het formuleren van vragen.

    In het bijzonder worden ports die geregistreerd staan als onderhouden door helemaal niet onderhouden. Reparaties en ondersteuning, als dat al beschikbaar is, komt vanuit de gemeenschap die is geabonneerd op die mailinglijst. Meer vrijwilligers zijn altijd nodig!

    Als er geen antwoord komt, stuur dan met send-pr(1) een foutrapport in. Zie Writing FreeBSD Problem Reports).

  3. 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.

  4. Zoek een pakket van een FTP site in de buurt. De “master” pakketcollectie staat op ftp.FreeBSD.org in de map pakketten, maar het is van belang dat er eerst in de buurt wordt gekeken! Dat het pakket werkt is waarschijnlijker dan wanneer uit de broncode wordt gecompileerd en het is nog sneller ook. Een pakket kan met pkg_add(1) geïnstalleerd worden.


Hoofdstuk 5. Het X Window systeem

Bijgewerkt voor X.Org's X11 server door Ken Tom en Marc Fonvieille. Vertaald door Erik Radder.

5.1. Overzicht

FreeBSD gebruikt X11 om gebruikers een krachtige grafische gebruikersschil te bieden. X11 is een vrij beschikbare versie van het X Window System dat geïmplementeerd is in zowel Xorg als XFree86 (en andere softwarepakketten die hier niet worden besproken). FreeBSD versies tot en met FreeBSD 5.2.1-RELEASE hebben XFree86 als standaard, de X11 server die is uitgebracht door The XFree86 Project, Inc. Vanaf FreeBSD 5.3-RELEASE is de officiële standaardversie van X11 gewijzigd naar Xorg, de X11-server die is ontwikkeld door de X.Org Foundation onder een licentie die veel lijkt op degene die door FreeBSD wordt gebruikt. Er zijn ook commerciële X-servers voor FreeBSD beschikbaar.

In dit hoofdstuk wordt de installatie en instelling van X11 behandeld met de nadruk op Xorg 7.4 release. Voor informatie over het configureren van XFree86 (i.e. op oudere uitgaven van FreeBSD waar XFree86 de standaard X11-distributie was) of vorige uitgave van Xorg, is het altijd mogelijk om gearchiveerde versies van het FreeBSD Handboek op http://docs.FreeBSD.org/doc/ te raadplegen.

Meer informatie over de videohardware die X11 ondersteunt kan gevonden worden op de Xorg website.

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 (Hoofdstuk 4).


5.2. X begrijpen

X voor de eerste keer gebruiken kan een hele schok zijn voor mensen die gewend zijn aan andere grafische omgevingen, zoals Microsoft Windows of Mac OS.

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.


5.2.1. 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. X(7) kan hierover wat licht laten schijnen.


5.2.2. 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, en andere invoer- of uitvoerapparaten (i.e. een “tablet” kan als invoerapparaat worden gebruikt, en een videoprojector kan een alternatief uitvoerapparaat zijn). Iedere X applicatie (zoals XTerm, of Netscape) is een “cliënt”. Een cliënt 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.

Opmerking: 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 Microsoft Windows of Apple's Mac OS te draaien en er zijn verschillende gratis en commerciële applicaties die dat doen.


5.2.3. 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 Alt+Tab in het geval van Microsoft 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 gelijksoortig. 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 Microsoft 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.


5.2.4. 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. Microsoft Windows noemt ze “controls”.

Microsoft Windows en Apple's Mac OS 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 Microsoft 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 enigszins op de UNIX desktop, wat het makkelijker maakt voor de beginnende gebruiker.


5.3. X11 installeren

Xorg is de standaard X11 implementatie voor FreeBSD. 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 versie van Xorg die momenteel beschikbaar is in de FreeBSD Portscollectie is 7.4.

Om Xorg vanuit de Portscollectie te bouwen en te installeren:

# cd /usr/ports/x11/xorg
# make install clean

Opmerking: Om Xorg compleet te bouwen is tenminste 4 GB vrije schijfruimte nodig.

X11 kan ook als package geïnstalleerd worden doordat er binaire packages beschikbaar zijn voor pkg_add(1). Als hiervoor de optie “remote fetching” van pkg_add(1) wordt gebruikt, dan moet het versienummer verwijderd worden. pkg_add(1) haalt automatisch de laatste versie van het programma op.

Om het package voor Xorg op te halen en te installeren:

# pkg_add -r xorg

Opmerking: Het voorbeeld hierboven installeert de complete X11 distributie inclusief de servers, clients, lettertypen enz. Er zijn ook afzonderlijke 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.


5.4. X11 instellen

Geschreven door Christopher Shumway.

5.4.1. 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

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 verticale synchronisatiesnelheid (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.


5.4.2. X11 instellen

Sinds versie 7.3 kan Xorg vaak zonder enig instellingenbestand werken door eenvoudig op de prompt te typen:

% startx

Beginnend met versie 7.4 kan Xorg HAL gebruiken om toetsenborden en muizen automatisch te detecteren. De ports sysutils/hal en devel/dbus worden als afhankelijkheden van x11/xorg geïnstalleerd, maar moeten met de volgende regels in het bestand /etc/rc.conf worden aangezet:

hald_enable="YES"
dbus_enable="YES"

Deze diensten dienen gestart te worden (ofwel handmatig of door opnieuw op te starten) voordat er verder wordt gegaan met de configuratie van Xorg.

De automatische configuratie kan met sommige hardware mislukken, of het kan dingen anders instellen dan gewenst is. In deze gevallen is handmatige configuratie nodig.

Opmerking: Bureaubladomgevingen als GNOME, KDE, of XFce hebben gereedschappen waarmee de gebruiker eenvoudig de schermparameters zoals de resolutie kan instellen. Dus als de standaardconfiguratie niet acceptabel is en u van plan bent om een bureaubladomgeving te installeren kunt u gewoon doorgaan met de installatie van de bureaubladomgeving en het juiste scherminstelgereedschap gebruiken.

Het instellen van X11 bestaat uit meerdere stappen. De eerste stap is het bouwen van een instellingenbestand. Dit kan als de supergebruiker met:

# Xorg -configure

Dit genereert een kaal X11-instellingenbestand 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 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. Typ in Xorg tot en met versie 7.3:

# Xorg -config xorg.conf.new

Beginnend met Xorg 7.4 en hoger produceert deze test een zwart scherm wat het moeilijk kan maken om vast te stellen of X11 juist werkt. Het oudere gedrag is nog steeds beschikbaar door de optie retro te gebruiken:

# Xorg -config xorg.conf.new -retro

Als er een zwart/grijs rooster en een X muis cursor verschijnen was de instelling succesvol. Om de test te stoppen dient gelijktijdig op Ctrl+Alt+Backspace gedrukt te worden.

Opmerking: Deze toetsencombinatie stond standaard aan tot en met versie 7.3 van Xorg. Voeg de volgende regel toe aan de sectie ServerLayout of ServerFlags van het instellingenbestand om het in versie 7.4 en hoger aan te zetten:

Option "DontZap" "Off"

Als de muis niet werkt, dan moet deze eerst ingesteld worden. Zie Paragraaf 2.10.10 in het FreeBSD installatiehoofdstuk. Verder worden beginnend met versie 7.4 de secties InputDevice in xorg.conf genegeerd ten voorkeur van de automatisch verbonden apparaten. Voeg de volgende regel aan de sectie ServerLayout of ServerFlags van dit bestand toe om het oude gedrag te herstellen:

Option "AutoAddDevices" "false"

Invoerapparaten kunnen dan zoals in vorige versies worden geconfigureerd, tezamen met eventuele andere benodigde opties (b.v. omschakelen van toetsenbordlayout).

Nu moet xorg.conf.new worden aangepast aan de smaak van de gebruiker. Hiervoor moet het bestand in een teksteditor zoals emacs(1) of ee(1) worden geladen. Eerst moeten de frequenties van de monitor toegevoegd worden. Die zijn meestal weergegeven als horizontale en verticale 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 verticale 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. xset(1) regelt de timeouts 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"

Als het instellingenbestand xorg.conf.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 -depth van Xorg(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 standaard kleurdiepte 24 bits per pixel. Bij deze kleurdiepte is de toegestane resolutie 1024 bij 768 pixels.

Opmerking: 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. 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 Xorg(1) het kan vinden. Dit is meestal /etc/X11/xorg.conf of /usr/local/etc/X11/xorg.conf:

# cp xorg.conf.new /etc/X11/xorg.conf

Het instellen van X11 is nu gereed. Xorg gestart worden met startx(1). De X11-server kan ook gestart worden met behulp van xdm(1).


5.4.3. Bijzondere instellingen

5.4.3.1. Instellen met de Intel® i810 grafische chipset

Instellen met Intel i810 geïntegreerde chipsets vereist de agpgart AGP programmeerinterface voor X11 om de kaart aan te sturen. Zie de agp(4) handleiding voor meer informatie.

Hierdoor wordt het instellen van de hardware net als ieder andere grafische kaart. Bij systemen die zonder agp(4) stuurprogramma gecompileerd zijn slaagt het laden van module met kldload(8) niet. Het stuurprogramma moet in de kernel geladen zijn tijdens het opstarten door te compileren of door /boot/loader.conf te gebruiken.


5.4.3.2. Een Breedbeeld Flatpanel toevoegen

Deze sectie gaat uit van wat diepere configuratiekennis. Als pogingen om de bovenstaande standaard instelgereedschappen niet tot een werkende configuratie leidden, dan is er genoeg informatie in de logbestanden om de opstelling aan de praat te krijgen. Het gebruik van een tekstverwerker zal nodig zijn.

Huidige breedbeeldformaten (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, et. al.) ondersteunen 16:10 en 10:9 formaten of aspectverhoudingen die problematisch kunnen zijn. Voorbeelden van enkele veelvoorkomende schermresoluties voor 16:10 aspectverhoudingen zijn:

  • 2560x1600

  • 1920x1200

  • 1680x1050

  • 1440x900

  • 1280x800

Op een gegeven moment zal het toevoegen van een van deze resoluties net zo eenvoudig zijn als een mogelijke Mode in het Section "Screen":

Section "Screen"
Identifier "Screen 0"
Device     "Card0"
Monitor    "Monitor0"
DefaultDepth 24
SubSection "Display"
    Viewport 0 0
    Depth    24
    Modes    "1680x1050"
EndSubSection
EndSection

Xorg is slim genoeg om de resolutie-informatie via I2C/DDC-informtie uit het flatpanel te onttrekken zodat het weet wat de monitor aan kan wat betreft frequenties en resoluties.

Als die ModeLines niet bestaan in de stuurprogramma's, dient men Xorg een kleine hint te geven. Met behulp van /var/log/Xorg.0.log kan men genoeg informatie onttrekken om handmatig een werkende ModeLine aan te maken. Kijk naar informatie die op deze lijkt:

(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz   Image Size:  433 x 271 mm
(II) MGA(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48  V max: 85 Hz, H min: 30  H max: 94 kHz, PixClock max 170 MHz

Deze informatie wordt EDID-informatie genoemd. Hiervan een ModeLine maken is gewoon een kwestie van de nummers in de juiste volgorde zetten:

ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>

Dus de ModeLine in Section "Monitor" zou er voor dit voorbeeld uitzien als:

Section "Monitor"
Identifier       "Monitor1"
VendorName       "GroteNaam"
ModelName        "BesteModel"
ModeLine         "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option           "DPMS"
EndSection

Na het voltooien van deze eenvoudige stappen, zou X moeten starten op uw nieuwe breedbeeldmonitor.


5.5. Lettertypen gebruiken in X11

Bijgedragen door Murray Stokely.

5.5.1. 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 X(7) of de paragraaf over TrueType Lettertypen.

Om de bovenstaande Type1 lettertypecollectie van de Portscollectie te installeren:

# cd /usr/ports/x11-fonts/urwfonts
# 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 aan het instellingenbestand van de X server (/etc/X11/xorg.conf):

FontPath "/usr/local/lib/X11/fonts/URW/"

Ook kan op de commando regel in de X sessie het volgende gestart worden:

% xset fp+ /usr/local/lib/X11/fonts/URW
% 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/local/etc/fonts/local.conf: zie hiervoor de paragraaf over over Anti-aliasing.


5.5.2. TrueType® lettertypen

Xorg heeft 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.

Load  "freetype"

Hierna dient een map voor de TrueType lettertypen gemaakt te worden (bijvoorbeeld /usr/local/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 FreeBSD Portscollectie als x11-fonts/ttmkfdir.

# cd /usr/local/lib/X11/fonts/TrueType
# ttmkfdir -o fonts.dir

Nu moet de TrueType map toe aan het lettertypepad toegevoegd worden. Dit gebeurt op dezelfde wijze als boven is beschreven voor Type1 lettertypen:

% xset fp+ /usr/local/lib/X11/fonts/TrueType
% xset fp rehash

of door een FontPath regel toe te voegen aan xorg.conf.

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.


5.5.3. Antialias lettertypen

Bijgewerkt door Joe Marcus Clarke.

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/local/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/local/etc/fonts/local.conf gemaakt of gewijzigd worden. In dit bestand kunnen speciale eigenschappen van het Xft lettertypesysteem aangepast worden. Deze paragraaf beschrijft wat eenvoudige mogelijkheden. Meer details staan in fonts-conf(5).

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/local/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/local/etc/fonts/local.conf toegevoegd te worden:

<dir>/pad/naar/mijn/fonts</dir>

Na het toevoegen van nieuwe lettertypen en zeker nieuwe lettertypemappen dienen de lettertypecaches opnieuw opgebouwd worden met:

# 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>

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:

&l