An operating system for the web
Comments
claudiulodro
gwbas1c
No, in this case the server provides abstractions like a filesystem.
nineteen999
A web browser is a desktop application. Like a video editor or DAW. Or a video game. It runs on top of an operating system. It isn't one. Calling a web browser an OS is like calling Urbit an OS. It's fantasy.
These things are all applications. I don't understand this predilection that webgineers have to overstate the importance of the space they work in and deliberately try to obfuscate common terminology. Just go play with your HTML and JS and let the people who are not afraid of working at the hardware level do their job without trying to encroach on their territory and nomenclature.
guiambros
That's overly reductionist. The OS is an abstraction layer between the hardware and applications, such that you don't need to write everything bare metal (like it happened in the 70's).
In the past (read: 80's and 90's), that mean you'd have applications running on top of your OS, so you could delegate screen, device drivers, I/O, interrupt requests, and everything else to the OS.
Now we're in a different abstraction layer. The browser became your interface to the hardware in many respects. If you're an application developer, you can develop "for the web", instead of targeting each OS individually. And with WebUSB/ WebGPU/ etc, the browser becomes even closer to a real OS.
Now, it's interesting that mobile apps push us back to the 90's model. The promise of "write once/run everywhere" is gone, and you'll not only develop at least 2 separate mobile apps (potentially more -- e.g., tablets, TV, gaming consoles), but also deal with different OS APIs and different AppStore policies.
mid-kid
I'd say the job of an operating system is to host applications, provide interfaces for communication and I/O, and provide access to the hardware. Sound familiar?
(Operating system is a very vaguely defined term)
nineteen999
My desktop applications don't generally break when my network connection does, unlike web applications.
From Wikipedia:
"An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs."
In the case of the web browser, half the application runs on someone else's computer usually far away from the user, and the other half runs in the browser.
The web browser doesn't manage computer hardware and software resources. It doesn't "provide access to the hardware". It can provide access to API's that can leverage the operating systems real hardware interfaces. Like other desktop applications, it only has access to the API's the operating system provides. These are not hardware interfaces, but software interfaces provided by libraries, the real operating system kernel etc.
It's like trying to say a set square is a spirit level just because you can check straight lines with both. Only one of them can tell you if something is level or not.
lomase
An OS is software that manages computer resources.
A webapp uses multiple computing resources.
But the software that gives resoruces to a webapp is not at all like an OS to you.
frou_dh
Not sure about this. Sounds like it's somewhat arbitrarily reframing RPC over HTTP as OS system calls. But maybe I just don't get it.
_akhe
Haha tell this to the gRPC people.
I could see this being cool for decentralization/peer-to-peer. It's essentially HTTP in front of a FS. It could be implemented as anything from a blockchain to a NoSQL db to AWS S3.
OP says:
> This was before things like local storage, etc. were available in browsers.
And looking at the repo it's like a decade old. Would be really cool if OP could find a use case and share that - I think that of all libs/frameworks: Show me the thing being made with it.
vaylian
FS = file system?
x3haloed
I don't understand. What's an example of something that could be achieved using a system like this?
gwbas1c
I wrote something based around these concepts in 2008-2010: https://github.com/GWBasic/ObjectCloud
I don't think it "works" in today's world where installed apps on iOS / Android are more common than web applications.
daitangio
Try pigshell, http://pigshell.com/ It is an interesting approach… but it is a bit old project
SahAssar
> I didn’t realize it at the time, but I was beginning to write a filesystem
But it uses nodejs normal fs adapter to talk to the filesystem (or forwards to a GCP bucket). This is no more a filesystem than WebDAV is, which is already standardized and widely supported for the same usecase as JSFS.
> Obviously, other operating systems can run web applications, but this operating system runs them natively.
But does it really? In the proposed model could I run a browser on JS/OS?
The proposal seems to be some combination of a wrapper around nodejs fs module (or the standard GCP storage client), a wrapper around nodejs vm module to eval code, and a arduino sketch that reads/writes GPIO.
Either my reading comprehension is bad or there is not much here.
tazu
The idea is interesting, but a Javascript filesystem sounds awful.
_akhe
It seems great IMO considering the shape of JSON/NoSQL for cache and JavaScript's multi-process quirk that would allow you to do things in the background or multiple things at once on a single thread.
dmd
Why?
gregw2
It might be interesting to contrast with an earlier OS for the web - Sun Microstems Jini.
desktopninja
Like this idea. Reminded me of Aestiva HTML/OS. The Array Desktop (WUI) had, if I recall correctly, a File Manager, Text Editor, IDE, Calendar, and a scheduler.
calvinmorrison
Aestiva, what absolutely slop. In fact its still running our entire business to this day. Its practically an entire ERP, CRM, HR, Timesheey, Billing platform, Reporting engine, etc
Makes me frequently hate my life but its what we got and it'll probably be around until I die
edit: if you are a competent Aestiva programmer, please shoot me an email at calvin@pobox.com
lenerdenator
How does this compare with, say, Plan 9?
zubairq
Interesting. What do you envision as potential use cases for JS OS?
verbalstone
[dead]
Maybe I'm not super clear on the distinction, but isn't a web browser already the operating system for the web? It's the "OS" that runs web applications!