Skip to content

rscampos/OS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OS

My personal project - Operation System development.

TODO

  • Problema no carregamento da imagem do kernel. Se for muito grande o tamanho do kernel, da problema. Corrigido: 27/09/15: Image carregada no endereço 0x3000. Commit: [402033ca9daaf47093d13d2df854847f8c44036f].
  • Problema na função fdctrl_init_dma(). Corrigido: 21/09/15: A20 resolveu o problema Commit: [397bd43de8a92ec94803fcc2d181192660184b81].
  • Problema no mecanismo de paginação. Corrigido: 21/09/15: A20 estava desabilitado - A20 foi habilitado. Commit: [397bd43de8a92ec94803fcc2d181192660184b81].
  • Arrumar parte floopy - carregar tudo primeiro e depois acessar. Corrigido 30/09/15: problema conversão lba->chs Commit: [ae3bcbc3fc6ebbdb05fe4d5c0617d5f3f6249f70].
  • Problema ao alocar 4MB, ao tentar alocar PT#193, ocorre um problema na alocação uma vez que não tem mais páginas disponíveis.
  • Fazer scroll.
  • Filesystem (reservar um tempo para focar apenas no FS - ler Tanenbaum):
    • Obtém próximo cluster. Feito: 05/08/15. Commit: [b45cae3a54b92f44fdc8227372a88fc8a5f3fc92].
    • READ: lendo 512 bytes, o necessário para subir um programa para ser executado em ring3.
    • open_vfs: URGENTE: precisa de fix. Criar arquivo 'PROG3' por exemplo no /. **Feito:**18/01/16.
    • READ: ler vários sectores ao mesmo tempo, quando passado >512 Bytes.
    • WRITE: Implementar.
    • OPEN/CLOSE - verificar o esquema utilizado para saber se o arquivo esta open/close, se foi modificado para ser salvo.
    • Suporte para multiplos cluster.
    • Não subir tudo para a memória. Subir apenas cabeçalhos e não conteúdos.
    • show_tree esta com problema na listagem de uma diretório que esta entre dois arquivos.
  • User-space/Multitask:
    • 1) To ring3 e 'soft interrupt'. Feito: 04/11/15.
    • 2) Por código acima de 0x0804A000. Feito: 12/11/15.
    • 3) Obter os bytes de um executável e jogá-lo na memória. Feito: 12/11/15.
    • 4) Tentar clonar a PD (para que o kernel sempre fique no mesmo lugar). Feito:17/11/15. Commit: [45f3c209dfeb8d844bcd299cc75613c90f5cb4ef].
    • 5) Criar uma BCP com PD e fazer escalonamento a cada int 0x80. Feito: 19/11/15. Commit: [0377a407ea773143ff3eed07007ba1c9307ab59c].
    • 6) Fazer task switch via int 0x80 (chamado 'cooperative scheduling').
    • 7) Arrumar o scheduler (salvar registers).
    • 8) Arrumar problema IMG QEMU.
    • 9) Fazer interface correta de syscall (usando syscall table). - Criar outras syscall.
    • 10) Arrumar o PIT e fazer 'preemptive scheduling'.
  • Arrumar o problema com o bochs - problema no floppy DMA mode. Estudar FDC e DMA primeiro.
  • Getting forward:
    • Comunicação com periféricos - Mundo PCI.
    • Conhecer outras estruturas (LDT) e registradores (MSR).