Как уменьшить уязвимости Spectre и Meltdown в системах Linux?

stty не имеет значения.

Аппаратная линейная скорость, установленная через линейную дисциплину, не имеет значения для виртуального терминала, если она не равна нулю. Он имеет значение только для «терминалов», которые сформированы с реальными последовательными устройствами, потому что он контролирует линейную скорость последовательного устройства.Во встроенном эмуляторе терминала ядра нет последовательных устройств.

ywrap не панацея.

Аппаратные механизмы отображения, подобные тем, которые разрешены ywrap , могут помочь эмулятору терминала только с (почти) прокруткой на всю высоту и ширину строки.

По очевидным причинам эмулятор терминала не может использовать такие аппаратные механизмы вообще , если он поддерживает левое и правое поля, и, таким образом, действия прокрутки не прокручивают всю ширину строки. Встроенный эмулятор терминала ядра Linux не поддерживает управляющую последовательность DECSLRM («DEC Set Left and Right Margins») (или что-то подобное) в первую очередь, поэтому частичная прокрутка строк здесь не является проблемой.

Но прокрутка с частичной высотой есть. Встроенный в ядро ​​Linux эмулятор терминала действительно поддерживает последовательность управления DECSTBM («DEC Set Top and Bottom Margins»), которая позволяет приложениям устанавливать первую и последнюю строки на экране для прокрутки. И эта последовательность управления правильно указана как возможность change_scroll_region в записи terminfo linux . Использование таких областей прокрутки действительно довольно распространено в полноэкранных приложениях TUI. vim использует их, например, при прокрутке окон во всю ширину.

Драйвер fbcon ядра Linux использует механизм ywrap , только если более трех четвертей всего изображения на экране сохраняется и перемещается с помощью действия прокрутки.Это связано с тем, что прокрутка с частичной высотой с использованием ywrap также включает в себя некоторое копирование, так что «непрокрученные» части экрана, кажется, остаются на том же месте, даже несмотря на то, что аппаратное обеспечение прокрутки целиком экран. Чем меньше область прокрутки, тем менее полезно ywrap , потому что тем больше объем копирования, который должен иметь место, чтобы создать иллюзию того, что некоторые части дисплея не прокручиваются.

Управляющие последовательности не поддерживаются.

На реальных терминалах, в отличие от виртуальных терминалов, иногда существуют управляющие последовательности, позволяющие выбирать скорость прокрутки. Например: Семейство DEC VT имеет флаг с именем DECSCLM («Режим прокрутки DEC», флаг частного режима DEC №4). При сбросе (через управляющую последовательность ECMA-48 RM) терминал прокручивается настолько быстро, насколько это возможно. Если установлено (через управляющую последовательность ECMA-48 SM), терминал прокручивается медленнее, вставляя задержки при прокрутке.

Если бы встроенный эмулятор терминала ядра Linux был полной эмуляцией DEC VT, это был бы способ управления скоростью прокрутки. Но это не так. Хотя некоторые эмуляторы терминала пользовательского пространства, такие как xterm , реализуют этот флаг режима, я не знаю ни одного эмулятора терминала ядра, который бы его реализовал. Встроенный эмулятор терминала ядра Linux, конечно же, этого не делает.

34
27.07.2018, 14:44
0 ответов

Теги

Похожие вопросы