Мне не приходилось работать с сетью через терминал.
И я всегда считал, что в этом случае, как часто бывает, существующий механизм line discipline был расширен на несвойственные ему изначально задачи.
Но вот предполагалась ли изначально, что дисциплина будет работать с бинарными пакетами, сейчас сказать не так просто — все это было в pre-git истории.
но разве не по этой самой линии связи передавался ввод?
line discipline находится между приложением и драйвером терминала.
Ее задача — обеспечение построчного ввода/вывода (т.е. в первую очередь — задачи буферизации) с возможностью обработки метаинформации (в виде служебных символом в том же потоке). Для пользователей это, в частности, позволяет редактировать набираемую команду.
А «эта самая линия» находится «за» драйвером и в общем случае ее может вообще не быть — может быть ее эмуляция, до чего line discipline нет абсолютно никакого дела. Аналогом «этой самой линии» для псевдотерминала является связь PTS<-->PTM.
Да, в конкретных имплементациях обрабатываемая метаинформация может включать в том числе управление «той самой линией» и тогде некоторые служебные символы могут транслироваться, например, в ioctl драйвера, но обычно задачи line discipline сводятся к простому форматированию текста.
«Дисциплина линии» — на редкость неудачный перевод для «line discipline».
Да, я в курсе, что именно такая калька применяется повсеместно. Но, к сожалению, она затрудняет понимание на русском языке.
Из-за такого перевода line discipline постоянно ассоциируют с линией связи терминала (т.к. tty действительно подразумевает наличие таковой), но никакого отношения ни к каким линиям line discipline не имеет.
Английское «line» в этом контексте на русский переводится исключительно как «строка», т.к. подразумевает последовательность символов до символа LF («line feed» — «перевод строки»).
Почему-то нигде переводчикам не приходит в голову называть строки линиями — ни в текстовых редакторах, ни в табличных процессорах, ни в тех же эмуляторах терминалов.
Поэтому «line discipline» — это строковый буфер, строковая политика, обработчик строки, на худой конец — дисциплина строки, но никак не дисциплина линии.
Да, похоже вы правы.
Мне не приходилось работать с сетью через терминал.
И я всегда считал, что в этом случае, как часто бывает, существующий механизм line discipline был расширен на несвойственные ему изначально задачи.
Но вот предполагалась ли изначально, что дисциплина будет работать с бинарными пакетами, сейчас сказать не так просто — все это было в pre-git истории.
line discipline находится между приложением и драйвером терминала.
Ее задача — обеспечение построчного ввода/вывода (т.е. в первую очередь — задачи буферизации) с возможностью обработки метаинформации (в виде служебных символом в том же потоке). Для пользователей это, в частности, позволяет редактировать набираемую команду.
А «эта самая линия» находится «за» драйвером и в общем случае ее может вообще не быть — может быть ее эмуляция, до чего line discipline нет абсолютно никакого дела. Аналогом «этой самой линии» для псевдотерминала является связь
PTS<-->PTM
.Да, в конкретных имплементациях обрабатываемая метаинформация может включать в том числе управление «той самой линией» и тогде некоторые служебные символы могут транслироваться, например, в ioctl драйвера, но обычно задачи line discipline сводятся к простому форматированию текста.
Кроме беды с этим термином:
«Дисциплина линии» — на редкость неудачный перевод для «line discipline».
Да, я в курсе, что именно такая калька применяется повсеместно. Но, к сожалению, она затрудняет понимание на русском языке.
Из-за такого перевода line discipline постоянно ассоциируют с линией связи терминала (т.к. tty действительно подразумевает наличие таковой), но никакого отношения ни к каким линиям line discipline не имеет.
Английское «line» в этом контексте на русский переводится исключительно как «строка», т.к. подразумевает последовательность символов до символа LF («line feed» — «перевод строки»).
Почему-то нигде переводчикам не приходит в голову называть строки линиями — ни в текстовых редакторах, ни в табличных процессорах, ни в тех же эмуляторах терминалов.
Поэтому «line discipline» — это строковый буфер, строковая политика, обработчик строки, на худой конец — дисциплина строки, но никак не дисциплина линии.