Tekstowy interfejs użytkownika — Text-based user interface

Niektóre menedżery plików implementują TUI ( tutaj: Midnight Commander )
Vim to bardzo szeroko stosowany edytor tekstu TUI

W obliczeniowej , interfejsy tekstowych użytkownika ( TUI ) (naprzemienne końcowe interfejsy użytkownika , w celu odzwierciedlenia zależności od właściwości terminali komputerowych , a nie tylko tekst) jest retronim opisującą typ interfejsu użytkownika (UI), jako wspólne pierwszą formę z interakcją człowiek-komputerowego przed pojawieniem graficznych interfejsów użytkownika (GUI). Podobnie jak GUI, mogą wykorzystywać cały obszar ekranu i akceptować dane wejściowe myszy i inne. Mogą również używać koloru i często strukturyzować wyświetlacz za pomocą specjalnych znaków graficznych, takich jak ┌ i ╣, określanych w Unicode jako zestaw „rysowania pudełek”. Współczesnym kontekstem użycia jest zwykle emulator terminala .

Rodzaje terminali tekstowych

Z aplikacji tekstowej „s punktu widzenia ekranu tekstowego (i łączności z nim) może należeć do jednej z trzech typów (tutaj uporządkowanych w kolejności malejącej dostępności):

  1. Prawdziwy wyświetlacz w trybie tekstowym , sterowany przez kartę wideo lub sam procesor centralny. Jest to normalny stan dla aplikacji działającej lokalnie na różnego rodzaju komputerach osobistych i urządzeniach mobilnych . Jeśli nie odstraszy tego system operacyjny , inteligentny program może wykorzystać pełną moc sprzętowego trybu tekstowego.
  2. Emulator trybu tekstowego . Przykładami są xterm dla X Window System i konsola win32 (w trybie okienkowym) dla Microsoft Windows . Zwykle obsługuje to programy, które oczekują rzeczywistego wyświetlania w trybie tekstowym, ale mogą działać znacznie wolniej. Niektóre funkcje zaawansowanego trybu tekstowego, takie jak wgrywanie własnych czcionek , prawie na pewno stają się niedostępne.
  3. Zdalny terminal tekstowy . Możliwości komunikacyjne zwykle ograniczają się do linii szeregowej lub jej emulacji, prawdopodobnie z kilkoma ioctl () jako kanałem pozapasmowym w takich przypadkach, jak Telnet i Secure Shell . To najgorszy przypadek, ponieważ ograniczenia oprogramowania utrudniają wykorzystanie możliwości zdalnego urządzenia wyświetlającego.

Pod Linuksem i innymi systemami uniksopodobnymi program łatwo dostosowuje się do każdego z trzech przypadków, ponieważ ten sam interfejs (a mianowicie standardowe strumienie ) steruje wyświetlaczem i klawiaturą. Również wyspecjalizowane biblioteki programistyczne pomagają wyprowadzić tekst w sposób odpowiedni dla danego urządzenia wyświetlającego i interfejsu do niego. Zobacz poniżej porównanie z systemem Windows.

Na terminalach zgodnych z ANSI

Standard ANSI X3.64 Amerykańskiego Narodowego Instytutu Standardów (ANSI) definiuje standardowy zestaw sekwencji ucieczki, które mogą być używane do sterowania terminalami w celu tworzenia TUI (patrz kod ucieczki ANSI ). Sekwencje ucieczki mogą być obsługiwane we wszystkich trzech przypadkach wymienionych w powyższej sekcji, umożliwiając dowolne ruchy kursora i zmiany kolorów. Jednak nie wszystkie terminale są zgodne z tym standardem i istnieje wiele niekompatybilnych, ale funkcjonalnie równoważnych sekwencji.

W systemie DOS i Microsoft Windows

FreeDOS interfejs użytkownika Edycja

W komputerach osobistych IBM i kompatybilnych , Basic Input Output System ( BIOS ) i wywołania systemowe DOS umożliwiają pisanie tekstu na ekranie, a sterownik ANSI.SYS może przetwarzać standardowe sekwencje specjalne ANSI. Jednak programiści szybko przekonali się, że zapisywanie danych bezpośrednio do bufora ekranu jest znacznie szybsze i prostsze w programowaniu i mniej podatne na błędy; Aby uzyskać szczegółowe informacje, zobacz tryb tekstowy zgodny z VGA . Ta zmiana metod programowania zaowocowała wieloma programami DOS TUI.Środowisko konsoli win32 jest znane z emulacji niektórych funkcji trybu tekstowego EGA/VGA, w szczególności losowego dostępu do bufora tekstowego, nawet jeśli aplikacja działa w oknie. Z drugiej strony, programy działające pod Windows (zarówno aplikacje natywne, jak i DOS) mają znacznie mniejszą kontrolę nad wyświetlaczem i klawiaturą niż programy Linux i DOS, ze względu na wspomnianą wcześniej warstwę konsoli win32.

Kursor myszy w Impulse Tracker . Bardziej precyzyjny kursor (rozdzielczość na piksel) został osiągnięty poprzez regenerację glifów używanych znaków tam, gdzie kursor był widoczny, przy każdym ruchu myszy w czasie rzeczywistym.

Najczęściej programy te wykorzystywały niebieskie tło ekranu głównego, z białymi lub żółtymi znakami, chociaż często miały też możliwość dostosowania kolorów przez użytkownika. Często używali znaków do rysowania w ramkach w stronie kodowej IBM 437 . Później interfejs stał się pod silnym wpływem graficznych interfejsów użytkownika (GUI), dodając rozwijane menu , nakładające się okna , okna dialogowe i widżety GUI obsługiwane przez mnemoniki lub skróty klawiaturowe . Wkrótce dodano wejście myszy – w rozdzielczości tekstowej jako proste kolorowe pole lub w rozdzielczości graficznej dzięki możliwości adapterów graficznych Enhanced Graphics Adapter (EGA) i Video Graphics Array (VGA) do ponownego definiowania kształtów znaków tekstowych za pomocą oprogramowania  – zapewniając dodatkowe funkcje.

Niektóre ważniejsze programy tego typu były Microsoft Word , DOS Shell , WordPerfect , Norton Commandera , Turbo Vision oparte Borland Turbo Pascal i Turbo C (ten ostatni obejmował Conio biblioteki ), Lotus 1-2-3 i wiele innych. Niektóre z tych interfejsów przetrwały nawet w okresie Microsoft Windows 3.1x na początku lat dziewięćdziesiątych. Na przykład kompilator Microsoft C 6.0, używany do pisania prawdziwych programów GUI w 16-bitowym systemie Windows, nadal ma swój własny TUI.

Od samego początku Microsoft Windows zawiera konsolę do wyświetlania oprogramowania DOS. Późniejsze wersje dodały konsolę Win32 jako natywny interfejs dla interfejsu wiersza poleceń i programów TUI. Konsola zwykle otwiera się w trybie okna, ale można ją przełączyć na pełny ekran trybu tekstowego i odwrotnie, naciskając jednocześnie klawisze Alt i Enter . Tryb pełnoekranowy nie jest dostępny w systemie Windows Vista i nowszych, ale może być używany z niektórymi obejściami.

W systemach uniksopodobnych

Migawka 'XFdrake', TUI używanego w Mandriva Linux do konfiguracji systemu graficznego

W systemach operacyjnych podobnych do Uniksa TUI są często konstruowane przy użyciu biblioteki kontrolnej terminala curses lub ncurses (w większości kompatybilna biblioteka) lub alternatywnej biblioteki S-Lang . Pojawienie się biblioteki curses w Berkeley Unix stworzyło przenośne i stabilne API, dla którego można pisać TUI. Możliwość komunikowania się z różnymi typami terminali tekstowych przy użyciu tych samych interfejsów doprowadziła do szerszego stosowania „wizualnych” programów uniksowych, które zajmowały cały ekran terminala zamiast prostego interfejsu liniowego. Widać to w edytorach tekstowych , takich jak VI , programy pocztowe , takie jak sosna lub mutt , narzędzia do zarządzania systemem, takie jak SMIT , SAM , FreeBSD „s Sysinstall i przeglądarek internetowych , takich jak ryś . Niektóre aplikacje, takie jak w3m oraz starsze wersje pine i vi używają mniej sprawnej biblioteki termcap , wykonując wiele funkcji związanych z curses w aplikacji. Własne aplikacje TUI oparte na widżetach można łatwo rozwijać za pomocą programu dialogowego (opartego na ncurses ) lub programu Whiptail (opartego na S-Lang ).

Ponadto wzrost popularności Linuksa sprowadził wielu byłych użytkowników DOS-a na platformę uniksopodobną, co wzmocniło wpływ DOS-a na wiele TUI. Na przykład program minicom jest wzorowany na popularnym programie DOSowym Telix . Niektóre inne programy TUI, takie jak pulpit Twin , zostały przeniesione .

Większość uniksopodobnych systemów operacyjnych (Linux, FreeBSD, itp.) obsługuje konsole wirtualne , zwykle dostępne za pomocą kombinacji klawiszy Ctrl-Alt-F. Na przykład pod Linuksem można uzyskać dostęp do 64 konsol (12 za pomocą klawiszy funkcyjnych), z których każda jest wyświetlana w pełnoekranowym trybie tekstowym.

Wolne oprogramowanie Program GNU ekranu zapewnia zarządzanie wieloma sesji wewnątrz jednej TUI, a więc mogą być traktowane jako jak menedżer okien dla trybu tekstowego i interfejsów wiersza polecenia. Tmux również może to zrobić.

Zastrzeżony edytor tekstu dla systemu MacOS BBEdit zawiera funkcję arkusza powłoki, która działa jako pełnoekranowe okno powłoki. Darmo Emacs edytor tekstu można uruchomić wewnątrz powłoki jednego ze swoich buforów aby zapewnić podobną funkcjonalność. Istnieje kilka implementacji powłoki w Emacsie, ale nadaje się tylko do uruchamiania programów TUI. Inne popularne tryby powłoki i tylko emulują wiersze poleceń i programy TUI będą narzekać „Terminal nie jest w pełni funkcjonalny” lub wyświetlać zniekształcony interfejs. W wolnych Vim i Neovim edytory tekstowe mają okna terminala (symulacja xterm ). Ta funkcja jest przeznaczona do uruchamiania zadań, kompilacji równoległych lub testów, ale może być również używana (z podziałami okien i stronami kart) jako lekki multiplekser terminala. ansi-termshelleshell

OpenVMS

VAX/VMS (później znany jako OpenVMS ) miał podobną funkcję do curses znanych jako funkcja zarządzania ekranem lub SMG. Można to wywołać z wiersza poleceń lub z programów korzystających z biblioteki SMG$.

Oberon

Zrzut ekranu pulpitu systemu Oberon przedstawiający obraz i kilka przeglądarek tekstu

Innym rodzajem TUI jest podstawowy interfejs systemu operacyjnego Oberon , wydany po raz pierwszy w 1988 roku i nadal utrzymywany. W przeciwieństwie do większości innych tekstowych interfejsów użytkownika, Oberon nie używa konsoli lub terminala w trybie tekstowym, ale wymaga dużego wyświetlacza z mapą bitową, na którym tekst jest głównym celem kliknięć myszą. Polecenia w tym formacie można aktywować środkowym kliknięciem, podobnie jak hiperłącza . Tekst wyświetlany w dowolnym miejscu na ekranie można edytować, a po sformatowaniu przy użyciu wymaganej składni polecenia można kliknąć środkowym przyciskiem i wykonać. Dowolny plik tekstowy zawierający odpowiednio sformatowane polecenia może służyć jako tzw. tekst narzędziowy , służąc tym samym jako menu konfigurowalne przez użytkownika. Nawet dane wyjściowe poprzedniego polecenia mogą być edytowane i używane jako nowe polecenie. To podejście radykalnie różni się zarówno od konwencjonalnych menu konsoli zorientowanych na dialogi, jak i od interfejsów wiersza poleceń . Module.Procedure parameters ~

Ponieważ nie używa graficznych widżetów , tylko zwykły tekst, ale oferuje porównywalną funkcjonalność do graficznego interfejsu użytkownika z menedżerem okien kafelkowych , jest określany jako tekstowy interfejs użytkownika lub TUI. Krótkie wprowadzenie znajduje się w drugim akapicie na stronie czwartej pierwszego opublikowanego Raportu o systemie Oberon .

Interfejs użytkownika Oberona wpłynął na projekt edytora tekstu Acme i klienta poczty e-mail dla systemu operacyjnego Plan 9 firmy Bell Labs .

W systemach wbudowanych

Wbudowany system wyświetlający menu na ekranie LCD

Nowoczesne systemy wbudowane są w stanie wyświetlać TUI na monitorze, podobnie jak komputery osobiste. Funkcjonalność ta jest zazwyczaj realizowana przy użyciu specjalizowanych układów scalonych, modułów lub z wykorzystaniem FPGA .

Obwody wideo lub moduły są zwykle sterowane za pomocą zestawu poleceń zgodnego z VT100 przez UART , konstrukcje FPGA zwykle umożliwiają bezpośredni dostęp do pamięci wideo.

Inne zastosowania

Zobacz też

Przykłady bibliotek programistycznych

Bibliografia