
A maioria das pessoas acha que sabe o que vai acontecer quando conecta um pen drive USB a um computador. Aparece uma letra de unidade, alguma capacidade de armazenamento é informada e você pode copiar arquivos para ele ou retirar arquivos dele. É isso que um pen drive faz.
Só que ele não precisa necessariamente se comportar assim.
O armazenamento USB não é definido apenas pela memória NAND flash que fica dentro da carcaça de plástico. Entre o conector USB e essa memória NAND existe um controlador, e esse controlador tem um papel importante na maneira como o dispositivo se identifica e como o computador host interage com ele.
É aí que as coisas ficam interessantes, porque um pen drive USB pode conter uma NAND flash perfeitamente comum e, ao mesmo tempo, se apresentar ao computador como algo completamente diferente.
Um exemplo é um pen drive USB configurado no nível do controlador de hardware para se comportar como um dispositivo CD-ROM.
E não, a ideia não é simplesmente tornar os arquivos somente leitura.
O computador realmente não sabe o que existe dentro do pen drive
Quando você conecta um dispositivo USB a um computador, o sistema operacional não olha de alguma forma através da carcaça de plástico e descobre que existe NAND flash ali dentro. O que acontece é uma conversa entre o host USB e o dispositivo, e o dispositivo fornece informações sobre o que ele é e sobre como o computador deve se comunicar com ele.
Pense nisso um pouco como alguém chegando ao balcão de imigração de um aeroporto.
A pessoa apresenta credenciais que, basicamente, dizem:
“Eu sou este tipo de dispositivo. É assim que eu me identifico. Este é o tipo de funcionalidade que ofereço. E é assim que você se comunica comigo.”
No caso de um pen drive USB, o controlador cuida de grande parte dessa conversa.
Em um pen drive comum, o controlador apresenta o armazenamento de uma maneira que o sistema operacional reconhece como armazenamento semelhante a um disco. Windows, Linux ou macOS então carrega o suporte apropriado e interage com o dispositivo de acordo com essa identidade.
Mas a própria NAND flash não precisa necessariamente ser apresentada dessa maneira.
Um controlador projetado e configurado para emulação de CD-ROM pode pegar a NAND flash e expor um dispositivo lógico de armazenamento que se comporte como mídia óptica. Do ponto de vista do computador host, ele pode então estar lidando com algo que se parece muito mais com um dispositivo CD-ROM do que com um pen drive USB comum e gravável.
O computador não se importa muito com o fato de o armazenamento físico por baixo de tudo isso ser, na realidade, NAND flash.
Essa é justamente a parte fascinante.
A tecnologia física de armazenamento e o dispositivo de armazenamento apresentado ao computador não precisam necessariamente ser a mesma coisa.
É também aqui que a diferença entre truques de software e comportamento real no nível do controlador se torna importante. Embora a versão portuguesa ainda não tenha a página específica sobre emulação de CD-ROM, há uma explicação relacionada sobre por que o comportamento de hardware no nível do dispositivo é diferente de simplesmente copiar arquivos por software. A versão curta é que mudar a forma como um controlador apresenta o armazenamento é algo fundamentalmente diferente de simplesmente alterar um atributo de arquivo ou montar um arquivo ISO por software.
Pense nisso como um prédio com uma placa diferente na porta
Imagine um único prédio físico.
Coloque do lado de fora uma placa dizendo BANCO, e os visitantes entrarão esperando caixas, contas, depósitos e saques.
Troque a placa para BIBLIOTECA, e as pessoas se aproximarão exatamente do mesmo prédio com expectativas completamente diferentes. Elas não vão até o balcão tentando depositar dinheiro. Procuram livros e esperam as regras de uma biblioteca.
O prédio em si não necessariamente mudou.
O que mudou foi a identidade apresentada e as regras associadas a essa identidade.
Um controlador USB pode fazer algo conceitualmente parecido.
O armazenamento por baixo pode continuar sendo NAND flash, mas, em vez de apresentá-lo como armazenamento comum, gravável e semelhante a um disco, o controlador pode apresentar um dispositivo lógico que o sistema operacional entende como mídia do tipo CD-ROM.
O sistema operacional reage de acordo com essa identidade.
Essa é uma diferença importante, porque criar uma mídia CD-ROM em um pen drive USB não é a mesma coisa que clicar em um arquivo no Windows e selecionar “Somente leitura”.
Também não é necessariamente a mesma coisa que pegar um armazenamento USB convencional e impedir operações de gravação.
Essas abordagens tentam controlar o que alguém pode fazer com um dispositivo de armazenamento.
A emulação de CD-ROM vai um passo além ao mudar qual tipo de dispositivo de armazenamento está sendo apresentado ao host.
Por que alguém iria querer fazer isso?
À primeira vista, configurar um pen drive USB moderno para se comportar como uma tecnologia da era do CD-ROM parece um retrocesso.
Mas existem algumas razões surpreendentemente práticas para fazer isso.
Pense em uma máquina industrial construída há 15 ou 20 anos.
O software de serviço dela pode ter sido desenvolvido em uma época em que unidades de CD-ROM estavam em toda parte. O aplicativo talvez espere que atualizações, arquivos de calibração, pacotes de instalação, material de referência ou utilitários de recuperação cheguem por meio de mídia óptica.
Com o tempo, a unidade física de CD para de funcionar.
Unidades ópticas de reposição ficam mais difíceis de encontrar. Manter discos gravados se torna inconveniente. Talvez o computador original já não valha a pena substituir, mas o equipamento industrial conectado a ele certamente vale a pena preservar.
Substituir esse computador também pode criar um problema completamente diferente. Sistemas industriais nem sempre são ambientes onde você simplesmente instala um PC novo, copia alguns programas e considera a terça-feira à tarde resolvida.
Pode haver drivers especializados, hardware proprietário, requisitos de validação, questões de certificação ou software que não recebe atualização há anos simplesmente porque continua fazendo perfeitamente bem o trabalho para o qual foi criado.
A máquina pode valer US$ 100.000 enquanto o computador que a controla roda um sistema operacional que a maioria das pessoas não vê desde a época em que seus filhos estavam no ensino fundamental.
É aí que compatibilidade passa a valer mais do que novidade.
Um dispositivo USB capaz de se apresentar corretamente como mídia do tipo óptica pode potencialmente criar uma ponte entre essas diferentes gerações de tecnologia.
Em vez de reescrever o aplicativo antigo para que ele entenda armazenamento moderno, você faz o armazenamento moderno falar a linguagem que o aplicativo antigo já entende.
Emulação de CD-ROM tem menos a ver com fingir ser um CD e mais a ver com falar CD-ROM com um computador que espera ouvir exatamente essa linguagem.
Sistemas embarcados podem ser ainda mais exigentes
Os sistemas operacionais modernos de desktop são extremamente flexíveis.
Conecte um pen drive USB comum a um computador Windows atual e há uma boa chance de o Windows descobrir o que ele é e permitir acesso aos arquivos.
Sistemas embarcados podem ser um animal completamente diferente.
Pense em máquinas CNC, equipamentos de diagnóstico, instrumentos de laboratório, sistemas de fabricação, quiosques, equipamentos de manutenção automotiva, sistemas de ponto de venda e equipamentos especializados de medição.
Muitas dessas máquinas não foram projetadas como computadores de uso geral.
Os programadores sabiam exatamente o que a máquina deveria fazer, exatamente qual hardware deveria utilizar e, em muitos casos, exatamente como a informação deveria chegar até ela.
Havia pouca razão para escrever uma rotina de armazenamento maravilhosamente flexível capaz de lidar com qualquer dispositivo que alguém pudesse conectar à máquina 20 anos no futuro.
Se a especificação original dizia que o software chegaria em CD-ROM, foi em torno dessa premissa que o programador desenvolveu o sistema.
Por isso, o sistema pode fazer determinadas suposições sobre tipo de dispositivo, comportamento da mídia, estrutura do sistema de arquivos, unidades lógicas ou outras características do dispositivo de armazenamento.
É aí que a emulação se torna muito mais do que uma simples curiosidade.
Em vez de mudar o sistema host, você muda o que o dispositivo USB diz ao host que ele é.
Para equipamentos antigos ou especializados que são caros, difíceis ou impossíveis de modificar, isso pode ser uma opção extremamente útil.
Um pen drive USB é mais do que um conector e um pouco de memória
Isso também revela um dos equívocos mais interessantes sobre pen drives USB.
É fácil imaginar um pen drive como uma equação simples:
conector USB + NAND flash = pen drive USB
Mas há uma peça importante faltando nessa equação.
O controlador.
O controlador USB fica entre o computador host e a memória NAND flash. Entre suas funções está traduzir o que o host solicita para aquilo que realmente acontece dentro do armazenamento flash.
O controlador também participa da definição de como o dispositivo se identifica, como o armazenamento é exposto, quais características são informadas e como o dispositivo responde aos comandos enviados pelo host.
Isso significa que dois dispositivos USB contendo NAND flash semelhantes podem se comportar de maneiras muito diferentes quando conectados exatamente ao mesmo computador.
Um deles pode se apresentar como armazenamento removível convencional.
Outro pode ser configurado para apresentar comportamento semelhante ao de um disco fixo.
Outra implementação pode expor uma unidade lógica de CD-ROM.
E algumas arquiteturas de controlador podem fazer algo ainda mais interessante: expor vários dispositivos lógicos de armazenamento através de uma única conexão USB física.
Um único conector USB pode levar a duas salas diferentes
Imagine conectar um único pen drive USB a um computador.
O computador descobre uma área do tipo CD-ROM contendo:
INSTALADOR
MANUAIS
DRIVERS
FERRAMENTAS DE RECUPERAÇÃO
Mas o mesmo dispositivo USB físico também fornece armazenamento convencional gravável contendo:
ARQUIVOS DE LOG
RELATÓRIOS
ARQUIVOS DE CONFIGURAÇÃO
DADOS DO USUÁRIO
Ainda existe apenas um conector USB e um único dispositivo físico na sua mão.
Logicamente, porém, o computador recebeu dois ambientes de armazenamento diferentes, projetados para duas tarefas diferentes.
A parte de CD-ROM pode conter o material original publicado pelo fabricante, enquanto a parte gravável continua disponível para informações geradas durante o uso em campo.
Um técnico poderia carregar um único dispositivo contendo o software original de diagnóstico e a documentação de serviço, ao mesmo tempo em que utiliza outra área do mesmo dispositivo para armazenar resultados de testes, logs de equipamentos ou arquivos de configuração específicos de cada cliente.
A diferença aqui é importante.
Isso não é simplesmente a mesma coisa que dividir um pen drive USB comum em duas partições.
As partições dividem a capacidade de um dispositivo de armazenamento semelhante a um disco. As duas partições ainda fazem parte do mesmo tipo básico de ambiente de armazenamento.
Um controlador USB pode, em vez disso, expor várias unidades lógicas, às vezes chamadas de LUNs, permitindo que um único dispositivo físico apresente ao host personalidades de armazenamento claramente diferentes. Como a versão portuguesa ainda não possui o artigo específico sobre LUNs e partições, a correspondência mais próxima disponível é nossa explicação sobre por que a arquitetura e o comportamento interno de dispositivos USB podem ser muito mais complexos do que parecem externamente.
A emulação de CD-ROM pode, portanto, mudar o comportamento e a identidade do dispositivo lógico de armazenamento apresentado ao host, em vez de simplesmente dividir a capacidade disponível.
É a diferença entre dividir uma sala com uma parede e criar duas salas destinadas a realizar trabalhos completamente diferentes.
Também existe uma vantagem na distribuição de conteúdo
Os CD-ROMs tinham outra característica útil na qual a maioria de nós parou de pensar porque era simplesmente assim que a mídia óptica funcionava.
O publicador controlava o conteúdo original.
Vinte anos atrás, você comprava um software em CD-ROM e o instalava no computador. Instalar o software não modificava o CD.
Você não podia arrastar acidentalmente suas fotos de férias para o diretório de instalação no disco. Um funcionário não podia simplesmente apagar metade do instalador. E alguém não podia decidir que precisava de mais 300 MB de espaço e apagar a documentação.
A mídia era, na prática, um objeto publicado e definido.
Os pen drives USB melhoraram os discos ópticos em quase todos os aspectos práticos. São menores, mais rápidos, mais fáceis de transportar e possuem uma capacidade de armazenamento enormemente maior.
Mas o armazenamento USB convencional e gravável também tornou menos clara a separação entre a pessoa que publica o conteúdo e a pessoa que o utiliza.
Para documentação, distribuição de software, ferramentas de serviço, material de treinamento, utilitários de recuperação e outros conteúdos controlados, às vezes essa separação é bastante útil.
Uma área lógica do tipo CD-ROM pode fornecer um local para conteúdos que devem permanecer em seu estado original de distribuição, enquanto outra parte do armazenamento no dispositivo pode ser utilizada para informações que realmente precisam mudar.
Isso não é a mesma coisa que segurança
Existe um limite importante que precisa ficar claro.
A emulação de CD-ROM não deve ser automaticamente descrita como um sistema completo de segurança.
Fazer o armazenamento se comportar como mídia óptica não substitui assinaturas criptográficas, mecanismos de inicialização segura, criptografia, autenticação ou outras tecnologias projetadas para determinar se software ou dados são confiáveis.
Essas tecnologias resolvem problemas diferentes.
O valor da emulação de CD-ROM está principalmente em comportamento do dispositivo, compatibilidade, distribuição controlada e preservação do conteúdo publicado.
Em algumas aplicações, impedir modificações normais é extremamente útil. Mas “difícil para o usuário modificar” e “comprovadamente autêntico por criptografia” não são a mesma coisa.
Entender essa diferença é importante, especialmente quando esses dispositivos são usados em ambientes industriais ou especializados.
Às vezes você não quer que um pen drive se comporte como um pen drive
O desaparecimento das unidades físicas de CD-ROM não significa necessariamente que todas as características úteis do armazenamento óptico desapareceram junto com elas.
Às vezes um computador mais antigo espera uma mídia óptica.
Às vezes um software especializado foi desenvolvido em torno dela.
Às vezes é muito mais fácil se adaptar a um sistema embarcado do que modificá-lo.
Às vezes um fabricante quer manter a documentação original ou o software separados do armazenamento que o usuário deve poder alterar.
E às vezes a solução mais prática não é convencer um sistema antigo a entender algo novo.
É fazer algo novo se comportar como aquilo que o sistema antigo já entende.
Essa é uma das coisas interessantes sobre a tecnologia USB que ficam escondidas por trás da simplicidade de simplesmente conectar um pen drive.
O que você segura na mão pode conter memória NAND flash, mas a NAND sozinha não determina o que o computador vê.
O controlador também tem voz nessa conversa.
E, com o controlador e a configuração certos, um pen drive USB não precisa necessariamente se comportar como um pen drive.