Линия дисциплины - Line discipline

А линейная дисциплина (LDISC) является слоем в Терминал подсистема в некоторых Unix-подобный системы.[1] Подсистема терминала состоит из трех уровней: верхний уровень для обеспечения символьное устройство интерфейс, нижний драйвер оборудования для связи с оборудованием или псевдотерминал и дисциплина средней линии для реализации поведения, общего для терминальных устройств.

Линейная дисциплина связывает код драйвера устройства низкого уровня с общими подпрограммами интерфейса высокого уровня (такими как чтение (2), запись (2) и ioctl (2)) и отвечает за реализацию семантики, связанной с устройством.[2] Политика отделена от драйвера устройства, поэтому один и тот же драйвер последовательного оборудования может использоваться устройствами, которым требуется разная обработка данных.

Например, стандартная линейная дисциплина обрабатывает данные, которые она получает от драйвера оборудования и от приложений, записывающих на устройство, в соответствии с требованиями терминала на Unix-подобный система. При вводе он обрабатывает специальные символы, такие как символ прерывания (обычно Ctrl-C ) и символы стирания и уничтожения (обычно Backspace или Удалить, и Control-U соответственно) и при выводе заменяет все LF персонажи с CR /LF последовательность.

Последовательный порт также можно использовать для коммутируемое подключение к Интернету используя последовательный модем и PPP. В этом случае будет использоваться дисциплина линии PPP; он будет накапливать входные данные из последовательной линии во входные пакеты PPP, доставляя их в сетевой стек, а не на символьное устройство, и будет передавать пакеты, доставленные ему сетевым стеком по последовательной линии.

Немного Unix-подобный системы используют ПОТОКИ для реализации линейных дисциплин.

Рекомендации