LINUX.ORG.RU
ФорумTalks

Статья: Устройство подсистемы TTY

 ,


11

4

Опубликовал статью, посвященную устройству подсистемы TTY.

Подсистема TTY — одна из ключевых особенностей Unix и Unix-подобных операционных систем.

В этой статье я постараюсь кратко, но достаточно ёмко и доступно для читателей разного уровня подготовки разобрать устройство подсистемы TTY и её взаимодействие с другими частями программной среды.

Описание архитектуры TTY, изложенное здесь, не является на 100% корректным. Некоторые части были намеренно упрощены или опущены, чтобы итоговая картина получилась более простой и цельной. Эти детали не являются критичными для понимания принципов работы TTY. При необходимости все необходимые детали могут быть восстановлены чтением страниц руководств в составе операционной системы.

Статья представляет собой высокоуровневое описание функциональных частей и режимов TTY с точки зрения пользователя или прикладного программиста.

>> Подробности

Ответ на: комментарий от vvn_black

Согласен, со шрифтами что-то пошло не так. Сперва выглядит забавно, но при чтении сильно напрягает.

Статью почитаю, спасибо автору!

Irben ★★ ()
Ответ на: комментарий от RazrFalcon

Ограничить ширину, отключить justify - и будет норм.

По поводу ширины согласен (мониторы уже давно не 5", приходится вертеть головой, что нифига не удобно), по поводу justify вопрос спорный, в формате A6 или Letter оно вполне себе норм, но на широченной веб-странице никуда не упёрлось.

Ещё если контрастность чуть убавить, читаться будет легче. @wandrien, подумай над этим.

mord0d ★★★★ ()
Ответ на: комментарий от RazrFalcon

…поправить верстку на мобиле, исправить некоторые цвета.

Не нашел вменяемой темной темы для jekyll, поставил первую попавшуюся. А она что-то совсем сырая.

wandrien ()
Ответ на: комментарий от vasya_pupkin

В эпоху systemd - tty и pty никуда не делись. Последним вы пользуетесь каждый раз запуская любимый эмулятор терминала.

DawnCaster ★★ ()
Ответ на: комментарий от vasya_pupkin

пробовал - сустемд не работает на ардуине

Jetty ★★★★★ ()

Лучше на гитхаб или гитлаб, мало ли что с блогом случится. Фактор автобуса и все такое…

chenbr0 ()
Ответ на: комментарий от chenbr0

Это и есть гитхаб.

Чтобы повысить доступность информации, я размещаю личные сайты либо в децентрализованном ZeroNet, либо в централизованных бесплатных сервисах. (Еще надо бы сделать зеркалирование туда-обратно.)

wandrien ()

Хорошо, ну, тогда давай уж и пиши, как организовать подключение к современному linux с помощью хардварного терминала через СОМ-порт

tiinn ★★★★ ()
Ответ на: комментарий от wandrien

Да ничего конкретного. Я это скорее как о логическом продолжении статьи.

moonmadness ()
Ответ на: комментарий от wandrien

Из известных мне терминалов ^H используется в vt (консоль FreeBSD) и wscons (консоль illumos, какой-либо солярки давно нет чтобы проверить и там), и в обоих системах (в illumos добавлен недавно) присутствует erase2/VERASE2, заданный как ^H (erase/VERASE, соответственно, ^?).

Вывод stty -a в wscons:

speed 9600 baud;
rows = 32; columns = 79; ypixels = 600; xpixels = 800;
csdata UTF-8
eucw 1:0:0:0, scrw 1:0:0:0
intr = ^c; quit = ^\; erase = ^?; erase2 = ^h; kill = ^u;
eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>;
start = ^q; stop = ^s; susp = ^z; dsusp = ^y;
rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;
status = ^t;
-parenb -parodd cs8 -cstopb hupcl cread -clocal -loblk -crtscts -crtsxoff -parext
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc
ixon -ixany -ixoff imaxbel
isig icanon -xcase echo echoe echok -echonl -noflsh
-tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten
opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3

P.S.: это к вопросу в статье.

P.S.2: соответственно, не нужно «побеждать» какому-то одному коду, и тот и тот работают:

http://src.illumos.org/source/xref/freebsd-head/sys/kern/tty_ttydisc.c#1018

http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/ldterm.c#1788

xtouqh ()
Последнее исправление: xtouqh (всего исправлений: 2)
Ответ на: комментарий от Spoofing

Вообще, жаргонизм «титивай» я встречал ещё в фидошных текстах начала 90-х.

hobbit ★★★★★ ()

Ты бы написал, откуда взялись комбинации клавиш вида ^H, ^J и т. п. и почему они именно такие.

А вот про job control мне самому было бы интересно почитать (и как он взаимодействует с процессами), но это уже, наверное, совсем другая тема и совсем другая статья.

А так, крутая статья. geekless торт. Ты зачем два раза с ЛОРа самозабанился?

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от hobbit

текст более опрятно выглядит

Если пробелы между словами не растягиваются длиннее трёх широких букв. И чем шире страница, тем больше вероятность что это случится.

Вообще, я сторонник justify, но с выше изложенной оговоркой.

mord0d ★★★★ ()
Ответ на: комментарий от intelfx

А так, крутая статья. geekless торт. Ты зачем два раза с ЛОРа самозабанился?

Поддерживаю всё процитированное.

hobbit ★★★★★ ()

по-русски?? это не смешно. и емнип были очень хорошие англ. статьи, но давно. случайно не их ли ты взял за основу.

crypt ★★★★★ ()

В статье кстати не хватает описания того, как настроить tty, чтобы полностью отключить все допфункции и работать с устройством как с голым uart портом. Это нужно если ты подключаешь какую-либо железку к com порту и хочешь с ней общаться по своему протоколу

cvs-255 ★★★★★ ()

Возник вопрос: как я понял, в концепции tty, всякие вещи типа echo, буфера итд предполагаются не на стороне терминала, а на стороне машины, где рабоиает программа. И если я использую ноут в качестве терминала, подалючаясь к железке, не умеющей echo, то установка echo на ноуте мне ничем не поможет и даже навредит, тк будет отправлять байты, которые мне шлет железка, обратно в нее?

cvs-255 ★★★★★ ()
Ответ на: комментарий от xtouqh

Спасибо за дополнения!

Пока нет времени внести правки статью.

wandrien ()

Расцветка слишком контрастная, сделай шрифт потемнее фон посветлее что-ли, а то читать не возможно

superuser ★★★ ()
Последнее исправление: superuser (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)