Pergunta

Qual é uma maneira de criar um meu próprio sistema operacional usando C ++. Fui criado com o carregador de inicialização (usando NASM, QEMU), mas não tenho conhecimento para adicionar um kernel a este carregador de inicialização.

Nenhuma solução correta

Outras dicas

Aqui está um tonelada de informação Que você acabará por precisar, as temidas perguntas frequentes de programação do sistema operacional.

Tenha cuidado, o C ++ é bastante pesado para um kernel do sistema operacional.

  • Existem serviços como exceções que você terá que apoiar com uma biblioteca de tempo de execução.
  • Não parecerá C ++ até você adicionar uma pilha.
  • Os grãos são muito sensíveis a onde os objetos são alocados; O modelo de uma heap geralmente usado no C ++ não é realmente adequado.
  • O acoplamento APIs às estruturas de dados é uma má idéia. Beos teve problemas com isso. Você precisa ocultar o tamanho de suas estruturas internas dos usuários, e isso significa pular de aros (PIMPL, construtor privado, funções virtuais) quando as APIs são funções de membro.

Parece que você já está mais adiante do que a maioria, então continue fazendo perguntas e você provavelmente acabará em algum lugar legal! : vd

Também para acrescentar, Este livro por Tanenbaum, onde ele explica os detalhes da implementação do Minix.

Você pode considerar olhar para Minix que é um pequeno sistema operacional para sistemas x86. Foi originalmente projetado como um projeto de ensino e evoluiu para algo que se destina a ser útil no mundo real.

Não estou familiarizado com detalhes, mas pelo meu conhecimento Beos foi escrito em C ++. Fontes devem estar disponíveis Freeley, bem como a documentação.

Você pode dar uma olhada no código -fonte Minix 3. É um sistema operacional muito simples, criado com o objetivo de entender como o sistema operacional funciona.

Você também pode estudar todo o livro de Tanenbaum sobre OS. Eles estão todos muito completos e eu lembro que um livro tem a fonte completa de Minix anexado e comentado

Para um sistema operacional C ++, você pode querer olhar para Newos ou Unixlite.

Um sistema operacional utilizável pode ser desenvolvido no topo de L4, mesmo por um único aluno em um semestre, juntamente com outros cursos (mas com todos os problemas de motorista já resolvidos). Se achou que essa é uma grande aventura, e o microkernel L4 também é meio avançado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top