Re: Escrever um driver
--- "Rodrigo F. Baroni" <[EMAIL PROTECTED]> escreveu: > > Ola' caro Fred, Olá! > [ 8< ] > Vai fundo, e depois mande um link para o > trabalho > ;) Se tudo correr bem, mando sim ;) Mas não são muitas as chances de dar certo, já que falta pouco tempo e estamos abarrotados de provas e trabalhos de outras matérias. Mas com força de vontade e muito café-guaraná-coca-cola, talvez consigamos terminar heheh Obrigado pelas dicas! > > Um abraco! > > Rodrigo F Baroni >Computer Science Bach's Student >Sao Paulo, Brazil = Frederico "Ramirez" Marvila Ciência da Computação - UFMG e-SPEED - UFMG "Friends shouldn't help friends run Windows." - Joe Barr ___ Email certified Windows free by Debian Linux. ___ Busca Yahoo! O serviço de busca mais completo da Internet. O que você pensar o Yahoo! encontra. http://br.busca.yahoo.com/
Re: Escrever um driver
H, mas pra que gravador de eprom? As placas mães de uns tempos para cá não tem um gravador da bios embutido? Eu de vez em quando faço o update da bios do meu computador, creio que não seria muito dificil carregar esse linux-bios não, mas posso estar enganado :). Sds, Anderson -Original Message- From: "Frederico R. Marvila" <[EMAIL PROTECTED]> To: deb-user-pt Date: Mon, 10 Feb 2003 18:36:50 -0300 (ART) Subject: Re: Escrever um driver > --- Anderson da Silva araújo <[EMAIL PROTECTED]> > escreveu: > Sobre o boot, mais rapido li uma vez um > esquema de > > colocar o linux na > > bios da placa, com isso o boot, se dá em 4 ou 5 > > segundos senão me > > engano, dá uma catada no google sobre isto que deve > > achar mais sobre > > isto. > > Quando fomos começar o trabalho, nos foi indicado que > fossemos no site do Linux-BIOS (justamente sobre > colocar o linux na BIOS do PC). O problema é que não > temos grana pra comprar uma flash BIOS e nem é esse o > objetivo ;) O objetivo é fazer o boot do linux começar > mais rápido só mudando o kernel. E infelizmente não > achei muita documentação sobre o assunto. > > O maior problema é a data de entrega: 27/02/2003... > Vamos ter de passar MUITAS noites em claro ainda > hehehe > > De qualquer forma, obrigado! > > > > > Até mais, > > > > Anderson > > = > Frederico "Ramirez" Marvila > Ciência da Computação - UFMG > e-SPEED - UFMG > > "Friends shouldn't help friends run Windows." - Joe Barr > ___ > Email certified Windows free by Debian Linux. > > ___ > > Busca Yahoo! > O melhor lugar para encontrar tudo o que você procura na Internet > http://br.busca.yahoo.com/ > > > -- > To UNSUBSCRIBE, email to > [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact > [EMAIL PROTECTED] >
Re: Escrever um driver
Ola' caro Fred, --- "Frederico R. Marvila" <[EMAIL PROTECTED]> escreveu: > > Só aproveitando a discussão sobre o kernel, eu e 3 > colegas estamos penando para conseguir fazer um > kernel > que dá boot mais rápido. Nós precisamos de > informações > de como o kernel inicia (desde vc ligar a máquina) e > como é o esquema de memória dele (ex: como acessar > memória diretamente, como as estruturas são e onde > estão, etc.). Infelizmente foram poucos os lugares > em > que encontramos as informações e, a maior parte do > kernel, não é comentada... > > Se alguém souber de algum lugar pra procurar, por > favor me falem ;) Ah, ia esquecendo, esse é um > trabalho da matéria sistemas operacionais. > A inicializacao do linux inicia-se pelos arquivos /usr/src/linux/arch/i386/kernel/{head.S setup.S}. Embora sejam uns dos mais dificeis arquivos, sugiro uma 'leitura' neles, pois sao eles os responsaveis pelo carregamento do kernel do dispositivo onde estao (hd, floppy,..) para a memoria, descompacta'-lo, setar os diretorios de paginas e tabelas de paginas da memoria virtual, definir os segmentos base que separam o espaco do usuario do espaco do kernel, e inicializar a execucao do kernel. Estao escritos em assembly. Uma fonte para o entendimento do gerenciamento de memoria de uma arquitetura IBM-PC, eh o volume 3 dos livros de documentacao da INTEL, o "System Programming Guide", encontrado no site da intel, em http://developer.intel.com/design/pentium4/manuals/245472.htm .. Eh um excelente livro gratuito para desenvolvedores de kernels, estudantes de ciencias/engenharias, e hackers; notei que ***muitas*** ilustracoes dele e comenta'rios sao utilizados em livros cla'ssicos dd computacao, de autorias de A. Tanenbaum, Silbershwatz ...Utilizei-o para alguns trabalhos tambe'm :) (de arquitetura de computadores, semestre passado :) ). Acho muito legal saber o que acontece la' embaixo, e o kernel eh uma fonte aberta de algoritmos beli'ssimos. Vai fundo, e depois mande um link para o trabalho ;) Um abraco! Rodrigo F Baroni Computer Science Bach's Student Sao Paulo, Brazil > > = > Frederico "Ramirez" Marvila > Ciência da Computação - UFMG > e-SPEED - UFMG > > "Friends shouldn't help friends run Windows." - Joe > Barr ___ Busca Yahoo! O serviço de busca mais completo da Internet. O que você pensar o Yahoo! encontra. http://br.busca.yahoo.com/
Re: Escrever um driver
--- Anderson da Silva araújo <[EMAIL PROTECTED]> escreveu: > Sobre o boot, mais rapido li uma vez um esquema de > colocar o linux na > bios da placa, com isso o boot, se dá em 4 ou 5 > segundos senão me > engano, dá uma catada no google sobre isto que deve > achar mais sobre > isto. Quando fomos começar o trabalho, nos foi indicado que fossemos no site do Linux-BIOS (justamente sobre colocar o linux na BIOS do PC). O problema é que não temos grana pra comprar uma flash BIOS e nem é esse o objetivo ;) O objetivo é fazer o boot do linux começar mais rápido só mudando o kernel. E infelizmente não achei muita documentação sobre o assunto. O maior problema é a data de entrega: 27/02/2003... Vamos ter de passar MUITAS noites em claro ainda hehehe De qualquer forma, obrigado! > > Até mais, > > Anderson = Frederico "Ramirez" Marvila Ciência da Computação - UFMG e-SPEED - UFMG "Friends shouldn't help friends run Windows." - Joe Barr ___ Email certified Windows free by Debian Linux. ___ Busca Yahoo! O melhor lugar para encontrar tudo o que você procura na Internet http://br.busca.yahoo.com/
Re: Escrever um driver
> > Alguém poderia me dizer (ainda que por alto) o que se leva em conta ao > escrever um driver? Ou seja, o que alguém precisa saber para escrever um > driver para GNU/Linux? Isso se aprende na faculdade ou dá pra aprender > "na marra"?. Esse cara precisaria de quais informações? > Um bom guia é o livro Linux Device Drivers (que pode ser lido online no site da O'Reilly) http://safari.oreilly.com/?XmlId=0-59600-008-1 []'s Gustavo
Re: Escrever um driver
Sobre o boot, mais rapido li uma vez um esquema de colocar o linux na bios da placa, com isso o boot, se dá em 4 ou 5 segundos senão me engano, dá uma catada no google sobre isto que deve achar mais sobre isto. Até mais, Anderson -Original Message- From: "Frederico R. Marvila" <[EMAIL PROTECTED]> To: deb-user-pt Date: Sun, 9 Feb 2003 20:34:25 -0300 (ART) Subject: Re: Escrever um driver > --- "Rodrigo F. Baroni" <[EMAIL PROTECTED]> > escreveu: > Ola' caro Wanderson, > > > > > > --- wanderson <[EMAIL PROTECTED]> escreveu: > > > Alo aos programadores (ou engenheiros de soft, sei > > > lá :) > > > > > > Alguém poderia me dizer (ainda que por alto) o que > > > se leva em conta ao > > > escrever um driver? Ou seja, o que alguém precisa > > > saber para escrever um > > > driver para GNU/Linux? Isso se aprende na > > faculdade > > > ou dá pra aprender > > > "na marra"?. Esse cara precisaria de quais > > > informações? > > Aqui vem um detalhe: vc não aprende quase nada na > faculdade (claro que o que aprende é suficiente para > aprender o resto sozinho. Eu gosto disso ;) > > Aprender computação é como aprender música. Uma vez > aprendido os conceitos, aprender uma linguagem, > aprender a programar kernel ou o que for é como alguém > que aprende música e está trocando de instrumento. É > só se adaptar. > > As informações foram dadas pelo Baroni ;) > > Só aproveitando a discussão sobre o kernel, eu e 3 > colegas estamos penando para conseguir fazer um kernel > que dá boot mais rápido. Nós precisamos de informações > de como o kernel inicia (desde vc ligar a máquina) e > como é o esquema de memória dele (ex: como acessar > memória diretamente, como as estruturas são e onde > estão, etc.). Infelizmente foram poucos os lugares em > que encontramos as informações e, a maior parte do > kernel, não é comentada... > > Se alguém souber de algum lugar pra procurar, por > favor me falem ;) Ah, ia esquecendo, esse é um > trabalho da matéria sistemas operacionais. > > P.S.: desculpe, Baroni pela msg enviada a vc... era > para ter ido para a lista toda... > > Até, > > = > Frederico "Ramirez" Marvila > Ciência da Computação - UFMG > e-SPEED - UFMG > > "Friends shouldn't help friends run Windows." - Joe Barr > ___ > Email certified Windows free by Debian Linux. > > ___ > > Busca Yahoo! > O melhor lugar para encontrar tudo o que você procura na Internet > http://br.busca.yahoo.com/ > > > -- > To UNSUBSCRIBE, email to > [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact > [EMAIL PROTECTED] >
Re: Escrever um driver
--- "Rodrigo F. Baroni" <[EMAIL PROTECTED]> escreveu: > Ola' caro Wanderson, > > > --- wanderson <[EMAIL PROTECTED]> escreveu: > > Alo aos programadores (ou engenheiros de soft, sei > > lá :) > > > > Alguém poderia me dizer (ainda que por alto) o que > > se leva em conta ao > > escrever um driver? Ou seja, o que alguém precisa > > saber para escrever um > > driver para GNU/Linux? Isso se aprende na > faculdade > > ou dá pra aprender > > "na marra"?. Esse cara precisaria de quais > > informações? Aqui vem um detalhe: vc não aprende quase nada na faculdade (claro que o que aprende é suficiente para aprender o resto sozinho. Eu gosto disso ;) Aprender computação é como aprender música. Uma vez aprendido os conceitos, aprender uma linguagem, aprender a programar kernel ou o que for é como alguém que aprende música e está trocando de instrumento. É só se adaptar. As informações foram dadas pelo Baroni ;) Só aproveitando a discussão sobre o kernel, eu e 3 colegas estamos penando para conseguir fazer um kernel que dá boot mais rápido. Nós precisamos de informações de como o kernel inicia (desde vc ligar a máquina) e como é o esquema de memória dele (ex: como acessar memória diretamente, como as estruturas são e onde estão, etc.). Infelizmente foram poucos os lugares em que encontramos as informações e, a maior parte do kernel, não é comentada... Se alguém souber de algum lugar pra procurar, por favor me falem ;) Ah, ia esquecendo, esse é um trabalho da matéria sistemas operacionais. P.S.: desculpe, Baroni pela msg enviada a vc... era para ter ido para a lista toda... Até, = Frederico "Ramirez" Marvila Ciência da Computação - UFMG e-SPEED - UFMG "Friends shouldn't help friends run Windows." - Joe Barr ___ Email certified Windows free by Debian Linux. ___ Busca Yahoo! O melhor lugar para encontrar tudo o que você procura na Internet http://br.busca.yahoo.com/
Re: Escrever um driver
me interessei no #kernelnewbies, qual 'e o server? []s Alan Costa > > Alguém poderia me dizer (ainda que por alto) o que se leva em conta ao > escrever um driver? Ou seja, o que alguém precisa saber para escrever um > driver para GNU/Linux? Isso se aprende na faculdade ou dá pra aprender > "na marra"?. Esse cara precisaria de quais informações? > Dá pra aprender "na marra". Basicamente, o cara tem que conhecer C. Não precisa manjar de assembly, embora isso ajude bastante. Tem que conhecer a fundo a arquitetura para qual está escrevendo o driver. Tem que ter o máximo de informações possíveis sobre a coisa. As vezes isso não é possível e é aí que entra os conhecimentos em assembly: vai ter que, por exemplo, entrar no Windows e fazer uma engenharia reversa no driver. Nada trivial, dá um [EMAIL PROTECTED]@#$ trabalho... dificilmente a coisa vai funcionar de primeira. Tem que ter muita paciência. Quando se tem o código do driver para outra plataforma é claro que o trabalho de fazer o driver é bem menor. Ah sim, as vezes é possível "escrever um novo driver" usando um "parecido" como base... Nunca escrevi um, já que kernel não é minha área... só sei que existem canais de IRC e páginas dedicadas a quem quer se aventurar nisso. Na FreeNode (antiga openprojects), tem o #kernelnewbies; eles tem uma página bem legal, com alguns tutoriais e códigos-exemplo. E, claro, gente disposta a ajudar... -- Leandro Pereira (oO) <[EMAIL PROTECTED]> www.mindcrisis.tk/||\ GPG key: 0x062E7976 "Estao sorrindo de que? Estao sorrindo de quem? Eu nao estou sorrindo! Meu nome e' Eneas, 56!" -- Eneas Carneiro -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] ___ Busca Yahoo! O serviço de busca mais completo da Internet. O que você pensar o Yahoo! encontra. http://br.busca.yahoo.com/
Re: Escrever um driver
Ola' caro Wanderson, --- wanderson <[EMAIL PROTECTED]> escreveu: > Alo aos programadores (ou engenheiros de soft, sei > lá :) > > Alguém poderia me dizer (ainda que por alto) o que > se leva em conta ao > escrever um driver? Ou seja, o que alguém precisa > saber para escrever um > driver para GNU/Linux? Isso se aprende na faculdade > ou dá pra aprender > "na marra"?. Esse cara precisaria de quais > informações? No linux/unixes, os drivers sao chamados de mo'dulos. Os mo'dulos sao co'digos objetos que inseridos no espaco do kernel oferecem controle `a um harwdware. No linux, modulos sao escritos em C . Nao eh necessario utilizar o assembly; ha' muitas funcoes e recursos do codigo do kernel que sao necessarios e utilizados para escrever os modulos - dai' que 90% eh tudo escrito em C, trabalhando **muito** com o codigo do kernel. Para tal entao, eh necessa'rio uma familiarizacao e dominio da linguagem C e um estudo de algumas partes do kernel do linux (eh necessario lidar com algumas "structs" do kernel para escrever um modulo, como "struct file" , "struct file operations" "ioctl.h" ,) A funcao de um modulo eh ler e escrever em portas de I/O, emitir comandos para o hardware, controlar o fluxo de dados entre o kernel e o espaco do usuario, e algumas outras coisas que envolvem te'cnicas de programacao como lidar com condicoes de disputa (race conditions), variaveis atomicas, codigos reentrantes (..). Tal conhecimento vc pode obter buscando por fontes do kernel, lendo documentacoes sobre o assunto (o bom do linux eh que ha' **muita** documentacao), e ter forca de vontade para ficar buscando correspondencias no kernel do linux e tendo paciencia e vontade de um programador (leia-se noites varadas em busca de uma compilacao sem erros :) e tudo rodando como esperado ). Ha' um livro muito bom sobre o assunto : "Linux Device Drivers (Alessandro Rubini, ed. Oreilly)", que recomendo fortemente aos interessados em compra'-lo. Ha' uma versao eletronica em http://www.xml.com/ldd/chapter/book/index.html (2nda edicao). Sou um fissurado por kernel e drivers, essa eh minha praia na computacao :) . > (Não seria legal se TUDO funcionasse under linux? > :-). Seria excelente. > > Wanderson > > "God saves Dennis Ritchie and Brian Kerninghan". Essa foi boa :) , concordo que devemos muito `a esses caras .. participaram da construcao do MULTICS, criaram o UNIX, reescreveram o unix 2 vezes em assembly, criaram o C, Rodrigo F Baroni Computer Science Bach's Student. [EMAIL PROTECTED] [EMAIL PROTECTED] ___ Busca Yahoo! O serviço de busca mais completo da Internet. O que você pensar o Yahoo! encontra. http://br.busca.yahoo.com/
Re: Escrever um driver
Câmbio de novo ! Corrigindo e complementando a minha informação anterior, até mesmo a segunda edição está liberada "on-line": http://safari.oreilly.com/?XmlId=0-59600-008-1 []'s, -- ../)._/.Jose Antonio Boyd Cardoso ./_)()\/(/..E-mail: [EMAIL PROTECTED] ../.Registred Linux user number # 137975 Em Sun, 9 Feb 2003 09:19:33 -0200 José Antonio Boyd Cardoso <[EMAIL PROTECTED]> escreveu: > Câmbio Wanderson ! > > Não é a minha praia, mas pelo que já li e ouvi, existe um "clássico" > sobre o assunto, é o "Linux Device Drivers" escrito pelo Alessandro > Rubini e publicado pela editora O'Reilly. > > Nesta reportagem em: > > http://www.revistadolinux.com.br/ed/022/assinantes/leitura.php3 > > Eles anunciam a segunda edição, fazem alguns comentários e dizem que a > O'Reilly disponibilizou a 1a edição on-line. Esta primeira edição já > estaria "desatualizada" mas não custa dar uma olhadinha ;-) > > http://safari.oreilly.com/?XmlId=1-56592-292-1 > > Como disse o colega Leandro, é bom conhecer C e Assembly... >
Re: Escrever um driver
Câmbio Wanderson ! Não é a minha praia, mas pelo que já li e ouvi, existe um "clássico" sobre o assunto, é o "Linux Device Drivers" escrito pelo Alessandro Rubini e publicado pela editora O'Reilly. Nesta reportagem em: http://www.revistadolinux.com.br/ed/022/assinantes/leitura.php3 Eles anunciam a segunda edição, fazem alguns comentários e dizem que a O'Reilly disponibilizou a 1a edição on-line. Esta primeira edição já estaria "desatualizada" mas não custa dar uma olhadinha ;-) http://safari.oreilly.com/?XmlId=1-56592-292-1 Como disse o colega Leandro, é bom conhecer C e Assembly... Espero ter ajudado, []'s, -- ../)._/.Jose Antonio Boyd Cardoso ./_)()\/(/..E-mail: [EMAIL PROTECTED] ../.Registred Linux user number # 137975 Em Sat, 08 Feb 2003 23:14:17 -0200 wanderson <[EMAIL PROTECTED]> escreveu: > Alo aos programadores (ou engenheiros de soft, sei lá :) > > Alguém poderia me dizer (ainda que por alto) o que se leva em conta ao > escrever um driver? Ou seja, o que alguém precisa saber para escrever > um driver para GNU/Linux? Isso se aprende na faculdade ou dá pra > aprender "na marra"?. Esse cara precisaria de quais informações? > (Não seria legal se TUDO funcionasse under linux? :-). > > Wanderson > > "God saves Dennis Ritchie and Brian Kerninghan".
Re: Escrever um driver
Quoted by a barrel of crazed hamsters For `wanderson <[EMAIL PROTECTED]>' On Saturday, 08 February 2003 (23:14): > > Alguém poderia me dizer (ainda que por alto) o que se leva em conta ao > escrever um driver? Ou seja, o que alguém precisa saber para escrever um > driver para GNU/Linux? Isso se aprende na faculdade ou dá pra aprender > "na marra"?. Esse cara precisaria de quais informações? > Dá pra aprender "na marra". Basicamente, o cara tem que conhecer C. Não precisa manjar de assembly, embora isso ajude bastante. Tem que conhecer a fundo a arquitetura para qual está escrevendo o driver. Tem que ter o máximo de informações possíveis sobre a coisa. As vezes isso não é possível e é aí que entra os conhecimentos em assembly: vai ter que, por exemplo, entrar no Windows e fazer uma engenharia reversa no driver. Nada trivial, dá um [EMAIL PROTECTED]@#$ trabalho... dificilmente a coisa vai funcionar de primeira. Tem que ter muita paciência. Quando se tem o código do driver para outra plataforma é claro que o trabalho de fazer o driver é bem menor. Ah sim, as vezes é possível "escrever um novo driver" usando um "parecido" como base... Nunca escrevi um, já que kernel não é minha área... só sei que existem canais de IRC e páginas dedicadas a quem quer se aventurar nisso. Na FreeNode (antiga openprojects), tem o #kernelnewbies; eles tem uma página bem legal, com alguns tutoriais e códigos-exemplo. E, claro, gente disposta a ajudar... -- Leandro Pereira (oO) <[EMAIL PROTECTED]> www.mindcrisis.tk/||\ GPG key: 0x062E7976 "Estao sorrindo de que? Estao sorrindo de quem? Eu nao estou sorrindo! Meu nome e' Eneas, 56!" -- Eneas Carneiro