Como fazer um sistema operacional de computador: 13 etapas (com fotos)

Índice:

Como fazer um sistema operacional de computador: 13 etapas (com fotos)
Como fazer um sistema operacional de computador: 13 etapas (com fotos)

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

Vídeo: Como fazer um sistema operacional de computador: 13 etapas (com fotos)
Vídeo: Como instalar programas no Linux? - SUPER FÁCIL! 2024, Abril
Anonim

Este wikiHow ensina como planejar e desenvolver um sistema operacional se você não sabe como codificar em C ou C ++. Os sistemas operacionais gerenciam o hardware do computador e fornecem os recursos de que os aplicativos precisam para serem executados. Escrever um sistema operacional do zero requer um forte domínio da ciência da computação, uma linguagem de programação como C ou C ++, montagem e práticas de gerenciamento de código.

Passos

Parte 1 de 2: Aprendendo o básico

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

Etapa 1. Faça alguns cursos básicos de Ciência da Computação

Ao contrário do desenvolvimento para a web, a criação de um sistema operacional requer um forte conhecimento de algoritmos, estruturas de dados, hardware de computador e gerenciamento de recursos. As pessoas se graduam nessas coisas, então não espere escrever um sistema operacional inteiro depois de ler um tutorial online! O curso de introdução à ciência da computação de Harvard está disponível online por meio do EDX gratuitamente.

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

Etapa 2. Aprenda uma linguagem de programação de alto nível como Python

Depois de ter um conhecimento básico sólido da ciência da computação, a próxima etapa é dominar C e / ou C ++. Assim como aprender ciência da computação, o domínio de uma linguagem não é opcional - você não será capaz de codificar um sistema operacional se não puder escrever aplicativos sólidos.

Se você for novo em C, verifique o curso de Programação C: Introdução de Dartmouth, que é gratuito através do EDX. Depois de concluir esse curso, você pode fazer o próximo curso da série: Programação C: Fundamentos da Linguagem. Em seguida, passe para os cursos subsequentes, como Programação modular e gerenciamento de memória e Ponteiros e gerenciamento de memória

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

Etapa 3. Aprenda uma linguagem assembly

Linguagens assembly são linguagens de baixo nível projetadas para se comunicar com diferentes processadores. Como o assembly é diferente para diferentes tipos de processador (por exemplo, x86 assembly Language para Intel, AMD, VIA e outros processadores), você precisará aprender a versão para o tipo de processador para o qual está codificando.

  • Este livro de código aberto, se lido na íntegra, pode fornecer uma compreensão sólida o suficiente para construir um sistema operacional.
  • The Art of Assembly Language é um livro altamente recomendado sobre montagem disponível online e offline.
  • Você também deve fazer muitas pesquisas sobre o (s) tipo (s) de processador (es) em que seu sistema operacional deve ser executado. Os manuais para arquitetura de processador podem ser facilmente encontrados usando uma pesquisa no Google ("Intel Manuais", "manuais ARM," etc.).
Etapa 5 do sistema operacional de um computador
Etapa 5 do sistema operacional de um computador

Etapa 4. Concluir um tutorial do sistema operacional

Os tutoriais do sistema operacional orientarão você no processo de criação de um sistema operacional básico. Isso o acostuma com o processo e ajuda a descobrir se há alguma peça que esteja faltando. Depois de concluir um tutorial ou dois, você estará no caminho certo para criar seu próprio sistema operacional.

  • Bare Bones é um tutorial que ajuda você a escrever seu primeiro kernel simples de 32 bits. Depois de concluir o tutorial, a próxima etapa é usar o Meaty Skeleton para estruturar seu próprio sistema operacional.
  • Linux from Scratch é um livro online que o orienta na criação de seu próprio sistema operacional Linux.
  • Sistemas operacionais de 0 a 1 é um livro gratuito sobre a criação de vários sistemas operacionais do início ao fim.
Etapa 3 para fazer um sistema operacional de computador
Etapa 3 para fazer um sistema operacional de computador

Etapa 5. Descobrir os objetivos do seu sistema operacional

O que você deseja que seu sistema operacional faça? Como deveria ser? Você realmente precisa escrever um sistema operacional inteiro ou está apenas procurando criar uma certa aparência para sua área de trabalho? Todas essas coisas devem ser consideradas antes de começar a codificar.

  • Considere desenvolver com uma equipe de outros programadores. Ter uma equipe de desenvolvedores trabalhando no projeto reduzirá significativamente o tempo de desenvolvimento.
  • Adicione seus objetivos de projeto, planos e perguntas ao seu repositório público para que seja fácil para outras pessoas ajudá-lo.

Parte 2 de 2: Construindo seu sistema operacional

Divirta-se com o computador - Etapa 16
Divirta-se com o computador - Etapa 16

Etapa 1. Escolha um ambiente de desenvolvimento

Esta é a plataforma que você usará para codificar seu novo sistema operacional. É uma questão de preferência pessoal, mas a maioria das pessoas usa o Windows ou uma versão do UNIX. Se você estiver usando o Windows, é uma boa ideia instalar um ambiente UNIX como Cygwin ou MinGW. Em geral, você desejará certificar-se de que o ambiente que está usando inclui o seguinte:

  • GCC (o compilador Gnu). Se estiver usando Windows, você pode instalá-lo no Cygwin ou MinGW.
  • Binutils é uma coleção de ferramentas usadas para manipular arquivos de objetos. Novamente, se você estiver usando o Windows, você pode instalá-lo no Cygwin.
  • Um bom editor de texto. Vim e emacs são comumente usados em ambientes UNIX. Os usuários do Windows podem usar o Bloco de notas ou verificar o Notepad ++ para uma atualização de várias guias.
  • Perl e / ou Python. Um ou ambos são recomendados para manipulação de strings.
Etapa 13 para fazer um sistema operacional de computador
Etapa 13 para fazer um sistema operacional de computador

Etapa 2. Configure seu sistema de controle de versão

Escrever um sistema operacional significa que você provavelmente criará centenas (ou milhares!) De linhas de código. Quando você está trabalhando em revisões, isso pode ficar confuso. Algumas opções para verificar são CVS, Mercurial e Subversion.

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

Etapa 3. Escolha um gerenciador de inicialização

Se não quiser criar o seu próprio, você pode usar um existente como o Grand Unified Bootloader (GRUB). Se você se sentir ousado o suficiente para codificar um bootloader, dê uma olhada em Rolling Your Own Bootloader em OSDev.org.

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

Etapa 4. Escolha um design de kernel

O kernel é o núcleo do seu sistema operacional, fornecendo uma interface entre o usuário e o hardware do computador. Existem kernels monolíticos e micro kernels. Kernels monolíticos implementam todos os serviços do kernel, enquanto os microkernels têm um pequeno kernel combinado com daemons de usuário que implementam serviços. Em geral, os kernels monolíticos são mais rápidos, mas os microkernels têm melhor isolamento de falhas e confiabilidade.

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

Etapa 5. Comece pequeno

Comece com pequenas coisas, como exibir texto e interrupções, antes de passar para coisas como gerenciamento de memória e multitarefa. Você também pode tentar fazer um sistema operacional simples de 16 bits, em vez de dar um grande salto.

Você não terá um sistema completo em duas semanas. Comece com um sistema operacional que inicializa e, em seguida, vá para as coisas legais

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

Etapa 6. Teste seu novo sistema operacional com uma máquina virtual

Em vez de reiniciar o computador toda vez que você fizer alterações ou precisar transferir os arquivos do computador de desenvolvimento para a máquina de teste, use um aplicativo de máquina virtual. VMWare é uma opção comum que funciona com Windows e Linux, assim como Bochs. Verifique possíveis bloqueios e outros bugs e repare-os conforme necessário.

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

Etapa 7. Libere um "candidato a lançamento

Você pode fazer isso enviando seu código testado para seu repositório público. Isso permitirá que as pessoas testem seu sistema operacional e relatem quaisquer problemas que encontrarem.

Divirta-se com o computador, etapa 28
Divirta-se com o computador, etapa 28

Etapa 8. Rede com outros desenvolvedores de sistema operacional

Há uma comunidade inteira de desenvolvedores de sistemas operacionais reunidos em vários fóruns, incluindo / r / osdev no Reddit e o Software Engineering Stack Exchange. Depois de aprender a desenvolver um sistema operacional básico, leia as postagens existentes para ver que tipo de coisas surgem durante o processo de desenvolvimento.

Vídeo - Ao usar este serviço, algumas informações podem ser compartilhadas com o YouTube

Pontas

  • Certifique-se de implementar recursos de segurança como sua principal prioridade se quiser que seu sistema seja viável.
  • Depois que todo o desenvolvimento estiver concluído, decida se deseja liberar o código como código aberto ou proprietário.
  • Para tornar um sistema operacional capaz de lidar com vários processadores, o Gerenciador de Memória deve ter mecanismos de "bloqueio" para evitar que vários processadores acessem o mesmo recurso ao mesmo tempo. Os "bloqueios" usados para isso exigirão a presença de um escalonador para garantir que apenas um processador acesse um recurso crítico a qualquer momento e que todos os outros aguardem. Já o agendador depende da presença de um Gerenciador de Memória. Este é um caso de dependência em conflito. Não existe uma maneira padrão de resolver problemas como esse; como programador, espera-se que você seja habilidoso o suficiente para descobrir sua própria maneira de lidar com isso.
  • Um sistema operacional também pode ser amigável. Certifique-se de adicionar recursos amigáveis ao usuário, tornando-os parte integrante do seu projeto.
  • Não entre os fóruns OSDev.org e comece a fazer perguntas óbvias. Isso simplesmente resultará em "Leia o manual" respostas. Você deve tentar ler a Wikipedia e os manuais das várias ferramentas que deseja usar.
  • Não comece um projeto de sistema operacional para começar a aprender programação. Se você ainda não conhece C, C ++, Pascal ou alguma outra linguagem adequada, incluindo manipulação de ponteiro, manipulação de bits de baixo nível, deslocamento de bits, linguagem assembly inline, etc., você não está pronto para o desenvolvimento do sistema operacional.
  • Se você fizer algo imprudente, como gravar bytes aleatórios em portas de E / S aleatórias, você travará seu sistema operacional e poderá (em teoria) fritar seu hardware.

Recomendado: