На основе найденного на просторах интернета примера, как "подружить" ncurses и readline, переделал tty_term — простенький терминальный клиент. Теперь команды вводить намного удобней: они находятся в отдельной строке и запоминаются readline'ом.
Прокручивать экран сообщений тоже можно "до упора": абсолютно все сообщения запоминаются в связном списке (я решил, что нет смысла его ограничивать: все равно больше нескольких мегабайт накопить не удастся). Правда, не решил проблему с изменением размера окна: почему-то "на кошках" все работает нормально, но тот же самый код, дополненный работой с последовательным терминалом, "задерживает" сигнал обновления до нажатия какой-либо клавиши! А еще оказалось, что изменение размера экрана посылает сигнал, который превосходно прерывает select() (а я в его обработчике совсем забыл сразу добавить реакцию на EINTR). Ну и да: мне лень было заморачиваться с прокруткой экрана, чтобы все было красиво и по одной строчке, как бы ни менялся размер окна, поэтому прокрутка производится поэлементно (т.е. квантом является не отображаемая строка, а сохраненная в памяти). Режим работы пока только текстовый. Если вдруг у меня появится устройство, имеющее бинарный протокол, возможно, добавлю еще представление в виде hex + ввод команд в таком же виде.