Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

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

Ядро Unix обеспечивает обращение к последовательным устройствам tty. Это сокращение от Teletype device, по названию фирмы, которая в прошлом была одним из основных изготовителей терминалов. Этот термин используется в настоящее время для любого основанного на символьных данных устройства. В этой главе мы будем использовать этот термин исключительно по отношению к физическим устройствам.

В Linux существует три класса tty: виртуальные консоли, псевдотерминалы (подобные дуплексному каналу, используемому приложениями типа X11) и последовательные устройства. Последние также причисляется к tty потому, что они позволяют создавать диалоговые сессии по последовательной связи: будь то простой терминал или удаленный, компьютер соединенный с Вашим по телефонной линии. Обратиться к виртуальным консолям можно с локальной консоли клавишами с Alt-F1 по Alt-Fnn, где nn задает номер консоли.

SLIP и PPP имеют много общего в своей реализации в ядре. Ядро, действительно, не обрабатывает tty как сетевое устройство, которым Вы можете управлять, подобно устройству Ethernet, используя команды типа ifconfig. Однако, оно обрабатывает tty-устройства как места, где сетевые устройства могут быть подключены. Для этого ядро включает код для устройств tty, получивший название "line discipline". Общая идея состоит в том, что последовательный драйвер обрабатывает данные по-разному, а как именно, зависит от заданной line discipline. В заданной по умолчанию line discipline драйвер просто передает каждый символ, который получил в свою очередь. Когда выбрана line discipline для SLIP или PPP, драйвер читает блок данных, создает его заголовок для правильной обработки принимающей стороной и передает новый блок данных в сеть.