• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

the_street_racer

Street Racer OS - v 0.0.2 - Build 13 - [9-Mar-2009]

21 mensagens neste tópico

Street Racer OS

Titulo do Projecto: Street Racer OS

Última Versão: 0.0.2 - Build 13 - Ver detalhes

Site Oficial: www.StreetRacerBlog.BlogSpot.com

Licença : Não sei...

Lingua de programação: JAVA

Líder do Projecto: the_street_racer

Screenshots:

v. 0.0.2 - Build 13

street.racer.os.v.0.0.2.b13.png

v. 0.0.1 - Build 10

street.racer.os.v.0.0.1.b10.png

Descrição do Projecto: O programa tem como objectivo, criar (como o nome diz) um Sistema Operativo, mas num PC emulado híbrido. Ou seja será a emulação de um computador, mas que alguns dos componentes "emulados" é hardware real (o usado no computador).

Funcionalidades/objectivos deste projecto:

  • Criar uma Linha de comandos, totalmente funcional (feito alguma parte)
  • Criar uma linguagem de programação, para a Linha de comandos interpretar (nada feito)
  • Criar programas adicionais à Linha de comandos (nada feito)
  • Criar o Sistema Operativo (nada feito)
  • Outros (nada feito)

Requisitos:

PC ou MAC com 32/64 Bit

Windows 2000/XP/2003/Vista/2008;

Linux Ubuntu, Debian, Slackware, Fedora, Mandriva, Suse, Knoppix, Gentoo, Mepis, Xandros;

Apple Mac OS;

Solaris;

Java Runtime Environment (JRE) 6 (recomendado 6.0 Update 12) - Download

DOWNLOAD - Ver detalhes

Versões antigas:

v. 0.0.1 - Build 10 - Download - Ver detalhes

PS: Qualquer critica, dúvida, sugestão, opinião, estejam à vontade para falar!!! Não tenham vergonha :confused: O que eu quero é que digam o que quiserem em vossa defesa para tornar este programa melhor!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Versão: 0.0.1 - Build 10

Ver detalhes do programa

Change log:

*** 0.0.1 BUILD 10 *** 3-Mar-2009

INFO - Programa inicial

NOVO - [CommandLineInterpreter] Comando HELP ou ?, mostra a ajuda com a listagem dos comandos disponiveis

NOVO - [CommandLineInterpreter] Comando TIME, mostra a hora actual

NOVO - [CommandLineInterpreter] Comando DATE, mostra a data actual

NOVO - [CommandLineInterpreter] Comando ECHO, mostra o texto especificado

NOVO - [CommandLineInterpreter] Comando DIR, faz a listagem do directório

NOVO - [CommandLineInterpreter] Comando CD, muda de directório

DOWNLOAD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em que medida é que isso vai ser um sistema operativo? Isto é, vai correr sobre hardware real ou vai correr sobre a máquina virtual do Java?

E que API é que os programas vão usar para comunicar com o SO? A API do Java?

Devias ter sido mais específico.

Se queres que o SO corra programas escritos em Java, tens três opções:

- Ou fazes o retargetting de um compilador que te dê código máquina;

- Ou tens de implementar/portar uma máquina virtual para o bytecode do Java;

- Ou programas o teu SO para correr em cima da máquina virtual (e por tanto em cima de outro SO), e tiras partido do reflection do Java para correres os programas (pré-compilados para bytecode).

E de qualquer das formas vais precisar de implementar ou portar uma biblioteca de classes do Java. Quer dizer... duvido que te aventurasses a implementá-la, uma vez que a biblioteca é gigantesca.

De qualquer das formas, esse processo provavelmente te vai dar muito mais dores de cabeça se optares por compilar tudo para código máquina (i.e. "código nativo", no vocabulário do Java) do que se optares por interpretar o bytecode em software. Porquê? Porque geralmente é mais difícil adaptar programas já escritos do que começares do 0 com código todo teu (de notar que ser mais fácil != demorar menos tempo), e ainda para mais quando tens uma biblioteca (aka uma massa disforme de código) a depender de um compilador (outra massa disforme de código em que meteste o nariz).

Estás a perceber a ideia? Criar um SO que corra programas escritos em Java compilados para código maquina implica que sejas expert em:

- Java (linguagem, ambiente de execução, biblioteca)

- Compiladores (e precisas também de estudar o código do compilador que vais usar)

- Assembly (para fazeres o retargeting do compilador)

- Sistemas operativos (mais do que para codares um SO "normal")

Se quiseres simplesmente interpretetar o bytecode dos programas, precisas de:

- Java (linguagem, ambiente de execução da máquina virtual, biblioteca)

- Sistemas operativos (mais do que para codares um SO "normal")

De tudo isto, a única coisa em que eu me considero expert é em Assembly. Do resto, sei um pouco de cada. Compiladores é um "mundo". A própria linguagem Java é um mundo que tens de compreender muito bem para implementares uma coisa deste género.

Em suma, acho que te estás a meter num projecto megalómano. No entanto, como não te conheço nem sei se tens "seguidores", também não quero arrebentar-te a bolha.

PS: Enganaste-te no URL do site do projecto.

JJ

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Jeronimus Linuxius, vou ser mais especifico então.

O que eu quero fazer é uma linguagem de Scripting com uma estrutura tipo Basic (por ex VB6. Que seja simples e fácil de criar programas nele), que funcione mais ou menos como o JavaScript, e é emulado no meu programa (nada de intrepetar bytecode, codigo maquina, nada disso). Estás a perceber? Basicamente o que eu quero é que este projecto que estou a fazer é ler directamente o código fonte, e executar-lo, como no JavaScript... Cada browser ter o seu interpretador (Firefox, IE, Chrome, etc.), uns mais rápido, outros mais lento. Continuo a dizer que acho que é a maneira mais fácil de criar uma linguagem de programação (se estiver enganado, digam-me!).

E é uma linguagem muito simples: que faça operações matemáticas, faça controlo de fluxo (if, for, while, etc), variáveis (claro), e criação simples de ide's (vou explicar melhor, por exemplo criar um programa para mostrar imagens: linha de código por ex. "criar.quadrado janela = x,y; janela.cor = branco; criar quadrado botao = x,y; botao.texto = "Abrir"; botao.background = abrir.jpg; .....").

E é mais ou menos isso, que tenho em ideia.

Quanto ao hardware, eu até na apresentação do projecto chamei de um "emulador hibrido" ou seja algumas coisas o meu programa usa o hardware real outras emula. Vou te dar um exemplo: agora na linha de comandos o que estou a fazer é: os discos rígidos que ele usa são simplesmente pastas onde está o programa (tipo como o DosBOX faz, se conheceres, claro). A listagem dos discos é procurar as pastas com as letras do abecedário "a, b, c, d, e, etc..", depois de encontrar todas elas, faz a listagem dos "discos existentes" (por ex tem o "a" e o "c"), simplesmente faço "cd c:" ele passa para a pasta "C". Depois por exemplo o Som, como a API do Java é grande basta especificar o ficheiro de som e colocar a reproduzir. E o SO vai ser escrito nessa linguagem que vou criar (acho eu, para já vai ser assim)

Quanto à API do SO ainda não estou bem decidido, de como vou fazer... Vou dar a ideia que tenho para já: a minha linguagem vai ter aquela funcionalidade que tem a linguagem C, o include; ou seja para uma pessoa criar uma janela basta incluir o ficheiro "janela" e assim basta dizer "criar janela main = x,y". E também para outras coisas que normalmente todos SO's tem na sua API, o básico, claro.

Acho que fui mais especifico, mas podem perguntar na mesma, ou se derem sugestões, ainda melhor!

E agradeço pela vossas opiniões! :D

PS: link corrigido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpa, mas acho que não sabes sequer o que estás a tentar fazer... :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpa, mas acho que não sabes sequer o que estás a tentar fazer... :D

Porque dizes isso? Posso não saber la muito bem, mas sei como fazer basicamente... Claro que com este projecto é também para eu aprender... Ao longo do tempo vou aprendendo mais...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque dizes isso? Posso não saber la muito bem, mas sei como fazer basicamente... Claro que com este projecto é também para eu aprender... Ao longo do tempo vou aprendendo mais...

Porque segundo o post o objectivo é fazer um sistema operativo num PC "híbrido". Mas o que tu estás a fazer é uma shell, não é um sistema operativo. Afinal o que estás a tentar construir? Se explicares melhor talvez consiga entender...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque segundo o post o objectivo é fazer um sistema operativo num PC "híbrido". Mas o que tu estás a fazer é uma shell, não é um sistema operativo. Afinal o que estás a tentar construir? Se explicares melhor talvez consiga entender...

Como ainda sou novo no Java vou fazer isto, para ir treinando e aprender melhor... e com isto depois de a linha de comandos estiver +- funcional, vou colocar na linha de comandos o interpretador... depois numa fase inicial do desenvolvimento da linguagem só vai poder fazer coisas simples, então só vai ser executado na linha de comandos os programas (como no MSDos, tinhas de instalar-lo e depois é que podias colocar os programas... Lotus 1-2-3, aqueles joguinhos Retro e ainda o Windows 3.1), depois de estar com mais funcionalidades o interpretador, colocarei tipo uma "API" para fazer em modo gráfico (estou a pensar em usar o JavaFX, acho que é o futuro de tudo o que tem a ver com multimédia), e ai é que irei criar o SO.

Isto vai ser tipo de quando tinha-mos pc's com Win 3.1, 1º entramos no MSDos em que poderíamos correr programas em DOS, ou escrever "win" e entravas no Win 3.1.

Eu pelo menos ainda usei o Win 3.1 e sei como era.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que tu queres criar não é um SO, é um toolkit gráfico baseado em Java, parece-me a mim. Ou seja, isso vai correr sobre um SO já existente, e não sobre o hardware directamente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que tu queres criar não é um SO, é um toolkit gráfico baseado em Java, parece-me a mim. Ou seja, isso vai correr sobre um SO já existente, e não sobre o hardware directamente.

Posso dizer que é mais ou menos isso.. não é bem um SO verdadeiro, é mais tipo o eyeOS http://en.wikipedia.org/wiki/Eyeos mas não na web.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
E o SO vai ser escrito nessa linguagem que vou criar (acho eu, para já vai ser assim)

Tu não vais criar uma linguagem para depois implementares um SO nela. Já reparaste na quantidade de sítios em que isso pode falhar? Já reparaste que correr o risco de desenhares uma linguagem que não seja adequada ao desenvolvimento de sistemas operativos.

Primeiro, tens de saber o que é um SO. Um SO não é uma linha de comandos, nem é um interface gráfico, nem é um emulador (seja híbrido ou seja o que for).

Sugiro que te concentres em alguma coisa mais terra-a-terra. Por exemplo, podes tentar de facto criar uma linguagem de programação símples, e depois implementá-la numa shell de linha de comandos.

Podes também implementar o interpretador/shell em Java, se quiseres (aconselho). Mas não utilizes uma interface gráfica...

Ah... e não escrevas software proprietário, please.

JJ

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tu não vais criar uma linguagem para depois implementares um SO nela. Já reparaste na quantidade de sítios em que isso pode falhar? Já reparaste que correr o risco de desenhares uma linguagem que não seja adequada ao desenvolvimento de sistemas operativos.

Primeiro, tens de saber o que é um SO. Um SO não é uma linha de comandos, nem é um interface gráfico, nem é um emulador (seja híbrido ou seja o que for).

Sim eu sei desse risco, mas tenho algumas noções de um SO, mas também isto nao vai ser um SO mesmo. Porque para já vai correr por cima de outro Sistema Operativo, e não vou estar a criar um SO que tem o seu sistema de ficheiros, drivers, kernel, etc... Digamos que será uma pequena brincadeira que irei fazer.

Podes também implementar o interpretador/shell em Java, se quiseres (aconselho). Mas não utilizes uma interface gráfica...

O que é isso? Estas a te referir ao executar programas em Java através do CMD (linha de comandos do windows)?

Ah... e não escrevas software proprietário, please.

Quanto a linguagem que irei criar, isso é certamente em código livre, já que a principio (e do que já foi falado) será interpretado directamente da linha de código, logo que obrigatoriamente será OpenSource.

Quanto ao programa em si escrito em Java (Shell, interpretador) ainda vou pensar em ser OpenSource, mas para já fica assim.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

NOVA Versão: 0.0.2 - Build 13

Ver detalhes do programa

Change log:

*** 0.0.2 BUILD 13 *** 9-Mar-2009

NOVO - [CommandLineInterpreter](cls) Comando CLS, limpa o conteúdo da linha de comandos

NOVO - [CommandLineInterpreter](mkdir) Comando MKDIR, cria uma pasta na directório corrente

NOVO - [CommandLineInterpreter](splitDir) Separa o caminho por pastas

NOVO - [CommandLineInterpreter](verfDisco) Verifica se o disco existe

NOVO - [CommandLineInterpreter](removeDoisPontos) Remove os [:] do caminho

NOVO - [CommandLineInterpreter](exit) Comando EXIT, termina a linha de comandos

MELHORADO - [CommandLine] Caratere alterado de ">" para "]"

MELHORADO - [CommandLineInterpreter](dir) listagem do directório mais organizado, mostrando o tipo, tamanho do ficheiro e numero de ficheiros

MELHORADO - [CommandLineWindow] depois de introduzido o comando a caixa de texto é limpa

MELHORADO - [CommandLineInterpreter](getCommand) pequenos erros corrigidos

MELHORADO - [CommandLineInterpreter](time) Alterado de 06-Mar-2009 para 06-03-2009

MELHORADO - [CommandLineInterpreter](startDir) Melhorada a detecção das drives

MELHORADO - [CommandLineMain](start) Dá o foco na caixa de texto no arranque

MELHORADO - [CommandLineWindow] Dá o foco na caixa de texto depois de introduzido um comando

MELHORADO - [CommandLineInterpreter](cd) mudança de directório com mais opções

DOWNLOAD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu para construir uma casa não vou começar pelo telhado, pois não?

Não, mas é isso que estás a fazer.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, mas é isso que estás a fazer.

O que estou a fazer é começar pelo mais simples.

Funcionalidades/objectivos deste projecto:

    * Criar uma Linha de comandos, totalmente funcional (feito alguma parte)

    * Criar uma linguagem de programação, para a Linha de comandos interpretar (nada feito)

    * Criar programas adicionais à Linha de comandos (nada feito)

    * Criar o Sistema Operativo (nada feito)

Citação de uma resposta anteiror:

Como ainda sou novo no Java vou fazer isto, para ir treinando e aprender melhor... e com isto depois de a linha de comandos estiver +- funcional, vou colocar na linha de comandos o interpretador... depois numa fase inicial do desenvolvimento da linguagem só vai poder fazer coisas simples, então só vai ser executado na linha de comandos os programas (como no MSDos, tinhas de instalar-lo e depois é que podias colocar os programas... Lotus 1-2-3, aqueles joguinhos Retro e ainda o Windows 3.1), depois de estar com mais funcionalidades o interpretador, colocarei tipo uma "API" para fazer em modo gráfico (estou a pensar em usar o JavaFX, acho que é o futuro de tudo o que tem a ver com multimédia), e ai é que irei criar o SO.

Isto vai ser tipo de quando tinha-mos pc's com Win 3.1, 1º entramos no MSDos em que poderíamos correr programas em DOS, ou escrever "win" e entravas no Win 3.1.

Eu pelo menos ainda usei o Win 3.1 e sei como era.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu para construir uma casa não vou começar pelo telhado, pois não?

Mas é mesmo isso que estás a fazer! :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas é mesmo isso que estás a fazer! :P

O que estou a fazer é começar pelo mais simples.  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Não, mas é isso que estás a fazer.

O problema é que ele está já a ligar os diversos "passos" num projecto único, sem saber muito bem o que é que quer no fim.

A meu ver, um SO pode ser desenvolvido aos bocados. No entanto, é aconselhável que a pessoa tenha uma boa noção do que é que quer ter no fim, tenha muita capacidade de interesse (especialmente se houver muitos "bocados"), e planeie bem as coisas (ou então que pegue em standards já estabelecidos, como por exemplo o GNU pegou no Unix). Caso contrário, provavelmente vai chateado que nem um perú em vésperas de Natal antes de chegar a ter alguma coisa que se veja.

Outra hipótese é a pessoa ir-se metendo em vários mini-projectos interessantes em si mesmos (por exemplo, um compilador, um ambiente gráfico, uma linguagem de programação, uma shell, um jogo, um bom editor de texto, whatever), sem relacionar as coisas umas com as outras, e mais tarde escrever um kernel, para onde depois poderá portar os seus projectos anteriores.

JJ

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora