Text-Terminal-HOWTO Коротко про те, як працюють термінали (Linux)
Див. також розділ "Деякі подробиці про те, як працюють термінали"
Кожен термінал з'єднаний із послідовним портом головної ЕОМ (часто лише PC). Порти мають назви: ttyS0, ttyS1, ttyS2 і т.д.
Вони представляються як спеціальних файлів, що у каталозі пристроїв /dev. /dev/ttyS0 відповідає COM1 у DOS або Windows. ttyS1 - COM2 і т.д. "Термінальні пристрої" для деталей.
Коли головний комп'ютер запускається, він запускає програму getty (див. Serial-HOWTO 4.1 і 7.2) на кожному послідовному порту, до якого підключений термінал (як визначено у файлі /etc/inittab). Програма getty виконує програму "login", щоб реєструвати людей у системі. На екрані з'являється підказка "login:". Люди на терміналах входять до системи (при наданні ними паролів) і потім отримують доступ до комп'ютера. Коли приходить час вимкнення терміналу, зазвичай виходять із системи та відключають живлення. "Обмеження входу в систему" про інформацію щодо обмеження входу в систему (включаючи дозвіл кореневому користувачеві реєструватися з терміналу).
Зображення на електронно-променевій трубці згасає майже негайно, якщо його не перемальовувати на екрані часто променем електронів на екрані трубки. Оскільки текст, надісланий терміналу повинен залишитися видимим, зображення на екрані має бути збережене в мікросхемах пам'яті терміналу, і електронний промінь повинен неодноразово пробігати екраном (скажімо 60 разів на секунду) щоб підтримати зображення. подробиці ``Пам'ять терміналу".
Термінал керується комп'ютером. Комп'ютер посилає терміналу текст не тільки для відображення на екрані, але також посилає команди терміналу, які повинні виконуватися. Вони називаються "керуючими кодами"(байтами) і ``escape-послідовностями". Наприклад, керуючий код CR (повернення каретки) переміщає курсор на лівий край екрану. на екрані, визначене параметрами, вміщеними всередині escape-послідовності.
``Перші термінали" мали лише кілька таких команд, але сучасні термінали мають їх сотні. Вигляд дисплея може бути змінений для деяких параметрів: типу яскравості, тьмяності, підкреслення, миготіння та негативного зображення. Динамік в терміналі може "пищати", коли натиснута якась клавіша або подавати звуковий сигнал, якщо сталася помилка.. Функціональні клавіші можуть програмуватися для спеціальних значень.Можна підключати різні шрифти.Дисплей може бути прогорнутий вгору або вниз.Певні частини екрана можуть бути стерті.Можуть використовуватися різні типи керування потоком даних, щоб зупинити потік даних, коли байти надіслані терміналу швидше, ніж термінал впіває їх обробляти.
У той час як термінали, зроблені для США, використовують для алфавіту однакову для всіх кодування ASCII (крім IBM-терміналів, які використовували EBCDIC), вони, на жаль, не використовують однакові escape-послідовності. Це трапляється навіть після прийняття різних стандартів ANSI, оскільки ці стандарти не просувалися як слід. Крім того, старі термінали часто відчувають брак можливостей нових терміналів.
Це може спричинити проблеми. Наприклад, комп'ютер може надіслати терміналу escape-послідовність, що змушує його розбити екран на два вікна певного розміру, не розуміючи, що термінал нездатнийце виконати.
Для подолання цих проблем була прийнята база даних, яка називається "termcap" (тепер "terminfo"). Ця база даних постійно знаходиться в деяких файлах на комп'ютері і має розділи (іноді окремі файли) кожної моделі термінала. Для кожної моделі (типу VT100) наведено список можливостей, включаючи доступні для використання послідовності escape і т.д. розділ "termcap і terminfo (докладно)" для подробиць. Прикладні програми можуть використовувати цю базу даних, викликаючи деякі програми C-бібліотеки. Один великий набір таких програм (більш ніж 200) називається "ncurses" і перерахований на man-сторінці для ncurses.
Змінне середовище TERM вказує Linux, який тип терміналу ви використовуєте. Прикладні програми використовують її, щоб визначити можливості терміналу в базі даних terminfo, тому змінна TERM повинна бути встановлена правильно. Але є правильніший інтерфейс, ніж знання комп'ютера про можливості терміналу.
Для байтів, що йдуть з комп'ютера на термінал, термінал повинен бути встановлений так, щоб отримувати байти на тій самій швидкості (біт за секунду), з якою вони йдуть з терміналу. Якщо термінал встановлений на швидкість прийому 19200 бод, а комп'ютер посилає символи на швидкості 9600 бод, то на екрані буде видно сміття (або можливо нічого).
Одна з можливостей вибору швидкості для терміналу (як і багато інших можливостей) - з меню "Установка" на терміналі. Більшість терміналів має велику кількість опцій у своїх меню "Установка".
Комп'ютерне програмне забезпечення послідовного порту також має опції і ці опції повинні бути встановлені сумісним способом.
Більшість терміналів сьогодні можуть працювати як кілька типів терміналів (емуляція).
Номер моделі терміналу терміналів раніше вироблених DEC (Digital Equipment Corporation) починаються з VT (наприклад, VT100). Багато інших терміналів, не VT100, можуть бути налаштовані на емуляцію VT100. Wyse - головний виробник терміналів, більшість їх терміналів може емулювати різні термінали DEC, такі як VT100 і VT220. Таким чином, якщо ви хочете, скажімо, використовувати термінал VT320, ви можете або використати реальний VT320 у "справжній" індивідуальності, або можливо використати якийсь інший термінал, здатний емулювати VT320. "Справжні" зазвичай мають більше можливостей, так що, за інших рівних умов, зазвичай краще використовувати "справжні".
Найбільш загальний тип емуляції - це використовувати PC начебто він - термінал. Це здійснюють програми, завантажені на згадку про PC. У Linux (якщо ви не знаходитесь в X-Window) монітор PC (званий консоллю) емулює термінал. Навіть деякі вікна X-Window емулюють терміналам.
На комп'ютер монітор відомий як консоль. Він емулює термінал типу "Linux". Реєструються у ньому як у віртуальному терміналі. "Консоль: /dev/tty?". Він отримує повідомлення від ядра про запуск і вимкнення системи. Можна повідомлення, які зазвичай йдуть на консоль, перенаправити на термінал, виправляючи і перекомпілюючи Linux. (Див., ``Робимо консоль терміналом").