Віддалені термінали і консоль 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Віддалені термінали і консоль



Емулятор термінала може бути запущений на віддаленому комп'ютері, при цьому необхідно забезпечити обмін даними мережею між ним і програмним забезпечен­ням. Прикладом розв'язання такої задачі є протокол telnet, який працює поверх TCP/IP. Відповідний сервер (telnet-сервер) запускають на машині, яка надає від­далений доступ. Він перехоплює дані, що їх застосування передають на термінал, і пересилає їх на віддалену систему. Там працює емулятор термінала (telnet-клі­єнт), який інтерпретує отримані дані й, у свою чергу, відсилає серверу інформа­цію, введену на віддаленій машині. Сервер доставляє її застосуванням.

З іншого боку, якщо дисплей комп'ютера, на якому запущена ОС, працює у текстовому режимі, за відображення інформації на ньому теж може відповідати емулятор термінала. У багатокористувацьких ОС із мережним доступом (наприк­лад, в UNIX) такий термінал часто називають консоллю, на відміну від терміналів, які використовують для доступу до системи через мережу.

 

Термінальне введення

Є два підходи до організації термінального введення.

· У режимі без обробки, або неканонічному режимі (non-canonical mode), дані передають програмі без зміни (включаючи керуючі коди, такі, як переведення каретки або Backspace). За інтерпретацію цих кодів відповідає програма. Та­кий режим складніший у використанні (потрібно інтерпретувати керуючі ко­ди), але більш гнучкий. Найчастіше його використовують текстові редактори.

· У разі використання режиму з обробкою, або канонічного режиму (canonical mode), дані додатково оброблятимуться перед тим як надійти у програму. Така обробка відбувається після натискання користувачем клавіші Enter (введення символу переведення рядка), при цьому керуючі коди буде інтерпретовано і відповідно до них змінено весь уведений рядок (наприклад, якщо в ньому тричі поспіль трапиться Backspace, ці три символи і ще три, введені перед ними, із рядка будуть вилучені). Такий режим простіший для програміста, у програ­му в даному разі потрапляє вже підготовлений символьний рядок.

Прикладом програмного забезпечення, що реалізує компроміс між цими ре­жимами, може бути розповсюджена в UNIX-системах бібліотека readline. Вона надає розширені засоби редагування введеного рядка, які потребують підтримки неканонічного режиму, але її програмний інтерфейс аналогічний до введення в канонічному режимі (у програму потрапляє підготовлений внаслідок редагу­вання рядок).

Введені із клавіатури символи зберігаються у буфері, навіть у неканонічному режимі (трапляються ситуації, коли застосування не може відразу прийняти дані від клавіатури, і потрібно зберегти їх до того моменту, коли з'явиться така мож­ливість). У канонічному режимі дані із буфера передаються програмі після вве­дення символу переведення рядка, у неканонічному - як тільки програма буде готова їх прийняти. Звичайно для кожного термінала створюється свій окремий буфер введення. У разі заповнення буфера може бути виділена додаткова пам'ять.

У більшості випадків уведені символи відразу відображаються на екрані (ро­бота в режимі луни). Можливе відключення цього режиму, наприклад під час вве­дення паролів або команд текстових редакторів.

 

Термінальне виведення

Для виведення на термінал теж використовують буферизацію. Буфер виводу за­повнюють у тому випадку, коли термінал не готовий прийняти символ; у міру його готовності символи із буфера передають терміналу. Відображаючи дані, він інтер­претує керуючі послідовності, після чого показує інформацію, виділяє кольорами окремі ділянки, переміщає курсор тощо.

Головна проблема полягає в тому, що різні модифікації терміналів сприйма­ють різні набори послідовностей. Для її вирішення у сучасних ОС звичайно ство­рюють базу даних терміналів, що містить список терміналів і послідовності, які відповідають кожному із них. В UNIX-системах таку базу називають terminfo.

Логічна структура термінального введення-виведення показана на рис. 17.

 

 

2.



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 259; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.103.8 (0.005 с.)