I swear to God, the next time I see someone declaring that they’ve written a new operating system in a browser, or (worse) that the browser somehow _is_ the operating system they’re writing applications on, I’m going to find a rock, tie a typewritten “e-mail” to it with a piece of string (“XML”), declare the rock a “TCP/IP packet,” and throw it through the moron’s window (“port”).
I’ve lived through this already. Except that the “operating systems” in question weren’t browsers, they were implementations of BASIC on 8-bit microcomputers. Remember the days of chained-together BASIC programs that used PEEK and POKE and CALL to bend the system to their will? People did write very large applications in BASIC for systems like the Apple ][, the Atari, and IBM-PC: Accounting packages, point-of-sale systems, video games (lots of those), you name it, and every one I’ve seen the source to was an unmaintainable hash. It’s what you get when you hack in BASIC.
It’s important to remember how far up the food chain you are. Why? So when someone comes to you and complains that your “scheduler” is O(N**2) and that the “context switch” overhead is on the order of a millisecond, that you have someone else to blame. Because if you’re on the hook for that, and you think the primitives you’re working with are at the level of an OS, you’re pretty much sunk.
Declaring that a minnow is a whale doesn’t make it so. So, fine: You can call your browser an OS if I can call my Emacs session, well, anything I please.