Como para criar um sistema operacional

sistemas operacionais permitem ao usuário interagir com o hardware em seu computador, que são feitos com centenas de milhares de linhas de código, geralmente com a C, C ++ e montadores.

passos

1

Você tem que ter conhecimento de programação antes de começar. linguagem assembly é essencialmente uma linguagem de baixo nível adicional como C será altamente recomendado.

2

Decidir o que a mídia quer carregar o sistema operacional. Poderia ser um CD, DVD, flash, disco rígido ou em outro PC.

3

Decida o que você quer fazer o seu sistema operacional. Se for sistema operacional plenamente capaz que tem uma interface gráfica do usuário (GUI, Graphical User Interface) Ou algo um pouco mais minimalista, você tem que saber que direção você estiver indo para tomar antes de começar.

4

Especifica que plataforma de processador será compatível com o seu sistema operacional. Recomendamos os dois mais comuns para computadores pessoais: AI-32 e x86_64.

5

Decida se você prefere fazer tudo sozinho a partir do zero ou se existe um núcleo existente que você gostaria de usar como uma base para construir. Por exemplo, o Linux de programação a partir do zero será um projeto para aqueles que gostariam de criar sua própria distribuição Linux.

6

Decida se você usar o seu próprio bootloader ou um pré-criado como o carregador (boot GRUB global unificada, Grande Unified Bootloader.) Porque esse código para programar o seu próprio carregador de inicialização precisa ter um amplo conhecimento de hardware e BIOS poderia retardar-lhe programar o próprio kernel.



7

Decidir qual linguagem de programação você irá usar. Embora seja possível criar um sistema operacional com uma linguagem como Pascal ou BASIC, será melhor se você usar C ou assembler. O montador é absolutamente necessário, uma vez que algumas partes vitais de um sistema operacional precisa. Enquanto isso, C ++ contém palavras-chave que você precisa de outro sistema operacional totalmente integrada para funcionar.

  • Para compilar um sistema operacional com o código C ou C ++ é claro que você tem que usar qualquer compilador. Portanto, você deve ler o guia ou manual ou documentação do usuário compilador C ou C ++ que você vai escolher, se eles são incluídos com o software ou disponível no site do distribuidor. Você vai ter que aprender muitas coisas complexas sobre o compilador e desenvolver com C ++ deve ter conhecimento de decoração de nomes (esquema mangling) Compiler e ABI. Supõe-se que você terá que conhecer os diferentes formatos executáveis ​​(ELF, PE, COFF, de formato binário, etc.) e entender que o formato proprietário Windows PE (.exe), é protegido por direitos autorais.

8

Decida o que a interface de programação de aplicações (API, Application Programming Interface.) Recomendamos POSIX, uma vez que está bem documentado. Todos os sistemas Unix têm pelo menos o apoio parcial para o POSIX, de modo que seria trivial para conectar programas Unix com o sistema operacional.

9

Decidir design. Há kernels monolíticos e micronúcleos. Monolítica implementar todos os serviços no núcleo, enquanto os micronúcleos ter um pequeno núcleo combinado com usuário demônios serviços de implementação. Em geral, os kernels monolíticos são mais rápidos, mas micronúcleos ter um melhor isolamento e confiabilidade falha.

10

Considerar o desenvolvimento e trabalho em equipe. Desta forma, mais problemas serão resolvidos em menos tempo, o que poderia gerar um sistema operacional melhor mais rápido.

11

Não apagar seu disco rígido completamente. Lembre-se, para apagar o disco que você pode apagar todos os seus dados irremediavelmente! Usa o GRUB ou outro gestor de arranque para o seu computador tem outro sistema operacional com o qual deseja começar a trabalhar até que esteja completamente seu.

12

Comece pequeno. Comece com pequenas coisas como texto de exibição e interrupções antes de continuar a desenvolver coisas como gerenciamento de memória e multitarefa.

13

Mantenha uma cópia de segurança da última fonte de trabalho. Esta será uma medida de protecção em caso de qualquer séria com a versão atual do seu sistema operacional ou o seu problema de desenvolvimento. Se o PC está bloqueado e não pode arrancar, vai ser ótimo ter uma segunda cópia com o qual você pode trabalhar para resolver o problema.

14

Considere testar o seu novo sistema operacional em um computador virtual. Em vez de reiniciar o computador cada vez que você fazer alterações ou ter de transferir certos arquivos da equipe de desenvolvimento para o equipamento de teste, o aplicativo pode usar um computador virtual para executar o seu sistema operacional, enquanto o seu permanece em funcionamento. Algumas aplicações são computador VMWare virtual (que também tem um produto servidor gratuito), a alternativa de código aberto Bochs, Microsoft Virtual PC (não é compatível com o Linux) e xVM VirtualBox.

15

Ele pega um "release candidate". Isso permitirá que os usuários para informar sobre possíveis problemas com o sistema operacional.

16

Um sistema operacional pode também ser fácil de usar, por isso certifique-se de incluir user-friendly, de modo que eles são uma parte integrante das suas características de design.

dicas

  • Depois de ter feito todo o desenvolvimento, decidir se você quer o código para ser aberto ou proprietário.
  • Não inicie um projeto para criar um sistema operacional para iniciar a programação de aprendizagem. Se você tem conhecimentos avançados de C, C ++, Pascal ou outra linguagem adequada, incluindo a manipulação do ponteiro, manipulação de bits baixo nível, o deslocamento de bits, a linguagem assembly inline, etc, então você não estará pronto para desenvolver um sistema operacional .
  • Se você quer que seu sistema seja viável, a sua maior prioridade deve ser o de implementar recursos de segurança.
  • Use sites como OSDev e OSDever para ajudar a desenvolver o seu próprio sistema operacional. Note-se que na maioria dos casos, a comunidade OSDev.org prefere limitar-se a usar o seu wiki e não participar do fórum. Se você decidir participar do fórum, existem requisitos para fazer isso: você deve ter um conhecimento profundo de C ou C ++ e x86 linguagem assembly. Você também deve compreender conceitos complexos e programação geral, como listas encadeadas, filas, etc. As regras do OSDev comunidade afirma explicitamente que o objetivo da comunidade é para cuidar de programadores iniciantes. Se você estiver indo para tentar desenvolver um sistema operacional, escusado será dizer que você é suposto ser um "deus" de programação. Você também precisa ler manuais de arquitetura de processador que você está indo para escolher-x86 (Intel), ARM, MIPS, PPC, etc. Você pode facilmente encontrar estes manuais com uma pesquisa no Google ( "manuais Intel", "manuais ARM", etc.). Não se junte os fóruns OSDev.org começar a fazer perguntas óbvias, mas simplesmente dizer-lhe para ler as respostas manuais. Você deve tentar ler manuais Wikipedia e as várias ferramentas que deseja usar.
  • Verificar a existência de um possível bloqueio e outros erros. Erros, falhas e outros problemas afetam seu projeto de sistema operacional
  • Se você quiser mais fácil, tenha em mente algumas distribuições Linux, como Fedora Revisor, personalizado Nimble X, Cachorrinho Remaster, PCLinuxOS mklivecd, SUSE Studio e KIWI SUSE. No entanto, o sistema operacional que você acha que vai pertencer à empresa que lançou o primeiro serviço (embora você terá os direitos para distribuir de graça, e executá-lo como você deseja alterar sob a GPL).
  • Recomendamos uma nova partição desenvolver o sistema operativo.

avisos

  • sloppily escrever seu sistema operacional no disco rígido pode danificar completamente, então tome cuidado.
  • Você não pode criar um sistema completo em duas semanas. Primeiro faça uma bota, e depois continuou com características interessantes.
  • Não esperava que fosse fácil de construir um sistema operacional bem feito. Haverá muitas interdependências complexas, por exemplo, de modo que o sistema pode lidar com múltiplos processadores, o gerenciador de memória deve ter mecanismos de "trava" para evitar múltiplos processadores acessar o mesmo recurso ao mesmo tempo. "blocos" para isso vai exigir a presença de um programador para garantir que apenas um processador tem acesso a um recurso crítico, em determinado momento, enquanto todo mundo espera. No entanto, o programador irá depender da presença de um gestor de memória. Este é o caso de uma unidade em ponto morto. Não há uma solução padrão para este tipo de problemas, por isso, assume-se que cada programador um sistema operacional precisa ter as habilidades necessárias para lidar com ele.
  • Se você faz algo contraproducente, por exemplo, uma gravação aleatória portas I / O bytes aleatórios, o sistema operacional irá bloquear e você poderia queimar o hardware (em teoria).

recursos adicionais

Coisas que você precisa

  • Um computador
  • A arquitetura de CPU você está indo para desenvolver
  • Memória (RAM) suficiente para um computador virtual
  • Um sistema operacional hospedeiro (para desenvolver o montador, outros de código-fonte, para construí-lo e empacotá-lo enquanto você está em seus estágios iniciais, eventualmente, o seu próprio sistema operacional pode ser o seu host)
  • editor de coloração de sintaxe (se você tem "Integrated Development Environment")
  • um compilador
  • A unidade de CD / DVD

RELACIONADOS

Artigos Relacionados