Terminalfunktioner - Terminal capabilities

I computing og telekommunikation er kapaciteterne i en terminal forskellige terminalfunktioner, ud over hvad der er tilgængeligt fra en ren teletypemaskine , som værtssystemer (og de programmer, der kører på dem) kan gøre brug af. De er (hovedsageligt) kontrolkoder og flugtkoder, der kan sendes til eller modtages fra terminalen. Koderne sendt til terminalen udføre forskellige funktioner, en CRT terminal (og software terminalemulatorer ) er i stand til, men at en teletypewriter ikke er; såsom at flytte terminalens markør til positioner på skærmen, rydde og rulle hele eller dele af skærmen, tænde og slukke for tilsluttede printerenheder, programmere programmerbare funktionstaster, ændre skærmfarver og attributter (såsom omvendt video ) og indstille display titelstrenge. Flugtkoderne modtaget fra terminalen betyder ting som funktionstast , piletast og anden speciel tast ( starttast , slut-tast , hjælp-tast , PgUp-tast , PgDn-tast , indsæt-tast , slet-tast osv.) Tastetryk .

Unix og POSIX: termcap, terminfo, et al.

I Unix og andre POSIX- kompatible systemer, der understøtter POSIX-terminalgrænsefladen , er disse funktioner kodet i databaser, der er konfigureret af en systemadministrator og tilgås fra programmer via terminfo- biblioteket (som erstatter det ældre termcap- bibliotek), hvorpå de igen er indbyggede biblioteker såsom forbandelser og ncurses- biblioteker, hvormed applikationsprogrammer bruger terminalfunktionerne til at give tekstbrugergrænseflader med vinduer, dialogbokse, knapper, etiketter, indtastningsfelter, menuer osv. Hensigten er, at dette gør det muligt for applikationsprogrammer at være uafhængige af faktiske terminalegenskaber. De har ikke brug for at fastgøre nogen kontrolkoder eller undslippe sekvenser i deres kode, og har derfor ikke problemer med at blive brugt på en række terminaler med en række muligheder.

termcap

Den termcap (efter " sigt FSLUTTENDE cap evner") bibliotek blev udviklet til BSD-systemer. Den bruger en database, der er gemt i filen / etc / termcap . Denne database består af en række poster (som hver består af en eller flere linjer i filen, sammenføjet med tilbageslagstegn i enderne af hver linje, der fortsætter til en efterfølgende), som hver repræsenterer en bestemt terminals muligheder. Felterne i posten indeholder terminalens navn eller navne efterfulgt af en række funktioner, adskilt af kolon. Kapacitetsfelterne falder i tre grupper:

terminalens egenskaber
Disse omfatter ting som det (nominelle) antal rækker og søjler, som terminalens display har, uanset om output automatisk ombrydes til den næste linje, når den når slutningen af ​​en linje osv.
kontrolsekvenser sendt som output til terminalen
Disse omfatter kontrolkoder og escape-sekvenser sendt til terminalen for at den kan udføre en handling (ikke nødvendigvis en displayhandling). Et eksempel på en af ​​de enkleste er output-sekvensen for at rydde skærmen, som kan være form-feed (ASCII FF ) -tegnet på nogle typer terminaler, men kan f.eks. Være escape-sekvensen ␛2J på en terminal, der kræver ANSI-escape-sekvenser .
kontrolsekvenser sendt som input af terminalen
Disse omfatter kontrolkoder og escape-sekvenser, som terminalen sender til værten for at repræsentere forskellige handlinger og begivenheder, såsom funktionstaster og piletaster, der trykkes på.

terminfo

Terminfo (" term inal info rmation") -biblioteket blev udviklet til System V-systemer. Den bruger en database, der er gemt i flere filer i en mappe, som kan være forskelligt (på forskellige enheder og POSIX-kompatible systemer) / usr / lib / terminfo , / usr / share / terminfo eller endda / usr / share / lib / terminfo . (Dens placering er ikke engang ensartet på tværs af forskellige distributioner af Linux .)

I modsætning til termcap-databasen kompileres terminfo-databasen, en maskinlæsbar database, der er konstrueret fra et menneskeligt læsbart kildefilformat af et hjælpeprogram, tic . De kan dekompileres fra maskinlæsbar form tilbage til menneskelig læsbar form af et andet hjælpeprogram, infocmp . Kommandoen til at udsende den menneskelæsbare form af "vt100" terminaldefinitionen er for eksempel:

infocmp vt100

Brugen af ​​et maskinlæsbart format var at undgå unødvendige omkostninger i applikationsprogrammer, der bruger systemer som termcap-biblioteket, til gentagne gange at parsere databaseindholdet for at læse felterne i en post. Brugen af ​​flere filer var at undgå den samme omkostning ved parsing af databaseindholdet for at finde databaseposten til målterminaltypen. Terminalindeksets navnindeks er effektivt Unix / POSIX-filsystemets almindelige katalogstruktur. Oprindeligt havde Unix alvorlige ydeevneproblemer med store biblioteker, der indeholder mange filer, og terminfo bruger således en struktur på to niveauer, der opdeler biblioteksposterne med første bogstav i en række underkataloger. Senere filsystemformater, der bruges på Unix-systemer, lider ikke så meget af sådanne problemer (fordi deres biblioteksstrukturer på disken ikke længere er enkle arrays af poster, men er organiseret i træer eller hash-tabeller) og så nødvendigheden af ​​dette designelement , der stadig eksisterer i moderne terminfo-implementeringer, er siden forsvundet.

Hjælpeprogrammer til at udøve terminalfunktioner

På Unix-systemer bruges tput- kommandoen til at slå en bestemt kapacitet op i systemets database og output den til kommandoens standardoutput (som sandsynligvis er terminalen, ved hvilken den funktion, der betegnes med kapaciteten, skal udføres). En af de enkleste operationer er at rydde skærmen. Navnet på databasefeltet, der gemmer output-sekvensen for dette, er klart , så kommandoargumenterne til tput- programmet for at rydde skærmen er

tput clear

En anden handling initialiserer eller nulstiller terminalen til en kendt standardtilstand (af karakterattributter, skrifttyper, farver osv.). Kommandoerne til dette er:

tput init

og

tput reset

Normalt bruger tput- kommandoen den terminaltype, der er angivet af TERM miljøvariablen , en af ​​de kontrollerende miljøvariabler i POSIX-terminalgrænsefladen . Dette kan dog tilsidesættes for at tvinge tput til at slå en anden terminaltype op i databasen med en kommandolinjemulighed til kommandoen. Så for eksempel for at udstede den nulstillingssekvens, der passer til den type terminal, der hedder "vt100" i databasen (normalt en DEC VT100- terminal), uanset terminaltype specificeret i miljøvariabler, er kommandoen:

tput -T vt100 reset

Referencer

Hvad understøtter hvad

Kilder anvendt

  • Afzal, Amir (2008). UNIX ubegrænset: en begyndende tilgang (5. udgave). Prentice Hall. ISBN   978-0-13-119449-6 .
  • Blum, Richard (2008). Linux Command Line og Shell Scripting Bible . Bibelserie. John Wiley og sønner. ISBN   978-0-470-25128-7 .
  • Kiste, Stephen (1991). UNIX system V udgivelse 4: den komplette reference . Osborne McGraw-Hill. ISBN   978-0-07-881653-6 .
  • Frisch, Æleen (2002). Væsentlig systemadministration . En nøddeskalshåndbog (3. udgave). O'Reilly Media, Inc. ISBN   978-0-596-00343-2 .
  • Kumar, Sudhir (2004). Encyclopaedia of Operating System . Anmol Publications PVT. LTD. ISBN   978-81-261-1792-5 .
  • Raymond, Eric S. (2004). Kunsten med Unix programmering . Addison-Wesley professionel computerserie. Addison-Wesley. ISBN   978-0-13-142901-7 .
  • Winsor, Janice (2001). Solaris 8 Advanced System Administrator's Guide (3. udgave). Prentice Hall PTR. ISBN   978-0-13-027703-9 .

Yderligere læsning

  • Strang, John; Mui, Linda; O'Reilly, Tim (1991). Termcap og terminfo . Nøddeskalshåndbog (3. udgave). O'Reilly Media, Inc. ISBN   978-0-937175-22-4 .