Comunidade OSDevBrasil.net
Maio 22, 2012, 08:15:22 *
Bem-vindo, Visitante. Por favor faça o Login ou Registro.

Login com nome de usuário, senha e duração da sessão
Notícias: Anuncie a nossa comunidade a amigos, fóruns...
 
   Home   Ajuda Pesquisa Login Registrar  
Páginas: 1 [2]
  Imprimir  
Autor Tópico: Kernel de 64-bit  (Lida 764 vezes)
Mounter
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 432


mrjostz@hotmail.com
Ver Perfil WWW Email
« Responder #15 : Junho 14, 2011, 08:24:05 »

Se for do Bochs fica mais compatível como se fosse um driver sem necessidade de modo virtual, a qual vou ter que emular (modo virtual) em modo longo, pelo menos tem como fazermos um console usando biblioteca gráfica, que é um protótipo que o Gnomo andou mexendo a uns tempos atrás, vou ver se ele pode também mandar a versão dele.

Estou vendo se posso lançar de uma vez um kernel com várias alterações, e como sei que isso demora, qualquer interessado por como o projeto está indo é só me mandar uma mensagem pelo sistema de mensagens pessoais do fórum (MP).

Abraço
Registrado

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

zMad
OS Newbie
*

Karma: 1
Mensagens: 30


Ver Perfil Email
« Responder #16 : Junho 14, 2011, 11:44:59 »

Seria legal usar um sistema de controle de versão... um git-hub da vida seria legal...
Ah, nisto que eu estava pensando sobre o driver vesa, pois em modo longo não há o v86, então é preciso escrever um emulador certo?
Se for, vou ver se escrevo um pra i386, minha unica experiência real (de programa que funciona kkkk) é meu emulador de NES Contente, que aliás minha idéia é portar ele pro sombra, mas antes será preciso suporte a arquivos ;s e um sistema de modo usuário pra acessar o fb, mas portar mesmo é muito simples, portei ele do linux com sdl pra windows com mfc facilmente...

Sobre a biblioteca gráfica, a idéia do fb.c é justamente essa, eu iria implementar funções de desenho, mas só coloquei pra desenhar fontes e quadrados... mas na estrutura do driver fb tem o fb_ops, que seria uma função acelerada caso houvesse... e as do fb.c são os fallbacks em software...

-----------
Encontrei o problema do consolefb em modo usuário usando um log pela porta serial, porém não sei o que pode estar ocorrendo, sendo que eu mapeio o framebuffer inteiro e um pouco mais pra evitar isso porém...
Eu até mudei o local do fb nos bars e funciona, porém ele sempre dá page fault no mesmo...
Page fault! ( present read-only ) at 0xA0118000 on page dir 1C8000

O que é muito estranho, pois eu consigo fazer o clear screen sem problemas... deve ser alguma coisa que o sombra faz e altera a paginação, porém mesmo mudando os endereços sempre ocorre o mesmo erro...



« Última modificação: Junho 14, 2011, 02:19:03 por zMad » Registrado
Mounter
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 432


mrjostz@hotmail.com
Ver Perfil WWW Email
« Responder #17 : Junho 14, 2011, 04:19:14 »

Tenta adaptar isso aqui:

http://www.codon.org.uk/~mjg59/libx86/

Pelo que entendo a página está mapeada sem o bit de escrita, que flags você está usando?
Registrado

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

Mounter
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 432


mrjostz@hotmail.com
Ver Perfil WWW Email
« Responder #18 : Junho 14, 2011, 08:58:17 »

Estou vendo o Git Hub, vou fazer uns teste e mais tarde libero um repositório, então vou sempre fazer commits lá.

Abraço
 Mounter
Registrado

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

zMad
OS Newbie
*

Karma: 1
Mensagens: 30


Ver Perfil Email
« Responder #19 : Junho 15, 2011, 02:12:44 »

Por hora, o problema do fb em modo userland é que o fb não era mapeado naquele aspace, com um hack a cada novo aspace ele mapeia o fb nele... e funciona normalmente...
Porém, sempre pensei que quando se executa uma interrupção o sistema automaticamente usasse o diretorio do kernel...

« Última modificação: Junho 15, 2011, 02:25:35 por zMad » Registrado
Mounter
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 432


mrjostz@hotmail.com
Ver Perfil WWW Email
« Responder #20 : Junho 15, 2011, 10:51:44 »

As páginas abaixo dos 1GB são do kernel, e estão disponíveis a todos os processos, ai sugiro que você possa usar elas... Mas com o tempo essas páginas ficarão acima dos 3GB, pois pretendo manter desse modo para não haver problemas com aplicativos em diferentes plataformas da arquitetura Intel.

Como os processos em X86 usam tanto paginação como alinhamento por GDT, então não há como acessar as páginas abaixo dos 1GB. Na verdade há, se você estiver com um processo com 4MB de inicio, abaixo dele você pode acessar paginas do kernel, mas somente se disponível a modo usuário. A GDT usa um endereço base que é somado ao endereço virtual pelo processador (base+addr) com isso um endereço "negativo" - nos processadores eles são unsigned, mas existe o efeito de número negativos - então podemos acessar endereços disponíveis no endereçamento do kernel, mas eles devem ter o bit para processos de usuário ativo. Veja a formula que pode ser usada:

gdt_virt_addr = 0x400000; // Endereço virtual provido pela GDT (4MB)
paging_virt_addr = 0x40000000; // Endereço disponível pela paginação (1GB)
gvirt_to_pvirt = paging_virt_addr - gdt_virt_addr;

Com isso você pode acessar qualquer endereço, já que ele entrará na GDT, se você por exemplo quiser acessar os 1MB iniciais do kernel poderá fazer desse modo: char c = *(char*)(0x100000 - gvirt_to_pvirt);
Registrado

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

Windowstec
OS Jr. Member
**

Karma: 1
Mensagens: 65


Estudante

gilmendes_999@hotmail.com
Ver Perfil WWW Email
« Responder #21 : Julho 12, 2011, 02:31:21 »

Mounter, falta muito para disponibilizar a versão de 64bit do sombra?
Se não for abuso da minha parte, onde é que arranjou esse conhecimento todo?
Eu bem que gostava de saber programar assim em baixo nível, o meu sonho é fazer um SO mas por agora está muito distante devido ao meu conhecimento, vá não me posso queixar já sei programar em diversas linguagens ( alto nível ), mas o que eu queria era mesmo isto Triste

Cumprimentos,
Gil Mendes (Windowstec)

----> A espera do sombra em x64
Registrado

Windowstec OS - O link no google Code foi cancelado brevemente em domínio próprio.
Windowstec - www.windowstec.netne.net
Páginas: 1 [2]
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines XHTML 1.0 Válido! CSS Válido!