Proč pořád používáme TTY, konzole a terminál?

FrantisekV

Proč pořád používáme TTY, konzole a terminál?
« kdy: 14. 06. 2017, 16:53:41 »
Proc porad pouzivame TTY (kdysi teletypewriter) v /dev, Console (kdysi monitor pridratovany k mainframu) a Terminal (kdysi ty zelene blikave vzdalene stanice komunikujci pres escape sekvence) kdyz je tak ci tak mame v linuxu uz jen virtualni ?

Jde mi o to - chci delat na localhostu v shellu. Ale bez toho VT52/100/220/LinuxCon balastu kde zmacknu klavesu a prevede se to do nejakejch ESC sekvenci pak to dostane shell a pulka aplikaci si s tim pak nerozumi (typicky midnight commander) a je treba resit kde jake konfigurace, locales a buhvico. A uplne super je pripojit nejakou mene standardni klavesnici ci zapnout cestinu. Proste zmacknu F5 tak at shell dostane F5 a mc dostane F5 a ne dve konverze mezi tim. Jeste jednou zopakuji, ze neresim vzdalene pripojeni telnetem ci ssh, jenom localhost za kterym sedim.

Takze otazka, znate nejakou takovou superkonzoli v xwin bez terminalovin ? Jde to vubec ?
« Poslední změna: 14. 06. 2017, 19:24:23 od Petr Krčmář »


Lael.Ophir

Re:Proc porad pouzivame TTY, Console a Terminal ?
« Odpověď #1 kdy: 14. 06. 2017, 18:53:49 »
Proc porad pouzivame TTY (kdysi teletypewriter) v /dev, Console (kdysi monitor pridratovany k mainframu) a Terminal (kdysi ty zelene blikave vzdalene stanice komunikujci pres escape sekvence) kdyz je tak ci tak mame v linuxu uz jen virtualni ?

Jde mi o to - chci delat na localhostu v shellu. Ale bez toho VT52/100/220/LinuxCon balastu kde zmacknu klavesu a prevede se to do nejakejch ESC sekvenci pak to dostane shell a pulka aplikaci si s tim pak nerozumi (typicky midnight commander) a je treba resit kde jake konfigurace, locales a buhvico. A uplne super je pripojit nejakou mene standardni klavesnici ci zapnout cestinu. Proste zmacknu F5 tak at shell dostane F5 a mc dostane F5 a ne dve konverze mezi tim. Jeste jednou zopakuji, ze neresim vzdalene pripojeni telnetem ci ssh, jenom localhost za kterym sedim.

Takze otazka, znate nejakou takovou superkonzoli v xwin bez terminalovin ? Jde to vubec ?

Co vím tak to nejde. Ta přežitá architektura stdin/stdout + terminálových sekvencí (termcap, termdb) + knihovny která terminálové sekvence generuje (ncurses, curses a další) je použitá v dlouhé řadě aplikací. Navíc spousta aplikací používá různé obezličky, jako například vlastní databázi terminálových sekvencí (svého času třeba mc, nevím jak dnes), a jediným společným jmenovatelem těch aplikací je právě terminál s podporou sekvencí, takže to nelze vyřešit třeba wrappingem "rozumných" funkcí pomocí curses/ncurses. Ta architektura je přežitá a nevyhovující, ale změna by vyžadovala koordinované úsilí, a to je ve světě Linuxu fakt problém. Koukněte se třeba na X11, což je technicky ještě daleko větší katastrofa, a jeho nahrazení má daleko vyšší prioritu. Přesto můžete dekádu po dekádě vidět jenom neúspěšné pokusy o jeho náhradu. Poslední iterací je souboj Wayland vs. Mir. A až Wayland opravdu bude, tak bohužel jen na Linuxu, plus další spoustu let s sebou bude muset táhnout nákladní vlak kompatibility s X11.

Samozřejmě pokud potřebujete textový interface pro konkrétní aplikaci, tak není problém udělat to jako grafické okno, do kterého budete kreslit neproporcionálním fontem, takže to může vypadat jako konzole.

Radovan.

Re:Proc porad pouzivame TTY, Console a Terminal ?
« Odpověď #2 kdy: 14. 06. 2017, 19:02:47 »
Copak escape sekvence, ty se aspoň dají normálně vypsat a vidíš co ti přišlo, ale když jsem dekódoval funkční klávesy v MS-DOSu, to byly teprve zážitky. Znak \0 znamená že po něm následuje nějaký kód... ;D

Tomas2

  • ****
  • 310
    • Zobrazit profil
    • E-mail
Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #3 kdy: 14. 06. 2017, 20:05:11 »
odpověď je jednoduchá, protože nikdo nic lepšího a všestrannějšího nevymyslel. TTY s námi je skoro beze změny několik generací. Osobně jsem si na tohle asi už zvyknul a moc to řeším, jen používám, pro mě nejdůležitější je, že to funguje obdobně na všech platformách.

FrantisekV

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #4 kdy: 14. 06. 2017, 20:10:06 »
Dekuji widnowsakovi a msdosakovi za odpovedi, ale ja bych radeji neco fundovaneho od unixaku ::) S tim stdin/out to nema nic, to je uz shell a aplikacni vrstva. Curses jsou jen knihovna co zvlada vice VT typu aby se programator o to moc starat nemusel v jakem svete bezi. Kazdopadne ma to svoje API a tak ji nahradit za neco nativniho nebude moc problem a programy bude stacit prelinkovat.

pro mě nejdůležitější je, že to funguje obdobně na všech platformách.
To je presne opak toho co resim. Jde mi o nativni "spustec" shellu jen a pouze v linuxu a v localhostu. Pak se muzme odrazit i dale a vyuzit i grafiku, nejen znaky. Treba takovy
Kód: [Vybrat]
ls -l by se mohl vypsat jako tabulka a klikanim na zahlavi bych to mohl treba sortovat, prehazovat sloupce atd. Moznosti je habadej.


Kit

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #5 kdy: 14. 06. 2017, 21:08:25 »
Jde mi o nativni "spustec" shellu jen a pouze v linuxu a v localhostu. Pak se muzme odrazit i dale a vyuzit i grafiku, nejen znaky. Treba takovy
Kód: [Vybrat]
ls -l by se mohl vypsat jako tabulka a klikanim na zahlavi bych to mohl treba sortovat, prehazovat sloupce atd. Moznosti je habadej.

Něco jako Lynx s podporou Javascriptu?

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #6 kdy: 14. 06. 2017, 21:21:26 »
Jde mi o nativni "spustec" shellu jen a pouze v linuxu a v localhostu. Pak se muzme odrazit i dale a vyuzit i grafiku, nejen znaky. Treba takovy
Kód: [Vybrat]
ls -l by se mohl vypsat jako tabulka a klikanim na zahlavi bych to mohl treba sortovat, prehazovat sloupce atd. Moznosti je habadej.

To bych pak přeskočil textový režim úplně a uvažoval o nějakém „objektovém shellu“, což byste musel ovšem napsat i ty utility, které byste chtěl spouštět. Myšlenka hezká, ale všechny pokusy o to pokud vím zanikly, protože přeci jen unix je na textu a konzoli dost založený.

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #7 kdy: 14. 06. 2017, 21:26:44 »
Jde mi o nativni "spustec" shellu jen a pouze v linuxu a v localhostu. Pak se muzme odrazit i dale a vyuzit i grafiku, nejen znaky. Treba takovy
Kód: [Vybrat]
ls -l by se mohl vypsat jako tabulka a klikanim na zahlavi bych to mohl treba sortovat, prehazovat sloupce atd. Moznosti je habadej.

To bych pak přeskočil textový režim úplně a uvažoval o nějakém „objektovém shellu“, což byste musel ovšem napsat i ty utility, které byste chtěl spouštět. Myšlenka hezká, ale všechny pokusy o to pokud vím zanikly, protože přeci jen unix je na textu a konzoli dost založený.

PS: ...a GUI varianty (filemanagery, desktopová prostředí) sice nějak fungují, ale k ideálnímu stavu mají taky dost daleko. Mě by se líbilo takové prostředí, které by bylo stejně pohotové a promyšlené jako shell, ale běželo v grafice a bylo s terminálem interoperabilní. Poněvadž byť i jen zkopírování cesty k souboru do schránky nebo naopak přejití k souboru dle cesty ve schránce je v gui nedomyšlené a ne vždy pohodlné.

Kit

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #8 kdy: 14. 06. 2017, 21:32:12 »
Jde mi o nativni "spustec" shellu jen a pouze v linuxu a v localhostu. Pak se muzme odrazit i dale a vyuzit i grafiku, nejen znaky. Treba takovy
Kód: [Vybrat]
ls -l by se mohl vypsat jako tabulka a klikanim na zahlavi bych to mohl treba sortovat, prehazovat sloupce atd. Moznosti je habadej.

To bych pak přeskočil textový režim úplně a uvažoval o nějakém „objektovém shellu“, což byste musel ovšem napsat i ty utility, které byste chtěl spouštět. Myšlenka hezká, ale všechny pokusy o to pokud vím zanikly, protože přeci jen unix je na textu a konzoli dost založený.

Mám takové tušení, že Emacs by něco takového mohl zvládnout.

.

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #9 kdy: 14. 06. 2017, 21:49:31 »
Vůbec netušíš k čemu to je a jak to funguje, ale víš, že je to úplně špatně. Co příspěvek, to nesmysl. Jo, klidně si do ncurses napiš, jak říkáš, "něco nativního". A potom nám napiš v čem je teda sakra rozdíl.

To, že by výstup programů byl nějak strukturovaný už tady bylo a je, a nemá to s tím nic společného.

jd

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #10 kdy: 14. 06. 2017, 21:55:21 »
Není mi moc jasný čeho přesně se snažíš dosáhnout, ale to jak funguje ovládání terminálu je docela hezky popsaný tu:
http://man.openbsd.org/termios.4
žádný "inteligentní driver s lidskou tváří" ;D zatím nikdo nenapsal. Časem přijdou počítače ovládané hlasem, pohledem, gestem a čert ví čím ještě. Ovladače budou mít desítky/stovky megabajtů. Spousta prostoru pro bugy. tty je docela jednoduchá a nemá se tam velice co pokazit.

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #11 kdy: 14. 06. 2017, 22:01:58 »
K doplnění znalostí doporučuji krátký seriál Terminály tajemství zbavené, který jsme vydávali před třemi lety.

FrantisekV

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #12 kdy: 14. 06. 2017, 22:26:18 »
Není mi moc jasný čeho přesně se snažíš dosáhnout, ale to jak funguje ovládání terminálu je docela hezky popsaný tu:

To je sice hezky ale otazka znela jestli muzeme mit konfort command line v "necem" co uz radeji nenazyvam ani konzoli ani terminalem protoze vas to furt svede mimo. Proste spustim to "neco" v xwin, bude tam shell, pisu normalni unix prikazy i s rourama a vism vsudy, spoustim aplikace ale BEZ vsech tech 50let starejch brzd, eskejp sekvenci a buhviceho z cas dalnopisu, ktere souhrne nazyvam "teminaloviny".

Zaklad je proste porad prikazovy radek a pismenka, ale kdyz dam treba "cat obrazek.png" tak nakresli obrazek v grafice (zadny novy okno, primo v tom "necem" misto vypsani binarky. Jo a kdybych chtel cat-nout binarku tak to nezamrzne protoze narazil na nejake ridici baty co rozhasili terminal :)

Doufam, ze me vizionarstvi uz chapete.

BT

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #13 kdy: 14. 06. 2017, 23:08:42 »
Jo chapu hledas neco na styl techhle pokusu. I kdyz nejsou uplne to co chces (porad to jsou terminal emulatory) par funkci navic maji:
https://www.enlightenment.org/about-terminology
https://github.com/unconed/TermKit/

Neco na obrazky v konzoli:
https://github.com/hackerb9/lsix
https://github.com/stefanhaustein/TerminalImageViewer
https://github.com/posva/catimg

No a nejsi sam kdo miluje prikazovou radku ale nenavidi terminaly (ano jsou to dve odlisne veci). Pred nedavnem na to byl rozsahly flame na redditu:
https://www.reddit.com/r/linux/comments/5k17em/terminal_forever_3_comicstrip/?sort=top

Jista nadeje svita v komplexnim devel prostredi zvanem Arcan, ktery je zamereny na tvorbu user interfaces a je zaroven i display serverem. K nemu je pak desktopove prostredi zvane Durden s trosku jinak pojatym "terminalem".
https://arcan-fe.com
http://durden.arcan-fe.com/
http://durden.arcan-fe.com/terminal

Prave tam jsem nasel clanek o prikazovem radku bez priteze terminalove minulosti:
https://arcan-fe.com/2016/12/29/chasing-the-dream-of-a-terminal-free-cli/

Potesujici sprava je, ze se na tom zrejme vazne pracuje. Nejake demo co Arcan zvlada je tu https://www.youtube.com/watch?v=ynbS4nfdpPg povsimnete si moznosti kombinovat jak textovy tak graficky obsah.

karel koulel

Re:Proč pořád používáme TTY, konzole a terminál?
« Odpověď #14 kdy: 14. 06. 2017, 23:29:03 »
Hledám konzoli nebo shell (nebo kombinaci obojího), která sakra bude umět normální označování textu jako v textovém editoru, ne přes obskurní zkratky, ctrl a ,ctrl e a manipulaci se schránkou. Tím myslím označování po slovech,  řádcích pohodlně přes klávesnici a nebo i myš, jak Konsole v KDE, terminál v OSX i cmd ve windows jsou tragické. Problém je ,že to musí poznat, kdy chci označovat  a kdy chci poslat vstup klávesy (např šipka nahoru způsobí vložení posledního příkazu)