Hacker News new | ask | show | jobs
by btbuildem 1628 days ago
Why not "stream" an image of an actual OS (say, linux) to the browser? Has anyone pulled that off yet? (Kind of like rendering services for example, the client is just for user interaction, everything else is streamed from server where all the computation happens)
8 comments

There have been browser based Remote Desktop clients for a long time (becoming usable around the time Google asked Citrix to find a way to “run” Windows apps on Chrome OS). I’m not quite sure if that’s what you mean?

Guacamole is a good open source one.

I have a demo of this here [0] (all the software is in /opt/appfs/rkeene.org). It's using GoTTY [1] for presenting a Linux pty and terminal to your browser, and a simple sandbox.

[0] https://rkeene.dev/js-repl/?arg=bash

[1] https://github.com/yudai/gotty

https://guacamole.apache.org/

If I understood you correctly.

Xpra (see https://github.com/Xpra-org/xpra-html5) is very similar to Guacomole, except the backend Xpra server is written in Python (and Cython), whereas Guacomole's server is written in Java and C. Xpra native frontends, but also an html5 frontend that you can embed in web applications. For example, CoCalc provides a modified version of that html5 frontend to serve graphical X11 apps: https://cocalc.com/features/x11
Thanks! Checking it out
Both AWS and Azure provides this as a service with either Windows or Linux.

There's also a relatively new service called Mighty App, which streams just a browser with the idea that you can manage 100's of tabs with all the browser processing being done on the remote server.

Yes, I'm aware of this one, but it is using a cross-compiled TinyEMU, so it's a level of emulation away from what this is doing. https://bellard.org/jslinux/

[edit] Oh, I guess this isn't really what you were looking for. Whoops!

I really want to get this to work well, but haven't been able to. I have a small use case of customizing the image it presents and letting users be able to navigate/change/fix things on it. I've tried using containers and even VMs, but those are too heavy for what I need to do and I don't want to deal with snapshots to revert the image. Basically reloading the web page should do it.

Wish I could get jslinux to work for what I want with this!

https://copy.sh/v86/ is more modern but similar in spirit to jslinux. The archlinux demo at https://copy.sh/v86/ is particularly impressive.
Thanks for that! I will give that one a try.
There’s web vnc clients, so technically this shouldn’t be much problem. It’s much more a wrap it all together kind of thing.

I really prefer it being it local though.

gaikai was doing this in the early 2010s for zero-day game release demos. java in the browser, streaming video and audio from servers, relaying back game input events.
Before Gaikai was OnLive[1] which was a full platform with a game store and libraries and the ability to seamlessly and instantly spectate others' games. It worked fairly well if you had a great Internet connection. Of course nowadays Stadia does the same thing at presumably much lower latencies and higher quality.

[1] https://en.wikipedia.org/wiki/OnLive

EDIT: Technically Gaikai was founded a year before OnLive, but at the time OnLive was more accessible as Gaikai remained in a limited release up until Sony bought them to use for Playstation Now

Already done, X Windows, RDP, VNC,....