Я знаю, что могу записать на жесткий диск, просто используя команду dd в Linux, такую как dd if=/dev/zero of=/dev/sdb .

Поскольку в Linux каждое устройство представлено в виде файла, мне интересно, что может произойти, если я намеренно или случайно запишу аудиоустройство или любое другое устройство?

2 ответа2

1

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

Например:

cat /dev/urandom > /dev/audio

Будет воспроизводить случайный шум на аудиоустройстве (по крайней мере, в старые времена).

1

Зависит от устройства.
Пользовательская программа, когда ей предоставляется доступ, записывает данные в интерфейс данных устройства.
Там также интерфейс управления с устройством, который используется драйвер устройства или IOCTL () вызовов из пользовательской программы.

Обычно данные, записанные на устройство, не могут влиять на его управление, но есть исключения, такие как последовательности управления ESCape (используемые принтерами и терминалами дисплея). Такие устройства имеют простой или отсутствующий интерфейс управления HW (например, возможно, трехпроводное последовательное соединение), и необходим общий доступ к данным и каналу управления .

Такие устройства обычно используют данные ASCII-код, и последовательность управления использует ASCII ESC символ в качестве префикса. Двоичные данные (вместо текста ASCII), вероятно, будут содержать случайные байты десятичного значения 27, так что последующие байты будут обрабатываться как управляющая последовательность. Таким образом, данные мусора, отправляемые на такое устройство, будут вызывать непредсказуемую операцию

Другие устройства, такие как аудиоустройства и накопители, имеют гораздо более сложный интерфейс управления или протокол для общего канала передачи данных и управления (например, протокол ATAPI для накопителей ATA). Данные, записываемые на устройство, всегда четко помечаются и обрабатываются как данные, и не влияют на работу устройства. Конечно, отправка мусорных данных может привести к захламлению хранящихся данных на диске. Или выводите высокие скорости нарастания (например, прямоугольные волны) на динамик, подключенный к аудиоустройству.

Запись /dev/zero в аудиоустройство, вероятно, приведет к максимальному отрицательному напряжению постоянного тока в динамике, который будет звучать как звук, а затем тишина. (Значения в ЦАП обычно используют смещенное представление; 0x8000 - это 16-разрядное значение для нулевых вольт.) Длительный выходной сигнал может перегреть усилитель звука и звуковую катушку динамика.

Доступ к прошивке устройства (для перезаписи) обычно является защищенной операцией. Это было бы верно для char и block устройств.

Предыдущие комментарии относятся к фактическим аппаратным устройствам. Запись мусора в специальные файлы устройств, такие как /dev/mem и /dev/ports будет непредсказуемой и не рекомендуется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .