Considerações sobre desenvolvimento de novo hardware

Tenho topado com algumas pessoas que querem “desenvolver” seus próprios microcomputadores usando processadores como o 486, por exemplo. Para vocês deixo aqui algumas considerações…

No final dos anos 60 até os anos 90 a indústria de microcomputadores não tinha lá muitos padrões estabelecidos. De lá para cá muitas tentativas foram feitas, muitos padrões criados, e hoje temos um monstrengo chamado genericamente de PC, derivado da especificação pública da IBM do IBM PC-AT. Existem tantas variações que desenvolver um sistema operacional, por exemplo, é algo quase impraticável para o desenvolvedor individual… Nessa época surgiram algumas arquiteturas muito interessantes que acabaram morrendo na praia. O computador AMIGA, da Comodore, é um exemplo clássico: Era um micro fantástico, usava um processador que, inclusive, já estava em uso em minicomputadores, o 68000 da Motorola, que já implementava paginação, proteção, multitarefa etc… Do meu ponto de vista, se a IBM tivesse usado o MC68000 no PC, logo de cara, teríamos, em nossas mesas e notebooks, um sistema excepcional.

Infelizmente, a arquitetura Intel prevaleceu… Do ponto de vista do desenvolvedor de hardware essa arquitetura é um pesadelo, especialmente se, como acontece na maioria das vezes, fizermos um copy-and-paste das especificações determinadas pela IBM… Por exemplo: Pra quê restringir o sistema ao uso de 14 interrupções de hardware (IRQ0 até IRQ15, onde IRQ2 é cascateada) se podemos ter 16 usando um I/O APIC? Ou 32, ou 64? Pra quê associarmos uma IRQ0 a um timer quando o PIT pode nos dar mais recursos de timming? Pra quê particionar a memória de maneira tão maluca se podemos linearizá-la? Pra quê inicializar o sistema em modo real, deixando a cargo do sistema operacional “pular” para o modo protegido? Por que diabos usar o artifício da interrupções por software (instrução INT) para efetuar syscalls quando um call gate é mais eficaz? E por ai vai…

Minha dica é: Não se atenham as especificações estabelecidas… Crie sua própria máquina, com o seus próprios chipsets (que podem [e acho que devem!], até mesmo, não ser os da Intel!)… Vejam o exemplo de maquininhas como o Raspberry PI… Até o inicio deste século o processador ARM estava restrito a aplicações como telefones celulares e Pocket PCs. Alguém percebeu que este processador teria um tremendo potencial e começou a usá-lo para experimentos, especialmente em cursos de engenharia computacional nas universidades… Eis que temos smart phones e plaquinhas de aplicação como o Raspberry e Arduino disponíveis, hoje, à preço de banana…

Estudem processadores (antigos e novos), estudem chipsets, estudem eletrônica. Depois de alguns anos, quem sabe, terão conhecimento suficiente para organizar um conjunto de componentes que “faz mais sentido” do que os padrões “de mercado” criados para os PCs… Deixem-me lembrá-los que mega corporações como a Apple e a HP surgiram, nos anos 70, na garagem de alguém que fez exatamente isso e criaram algo “novo”, diferente do que já existia…

Não digo que não valha a pena estudar os padrões atuais, mesmo porque isso te dará uma boa ideia de como o seu PC (desktop ou notebook) funciona, por dentro… Mas, basear um projeto individual em soluções pré concebidas, pelo que vejo, não é lá muito interessante… Se eu quiser um PC é fácil comprar um. Ademais, uma coisa que sinto falta, hoje, é daquela variedade de hardware dos anos 80 e 90… Quem sabe, com isso, não aparece, algum dia, uma alternativa mais interessante, mais inteligente, menos gambiarrada, do que o IBM PC? É claro: Dá um trabalhão! Mas, quem foi que disse que coisas boas não dão?

#ficaadica

Anúncios