O que acontece se eu gravar em um dispositivo diferente de um disco?

0

Eu sei, posso gravar em um disco rígido usando apenas o comando dd no Linux, como dd if=/dev/zero of=/dev/sdb .

Como cada dispositivo é representado como arquivo no Linux, eu me pergunto o que poderá acontecer se eu intencionalmente ou acidentalmente gravar no dispositivo de áudio ou em qualquer outro dispositivo?

    
por Anwar 15.09.2012 / 12:57

2 respostas

1

Depende do dispositivo.
Um programa do usuário, quando concedido acesso, grava na interface dados do dispositivo.
Há também uma interface control para o dispositivo, que é utilizada pelo driver do dispositivo ou por chamadas ioctl () do programa do usuário.

Normalmente dados escritos em um dispositivo não podem afetar seu controle , mas há exceções como sequências de controle ESCape (usadas por impressoras e exibidores terminais). Tais dispositivos têm uma interface de controle HW simples ou inexistente (por exemplo, talvez uma conexão serial de 3 fios), e o compartilhamento do canal data e controle é necessário.

Esses dispositivos normalmente usam dados codificados em ASCII , e uma seqüência de controle usa o caractere ASCII ESC como um prefixo. Dados binários (em vez de texto ASCII) provavelmente conterão bytes ocasionais de valor decimal 27, de forma que os bytes subseqüentes sejam tratados como uma seqüência controle . Assim, os dados de lixo enviados para tal dispositivo produzirão uma operação imprevisível.

Outros dispositivos, como dispositivos de áudio e unidades de armazenamento, têm uma interface controle muito mais sofisticada ou um protocolo para seus dados compartilhados & Canal controle (por exemplo, protocolo ATAPI para unidades ATA). Dados gravados no dispositivo são sempre claramente marcados e tratados como dados e não afetarão a operação do dispositivo. É claro, o envio de dados ilegíveis iria atrapalhar os dados armazenados em algum lugar em uma unidade de disco. Ou produza altas taxas de variação (por exemplo, ondas quadradas) para um alto-falante conectado ao dispositivo de áudio.

Escrever /dev/zero em um dispositivo de áudio provavelmente produzirá máxima tensão CC negativa no alto-falante, que soará como uma batida e depois como silêncio. (Os valores para o DAC geralmente usam representação tendenciosa; 0x8000 é um valor de 16 bits para zero volts.) A saída prolongada pode superaquecer o amplificador de áudio e a bobina de voz do alto-falante.

O acesso ao firmware de um dispositivo (para regravar) é tipicamente uma operação protegida. Isso seria verdadeiro para dispositivos char e block .

Os comentários anteriores referem-se a dispositivos HW reais. A gravação de lixo em arquivos de dispositivos especiais, como /dev/mem e /dev/ports , será imprevisível e não é aconselhável.

    
por 15.09.2012 / 22:18
1

Você pode apagar dados, corromper a memória, jogar algum lixo no dispositivo de som, etc ... Não é algo que você realmente queira fazer.

Por exemplo:

cat /dev/urandom > /dev/audio

Wil toca algum ruído aleatório no dispositivo de áudio (pelo menos nos tempos antigos).

    
por 15.09.2012 / 13:03

Tags