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

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

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

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

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

4.2.5. Single-user console

In Paragraaf 13.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.

4.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. Laad de module VESA om gebruik te maken van de verschillende video modes:

# kldload vesa

Kijk daarna 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"

Noten

[1]

Dit betekent i386. Let op: ook al draait FreeBSD niet op een Intel 386 processor, toch is dit een i386. Het is niet het type processor, maar de processor “architectuur”.

[2]

Opstart scripts zijn programma's die automatisch gestart worden tijdens het opstarten. Het hoofddoel van deze programma's is om dingen goed te zetten zodat alle andere programma's ook kunnen draaien, en om services te starten die je geconfigureerd hebt om bruikbare zaken in de achtergrond te doen.

[3]

Een redelijk technische en accurate beschrijving van alle details over de FreeBSD console en toetsenborddrivers staan in de hulppagina's van syscons(4), atkbd(4), vidcontrol(1) en kbdcontrol(1). Hier wordt niet verder op ingegaan, maar de geïnteresseerde lezer kan altijd de hulppagina's raadplegen voor meer details en een grondige uitleg over hoe alles werkt.