Программное управление streamом: почему TX заблокирован на терминале?

Почему терминал не может отправлять данные после нажатия ^S ? Я всегда думал, что ^S используется терминалом, чтобы сообщить tty драйверу, что tty драйвер не должен передавать данные от терминала TO приложения (например, когда он занят обработкой дисплея). Но оказывается, что ^S сообщает tty драйверу, что вывод FROM не должен передаваться приложению. Это сюрприз. Зачем это нужно?

Это было обнаружено с помощью следующего теста:

Откройте gnome-terminal xterm или gnome-terminal , введите date , затем ^S , затем ^M (иначе введите), затем немного подождите, затем ^Q Результатом является то, что отображается текущая дата, а не дата немного назад.

Вы видите эффект приложения, которое заблокировано, потому что оно не может отобразить данные, которые вы пытаетесь отправить ему.