Como fazer um sistema operacional de computador (com fotos)

Índice:

Como fazer um sistema operacional de computador (com fotos)
Como fazer um sistema operacional de computador (com fotos)

Vídeo: Como fazer um sistema operacional de computador (com fotos)

Vídeo: Como fazer um sistema operacional de computador (com fotos)
Vídeo: Como fazer downgrade ( Voltar ) do windows 8.1 para o 7 - Sem perder arquivos 2024, Novembro
Anonim

O sistema operacional permite que o usuário interaja com o hardware do computador. O sistema é composto por centenas de milhares de linhas de código. Normalmente, o sistema operacional é feito usando as linguagens de programação C #, C, C ++ e assembly. O sistema operacional permite que você navegue em seu computador enquanto salva e executa comandos. Não pense que criar um sistema operacional é fácil. É preciso muito conhecimento para fazer isso.

Etapa

Etapa 1 do sistema operacional de um computador
Etapa 1 do sistema operacional de um computador

Etapa 1. Em primeiro lugar, aprenda sobre programação

A linguagem assembly é muito importante; é altamente recomendável que você aprenda outra linguagem complementar de alto nível, como a linguagem C.

Etapa 2 do sistema operacional de um computador
Etapa 2 do sistema operacional de um computador

Etapa 2. Decida qual mídia você deseja usar para carregar o sistema operacional

Essa mídia pode ser uma unidade de CD, DVD, unidade flash, disco rígido, disquete ou outro PC.

Etapa 3 para fazer um sistema operacional de computador
Etapa 3 para fazer um sistema operacional de computador

Etapa 3. Defina a ideia central de um SO

Por exemplo, no Windows, a ideia central é uma GUI fácil de usar e muita segurança.

Etapa 4 do sistema operacional de um computador
Etapa 4 do sistema operacional de um computador

Etapa 4. Determine a plataforma de processador que seu sistema operacional oferecerá suporte

IA-32, ARM e x86_64 são as plataformas mais comuns para computadores pessoais. Então, todos eles são sua melhor escolha.

Etapa 5 do sistema operacional de um computador
Etapa 5 do sistema operacional de um computador

Etapa 5. Decida se você prefere fazer tudo sozinho do zero ou se já existe um kernel disponível que você gostaria de construir

Por exemplo, o Linux do zero é um projeto para pessoas que desejam construir sua própria distribuição Linux.

Etapa 6 para fazer um sistema operacional de computador
Etapa 6 para fazer um sistema operacional de computador

Etapa 6. Decida se você usará seu próprio gerenciador de inicialização ou um pré-construído, como o Grand Unified Bootloader (GRUB)

Codificar o bootloader por conta própria exigirá amplo conhecimento de hardware e BIOS. Como resultado, esta etapa pode atrapalhar a programação real do kernel.

Etapa 7 para fazer um sistema operacional de computador
Etapa 7 para fazer um sistema operacional de computador

Etapa 7. Decida qual linguagem de programação usar

É bom ter um sistema operacional em uma linguagem como Pascal ou BASIC, mas você deve usar C ou Assembly. A montagem é muito necessária, porque algumas partes importantes de um sistema operacional exigem isso. Por outro lado, a linguagem C ++ contém palavras-chave que requerem outro SO completo para serem executados.

Para compilar um sistema operacional a partir do código C ou C ++, é claro que você usará um ou outro compilador. Portanto, é aconselhável consultar o guia do usuário / manual / documentação do compilador C / C ++ de sua escolha, incluído no software ou disponível no site do distribuidor. Você precisa saber muitas coisas complicadas sobre o compilador e, para o desenvolvimento C ++, você precisa saber sobre o esquema de manipulação do compilador e sua ABI. Espera-se que você compreenda os vários formatos executáveis (ELF, PE, COFF, binário básico, etc.) e compreenda que o formato exclusivo do Windows, PE (.exe), é protegido por direitos autorais

Etapa 8 para fazer um sistema operacional de computador
Etapa 8 para fazer um sistema operacional de computador

Etapa 8. Defina sua interface de programação de aplicativo (API)

Uma boa API para escolher é POSIX, pois está bem documentada. Todos os sistemas Unix têm suporte pelo menos parcial para POSIX. Portanto, conectar programas Unix ao seu sistema operacional deve ser fácil.

Etapa 9 para fazer um sistema operacional de computador
Etapa 9 para fazer um sistema operacional de computador

Etapa 9. Decida seu projeto

Existe um kernel monolítico e um micro kernel. Kernels monolíticos implementam todos os serviços do kernel, enquanto os micro kernels têm pequenos kernels agrupados com serviços de implantação de daemon de usuário. Em geral, os kernels monolíticos são mais rápidos, mas os microkernels têm melhor isolamento de falhas e confiabilidade.

Etapa 10 do Sistema Operacional de um Computador
Etapa 10 do Sistema Operacional de um Computador

Etapa 10. Considere desenvolver e trabalhar em equipe

Dessa forma, leva menos tempo para resolver mais problemas, o que provavelmente irá acelerar a construção de um sistema operacional melhor.

Etapa 11 para fazer um sistema operacional de computador
Etapa 11 para fazer um sistema operacional de computador

Etapa 11. Não limpe o disco rígido completamente

Lembre-se de que excluir uma unidade apagará todos os dados nela de forma irreversível! Use o GRUB ou outro gerenciador de boot para inicializar duas vezes seu sistema com outro SO até que ele esteja totalmente funcional.

Etapa 12 para fazer um sistema operacional de computador
Etapa 12 para fazer um sistema operacional de computador

Etapa 12. Comece pequeno

Comece com coisas pequenas como exibir texto e pausar antes de passar para coisas como gerenciamento de memória e trabalho composto. Além disso, certifique-se de fazer as versões de 32 e 64 bits.

Etapa 13 para fazer um sistema operacional de computador
Etapa 13 para fazer um sistema operacional de computador

Etapa 13. Mantenha um backup do último código-fonte de trabalho

Esta etapa é útil como uma proteção caso algo dê errado com a versão atual do SO ou desenvolvimento. Se o seu computador travar e não inicializar, é uma boa ideia ter uma segunda cópia para trabalhar para que você possa corrigir o problema.

Etapa 14 para fazer um sistema operacional de computador
Etapa 14 para fazer um sistema operacional de computador

Etapa 14. Considere testar seu novo sistema operacional com uma máquina virtual

Em vez de reiniciar o computador sempre que fizer alterações ou depois de enviar arquivos do computador de desenvolvimento para a máquina de teste, você pode usar um aplicativo de máquina virtual para executar o sistema operacional enquanto o sistema operacional atual está em execução. Os aplicativos VM atuais incluem: VMWare (que também tem um produto de servidor disponível gratuitamente), alternativas de código aberto, Bochs, Microsoft Virtual PC (não compatível com Linux) e Oracle VirtualBox.

Etapa 15 para fazer um sistema operacional de computador
Etapa 15 para fazer um sistema operacional de computador

Etapa 15. Inicie o "candidato a lançamento" ou a versão Beta

Esta etapa permitirá que o usuário o notifique sobre possíveis problemas com o sistema operacional.

Etapa 16 para fazer um sistema operacional de computador
Etapa 16 para fazer um sistema operacional de computador

Etapa 16. O sistema operacional também deve ser amigável

Certifique-se de adicionar recursos amigáveis ao usuário, torne-os parte integrante do seu projeto.

Pontas

  • Verifique se há bloqueios em potencial e outros bugs. Bugs, deadlocks e outros problemas afetarão seu projeto de construção do sistema operacional.
  • Certifique-se de implementar os recursos de segurança como prioridade máxima se quiser que o sistema funcione corretamente.
  • Use sites como OSDev e OSDever para ajudá-lo a desenvolver seu próprio sistema operacional. Por favor, note que para a maioria dos propósitos, a comunidade OSDev.org ficará mais do que feliz se você usar o wiki deles, e não entrar no fórum. Se você decidir participar de um fórum, há uma pré-condição: você precisa realmente saber sobre C ou C ++ e a linguagem assembly x86. Você também deve compreender conceitos gerais e complexos de programação, como listas vinculadas, filas, etc. A comunidade OSDev, em seus regulamentos, afirma explicitamente que sua comunidade não foi criada para alimentar novos programadores.
  • Não entre com o fórum OSDev.org e, em seguida, faça a pergunta óbvia. Você só precisará ler o guia. Leia a Wikipedia e as instruções para qualquer equipamento que você deseja usar.
  • Se você está tentando desenvolver um sistema operacional, definitivamente é considerado o "deus" da programação.
  • Você também deve ter lido o manual do processador para a arquitetura de processador que você selecionou; se x86 (Intel), ARM, MIPS, PPC, etc. Manuais para arquiteturas de processador são fáceis de encontrar usando uma pesquisa no Google ("manual Intel", "manual ARM", etc.).
  • Quando todo o trabalho de desenvolvimento estiver concluído, decida se deseja liberar o código como código aberto ou por copyright.
  • Não comece um projeto de sistema operacional para começar a aprender programação. Se você não conhece por dentro e por fora sobre C, C ++, Pascal ou alguma outra linguagem adequada, incluindo manipulação de ponteiro, manipulação de bits de baixo nível, deslocamento de bits, linguagens assembly inline, etc., você não está pronto para o sistema operacional desenvolvimento.
  • Criar uma partição inteiramente nova para 'expandir' o SO pode ser uma boa opção.
  • Se você quiser uma maneira fácil, considere distribuições Linux como Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD ou SUSE Studio e SUSE KIWI. No entanto, o sistema operacional que você criou pertence à empresa que iniciou o serviço primeiro (embora você tenha o direito de distribuí-lo livremente, modificá-lo e executá-lo como desejar sob a GPL).

Aviso

  • Você não terá um sistema operacional completo em duas semanas. Comece com um SO inicializável e, em seguida, passe para coisas mais legais.
  • Escrever descuidadamente o seu sistema operacional em um disco rígido pode danificá-lo completamente. Tome cuidado.
  • Se você fizer algo que não é recomendado, como gravar bytes aleatórios em portas de E / S aleatórias, você travará seu sistema operacional e (em teoria) poderá queimar seu hardware.
  • Não espere que o sistema operacional seja fácil de construir. Existem muitas interdependências complicadas. Por exemplo, para criar um sistema operacional capaz de lidar com vários processadores, o Memory Manager deve ter um mecanismo de "bloqueio" para evitar que vários processadores acessem o mesmo recurso ao mesmo tempo. O "bloqueio" usado para isso requer um planejador para garantir que apenas um processador acesse recursos críticos em um determinado momento e todos os outros tenham que esperar. Na verdade, o agendador depende da presença do Gerenciador de Memória. Este é um exemplo de dependência de beco sem saída. Não existe uma maneira padrão de resolver esse tipo de problema; espera-se que todo programador de sistema operacional seja hábil o suficiente para saber sua própria maneira de lidar com isso.

Recursos adicionais

  • Diretrizes: Linux From Scratch
  • Bootloader: GRUB
  • Aplicativos de máquina virtual: Bochs, VM Ware, XM Virtual Box.
  • Manual do processador: manual Intel
  • Sites de desenvolvimento de SO: OSDev, OSDever

Recomendado: