Я имел успех в следующих нескольких экспериментах.
Сначала выясните, использует ли X TrueColor RGB с допуском до 32 бит (или просто предположите, что это так). Затем выясните, есть ли у вас разрешение на запись в fb0 (и существует ли оно). Если они верны (и я ожидаю, что многие современные наборы инструментов / настольные ПК / ПК могут использовать их как значения по умолчанию), то вы должны быть в состоянии сделать следующее (и если эти значения по умолчанию не выполняются, то вы, вероятно, все еще можете добиться успеха с следующие тесты, хотя детали могут отличаться):
Тест 1: откройте виртуальный терминал (в X) и введите:
$ echo "ddd ... ddd"> / dev / fb0
где ... на самом деле несколько скриншотов из d. Результатом будет одна или несколько (частичных) серых линий в верхней части экрана, в зависимости от того, какова длина вашей эхо-строки и какое разрешение пикселей вы включили. Вы также можете выбрать любые буквы (все значения ascii меньше 0x80, поэтому получаемый цвет будет темно-серым ... и варьируйте буквы, если вы хотите что-то кроме серого). Очевидно, что это может быть обобщено на цикл оболочки, или вы можете просмотреть большой файл, чтобы увидеть эффект более четко: например:
$ cat /lib/libc.so.6> / dev / fb0
чтобы увидеть истинные цвета некоторых сторонников ФСФ; -P
Не беспокойтесь, если большая часть вашего экрана будет перезаписана. X по-прежнему контролирует указатель мыши и по-прежнему имеет представление о том, где отображаются окна. Все, что вам нужно сделать, это захватить любое окно и немного перетащить его, чтобы стереть шум.
Тест 2: cat / dev / fb0> xxx
затем измените внешний вид вашего рабочего стола (например, откройте новые окна и закройте другие).
Наконец, сделайте обратное: cat xxx> / dev / fb0, чтобы вернуть старый рабочий стол!
Ха, ну не совсем. Изображение вашего старого рабочего стола - иллюзия, и вы быстро откажетесь от него, когда откроете окно на весь экран.
Тест 3: Напишите небольшое приложение, которое захватывает предыдущий дамп / dev / fb0 и изменяет цвета пикселей, например, удаляет красный компонент или увеличивает синий, или переворачивает красный и зеленый и т. Д. Затем запишите эти пиксели в новый файл, который вы можете просмотреть позже с помощью простого подхода к оболочке теста 2. Также обратите внимание, что вы, вероятно, будете иметь дело с 4-байтовыми величинами BGRA на пиксель. Это означает, что вы хотите игнорировать каждый 4-й байт, а также рассматривать первый в каждом наборе как синий компонент. "ARGB" является байтом с прямым порядком байтов, поэтому если вы посещаете эти байты по возрастающему индексу массива C, сначала идет синий, затем зеленый, а затем красный .. т.е. B-G-R-A (не A-R-G-B).
Тест 4: напишите приложение на любом языке, которое зацикливается на скорости видео, посылая неквадратное изображение (например, xeyes) на часть экрана, чтобы создать анимацию без каких-либо границ окон. Для получения дополнительных очков, анимация перемещается по всему экрану. Вам нужно будет обязательно пропустить большое пространство после рисования пикселов на небольшую строку (чтобы компенсировать ширину экрана, которая, вероятно, намного шире, чем изображение, которое анимируется).
Тест 5: разыграйте друга, например, продлите тест 4, чтобы на его рабочем столе появилось изображение анимированного человека (может быть, вы сняли фильм, чтобы получить данные пикселей), а затем подошел к одному из их важные папки рабочего стола, подбирает папку и разбивает ее на части, затем начинает истерически хохотать, а затем выходит огненный шар и поглощает весь их рабочий стол. Хотя это все будет иллюзией, они могут немного испугаться ... но использовать это в качестве учебного опыта, чтобы показать Linux и открытый исходный код и показать, насколько он гораздо страшнее для новичка, чем на самом деле. ["вирус" - это вообще безобидные иллюзии в Linux]