Live data from Hacker News

Unix in the Browser Tab

browsix.org

11–20 of 79 posts

Re: Unix in the Browser Tab

#12

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)

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.

Re: Unix in the Browser Tab

#13

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)

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.

Re: Unix in the Browser Tab

#14

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)

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!

Re: Unix in the Browser Tab

#15

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)

https://guacamole.apache.org/

If I understood you correctly.

Re: Unix in the Browser Tab

#16
post #5

Based on how we see so many 'OS in the Browser' links here on HN, am I right to be underwhelmed by this one?

This is different. What you usually see is mock-ups of graphical shells. This is a kernel.

Maybe I misunderstand, but didn't JSLinux[1][2] do system emulation running a proper kernel basically since 2012?

1: http://jslinux.org/

2: https://bellard.org/jslinux/tech.html

Re: Unix in the Browser Tab

#17
Wow I'm literally implementing this right now!!

I was stuck at parents for xmas and I picked Tannenbaum “distributed systems” and “Modern operating systems”, which gave me an idea of running a "kernel" on a browser. It was more of an academic exercise than anything else, but my intention was to have a the following:

Being able to unload and reload javascript. The initial idea was to write the website inside the website, but at the core level it requires having something akin to process isolation for javascript. It also requires the dom to be isolated.

Implementing 9p2000, and share resources across browsers. I’ve been reading about the ideas of plan 9 and i would like to implement something that allows me to connect point to point to other browsers and mount their FS into mine so we can share resources.

One of the cool results that I got was that since the dom is not directly changed (each process/worker has its own partial dom and every time that it changes it a delta is sent back to the main thread for sync) it allows javascript to be running somewhere else (another browser, back end server) and sync’ed back (much like vadaain, but more agnostic).

Most of the code was inspired by the linux kernel (which gave me a reason to go learn its internals) and is kinda nasty at some points but is written in typescript as some of you have already mentioned. Someone might find it interesting even if just for the educational purpose of it

https://github.com/intigos/possimpible

Re: Unix in the Browser Tab

#18
post #7

2 questions: * why? * security?

From the introduction "Compiling programs into JavaScript, asm.js, or WebAssembly with tools like Emscripten or GopherJS isn't enough to successfully run many programs client-side" it seems like the intent is to be able to port "Unmodified C, C++, Go, and Node.js programs" to the browser.

Big use case for this I would imagine is games

Re: Unix in the Browser Tab

#19

Based on how we see so many 'OS in the Browser' links here on HN, am I right to be underwhelmed by this one?

AFAICT, Browsix is meant to work more like Wine than like jslinux. The goal is to allow devs to deploy native executables to the web browser more seamlessly because it provides ways for standard javascript to interact with the program. JSLinux is a full system emulator and thus has more overhead and doesn't have a method to cleanly interact with the world outside of the emulator.

The latex editor example is the one that best demonstrates the concept. It is a standard JS frontend that is invoking an unmodified pdflatex for rendering. In all other 'OS in the Browser' projects I'm aware of it would have to be a desktop application that just happens to be getting rendered in the browser. With plain emscripten or webassembly you would need to modify pdflatex to support a method to accept jobs and return results while not relying on any OS level features.

Post reply on HN