- OS.js é uma plataforma JavaScript de código aberto para criar um ambiente no estilo desktop dentro do navegador
- Inclui um gerenciador de janelas para posicionar e manipular janelas, permitindo organizar apps web como em um desktop
- Também oferece uma API de aplicações e um toolkit de GUI para o desenvolvimento de aplicações
- Os recursos relacionados a arquivos são estruturados para serem tratados por meio de uma abstração de sistema de arquivos
- Reúne gerenciamento de janelas, desenvolvimento de apps, GUI e manipulação de arquivos em uma única plataforma, servindo como ponto de partida para implementar um web desktop
Componentes de web desktop oferecidos pelo OS.js
- OS.js é uma plataforma de web desktop baseada em JavaScript de código aberto
-
UI de desktop
- Inclui um gerenciador de janelas, dando suporte à composição de uma UI no estilo desktop
-
Desenvolvimento de aplicações
- Oferece uma API de aplicações e um toolkit de GUI, trazendo os elementos básicos necessários para desenvolver apps para web desktop
-
Tratamento de arquivos
- Recursos relacionados a arquivos podem ser tratados por meio de uma abstração de sistema de arquivos
1 comentários
Opiniões no Hacker News
À parte, https://windows93.net/ é, até agora, o conceito de desktop na web de que mais gostei
Windows 96 também é bem legal
https://windows96.net/
Sistemas operacionais de internet são um nicho que eu acompanho com interesse, então fiz uma lista no meu site. Pretendo adicionar o OS.js em breve
Se quiser ver, está aqui:
https://www.whoisthisjoker.com/jokerlinks/virtualoperatingsy...
[edição] Parece que o Hacker News não suporta Markdown, então ajustei para ficar mais legível
É irônico aparecer Safari is teh new Internet Explorer no “log de boot”. O Safari é um dos dois últimos pilares contra o domínio absoluto do Chrome, enquanto o Google tenta empurrar o WEI à força
A web aberta está morrendo, e acho que mensagens assim contribuem para essa morte
Na mesma linha, o melhor é o Windows RG (really good edition): https://www.newgrounds.com/portal/view/27549
É melhor não clicar naquele ícone do hamster com o volume dos alto-falantes em 100% :S
Engraçado, especialmente para quem já usou o Windows 95
Depois de ver várias coisas assim aparecendo recentemente no HN, escrevi um post [1] sobre a volta da popularidade dos desktops na web. O OS.js foi um dos primeiros projetos que eu acompanhava há alguns anos, e é muito bem projetado e documentado
A interface sempre me lembrava as distros que usavam GNOME 2 em meados dos anos 2000, e eu gostava disso porque era diferente da maioria dos desktops web nostálgicos, que usam temas de Windows 9x
[1] https://system31.simone.computer/blog/desktops-zip
O EyeOS já fazia isso na virada do milênio:
https://en.wikipedia.org/wiki/EyeOS
O primeiro lançamento do OS.js foi mais de 10 anos depois, por volta de 2015
É engraçado que isso seja mais rápido e responsivo do que o meu gerenciador de janelas do desktop do Windows de verdade. Especialmente em coisas como a velocidade para abrir apps
É estranho o Windows 11 ser tão lento até em hardware moderno. Mesmo com uma CPU recente e 16 GB de RAM, ele leva bastante tempo para carregar certas coisas, e parece muito lerdo comparado a um MacBook Air de preço parecido
É difícil imaginar que uma diferença desse tamanho seja por causa do hardware. O M2 é rápido, mas a 12ª geração da Intel também não é muito mais lenta; só consome mais energia
Então isso quer dizer que o problema é de software. É triste, considerando como o kernel da linhagem NT era bom, e o que fizeram em cima dele foi um sistema operacional cada vez pior. A queda da participação no mercado de desktops de quase 100% para algo em torno de 60% hoje foi autoinfligida, e parece só uma questão de tempo até seguir o caminho da AOL ou do Yahoo
Para testar essa afirmação, arrastei o navegador Brave, e meu PC inteiro travou por 2 segundos em um 5900X de 12 núcleos/24 threads
Parece que os blocos do Tetris não estão alinhados à grade de pixels do canvas, causando antialiasing desnecessário. Por isso as bordas dos blocos ficam sempre borradas
Para corrigir, bastaria adicionar um app de “pano de limpeza” que o usuário pudesse arrastar sobre o canvas do Tetris, movendo os blocos 0,5 pixel na horizontal
Melhor ainda seria mover apenas os blocos sobrepostos pelo pano de limpeza :)
Até lá, dá para calcular automaticamente o offset correto com JavaScript
Achei que tudo seria renderizado em canvas, mas não era. Ele usa HTML e só usa canvas em partes como o Paint
As pessoas subestimam as coisas boas que o CSS oferece para criar interfaces
Se você fizer tudo em canvas, precisa reimplementar coisas como flexbox para centralizar, alinhar, esticar e animar textos de ícones, caixas, botões etc.
Já que existe um motor de layout já implementado e altamente otimizado em praticamente todas as plataformas, por que não simplesmente ficar no HTML?
De fato, dá para fazer tudo só com HTML. Meu ambiente de desktop usa HTML semântico sempre que possível e CSS moderno, como grid, para a grade de ícones
Ainda assim, talvez algum dia eu considere uma reescrita completa em WebAssembly fazendo tudo em canvas. Isso facilitaria muito o porte para outras plataformas e talvez aumentasse a possibilidade de sair do navegador algum dia
Essa foi a primeira coisa que fui conferir também. Foi bem legal ver que até os sliders de entrada de cor e os inputs de intervalo eram feitos em HTML
Já criei um conceito parecido de acesso privado pela internet a sistemas de arquivos. Está aqui: https://github.com/prettydiff/share-file-systems
O gerenciamento de janelas e de estado pode ser visto como demo no meu site pessoal: https://prettydiff.com
Então criamos mais um sistema operacional (um compilador) em cima do Windows, que é o nosso sistema operacional em cima do navegador web, que é o nosso sistema operacional em cima do OS.js
Estranhamente, coisas assim dão vontade de criar ou experimentar, mas ao mesmo tempo não consigo pensar em casos de uso reais
Pense em comprar um notebook novo e não precisar instalar nada. Todos os programas, arquivos e configurações estão na nuvem, e os programas podem abrir arquivos diretamente do armazenamento em nuvem, sem baixá-los primeiro. Assim, não é preciso armazenar arquivos e documentos do usuário no dispositivo
Se o dispositivo só executar esse desktop, esse tipo de sistema operacional de internet pode funcionar melhor em um dispositivo estilo Chromebook, com armazenamento mínimo apenas para dados do sistema. Dá para bloqueá-lo para executar só o desktop de internet e salvar toda a configuração na nuvem, de modo que, ao fazer login, tudo seja configurado automaticamente. Assim, basta pegar o hardware e começar a usar, sem mexer com configuração, instalação, drivers e afins
Não serve para todos os usuários nem para todas as situações, mas pode ser muito útil em alguns cenários
O caso de uso é voltar ao terminal burro. Muitas empresas já usam desktop remoto e VPN o máximo possível, mas muitas outras gostariam de entregar um dispositivo aos funcionários e rodar o sistema operacional inteiro remotamente, transformando o dispositivo praticamente em um terminal
Assim, 100% dos dados gerados pelo funcionário permanecem dentro dos servidores e da rede da organização. Isso não significa que seja uma boa experiência para o funcionário, mas é claramente um caso de uso
Lembrei do Buddy Pond https://buddypond.com/
No celular, não dava para jogar Tetris porque era preciso pressionar a barra de espaço para começar
Por um lado, acho essas coisas legais. Por que fizeram? Provavelmente porque podiam fazer
Por outro, ainda fico me perguntando por que fazê-las