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 .