arabasso
(usa Slackware)
Enviado em 26/07/2009 - 11:17h
m4iir1c10, escreva seu post em português ou inglês pra mim entender, ou ainda, hexadecimal. Esse monte de número e letra misturado é tosco no último, e isso não é coisa de programador, mas, já que vc insiste, traduzindo:
-> Tentando traduzir linguagem desconhecida...
"Cara, eu não sei por que, eu não consigo acreditar que vc escreveu pergunta a respeito de configuração de placa de som e vídeo, aí depois disse vem dizer que tem um projeto de criar um sistema operacional de um kernel que você escreveu
Vc não acha que é difícil de acreditar?
Eu acho que sim pq vc disse que o motivo de vc não configurar o seu sistema e falta de tempo, agora se vc me perguntar oq eu escrevi aqui ai e que eu não acredito mesmo."
Primeiro de tudo, uma coisa não tem nada a ver com a outra. Eu perguntei se ***tem um jeito fácil*** de configurar som e vídeo no Ubuntu Jaunty. Eu é que não vou PEDER TEMPO ME ADENTRANDO EM CÓDGIO QUE nem sei quem fez. E ainda, vc já tentou estudar o código do Linux ou drivers? É totalmente desestruturado e nem comentário tem, não sei como a galera ainda consegue dar manutenção no kernel. Só se o código que eles liberam não é o mesmo que eles programam, já pensei nisso, vai que eles tem um shell script que tira comentário e deixa o código meio desestruturado? Sei lá se isso procede, mas...
Se vc quiser, me passa seu email e eu te mando um beta do q estou fazendo nesse exato momento. Apesar que não dá pra fazer muita coisa ainda, mas ele dá boot, seta a GDT e IDT, ativa paginação e tem um método simples de alocar e desalocar memória usando o HEAP do kernel. Tá meio difícil de implementar comunicação interprocesso e carga de módulos extras do kernel (eu não tô conseguindo ainda gerar objetos relocatable no GCC).
Pra testar, eu criei um HD virtual de 100MB, um disquetes virtual de 1.44MB. Pra carregar o kernel, eu ainda tô usando o GRUB, mas a minha intenção não é ficar com ele muito tempo. Já desenvolvi um carregador de boot em C++ (apesar que pretendo portar pra C) de 2 estágios, o primeiro, tem 512 bytes de tamanho e fica gravado no setor de boot de disquetes. O primeiro carrega o segundo estágio, que pode ter até 64 KB de tamanho. Esse segundo seta o gate A20, entra em modo protegido de 32 bits (ainda), gerencia **basicamente** memória, e carrega o kernel para o endereço 0x100000. A partir daí, ele "passa a bola" pro kernel que faz oq já citei.
Não recrimino vc, é DURO DE ACREDITAR mesmo. Mas eu provo, se vc quiser, eu posso te passar o source pra vc dar uma olhada, e quem sabe ajudar. O unico problema é que eu tô tirando algumas coisas e colocando outras, e vou vendo no q dá pra melhorar algumas coisas. Com isso, o projeto (pelo menos por enquanto) tá em constante alteração, tanto na parte de layout qto na parte de estrutura de pastas e código.
Veja isso:
http://www.vivaolinux.com.br/album/viewPic.php?foto=gaia-os.jpg