Ir para conteúdo


Revista PROGRAMAR - Edição 45 (Maio 2014): Download já disponível! Visita também o novo website da revista.

- - - - -

BoleroOS (FASM)


  • Por favor inicie sessão para responder
15 respostas a este tópico

#1 Jeronimus Linuxius

Jeronimus Linuxius

    Boolean User

  • Membro
  • PipPipPip
  • 233 mensagens

Publicado 29 de Julho de 2008 - 22:46

Titulo do Projecto: BoleroOS
Última Versão: N/A
Líder do Projecto: João Jerónimo
Membros Actuais do Projecto:
    * João Jerónimo

Descrição do Projecto: Sistema operativo símples, escrito completamente em Assembly do FASM. O ambiente nativo para o kernel e as aplicações será o Modo Protegido de 32 bits do x86 (assim, será necessário um 386 ou mais recente). Multi-tarefa antecipada. Processos com múltiplas threads. Kernel monolítico. Poderá ter no futuro um interface gráfico gerido directamente pelo kernel.

Estado actual (aka coisas feitas):
* Inicialização básica do processador.
* Usermode
* Suporte à criação de processos Usermode a partir de buffers em memória.
* Duas system calls [provisórias] implementadas.
* Suporte básico a VGA (a acesso ao mesmo a partir do Usermode, por intermédio das system calls referidas).
* Suporte incipiente para terminal emulado.

Mais coisas:

Iniciei este projecto para aprender sobre sistemas operativos. Acho o tema interessante, mas depois de ter passado dois anos a "pastelar" devido à pouca experiência (inconfessada) em projectos grandes, decidi-me a seguir objectivos mais "modestos", antes de avançar para algo mais complicado.

O SO não terá nada de muito inovador. Na verdade, inspirei-me inicialmente no MenuetOS, no sentido em que não quero uma API user<->kernel muito estruturada; e também no sentido em que decidi implementar tudo (tirando o boot loader) em ASM e em que quero uma GUI gerida directamente pelo kernel.

Divirjo do Menuet no sentido em que vou utilizar as features do FASM até à exaustão, sempre que tal ajude a simplificar a legibilidade e a manutenção do código. Também quero suporte nativo e usável a aplicações CLI (i.e. linha de comandos), que não são fáceis de ter no Menuet.
Haverá um "console server", o que nos coloca algo numa posição oposta ao Unix (em que o terminal de texto e gerido pelo kernel e o GUI é gerido por um programa normal, o servidor X). O console server é responsável por apresentar o texto que os programas CLI "querem" escrever no ecrã, seja directamente na placa gráfica, seja numa janela do interface gráfico (a ideia é não ter de re-escrever as eventuais aplicações CLI quando o GUI for implementado).

Estou actualmente a implementar a interface para ler texto do teclado, bem como o respectivo driver. Só tenciono lançar código quando tiver suporte para uma linha de comandos funcional.

E sim, podem dar sugestões. Mas por favor, tenham juízo! Não me peçam para implementar suporte para ReiserFS e coisas parecidas (aliás, a palavra filesystem está proibida durante pelo menos 6 meses, se não for mais).
Pode ser até que me farte num dia ou noutro.

Screenshots:
Imagem Colocada

João Jerónimo

#2 fnds

fnds

    Unsigned User

  • Membro
  • PipPipPipPipPipPip
  • 4489 mensagens

Publicado 29 de Julho de 2008 - 23:21

Bom projecto, é uma coisa que também quero fazer daqui a uns bons anos (muitos) ;)

#3 softklin

softklin

    Unsigned User

  • Membro
  • PipPipPipPipPipPip
  • 3952 mensagens

Publicado 03 de Agosto de 2008 - 18:25

Projecto bastante ambicioso, sim senhor.  ;)

Não quero ver-te desistir, por isso força, acho que é um projecto de grande valor, criar o próprio sistema operativo. Pelo pouco que li das tuas mensagens, Assembly é contigo.

Vai dando avanços aqui neste tópico, ou então se tiveres um website onde se possa acompanhar o progresso do BoleroOS, deixa-o aqui, sff :)

#4 djthyrax

djthyrax

    Stack Overflow

  • Moderador
  • PipPipPipPipPipPipPip
  • 15512 mensagens

Publicado 03 de Agosto de 2008 - 19:00

Não sei se sabes, mas o Triton aqui do fórum está a fazer algo do género: http://code.google.com/p/flush/

#5 vbmaster

vbmaster

    Stack Overflow

  • Membro
  • PipPipPipPipPipPipPip
  • 5635 mensagens

Publicado 03 de Agosto de 2008 - 19:02

Ver Mensagemtirácio, em 03 de Agosto de 2008 - 19:00, disse:

Não sei se sabes, mas o Triton aqui do fórum está a fazer algo do género: http://code.google.com/p/flush/

eles até são colegas e não sabem... ;)

#6 Tharis

Tharis

    Unsigned User

  • Membro
  • PipPipPipPipPipPip
  • 2887 mensagens

Publicado 03 de Agosto de 2008 - 19:06

Ver Mensagemtirácio, em 03 de Agosto de 2008 - 19:00, disse:

Não sei se sabes, mas o Triton aqui do fórum está a fazer algo do género: http://code.google.com/p/flush/

Correcção: estava

Espero que continues e não faças como o Triton!

#7 Jeronimus Linuxius

Jeronimus Linuxius

    Boolean User

  • Membro
  • PipPipPip
  • 233 mensagens

Publicado 03 de Agosto de 2008 - 21:57

Ver Mensagemsoftclean, em 03 de Agosto de 2008 - 18:25, disse:

Vai dando avanços aqui neste tópico, ou então se tiveres um website onde se possa acompanhar o progresso do BoleroOS, deixa-o aqui, sff ;)

Ainda não há website. E estou um bocado relutante em registar o projecto do Sourceforge porque, caso desista, não quero contribuir para o cemitério do SF.net (até porque já contribui com um).
Vou deixando aqui notícias quando for apropriado.

Ver Mensagemvbmaster, em 03 de Agosto de 2008 - 19:02, disse:

eles até são colegas e não sabem... :)

LOL. É claro que nunca achei que só houvesse dois alunos do IST por aqui!
Mas não, não sabia quem mais era.

Ver MensagemTharis, em 03 de Agosto de 2008 - 19:06, disse:

Correcção: estava

Espero que continues e não faças como o Triton!

O que aconteceu?

PS: Tenho estado a desenhar um mecanismo para entregar "eventos" às aplicações. A principal questão era se o destino dos eventos é um processo ou se é uma thread (acabei por decidir que é um processo, mas que esse processo determina qual das suas threads está responsável por cada evento).

PS2: Queria ver se testava mais o código em hardware real (tenho estado a trabalhar principalmente com o Bochs), mas descobri ontem à noite que a minha drive de disquetes deixou de funcionar (e sim, dá mais jeito do que usar pens, porque assim posso testar em outro computador, que não tem USB), o que é um bocado chato. Assim que resolver este problema, implemento a interface dos eventos e o driver do teclado.

JJ

#8 Tharis

Tharis

    Unsigned User

  • Membro
  • PipPipPipPipPipPip
  • 2887 mensagens

Publicado 03 de Agosto de 2008 - 23:12

Ver MensagemJeronimus Linuxius, em 03 de Agosto de 2008 - 21:57, disse:

O que aconteceu?

Não continuou e deixou o projecto de parte... Estava cheio de energia e depois desistiu... :|

#9 Jeronimus Linuxius

Jeronimus Linuxius

    Boolean User

  • Membro
  • PipPipPip
  • 233 mensagens

Publicado 03 de Agosto de 2008 - 23:45

Ver MensagemJeronimus Linuxius, em 03 de Agosto de 2008 - 21:57, disse:

PS2: Queria ver se testava mais o código em hardware real (tenho estado a trabalhar principalmente com o Bochs), mas descobri ontem à noite que a minha drive de disquetes deixou de funcionar (e sim, dá mais jeito do que usar pens, porque assim posso testar em outro computador, que não tem USB), o que é um bocado chato. Assim que resolver este problema, implemento a interface dos eventos e o driver do teclado.

Parece que se comportou agora. Mudei o cabo: tenho cá outra motherboard que comprei recentemente (para remodelar o computador) e mudei para o cabo que vinha com essa mb.
Se calhar era só mau contacto, mas de qualquer das maneiras este cabo até ocupa menos espaço na caixa (e se as floppies já quase não se usam, quanto menos espaço ocupar, melhor!)

JJ

#10 Jeronimus Linuxius

Jeronimus Linuxius

    Boolean User

  • Membro
  • PipPipPip
  • 233 mensagens

Publicado 03 de Agosto de 2008 - 23:46

Ver MensagemTharis, em 03 de Agosto de 2008 - 23:12, disse:

Não continuou e deixou o projecto de parte... Estava cheio de energia e depois desistiu... :|

Eu vi o código. Só tem uma rotina para escrever texto no ecrã.
Também fiquei curiouso porque não vi praticamente nada no fórum a falar nisso...

JJ

#11 Jeronimus Linuxius

Jeronimus Linuxius

    Boolean User

  • Membro
  • PipPipPip
  • 233 mensagens

Publicado 07 de Agosto de 2008 - 21:36

Ver MensagemJeronimus Linuxius, em 29 de Julho de 2008 - 22:46, disse:

Titulo do Projecto: BoleroOS

Já agora, só uma nota em relação ao nome: não é uma referência à dança "bolero" (na verdade, não percebo nada de dança!). A música de onde tirei o nome foi o Bolero de Maurice Ravel, que é uma peça de música clássica de sete minutos.

http://www.youtube.com/watch?v=XWMs_663KUA

JJ

#12 Triton

Triton

    Stack Overflow

  • Membro
  • PipPipPipPipPipPipPip
  • 8490 mensagens

Publicado 07 de Agosto de 2008 - 21:43

Boa sorte! :)

Talvez algum dia continue o meu kernelzito, embora como viste ainda não faz praticamente nada.

#13 zedlav

zedlav

    void

  • Membro
  • PipPip
  • 53 mensagens

Publicado 13 de Novembro de 2008 - 14:30

Boas.
Este projecto está parado???

#14 elcsat

elcsat

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 480 mensagens

Publicado 14 de Novembro de 2008 - 02:33

nao desista por uma driver de disquetes eu tenho algumas e doutas:)

um projecto de muito trabalho...boa sorte...e da noticias

#15 Jeronimus Linuxius

Jeronimus Linuxius

    Boolean User

  • Membro
  • PipPipPip
  • 233 mensagens

Publicado 14 de Novembro de 2008 - 13:59

Ver Mensagemzedlav, em 13 de Novembro de 2008 - 14:30, disse:

Boas.
Este projecto está parado???

Em certo sentido, está.
Tenho estado em aulas, e não tenho tido tempo, mas conto continuar mais tarde.

JJ

#16 RicardoGaio

RicardoGaio

    void

  • Membro
  • PipPip
  • 65 mensagens

Publicado 20 de Abril de 2010 - 17:58

Já andou mais alguma coisa?
Parabéns pela iniciativa e boa sorte! :cheesygrin: