1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

como criar um sistema operativo do zero?

Discussão em 'Programação' iniciada por wrproject, 13 de Janeiro de 2008. (Respostas: 26; Visualizações: 12235)

  1. wrproject

    wrproject Power Member

    boas pessoal decidi criar este topico,porke estou a pensar brevemente criar um mini S.O em modo consola para arquitecturas X86
    -o que é necessario saber(linguagens,etc..)?
    -sera tedioso a construcao dum S.O?
    -por onde devo comecar?
    agradeco qualker opiniao.
    cumps wrproject
     
  2. rui_m7

    rui_m7 Power Member

    Tens que saber MUITO (mas mesmo muito) acerca de processos, signals, threads, pipes, memória partilhada, semáforos.. etc etc etc
     
  3. wrproject

    wrproject Power Member

    e onde posso aprender isso sobre processos,signals,threads etc...
     
  4. rui_m7

    rui_m7 Power Member

    Telefonas ao Torvalds:lol:

    A melhor maneira de ver como funciona um sistema operativo é mexer em linux que tem código aberto. Mas aviso já que todas estas coisas não são muito fáceis de assimilar para quem não domine C. O SO faz milhentas coisas, acessos à memória, discos, gestão de processos, escalonamento de processos etc, se queres construir um So tens de programar tudo à unha...
    Boa sorte...

    Cumps
     
  5. .:Sith Lord:.

    .:Sith Lord:. Suspenso

    E duvido que sozinho consiga.. Mesmo muito.. se nem sabe o que são processos, signals, threads etc (eu tambem não.. mas não tou a pensar fazer um SO :-D)
     
  6. GloriosoSLB

    GloriosoSLB Power Member

    Na faculdade eu aprendi isso tudo. :D
     
  7. Isso é uma loucura, caso queiras fazer um S.O. tipo Windows Vista. Tens que ter muitos conhecimentos de Hardware e Software.

    Mas não é uma grande loucura fazer um mini-S.O.:
    O mais fácil será fazer "uma espécie" de sistema operativo que permita manipular ficheiros (criar, apagar, ler, editar), isso é algo parecido com o que já eu fiz, quando andava no ISEL (há mais de 10 anos).
    Podes começar por procurar informação relacionada com IOCTL.
    A linguagem de programação mais apropriada será o C

    (Ou também poderias criar um sistema operativo dentro de outro sistema operativo.)

    Na minha modesta opinião acho que só servirá para empatar tempo. É preferível uma pessoa inscrever-se num curso superior (tipo ISEL ou Técnico) e aí poderias chegar a alguma conclusão...

    De qualquer forma, a partir desta ideia poderão surgir outras.
     
  8. SL87

    SL87 Power Member

    Não é assim tanta loucura.
    Requisitos:
    1º - Programar bem em C e assembly
    2º - Conhecer bem a arquitectura onde vai correr o SO. Caso seja x86, vais ao site da intel e fazes download de 3 ou 4 pdfs que eles têm algures.
    3º - Saber os seguintes conceitos:
    - Memoria virtual
    - Endereçamento Virtual
    - Processos, comunicação entre processos,
    - partir pedra (Este é muito importante :-D)
    e muitos outros.... podia passar o resto da noite a escrever....

    Ambiente de desenvolvimento:
    Host : Linux
    Eclipse + CDT
    Qemu
    GDB ligado com o Qemu para poderes fazer debug

    links:
    http://www.osdev.org/
    http://www.nondot.org/sabre/os/articles
    http://www.fiwix.org/


    Se quiseres ver algum código, começar pelo código do linux é suicido, começa pelo fiwix, que foi especialmente criado para isso.
    Se não usas linux, nunca programaste para linux(processos, IPC, threads,...) nem para windows. etc, etc, etc
    Então por agora podes esquecer essa ideia.
     
  9. orien

    orien [email protected] Member

    Dps de ler isto tudo fikei com interesse em começar a aprender tb :)

    ja tive 1 ano de Linguagem C e tou neste momento a ter aulas de C#

    1º Qual o Linux que devo sakar ?

    kando tiver isso perguntou o resto =) Obrigado =)
     
    Última edição: 11 de Março de 2008
  10. SL87

    SL87 Power Member

    Qualquer um que tenha as ferramentas necessarias.... e que seja a teu gosto.....
    Gentoo será bastante indicado, mas qualquer um serve.
    Instala, programa e estuda mto..... daqui a 1 ou 2 anos vem aqui e coloca o resto das questões......
     
  11. BlkLotus

    BlkLotus Folding Member

    Não quero parecer muito "rude" mas...

    ... alguém que tenha capacidade técnica para fazer um Sistema Operativo de raiz, nem sequer pergunta o que é preciso.

    Espero que tenhas compreendido.

    Cumps
     
  12. rui_m7

    rui_m7 Power Member

    Nem mais!!
    Estão em causa coisas bem avançadas, não é para todos. Muito menos para quem tem este tipo de dúvidas.

    Cumps
     
  13. SL87

    SL87 Power Member

    Não sejam assim.....
    Têm razão, mas deixem o ppl ver isso por eles proprios...... deixem o ppl tentar....
     
  14. Kain

    Kain Power Member

    Voltando ao topico e sem gozar......

    Se calhar o que devias de tentar como foi sugerido era pegar numa verão do linux e modificar.

    O linux é open source logo tens o codigo fonte disponivel. começas com coisas mais simples para aprenderes como elas interagem com o sistema e vais avançando a medida que te vais sentindo mais confortavel.

    Não é como criar um programita qualquer, tens de conhecer bem a arquitectura a que se destina. e defenitivamente não é tarefa para so uma pessoa.
     
  15. lothar_m

    lothar_m Power Member

  16. SL87

    SL87 Power Member

    Mas porque raio o rapaz não pode criar um sistema operativo?
    Ele pode criar algo básico.
    Não precisa de ser igual a um vista nem a um linux.
    Não precisa de suportar 1001 dispositivos d hardware, não precisa de ser compativel com POSIX, não precisa de ter threads, não precisa de ser multi processo, não precisa de ter sistema de ficheiros e continua a ser um SO.


    O mais importante não é criar o SO, o mais importante é o knowhow que adquires ao tentar faze-lo. Não é tarefa fácil..... mas ele pode tentar.....

    http://www.linuxfromscratch.org -> isto não ensina a criar um SO, ensina a compilar o linux e fazer boot do SO.
     
  17. wrproject

    wrproject Power Member

    concordo contigo SL87,vale a pena tentar.
    como eu sei se consigo ou nao,se ainda nao tentei?
    ja decidi vou mesmo tentar criar um mini-SO,primeiro vou estudar mais sobre arquitectura de computadores, depois aventuro-me no assembly,e aprofundo mais o C.
     
  18. Warrior

    Warrior Power Member

    Estava para dizer isto mesmo. Um SO não tem de ser multi-processo, logo daí grande parte dos conselhos que indicaram são postos de parte. E durante muitos anos os PCs não eram multi-thread..
     
  19. MX+

    MX+ Power Member

    Mas secalhar, e digo secalhar, um ano de experiência em C, o muito pouco que sabe sobre como funciona o simples sistema de ficheiros do UNIX (dos mais simples e fáceis de clonar), e provavlmente nem sabe como funcionam a cache, a ram, o disco.. blocos, sectores, partições, etc etc..

    Eu tambem gosto de ter ideias grandes, mas primeiro se ele se metesse a fazer coisas que realmente lhe dessem aprendizagem e tornassem um bom programador e depois então pensar em avançar para algum maior.

    Só a minha opinião. É muito bonito querer tornar os nossos sonhos realidade, mas pelo meio há tem de haver muito trabalho e suor.
     

Partilhar esta Página