Możliwości terminala - Terminal capabilities
W informatyce i telekomunikacji, te możliwości o terminalu są różne funkcje terminali, wykraczające poza to, co jest dostępne z czystym dalekopisowych , że systemy gospodarza (i programy, które bazują na nich) można wykorzystać. Są to (głównie) kody kontrolne i kody ucieczki, które można wysyłać do lub odbierać z terminala. Kody ucieczki wysyłane do terminala pełnią różne funkcje, do których zdolny jest terminal CRT (i programowe emulatory terminala ), ale teletypewriter nie. takie jak przesuwanie kursora terminala do pozycji na ekranie, czyszczenie i przewijanie całego lub części ekranu, włączanie i wyłączanie podłączonych drukarek, programowanie programowalnych klawiszy funkcyjnych, zmiana kolorów i atrybutów wyświetlacza (takich jak odwrócone wideo ) oraz ustawianie wyświetlania ciągi tytułów. Kody ucieczkowe otrzymane z terminala oznaczać rzeczy, takich jak przycisk funkcyjny , klawisz strzałki , a drugi klucz specjalny ( klucz do domu , klawisz zakończenia , klawisz pomocy , klawisz PgUp , klawisz PgDn , wpisać klucz , klawisz Delete i tak dalej) naciśnięcia klawiszy .
Unix i POSIX: termcap, terminfo i in.
W systemach Unix i innych systemach zgodnych z POSIX , które obsługują interfejs terminala POSIX , te możliwości są kodowane w bazach danych, które są konfigurowane przez administratora systemu i są dostępne z programów za pośrednictwem biblioteki terminfo (która zastępuje starszą bibliotekę termcap ), na której z kolei są wbudowane biblioteki, takie jak biblioteki curses i ncurses , za pomocą których programy użytkowe wykorzystują możliwości terminala do dostarczania tekstowych interfejsów użytkownika z oknami, oknami dialogowymi, przyciskami, etykietami, polami wprowadzania, menu i tak dalej. Intencją jest to, że pozwala to aplikacjom być niezależnymi od rzeczywistych charakterystyk terminala. Nie muszą podłączać na stałe żadnych kodów sterujących ani sekwencji ucieczki do swojego kodu, dzięki czemu nie mają problemów z używaniem na wielu terminalach o różnych możliwościach.
termcap
Biblioteka termcap (od określenia „ term inal cap abilities”) została opracowana dla systemów BSD. Wykorzystuje bazę danych przechowywaną w pliku / etc / termcap . Ta baza danych składa się z serii rekordów (z których każdy składa się z jednego lub więcej wierszy w pliku, połączonych znakami ukośnika odwrotnego na końcach każdego wiersza i przechodzi do następnego), z których każdy reprezentuje możliwości określonego terminala. Pola rekordu zawierają nazwę lub nazwy typu terminala, po których następuje sekwencja właściwości oddzielonych dwukropkami. Same pola zdolności dzielą się na trzy grupy:
- charakterystyka terminala
- Obejmują one takie rzeczy, jak (nominalna) liczba wierszy i kolumn, które ma wyświetlacz terminala, czy dane wyjściowe automatycznie zawijają się do następnej linii po osiągnięciu końca linii i tak dalej.
- sekwencje sterujące wysyłane jako dane wyjściowe do terminala
- Obejmują one kody sterujące i sekwencje ucieczki wysyłane do terminala w celu wykonania jakiejś czynności (niekoniecznie akcji wyświetlania). Przykładem jednej z najprostszych jest sekwencja wyjściowa do wyczyszczenia ekranu, która może być znakiem wysuwu formularza (ASCII FF ) na niektórych typach terminali, ale może być, powiedzmy, sekwencją ucieczki ␛2J na terminalu, która wymaga sekwencji sterujących ANSI .
- sekwencje sterujące wysyłane jako wejście przez terminal
- Obejmują one kody sterujące i sekwencje ucieczki, które terminal wysyła do hosta w celu przedstawienia różnych działań i zdarzeń, takich jak naciskane klawisze funkcyjne i klawisze strzałek .
terminfo
Biblioteka terminfo („ termin inal info rmation”) została opracowana dla systemów System V. Używa bazy danych przechowywanej w wielu plikach w katalogu, które mogą być różnie (w różnych systemach zgodnych z Unices i POSIX) / usr / lib / terminfo , / usr / share / terminfo , a nawet / usr / share / lib / terminfo . (Jego lokalizacja nie jest nawet jednolita w różnych dystrybucjach Linuksa ).
W przeciwieństwie do bazy danych termcap, baza danych terminfo jest kompilowana, czyli odczytywalna maszynowo baza danych, która jest konstruowana z pliku źródłowego w formacie czytelnym dla człowieka przez program narzędziowy tic . Mogą być dekompilowane z postaci czytelnej dla komputera z powrotem do postaci czytelnej dla człowieka za pomocą innego programu narzędziowego, infocmp . Na przykład polecenie wyświetlające czytelną dla człowieka formę definicji terminala „vt100” to:
infocmp vt100
Użycie formatu do odczytu maszynowego miało na celu uniknięcie niepotrzebnego narzutu w aplikacjach korzystających z systemów takich jak biblioteka termcap, polegającego na wielokrotnym analizowaniu zawartości bazy danych w celu odczytania pól rekordu. Użycie wielu plików miało na celu uniknięcie podobnego obciążenia związanego z analizowaniem zawartości bazy danych w celu znalezienia rekordu bazy danych dla typu terminala docelowego. Indeks nazwy typu terminala jest w rzeczywistości zwykłą strukturą katalogów systemu plików Unix / POSIX. Początkowo Unix miał poważne problemy z wydajnością z dużymi katalogami zawierającymi wiele plików, dlatego terminfo używa struktury dwupoziomowej, dzieląc wpisy katalogów pierwszą literą na serię podkatalogów. Nowsze formaty systemów plików używane w systemach uniksowych nie cierpią tak bardzo z powodu takich problemów (ponieważ ich struktury katalogów na dysku nie są już prostymi tablicami wpisów, ale są zorganizowane w drzewa lub tablice haszujące), a zatem potrzeba tego elementu projektu , który nadal istnieje we współczesnych implementacjach terminfo, od tego czasu zniknął.
Programy narzędziowe do ćwiczenia możliwości terminala
W systemach uniksowych polecenie tput jest używane do wyszukania określonej możliwości w bazie danych systemu i wyprowadzenia jej na standardowe wyjście polecenia (którym jest przypuszczalnie terminal, za pomocą którego ma być wykonana funkcja oznaczona właściwością). Jedną z najprostszych operacji jest wyczyszczenie ekranu. Nazwa pola bazy danych, które przechowuje sekwencję wyjściową, jest jasna , więc argumenty polecenia programu tput w celu wyczyszczenia ekranu są
tput clear
Inną operacją jest inicjalizacja lub resetowanie terminala do znanego stanu domyślnego (atrybutów znaków, czcionek, kolorów i tak dalej). Polecenia do tego to:
tput init
i
tput reset
Zwykle komenda tput używa typu terminala określonego przez TERM zmienną środowiskową , jedną ze sterujących zmiennych środowiskowych interfejsu terminala POSIX . Można to jednak ominąć , aby wymusić na tput wyszukanie w bazie danych innego typu terminala, z opcją wiersza polecenia dla polecenia. Na przykład, aby wydać sekwencję resetowania odpowiednią dla typu terminala o nazwie „vt100” w bazie danych (zwykle terminal DEC VT100 ), niezależnie od typu terminala określonego w zmiennych środowiskowych, polecenie brzmi:
tput -T vt100 reset
Bibliografia
Co wspiera co
Wykorzystane źródła
- Afzal, Amir (2008). UNIX nieograniczony: podejście początkowe (wyd. 5). Prentice Hall. ISBN 978-0-13-119449-6 .
- Blum, Richard (2008). Linux Command Line and Shell Scripting Bible . Seria biblijna. John Wiley and Sons. ISBN 978-0-470-25128-7 .
- Trumna, Stephen (1991). Wersja 4 systemu UNIX V: pełne odniesienie . Osborne McGraw-Hill. ISBN 978-0-07-881653-6 .
- Frisch, Æleen (2002). Niezbędna administracja systemem . Podręcznik w skrócie (wyd. 3). ISBN O'Reilly Media, Inc. 978-0-596-00343-2 .
- Kumar, Sudhir (2004). Encyklopedia systemu operacyjnego . Publikacje Anmol PVT. SP. Z O.O. ISBN 978-81-261-1792-5 .
- Raymond, Eric S. (2004). Sztuka programowania w Uniksie . Seria profesjonalnych komputerów Addison-Wesley. Addison-Wesley. ISBN 978-0-13-142901-7 .
- Winsor, Janice (2001). Solaris 8 Advanced System Administrator's Guide (wydanie trzecie). Prentice Hall PTR. ISBN 978-0-13-027703-9 .
Dalsza lektura
- Strang, John; Mui Linda; O'Reilly, Tim (1991). Termcap i terminfo . Podręcznik „Nutshell” (wyd. 3). ISBN O'Reilly Media, Inc. 978-0-937175-22-4 .