Isso pode ser em vão, pois sei que escrever um sistema operacional é insuportavelmente complicado (especialmente para você mesmo).
Não espero construir o próximo linux ou windows.
Eu sei que vai ser horrível e cheio de erros e não vai funcionar, mas tudo bem.
Eu quero escrever tudo sozinho, em Assembly , C e (alguns) C ++ .
Este é um projeto futuro, já que estou ocupado com algumas outras coisas no momento e não tenho tempo imediatamente, mas achei que deveria perguntar agora, então talvez eu pudesse obter muitas respostas para isso, e poderia construir e ser um recurso útil para este tipo de abordagem (tudo o mais que vi envolveu a construção do minix, usando um gerenciador de inicialização existente, compilando-o em um programa de inicialização virtual, etc).
Quero configurar um dos meus desktops mais antigos com monitor, teclado e mouse e começar a trabalhar em um disco rígido vazio .
Quero aprender a escrever meu próprio bootloader (encontrei muitos recursos sobre isso, mas para completar, por favor, ainda adicione alguns bons), meu próprio driver USB (se for necessário), um driver de CD (se for necessário ), etc. Tudo, desde o início.
Como coloco o código no computador? É melhor fazer isso com um disquete? A maioria dos computadores pode fazer isso a partir de um stick USB?
De quais drivers eu preciso e você pode sugerir alguma referência para construí-los?
Após a sequência de inicialização - e depois? Como entro no modo protegido, etc.
Como faço para gerenciar a memória sem a ajuda de um sistema operacional? Devo usar os endereços que quiser? Nenhuma inicialização necessária?
O que, sem dúvida, vou encontrar que vai me confundir?
Como posso torná-lo um O / S de linha de comando e gráfico?
O que é um O / S gráfico integrado? Tipo, como eu faria algo como uma linha de comando, com uma fonte e uma imagem no topo?
Onde posso ler sobre como configurar um ambiente multitarefa? (ou seja, tendo duas linhas de comando semelhantes a gráficos rodando lado a lado).
Como eu configuraria uma espécie de sistema de janelas? Como faço para exibir gráficos na tela depois que a multitarefa simples estiver configurada?
Acredite em mim, entendo que este é um projeto muito complicado, e provavelmente nunca vou conseguir terminar de concluí-lo ou escrever algo nele que tenha alguma utilidade.
Há muitas outras partes que não mencionei, se você pensar em alguma, sinta-se à vontade para adicioná-las também.
Por favor, coloque um "tópico" por resposta - por exemplo, drivers USB e, em seguida, talvez uma lista de recursos, itens a serem observados, etc.
Além disso, não sugira construir a partir de outro O / S ou código pré-existente. Eu sei que vou ler muito código pré-existente (como o kernel do linux, ou recursos de exemplo, drivers existentes, etc.), mas no final das contas eu quero escrever tudo sozinho. Sei que devo partir de outra coisa, e há muitas outras perguntas sobre isso no SO que poderei ler se mudar de ideia e seguir por esse caminho. Mas este trata de fazer tudo do zero.
Alguma sugestão sobre como torná-lo gráfico? Diferentes modos de vídeo e como trabalhar com eles, etc?