Textbaserat användargränssnitt - Text-based user interface

Vissa filhanterare implementerar en TUI ( här: Midnight Commander )
Vim är en mycket utbredd TUI -textredigerare

Inom databehandling är textbaserade användargränssnitt ( TUI ) (alternativt terminala användargränssnitt , för att återspegla ett beroende av datorterminalernas egenskaper och inte bara text), en retronym som beskriver en typ av användargränssnitt (UI) som är vanligt som en tidig form av interaktion mellan människa och dator , innan grafiska användargränssnitt (GUI) inträffade. Liksom GUI kan de använda hela skärmområdet och acceptera mus och andra ingångar. De kan också använda färg och ofta strukturera displayen med hjälp av speciella grafiska tecken som ┌ och ╣, som i Unicode kallas "lådritning" -uppsättningen. Det moderna användningsområdet är vanligtvis en terminalemulator .

Typer av textterminaler

Ur textprogrammets synvinkel kan en textskärm (och kommunikation med den) tillhöra en av tre typer (här ordnade i ordning för minskad tillgänglighet):

  1. En äkta textlägesdisplay , som styrs av en videoadapter eller själva den centrala processorn. Detta är ett normalt tillstånd för en lokalt körd applikation på olika typer av persondatorer och mobila enheter . Om det inte avskräcks av operativsystemet kan ett smart program utnyttja full effekt av ett maskinvarutextläge.
  2. En textläge emulator . Exempel är xterm för X Window System och win32 -konsolen (i ett fönsterläge) för Microsoft Windows . Detta stöder vanligtvis program som förväntar sig en verklig textlägesvisning, men kan köra betydligt långsammare. Vissa funktioner i ett avancerat textläge, till exempel att ladda upp egna teckensnitt , blir nästan otillgängliga.
  3. En fjärrtextterminal . Kommunikationsförmågan blir vanligtvis reducerad till en seriell linje eller dess emulering, möjligen med få ioctl () som en out-of-band- kanal i sådana fall som Telnet och Secure Shell . Detta är det värsta fallet, eftersom programvarubegränsningar hindrar användningen av funktioner för en fjärrvisningsenhet.

Under Linux och andra Unix-liknande system ryms ett program enkelt i något av de tre fallen eftersom samma gränssnitt (nämligen standardströmmar ) styr skärmen och tangentbordet. Dessutom specialiserat programmeringsbibliotek hjälp att mata ut text på ett sätt som är lämpligt för den givna bildskärm och gränssnitt till det. Se nedan för en jämförelse med Windows.

På ANSI-kompatibla terminaler

American National Standards Institute (ANSI) standard ANSI X3.64 definierar en standarduppsättning av escape -sekvenser som kan användas för att driva terminaler för att skapa TUI (se ANSI -escape -kod ). Escape -sekvenser kan stödjas för alla tre fallen som nämns i avsnittet ovan, vilket möjliggör godtyckliga markörrörelser och färgändringar. Men inte alla terminaler följer denna standard, och många icke-kompatibla men funktionellt ekvivalenta sekvenser finns.

Under DOS och Microsoft Windows

Den FreeDOS Redigera användargränssnittet

IBM -persondatorer och kompatibla enheter ger Basic Input Output System ( BIOS ) och DOS -systemanrop ett sätt att skriva text på skärmen, och ANSI.SYS -drivrutinen kan bearbeta vanliga ANSI -escape -sekvenser. Men programmerare lärde sig snart att att skriva data direkt till skärmbufferten var mycket snabbare och enklare att programmera och mindre felbenägen; se VGA-kompatibelt textläge för mer information. Denna förändring av programmeringsmetoder resulterade i många DOS TUI -program.Den win32 konsolen miljön är ökända för sin emulering av vissa EGA / VGA text läge funktioner, särskilt direktåtkomst till textbufferten, även om programmet körs i ett fönster. Å andra sidan har program som körs under Windows (både native- och DOS -applikationer) mycket mindre kontroll över skärmen och tangentbordet än Linux- och DOS -program kan ha, på grund av ovannämnda win32 -konsollager.

Musmarkör i Impulse Tracker . En mer exakt markör (upplösning per pixel) uppnåddes genom att regenerera tecknen som används där markören var synlig, vid varje musrörelse i realtid.

Oftast använde dessa program en blå bakgrund för huvudskärmen, med vita eller gula tecken, även om de vanligtvis också hade användarfärg anpassning. De använde ofta box-drawing-tecken i IBMs kodsida 437 . Senare blev gränssnittet djupt påverkat av grafiska användargränssnitt (GUI), lägger till nedrullningsbara menyer , överlappande fönster , dialogrutor och GUI-widgets som drivs av minnesbilder eller kortkommandon . Snart mus input inkom - antingen på text upplösning som en enkel färgad låda eller grafiska upplösning tack vare förmågan hos Enhanced Graphics Adapter (EGA) och Video Graphics Array (VGA) grafikkort att omdefiniera text teckenformer av mjukvara  - tillhandahålla ytterligare funktioner.

Några anmärkningsvärda program av detta slag var Microsoft Word , DOS Shell , WordPerfect , Norton Commander , Turbo Vision- baserade Borland Turbo Pascal och Turbo C (den senare inkluderade conio- biblioteket ), Lotus 1-2-3 och många andra. Några av dessa gränssnitt överlevde även under Microsoft Windows 3.1x -perioden i början av 1990 -talet. Till exempel har Microsoft C 6.0-kompilatorn, som används för att skriva riktiga GUI-program under 16-bitars Windows, fortfarande en egen TUI.

Sedan starten har Microsoft Windows en konsol för att visa DOS -programvara. Senare versioner lade till Win32-konsolen som ett inbyggt gränssnitt för kommandoradsgränssnitt och TUI-program. Konsolen öppnar vanligtvis i fönsterläge, men den kan bytas till hel, sann textlägesskärm och vice versa genom att trycka på Alt- och Enter -tangenterna samtidigt. Helskärmsläge är inte tillgängligt i Windows Vista och senare, men kan användas med vissa lösningar.

Under Unix-liknande system

Ögonblicksbild av 'XFdrake', en TUI som används i Mandriva Linux för att konfigurera det grafiska systemet

I Unix-liknande operativsystem, TUIs är ofta konstruerade med användning av de terminala styrbiblioteks förbannelser , eller ncurses (en mestadels kompatibel bibliotek), eller det alternativa S-Lang -bibliotek. Tillkomsten av förbannelsebiblioteket med Berkeley Unix skapade ett bärbart och stabilt API för att skriva TUI: er. Möjligheten att prata med olika textterminaltyper med samma gränssnitt ledde till en mer utbredd användning av "visuella" Unix -program, som upptog hela terminalskärmen istället för att använda ett enkelt linjegränssnitt. Detta kan ses i textredigerare som vi , postklienter såsom tall eller mutt , systemhanteringsverktyg som SMIT , SAM , FreeBSD 's Sysinstall och webbläsare såsom Lynx . Vissa applikationer, till exempel w3m , och äldre versioner av pine och vi använder det mindre kapabla termkapselbiblioteket och utför många av de funktioner som är associerade med förbannelser i programmet. Anpassade TUI-applikationer baserade på widgets kan enkelt utvecklas med hjälp av dialogprogrammet (baserat på ncurses ) eller Whiptail- programmet (baserat på S-Lang ).

Dessutom ökade populariteten för Linux många tidigare DOS-användare till en Unix-liknande plattform, vilket har främjat ett DOS-inflytande i många TUI: er. Programmet minicom är till exempel modellerat efter det populära DOS -programmet Telix . Några andra TUI -program, till exempel Twin -skrivbordet, portades över.

De flesta Unix-liknande operativsystem (Linux, FreeBSD, etc.) stöder virtuella konsoler , vanligtvis åtkomliga via en Ctrl-Alt-F-tangentkombination. Till exempel kan upp till 64 konsoler under Linux nås (12 via funktionstangenter), var och en visas i helskärmsläge.

Den fria programvaran programmet screen ger för att hantera flera sessioner i en enda TUI, och så kan betraktas som som en fönsterhanterare för textläge och kommandoraden gränssnitt. Tmux kan också göra detta.

Den proprietära macOS- textredigeraren BBEdit innehåller en skal-kalkylbladsfunktion som fungerar som ett helskärmsskalfönster. Den kostnadsfria textredigeraren Emacs kan köra ett skal inuti en av dess buffertar för att ge liknande funktioner. Det finns flera skalimplementeringar i Emacs, men är endast ansi-termlämplig för att köra TUI -program. De andra vanliga skallägena shelloch eshellendast emulera kommandorader och TUI -program kommer att klaga "Terminalen är inte fullt fungerande" eller visar ett förvrängt gränssnitt. De fria Vim och Neovim textredigerare har terminalfönster (simulera xterm ). Funktionen är avsedd för att köra jobb, parallella byggnader eller tester, men kan också användas (med fönsterdelningar och flikar) som en lätt terminalmultiplexer.

OpenVMS

VAX/VMS (senare känd som OpenVMS ) hade en liknande anläggning som förbannelser som kallas Screen Management -anläggningen eller SMG. Detta kan åberopas från kommandoraden eller ringas från program med SMG $ -biblioteket.

Oberon

Skärmdump av skrivbordet på ett Oberon -system som visar en bild och flera textvisare

En annan typ av TUI är det primära gränssnittet för Oberon -operativsystemet , som först släpptes 1988 och fortfarande underhålls. Till skillnad från de flesta andra textbaserade användargränssnitt använder Oberon inte en textlägeskonsol eller terminal, utan kräver en stor bitmappad skärm, på vilken text är det primära målet för musklick. Kommandon i formatet kan aktiveras med ett mittklick, som hyperlänkar . Text som visas var som helst på skärmen kan redigeras, och om den formateras med den nödvändiga kommandosyntaxen kan den klickas i mitten och köras. Alla textfiler som innehåller lämpligt formaterade kommandon kan användas som en så kallad verktygstext och fungerar således som en användarkonfigurerbar meny. Även utdata från ett tidigare kommando kan redigeras och användas som ett nytt kommando. Detta tillvägagångssätt skiljer sig radikalt från både konventionella dialogorienterade konsolmenyer eller kommandoradsgränssnitt . Module.Procedure parameters ~

Eftersom den inte använder grafiska widgets , bara vanlig text, men erbjuder jämförbar funktionalitet till ett GUI med en kakelfönsterhanterare , kallas det ett textanvändargränssnitt eller TUI. För en kort introduktion, se andra stycket på sidan fyra i den första publicerade rapporten om Oberonsystemet .

Oberons gränssnitt påverkade utformningen av Acme -textredigeraren och e -postklienten för Plan 9 från Bell Labs -operativsystem.

I inbyggda system

Inbäddad system som visar meny på en LCD -skärm

Moderna inbäddade system kan visa TUI på en bildskärm som persondatorer. Denna funktionalitet implementeras vanligtvis med specialiserade integrerade kretsar, moduler eller med FPGA .

Videokretsar eller moduler styrs vanligtvis med hjälp av VT100 -kompatibla kommandon över UART , FPGA -design tillåter vanligtvis direkt åtkomst till videominne.

Andra användningsområden

  • Den helskärm redaktör av Commodore 64 8-bitars datorer framfördes i marknadssegment för sin tid. Användare kan flytta markören över hela skärmområdet, ange och redigera BASIC -programrader, samt direktlägeskommandon . Alla Commodore 8-bitars datorer använde PETSCII- teckenuppsättningen, som inkluderade teckenglyfer som är lämpliga för att göra en TUI.
  • Apples Macintosh Programmerers Workshop -programmeringsmiljö inkluderade Commando, ett TUI -skal. Det var inspirationen till BBEdits skal -kalkylblad.
  • Senare Apple II -modeller inkluderade MouseText , en uppsättning grafiska glyfer som används för att göra en TUI.
  • Den Corvus Concept dator 1982 använde en funktionsknapp baserad textgränssnitt på en helsida svängande display.

Se även

Exempel på programmeringsbibliotek

Referenser