Линейная дисциплина
Линейная дисциплина ( LDISC ) — это уровень терминальной подсистемы в некоторых Unix-подобных системах. [1] Подсистема терминала состоит из трех уровней: верхнего уровня для обеспечения интерфейса символьного устройства , нижнего аппаратного драйвера для связи с аппаратным обеспечением или псевдотерминалом и дисциплины средней линии для реализации поведения, общего для терминальных устройств.
Линейная дисциплина объединяет код драйвера устройства низкого уровня с подпрограммами общего интерфейса высокого уровня (такими как read(2), write(2) и ioctl (2)) и отвечает за реализацию семантики, связанной с устройством. [2] Политика отделена от драйвера устройства, поэтому один и тот же драйвер последовательного оборудования может использоваться устройствами, которым требуется разная обработка данных.
Например, стандартная линейная дисциплина обрабатывает данные, которые она получает от драйвера оборудования и от приложений, записывающих на устройство, в соответствии с требованиями терминала в Unix-подобной системе. На входе он обрабатывает специальные символы, такие как символ прерывания (обычно Control-C ) и символы стирания и уничтожения (обычно Backspace или delete и Control-U соответственно), а на выходе он заменяет все символы LF на CR / LF Последовательность .
Последовательный порт также можно использовать для коммутируемого подключения к Интернету с использованием последовательного модема и PPP . В этом случае будет использоваться линейная дисциплина PPP; он будет накапливать входные данные из последовательной линии во входные пакеты PPP, доставляя их в сетевой стек, а не в символьное устройство, и будет передавать пакеты, доставленные ему сетевым стеком, по последовательной линии.
Некоторые Unix-подобные системы используют STREAMS для реализации строковых дисциплин.
Ссылки
[ редактировать ]- ^ TTY демистифицируется
- ^ FreeBSD по интерфейсам ядра Руководство –