Text-Terminal-HOWTO Накратко за това как работят терминалите (в Linux)

Вижте също раздел ``Някои подробности за това как работят терминалите''

Всеки терминал е свързан към серийния порт на хост компютър (често само компютър). Портовете имат имена: ttyS0, ttyS1, ttyS2 и т.н.

Те се показват като специални файлове, разположени в директорията на устройството /dev. /dev/ttyS0 съответства на COM1 в DOS или Windows. ttyS1 - COM2 и т.н. Вижте ``Терминални устройства'' за подробности.

Когато хост компютърът се стартира, той изпълнява програмата getty (вижте Serial-HOWTO 4.1 и 7.2) на всеки сериен порт, към който е свързан терминал (както е дефинирано във файла /etc/inittab). Програмата getty изпълнява програмата "login", за да регистрира хората в системата. На екрана се появява подканата „login:“. Хората на терминалите влизат (когато предоставят пароли) и след това получават достъп до компютъра. Когато дойде време да изключите терминала, обичайно е да излезете от системата и да изключите захранването. Вижте ``Ограничение за влизане'' за информация относно ограничаване на влизането (включително разрешаване на root потребител да влиза от терминал).

Изображението на катоднолъчева тръба избледнява почти веднага, освен ако не се преначертава често на екрана от лъч електрони върху екрана на тръбата. Тъй като текстът, изпратен до терминала, трябва да остане видим, изображението на екрана трябва да се съхранява в чиповете с памет на терминала и електронният лъч трябва да преминава през екрана многократно (да речем 60 пъти в секунда), за да поддържа изображението. Вижте ``Терминална памет'' за подробности.

Терминалът се управлява от компютър. Компютърът изпраща текст до терминала не само за показване на екрана, но също така изпраща команди до терминала, които да бъдат изпълнени. Те се наричат ​​„контролни кодове“(байтове) и ``изходни последователности". Например, контролният код CR (връщане на каретката) премества курсора до левия край на екрана. Някои последователности за изход (няколко байта, където първият байт е контролният код "Escape") може да премести курсора до място на екрана, определено от параметри, поставени в последователността за изход.

„Ранните терминали“ имаха само няколко от тези команди, но съвременните терминали имат стотици от тях. Дисплеят може да се променя за някои опции, като яркост, затъмняване, подчертаване, мигане и обръщане на изображението. Високоговорителят в терминала може да издава звуков сигнал при натискане на клавиш или да издава звуков сигнал, ако възникне грешка. Функционалните клавиши могат да бъдат програмирани за специални значения. Могат да се свързват различни шрифтове. Дисплеят може да се превърта нагоре или надолу. типове контрол на потока, за да спре потока данни, когато байтовете се изпращат към терминала по-бързо, отколкото терминалът може да ги обработи. Има много повече, за които можете да прочетете в ръководството на терминала.

Докато терминалите, направени за САЩ, използват същото ASCII кодиране за азбуката (с изключение на терминалите на IBM, които използват EBCDIC), те за съжаление не използват същите последователности за изход. Това се случва дори след приемането на различни стандарти ANSI, тъй като тези стандарти не са напреднали добре. Освен това на по-старите терминали често липсват възможностите на по-новите терминали.

Това може да причини проблеми. Например, компютър може да изпрати последователност за изход към терминал, което го кара да раздели екрана на два прозореца с определен размер, без да осъзнава, че терминалът не е в състояниеизпълни го.

За да се преодолеят тези проблеми, беше приета база данни, наречена „termcap“ (сега „terminfo“). Тази база данни се намира в някои файлове на компютъра и има секции (понякога отделни файлове) за всеки модел терминал. За всеки модел (тип VT100) има списък с функции, включително последователности за изход, налични за използване и т.н. Вижте ``termcap и terminfo (подробно)'' за подробности. Приложните програми могат да използват тази база данни чрез извикване на някои програми от библиотека C. Един голям набор от такива програми (повече от 200) се нарича "ncurses" и е изброен в страницата с ръководство за ncurses.

Променливата на средата TERM казва на Linux какъв тип терминал използвате. Приложните програми го използват, за да определят възможностите на терминала в базата данни terminfo, така че променливата TERM трябва да бъде зададена правилно. Но има по-добър интерфейс от познанията на компютъра за възможностите на терминала.

За байтове, отиващи от компютъра към терминала, терминалът трябва да бъде настроен да получава байтовете със същата скорост (битове в секунда), както идват от терминала. Ако терминалът е настроен да получава при 19 200 бода, а компютърът изпраща знаци при 9600 бода, екранът ще покаже боклук (или евентуално нищо).

Една опция за избор на скорост за терминала (както и много други опции) е от менюто "Настройка" на терминала. Повечето терминали имат голям брой опции в менюто за настройка.

Компютърният софтуер за сериен порт също има опции и тези опции трябва да бъдат зададени по съвместим начин.

Повечето терминали днес могат да работят като множество типове терминали (емулация).

Номерът на модела на терминалите, произведени преди това от DEC (Digital Equipment Corporation), започва с VT (например VT100). Много други терминали, различни от VT100, могат да бъдат конфигурирани да емулират VT100. Wyse е основен производител на терминали и повечето от техните терминали могат да емулират различни DEC терминали като VT100 и VT220. Така че, ако искате, да речем, да използвате терминал VT320, можете или да използвате истински VT320 в неговата „истинска“ идентичност, или може би да използвате някакъв друг терминал, способен да емулира VT320. „Истинските“ обикновено имат повече възможности, така че при равни други условия обикновено е по-добре да използвате „истинските“.

Най-често срещаният тип емулация е да използвате компютъра като терминал. Това се прави от програми, заредени в паметта на компютъра. В Linux (освен ако не сте в X-Window), компютърният монитор (наречен конзола) емулира терминал. Дори някои прозорци в X-Window емулират терминали.

На компютър мониторът е известен като конзола. Той емулира терминал като "Linux". Регистрирайте се на него като на виртуален терминал. Вижте ``Конзола: /dev/tty?''. Тя получава съобщения от ядрото за стартиране и изключване на системата. Можете да пренасочите съобщения, които обикновено отиват към конзолата към терминала, коригирайки и прекомпилирайки Linux. (Вижте ``Превръщане на конзолата в терминал').