- english
- português
Scrinux OS - A Linux Clone Written in JavaScript
Scrinux OS - Um clone do Linux escrito em JavaScript
- Why write a OS in JS ?
-
Because this can be the future of web.
We are in 2011. Think in 2015. Maybe everthing will be in the cloud. Not only your data (music, documents), but your processes too! With Scrinux you will can hibernate your "PC" in a browser in your house, and continue working in your session in another browser at your work. - Because Chromebooks and Chrome OS can reach the world, so we will need more things running in a browser, like a virtual filesystem (which scrinux have) and a process scheduler (which scrinux almost have)
- Because JS is the language of web and everthing is going to web. Also, there are a lot of people making websites and interfaces for them. So, why not use these skills to make interface of an operational system?
-
Because this can be the future of web.
- Which vantages/disadvantages?
-
VANTAGES comparing to a standard operational system:
- Its easier to customize (just html/css/js)
- Its easier to develop (don't worry with drivers)
- Its easier to test (just need a firebug)
- Its easier to integrate with web pages, because is a web page too. -
DISADVANTAGES comparing to a standard operational system:
- Its slower
- Can't be real multithread and multicore (at least in current browsers)
- Don't have full access to machine (how to use a usb device, like a scanner?)
- Can't use full hard disk. Today this limit is 5MB do Firefox and 2.5MB to Chrome, using HTML5 localStorage. -
VANTAGES comparing to the Javascript PC Emulator, by Fabrice Bellard:
- Its faster because scrinux don't need to emulate a PC to understand binary code. -
DISADVANTAGES comparing to the Javascript PC Emulator, by Fabrice Bellard:
- You can't import existing applications. In Javascript PC Emulator you just need to compile your *.c code to reuse.
-
VANTAGES comparing to a standard operational system:
- It isn't a OS really! This is fake!
- Yes, you're right. Using formal definition, scrinux is NOT a OS. Who cares? :)
- What need to be done?
- Improve Scrinux API and Scrinux Command Lines
- Make processes to be serialized and restored when user reopen browser
- Sync user data with a server: the current version just stores information in local machine.
- Create a graphical mode, like KDE or GNOME. This graphical mode will be made using HTML default, SVG, canvas or WebGL. I don't know yet.
-
Create MANY applications to this graphical mode, like:
- A File System Browser, to user see his files (stored in cache local or in the cloud)
- A Web Browser (each tab is a iframe, easy to do this).
- Games, with WebGL, for instance.
- Which requirements to run this?
- To run this demo, you need Chrome 10+, FF3.6+ or IE8+.
- I like it! How can I help?
- Wow thanks. I will need a lot of help. I created a repository in git hub. Take a look there.
- Is there some similar work?
- Any thanks?
- Thanks to you, to read until here (no scrolling, lol).
- Fabrice Bellard, for his impressive Emulator.
- John Resing, for jQuery
- Porque escrever um SO em JS?
-
Porque isso pode ser o futuro da web.
Estamos em 2011. Pense em 2015. Talvez tudo estará na nuvem. Não apenas seus dados (músicas, documentos), mas seu processos também! Com Scrinux você poderá hibernar seu "PC" em um navegador na sua casa, e continuar trabalhando na mesma sessão em outro navegador em seu trabalho, por exemplo. - Porque os Chromebooks e o Chrome OS podem ter alcance global, e por isso iremos precisar de mais coisas rodando num navegador, como um sistema de arquivos virtual (o que scrinux tem) e um gerenciador de processos (que o scrinux quase tem)
- Porque JS é a linguagem da web e tudo está indo para web. Além disso, existem muitas pessoas fazendo sites e interfaces para eles. Então, porque não usar estas habilidades para fazer a interface de um sistema operacional?
-
Porque isso pode ser o futuro da web.
- Quais as vantagens e disvantagens disso?
-
VANTAGENS comparando com um sistema operacional tradicional:
- É mais fácil de personalizar (precisa apenas de html/css/js)
- É mais fácil de desenvolver (não há a preocupação com implementação de drivers, por exemplo)
- É mais fácil de testar (precisa apenas do firebug)
- É mais fácil de integrar com paginas web, já que o SO já é uma página. -
DESVANTAGENS comparando com um sistema operacional tradicional:
- É mais lento.
- Não pode ser multithread real nem multicore (pelo menos nos browsers de hoje)
- Não tem acesso total aos recursos da máquina. (como usar um dispositivo usb, como um scanner?)
- Não pode usar o HD inteiro. Atualmente o limite é de 5MB para o Firefox e 2.5MB para Chrome, utilizando o localStorage do HTML5. -
VANTAGENS comparando com o Javascript PC Emulator, de Fabrice Bellard:
- É mais rápido, pois o scrinux não precisa emular um PC para entender código binário. -
DESVANTAGENS comparando com o Javascript PC Emulator, de Fabrice Bellard:
- Você não pode importar aplicações existentes. No emulador é necessário apenas compilar o código-fonte *.c e reusar.
-
VANTAGENS comparando com um sistema operacional tradicional:
- Isso não é realmente um SO! Isso é uma farsa!
- Sim, você tá certo. Por qualquer definição formal, scrinux NÃO é um SO. E daí? :)
- O que ainda precisa ser feito?
- Melhorar a API do Scrinux e programas via linha de comando.
- Fazer os processos serem serializados e restaurados ao reabrir o browser.
- Sincronizar os dados do usuário com um servidor: a versão atual apenas armazena os dados na máquina local.
- Criar um modo gráfico, como KDE ou GNOME. Este modo gráfico será feito com HTML simples, SVN, canvas default ou WebGL. Ainda não sei.
-
Criar diversas aplicações para esta interface gráfica, como:
- Um navegador de sistema de arquivos, para que o usuário possa ver seus arquivos (armazenados no cache local e/ou na nuvem)
- Um navegador web (cada aba do navegador seria um iframe, simples de ser feito).
- Jogos, usando WebGL, por exemplo.
- Quais os requisitos para rodar isso?
- Para executar este demo, é necessário ter Chrome 10+, FF3.6+ or IE8+.
- Curti! Como posso ajudar?
- Opa, legal. Vou precisar de bastate ajuda, hehe. Criei um repositório no git hub. Dá uma olhada lá.
- Há algum trabalho parecido por aí?
- Algum agradecimento?
- A você, por ter lido até aqui (descendo a rodinha do mouse não vale, hehe).
- A Fabrice Bellard, por seu impressionante emulador.
- A John Resing, pelo jQuery