Virtuaalikonsoli
Linux/Unix-järjestelmissä (järjestelmä)konsoli eli näytön ja näppäimistön yhdistelmä on jaettu useaan eri virtuaalikonsoliin. Virtuaalikonsolit toimivat kukin eräänlaisina omina työtiloinaan, joissa voidaan ajaa ohjelmia riippumatta siitä, mitä toisissa virtuaalikonsoleissa on ajossa. Tämä on suuri etu verrattuna esimerkiksi Windows/DOS-järjestelmiin, joissa käytössä ei ole kuin järjestelmäkonsoli, eikä edusta-ajossa voi olla kuin yksi ohjelma kerrallaan. Unixissa järjestelmäkonsoli seuraa kulloinkin käytössä olevaa virtuaalikonsolia, johon näyttö- ja syötelaitteet (yleensä näyttö ja näppäimistö) ovat kytköksissä ja johon myös järjestelmänlaajuiset virheilmoitukset tulostuvat.
Linuxissa virtuaalikonsolit 1-6 ovat yleensä tekstipohjaisessa käytössä ja niihin on käynnistetty jokin getty-ohjelma odottamaan käyttäjän sisäänkirjautumista. X Window System käynnistyy oletuksena virtuaalikonsoliin 7, joten jos järjestelmässä on käytössä jokin graafinen sisäänkirjautumisohjelma (display manager) niin käynnistyksen jälkeen kone on yleensä tässä virtuaalikonsolissa. Muussa tapauksessa oletusvirtuaalikonsoli on 1. Virtuaalikonsolien määrä ei kuitenkaan ole rajoitettu näihin seitsemään, vaan niitä voi käynnistää lisää aina 63:een saakka.
Virtuaalikonsolista toiseen siirrytään näppäinyhdistelmällä Alt+F? (esimerkiksi Alt+F1 tai Alt+F9) tai näppäinyhdistelmällä Alt+sivunuolinäppäin. Myös komentoa chvt voi käyttää. Nämä näppäinyhdistelmät eivät kuitenkaan päde X:ssä, jossa virtuaalikonsolista toiseen siirtymiseen on käytettävä näppäinyhdistelmää Ctrl+Alt+F? (esimerkiksi Ctrl+Alt+F6).
Laitetiedostot
Virtuaalikonsolien laitetiedostot ovat muotoa /dev/ttyX (joissakin järjestelmissä myös /dev/vc/X), jossa X on numero väliltä 0-63. Virtuaalikonsoli 0 viittaa aina kulloinkin aktiiviseen virtuaalikonsoliin, joten se toimii käytännössä samoin kuin (järjestelmä)konsolin laitetiedosto /dev/console. Normaalit virtuaalikonsolit ovat aina sen käyttäjän omistuksessa, joka omistaa niissä ajettavan ohjelman. Virtuaalikonsolien määrän rajoitus 63:een on ytimen sisäinen asetus.
Uusien virtuaalikonsolien varaaminen
Jos kuusi gettyn sisältävää virtuaaliterminaalia loppuvat kesken, voi uusia käynnistää komennolla openvt (vanhemmissa järjestelmissä nimellä open):
openvt -c 8 /sbin/agetty 38400 tty8 linux
Tässä käynnistetään agetty-niminen getty-ohjelma virtuaalikonsoliin 8. Agetty on yleiskäyttöinen getty-ohjelma, jonka voi laittaa vahtimaan niin virtuaalikonsolia kuin sarjaterminaalia tai modeemilinjaakin. Kaikki jakelut eivät käytä agettya oletus-gettynään. Esimerkiksi Fedoran käyttäjät todennäköisesti mieluummin komentaisivat
openvt -c 8 /sbin/mingetty tty8
Openvt:llä voi myös käynnistää muitakin ohjelmia kuin gettyjä, esimerkiksi seuraava käynnistäisi vim-tekstieditorin ensimmäiseen vapaaseen virtuaalikonsoliin:
openvt /usr/bin/vim
Virtuaalikonsolien pysyvämpään varaamiseen esimerkiksi gettyä varten käytetään initin asetustiedostoa /etc/inittab. Jos inittabista löytyy entiseltään esimerkiksi rivit
c1:2345:respawn:/sbin/agetty 38400 tty1 linux c2:2345:respawn:/sbin/agetty 38400 tty2 linux c3:2345:respawn:/sbin/agetty 38400 tty3 linux c4:2345:respawn:/sbin/agetty 38400 tty4 linux c5:2345:respawn:/sbin/agetty 38400 tty5 linux c6:2345:respawn:/sbin/agetty 38400 tty6 linux
lisätään tällöin yksinkertaisesti rivi
c7:2345:respawn:/sbin/agetty 38400 tty7 linux
mikäli halutaan 7:een virtuaaliterminaaliin getty. Tällöin mahdollisesti avattavat X-istunnot siirtyvät käyttämään virtuaaliterminaalia 8, joka on ensimmäinen vapaa virtuaalikonsoli. Rivin ensimmäinen sarake määrittää toiminnon kohteen. Tässä esimerkiksi c30 olisi kolmaskymmenes virtuaalikonsoli ja s1 ensimmäinen sarjaporttilinja. Toisessa sarakkeessa määritellään ajotasot, joissa toiminto suoritetaan, tässä tapauksessa 2, 3, 4 ja 5. Kolmas sarake määrittää, miten ja milloin toiminto pitää suorittaa. respawn tarkoittaa, että prosessi suoritetaan välittömästi uudelleen sen suorituksen päätyttyä. once aiheuttaisi suorittamisen vain kerran. Neljännessä sarakkeessa määritellään ajettava ohjelma valitsimineen (ohjelman koko polku määriteltävä). Agettylle on määritelty yhteyden baudimäärä (signaalinmuutosten määrä sekunnissa), käytettävä virtuaalikonsoli ilman /dev/-osaa sekä käytettävä terminaalityyppi. Pelkästään virtuaalikonsolikäyttöön tehdyt gettyt eivät yleensä vaadi muuta määrettä kuin käytettävän virtuaalikonsolin nimen.
X ja virtuaalikonsolit
X käynnistyy oletuksena ensimmäiseen vapaaseen virtuaalikonsoliin. Jos halutaan käynnistää useampia eri X-istuntoja eri virtuaalikonsoleihin, on huomioitava X-palvelimen oma display-asetus. Ensimmäisen käynnistetyn X-istunnon display-numero on 0, mutta sitä seuraaville istunnoille se on määriteltävä erikseen. Esimerkiksi jos seitsemännessä virtuaalikonsolissa on käynnissä X:n display numero 0, niin 8:een virtuaalikonsoliin haluttavalle uudelle X-istunnolle on annettava jokin toinen numero, kuten 1 tai 42, jotta X-palvelin voi erottaa nämä istunnot toisistaan ja niihin voidaan järkevästi viitata. Startx-komennon kanssa display-numero määritellään seuraavasti:
startx -- :1
myös seuraava, käytettävän näytön numeron (tässä ensimmäinen näyttö) määrittelevä syntaksi on mahdollinen:
startx -- 0:1
Xinit-komento tottelee samaa syntaksia. Puhtaan X:n ilman ohjelmia käynnistävä X-komento ei sen sijaan tarvitse kahta viivaa (--):
X :1 -query xdmcp.firma.fi