Como devo começar a escrever drivers de dispositivo? [fechado]

Eu gostaria de aprender a escrever drivers de dispositivo porque acho que seria divertido. Eu uso um Mac OS X Macbook, mas eu também tenho uma máquina Ubuntu (rodando em um Mac Min). Estou bastante familiarizado com C e atualmente estou lendo este livro. Eu encontrei alguns links online como Mac Dev Center . Estou a fazer isto porque seria divertido. Acho que seria gratificante ver o hardware funcionar por causa do software que escrevi.

Acho que o que eu gostaria era algumas dicas ou conselhos e orientação, e alguém sabe de uma lista de dispositivos que não têm drivers ou Posso escrever um driver para algo que já é suportado (preferiria o primeiro então eu estou realmente fornecendo valor). Qual é um bom dispositivo para começar? Estou a morder mais do que posso mastigar? Não tenho medo de programação de baixo nível ou montagem ou qualquer que seja a quantidade de esforço necessário. Gostava mesmo de um desafio!

Author: Bjorn Tipling, 2010-02-08

4 answers

Para o Linux, poderá procurar apanhar os controladores de dispositivos O'Reilly para o Linux livro ou leitura PDFs 'online'. Na minha opinião, é um dos melhores textos sobre o assunto.

O Linux Kernel Module Programming Guide é outro bom recurso.

Você também pode querer pegar um livro especificamente no Kernel Linux. Eu peguei uma cópia do desenvolvimento do Kernel Linux (2nd Edition) de Robert Love para este fim ( 3rd Edição a caminho).

 31
Author: jschmier, 2010-02-16 04:25:40
Escrever um controlador de dispositivo pode ser muito simples, ou pode ser quase arbitrariamente complicado. Por exemplo, estive envolvido num projecto em que foram precisos seis de nós quase três anos para resolver um erro num controlador de dispositivo. Claro, limpámos dezenas de outros insectos enquanto o procurávamos... o código melhorou imensamente. O arranjo acabou por ser um remendo de oito linhas, que custou, conservativamente, cerca de um milhão de dólares. Mas, como projecto paralelo, escrevi uma ethernet. driver da ficha de dados do chip em uma semana, e levou mais uma semana para depurá-lo. Não precisava de lhe tocar desde então. Não há maneira de dizer, em geral, quanto trabalho um motorista será; um motorista da GPU pode custar centenas de milhões, um motorista por um único LED custa um par de horas de trabalho no máximo.
 21
Author: Andrew McGregor, 2010-02-08 22:01:49

Se quiser ir para o desenvolvimento do controlador de dispositivos Linux, os controladores de dispositivos do O'Reilly disponíveis gratuitamente , A Terceira Edição é uma leitura obrigatória.

Para encontrar peças de 'hardware' não suportadas para as quais possa escrever um controlador, pergunte nas listas de correio do Linux. Talvez um dispositivo USB 3.0? ;)

 4
Author: AndiDog, 2010-02-08 15:58:14

Para o Mac é melhor dar uma vista de olhos ao livro interno do Mac OS X . É pensar e pesado, mas divertido de ler. É principalmente sobre Macs baseados em PowerPC, mas tem um apêndice sobre Intel-based ones. Para o Linux dê uma olhada em Drivers de dispositivos Linux, 3rd Edition - é mais leve (PDFs livre online:) e é realmente orientado para o driver do dispositivo, pode ser um melhor começo.

 2
Author: Nikolai Fetissov, 2010-02-08 16:07:53