Java - Até aonde pode chegar? Qual é o limite?

28 respostas
black_fire

Pessoal, depois de um bate papo com o pessoal no “warm-up Abaporu”, ficou uma pergunta que não quer calar… :roll:

:?: Até aonde pode-se chegar com o Java? Qual é o limite da linguagem?

:arrow: Tenho algumas pretenções com a linguagem. Porém pelo que vejo é meio complicado trabalhar com hardware e java… e se eu usar o JNI a multiplataforma vai pro saco…

:?: Seria possivel, por exemplo, criar um Driver, ou até mesmo (não riam por favor) quem sabe criar um sistema operacional com java puro?

Não levem muito a serio o que estiver desta linha para baixo… Foi um momento de delírio pessoal…


Sonhando muito muito alto… (para ser sincero exagerando bastate)…
Imaginem um sistema operacional onde o Swing fosse carregado como uma API e a JM fosse o seu sistema operacional? (Depois dessa só tomando medicação muit forte pra cabeça)

Valeu pessoal, um abraço…

28 Respostas

Daniel_Quirino_Olive

Teoricamente sim, desde que alguém criasse alguma VM em hardware (que é tecnicamente possível), por exemplo. Mas acho que é inviável economicamente um SO para PCs feito em Java.

D

Hmmm… não é necessário uma VM em hardware. Mas um bootstrap que carregue a VM em memória, e a partir daí carregue o ambiente do SO. Só não consigo imaginar qual seria a dinâmica com o sistema de janelas subjacente (para o Swing) uma vez que não há. Isso deveria levar ao desenvolvimento de todo esse sistema e… afe, cruz!

Shelson

Sistema Operacional Java:

http://wwws.sun.com/software/javadesktopsystem/

urubatan

o java desktop system não é um sistema operacional java,
é um reempacotamento de um linux, com o gnome desktop pre configurado e java ja instalado nele e tudo integrado (não testei ainda, mas tenho vontade de testar o sistema, mas eles não disponibilizaram nem um demo :frowning: )

Shelson

huuuuuuuuuummmmmmmm …

mas vai ser comercializado como sendo um produto Sun, é isso mesmo ?

e futuramente … quem sabe … open source agora … o q será depois com as notícias de q a Sun estah mal das pernas ? tem alguma coisa por aih … vamos conferir !

cv1

Perfeitamente… poderiamos ter uma JVM em C/C++ que fosse “bootavel” e oferecesse camadas de abstracao um pouco menos “abstratas” do hardware - te deixando, por exemplo, gerenciar interrupcoes de I/O diretamente em Java.

Existem alguns projetos de SOs feitos em Java, e eu ate cheguei a dar uma olhada no codigo do JOS, e dos drivers pra HD IDE dele. O grande problema, pra um sistema operacional desses, eh implementar uma JVM decente - e tem que ser muito boa pra se tornar algo serio - mantendo o sistema todo leve e portatil.

Nao eh esse bicho de sete cabecas todo - bastaria usar uma implementacao, por exemplo, de um servidor X em Java, coisa que ja existe, pra prover o subsistema de janelas. Tem coisas bem piores de se implementar, como, por exemplo, o gerenciamento de processos e o mecanismo de seguranca :smiley:

louds

Java nunca vai entrar dentro de um SO porque não é uma linguagem que suporte programação real-time, o RT-java alivia muito isso, mais ainda assim tem seus problemas.

Gerenciamento de processos não é 1 bixo de 7 cabeças, segurança não é dificil se voce usar o modelo de acls posix…

Bani

O sistema operacional “90%” em Java que eu conheço foi feito para rodar coisas Java.
É o SavaJe, que roda em celulares. [size=“9”]Ou melhor, em celular. Acho que só tem um modelo com as configurações mínimas para ele.[/size]

Shelson

falando um poukinho sobre j2me. vc conhece algum site sobre desenvolvimento java para Picket PC com Ruindows ? :shock:

cv1

Hmmm… e pq precisariamos de programacao realtime pra um SO em Java? No escalonador de processos? Talvez isso possa ser algo isolado a ponto de poder ser escrito em C, mesmo, nao? :slight_smile:

Daniel_Quirino_Olive

Hmmmm, pode ser… uma extensão da VM.

black_fire

Então seria mais ou menos assim:

:arrow: Teria que criar uma VM para fazer o trabalho sujo, tipo, boot, formatar, criar partições, acessar disquetes e por ai vai…

:arrow: Depois todas as apis da interface gráfica e o restante seria em java puro? Certo?

Então vou ser um pouco mais real. Seguindo o contexto já temos o Linux que é Open Source, certo? Haveria então uma possibilidade de alterar o Kernel dele de foma fosse um espécie de JavaLinux de verdade?.. Ficaria super leve para máquinas que rodem apenas aplicações… Pq nesse casso teria apenas o Java e mais nada… (pq alguma coisa me diz que eu viajei mais ainda…)

Um abarço galera…

Daniel_Quirino_Olive

Kernel leve por kernel leve, melhor usar uma forma modificada no Minix, que é mais simples mas bem eficiente. Além do mais, tem um livro do Tanenbaum ensinando a montar um sistema operacional usando este kernel.

Daniel_Quirino_Olive

Putz, antes que alguém aí comece a xingar a minha mãe ou a fazer voodoo contra mim, melhor não perder tempo e ler a velha discussão Tanenbaum vs. Torvalds: http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html.

louds

“cv”:

Hmmm… e pq precisariamos de programacao realtime pra um SO em Java? No escalonador de processos? Talvez isso possa ser algo isolado a ponto de poder ser escrito em C, mesmo, nao? :)

Porque um kernel precisa de comportamento razoavelmente deterministico e java não possui isso. Voce não vai querer que o GC rode dando o elevador de IO tiver trabalho para fazer, por exemplo.
Realtime? Bom, voce precisa que o kernel opere em realtime quando for chamar drivers, tratar interrupções, executar o scheduler, tratar page-faults e um monte de outras operações que precisam operar em 1 intervalo máximo de tempo senão o sistema todo vai ser 1 carroça.
Outra coisa são restrições quanto ao uso de memoria; voce sabe qual o tamanho da pilha das kernel-threads do win2k? 8k.

Provavelmente se tivesse uma forma de desabilitar o GC, uma interface com o alocador da VM e não existisse background compilation, talvez seja viavel.

Daniel, o minix é 1 SO educacional, ele é lento pacas e lotado de restrições, como limite de memoria detectada, número de processos (32), não tem threads e por ai vai.

Daniel_Quirino_Olive

É, eu sei, Louds. Eu já o instalei numa máquina para ver como ele é e ele é bem restrito mesmo. Mas, como eu disse, se o modificássemos para que ele ficasse um pouquinho mais decente, seria um kernel interessante para esta idéia de SO em Java.

louds

Como você mesmo citou a discução do Torvalds com o Tannenbaun, eu nem vou falar mais nada.

Pessoalmente eu sou muito mais usar 1 SO de verdade, como um BSD doque partir do zero com uma tranqueira

black_fire

Tbm acho, porém creio que um sitema próprio para java, em uma estação de trabalho, (um caixa de supermerdado por exemplo) ficaria muito mais leve e acabaria com o mito de que o java precisa de “máquinão” pra rodar. Por exemplo tenho aki onde eu trabalho um parque de aproximadamente umas 500 maquina (td entre PII300 e K6II500).
:arrow: Um SO destes com um CD de instalação do tipo ponha no CD-Rom e esqueça que o resto ele faz sozinho… Faria uma puta economia de hardware e licença… Um sistema bem leve para rodar apenas applicações em java e um browser creio que um PII 300 com 32 de Ram seria mais que suficiente…

cv1

Tah, tah, mas ateh agora ninguem perguntou: qual a vantagem de se escrever um SO desses, ao inves de embutir uma JVM no sistema operacional, como o que foi feito pela Apple no MacOS X? :smiley:

Pra todos os usos que foram falados aqui, ja existe Linux, *BSD, Windows e td mais :wink:

louds

Hmm, ter 1 SO mais seguro e facil de se desenvolver de repente?

Em temos de usabilidade ou performance, não vejo vantagem em relação a simplesmente escrever um driver que ajude uma shared JVM.

black_fire

Puts, cv, vc tá sendo muito radical.

Um SO próprio para java poderia dar de 1000 a zero de performance sobre um sistema que tem um outro monte de parafernalhas inúteis para uma simples estação de trabalho…

Sem contar na possiblilidade de aproveitar máquinas que não rodariam java (swing) nem em sonho…

Muita gente vai se perguntar. Mas por que desktop, se sua máquina é um lixo use web, roda tudo no servidor?

Um sistema empacodado por exemplo para vender em série…

Sem contar a questão da segurança, aquela máquina ali roda X aplicação, sem web, sem paint, sem paciencia, sem nada só a aplicação…

Seria uma especie de PalmDesktop (essa ultima foi cruel hein…). Não tem nada, só a aplicação… Gravar CD, formatar Diskete, use outro SO… Este é apenas para rodar aplicações Java…

Daniel_Quirino_Olive

Para estas coisas já existe Linux :wink: .
Acho que a idéia de se fazer um SO em Java é só para mostrar ao mundo que é possível. Mas, como o Carlos disse, acho mais conveniente adaptar uma VM ao kernel e mandar ver. Mesmo porque, ficaria mais fácil de se fazer o upgrade do sistema.

Bani

Concordo com o Daniel.

E não vejo nem a necessidade de adaptar a JVM ao kernel. Já fizeram isso e já fizeram até JVM em hardware, mas a melhoria de performance parece nem ter sido significativa a ponto de ter um custo x benefício compensador.

black_fire

Seria uma especie SO Java baseado no linux. Da mesma forma que o Linux é baseado no Unix…
:?: Seria mais ou menos isso?

cv1

A minha ideia de utilidade pra um SO em Java nao seria ter melhoria de performance - alias, isso seria meio dificil de se esperar - mas ter uma facilidade de desenvolvimento e modularidade maiores.

O suporte do Java pra mobilidade de codigo nao existe em nenhuma linguagem comumente usada pra escrever sistemas operacionais, e isso ajudaria horrores a criar sistemas operacionais distribuidos mto bacanas - alguem lembra do plan9? :smiley:

louds

Quer fazer esse SO com linux? bico…
Implementa AWT sobre framebuffer e coloca o seguinte parametro no boot do teu kernel
…/vmlinux init=/bin/java

tirando alguns detalhes que eu omiti, seria basicamente isso
hehehehe

Quando ao plan9, já usei, tirando que suporta quase NENHUM hardware e os comandos vieram direto do SVR4, é muito loco, todos recursos físicos e lógicos da tua máquina ficam disponivel em rede. Isso me lembra o Amoeba, alguem lembra?

CV, uma VM em kernel seria o pepino, melhor simplemente escrever 1 driver que suporte algumas operações que agilize para a JVM.

caiofilipini

Comecei a fazer um trabalho sobre o Amoeba pra facul :lol:
Aliás, se alguém tiver algum material interessante sobre ele, será bem-vindo!

[]'s

louds

Cara, eu tenho pouca familiaridade com SOs distribuidos, o Plan9 brinquei alguns dias apenas, mal brinquei com Inferno. Amoeba já lí alguns artigos, mas nunca tive saco de testar. Leitura? Eu recomendo o livro do Tanebaum 8)

Nessa area o máximo que eu mexi foi com sistemas de SSI, openmosix e compaq ssi, e clustering, beowulf.

Criado 6 de outubro de 2003
Ultima resposta 7 de out. de 2003
Respostas 28
Participantes 9