Особенности работы с последовательными устройствами

Операционная система Unix предоставляет интерфейс для взаимодействия с последовательными устройствами, обозначенными как ttys. Название "ttys" является сокращением от названия компании Teletype™, которая в своё время была ведущим производителем терминального оборудования. Сегодня данный термин применяется ко всем устройствам, ориентированным на передачу символьных данных, независимо от их происхождения.

В Linux можно выделить три основных класса устройств tty: виртуальные консоли, псевдотерминалы (как дуплексные каналы, которые часто используются приложениями на базе X11) и, непосредственно, последовательные устройства. Последние включены в категорию ttys, так как они позволяют устанавливать диалоговое соединение, будь то прямое подключение к терминалу или дистанционное через телефонную линию к другому компьютеру.

Устройства ttys предоставляют множество конфигурируемых параметров, доступ к которым можно получить с помощью запроса ioctl. Большая часть этих параметров особенно актуальна для последовательных устройств, так как они должны обеспечивать гибкость при работе с различными типами соединений. Примерами таких параметров могут служить скорость передачи данных и установка паритета, а также флаги для преобразования регистра символов.

Некоторые драйверы ttys могут также поддерживать уникальные опции, меняющие их поведение в зависимости от потребностей пользователя. Например, драйвер SLIP для Linux может быть настроен для работы с особыми дисциплинами передачи данных.

Следует также упомянуть о том, что существует некоторое недопонимание в том, как правильно измерять скорость линии. Термин "bit rate" (битовая скорость) указывает на количество бит, передаваемых за секунду (bps). Иногда эту скорость называют Бод, что также верно в определенных контекстах. Однако стоит помнить, что эти термины не являются полными синонимами. "Бод" относится к времени передачи одного электрического импульса устройством, в то время как "bps" показывает среднее количество бит, передаваемых за секунду. Эти значения могут различаться, так как многие устройства кодируют более одного бита информации в одном электрическом импульсе.