2014-10-28 22:04 GMT-02:00 M Farkas-Dyck <strake...@gmail.com>: > VM is an option, tho a less versatile one. We could use capabilities > where available and VM elsewhere.
Well, that's already more than twice the complexity before it even started to be written. I researched a bit on VM's and distributed systems, and there are some very interesting things happening. Harvard developed RockSalt[1], that is a formal code verifier written in 80 lines to guarantee that code is safe to be executed. The verifier itself have been put to formal verification and up to the time of the publishing of the link below, no breaches had been found. One huge disadvantage of running native code would be portability. You would need to cross compile and test on several plataforms to be able to ship software. It's highly flexible though. Google NaCl[2] follows this path, but its security problems were one of the motivations behind RockSalt. One big advantage is the near-native speeds: they claim about only 5% of overhead when compared to native. NaCl is currently only implemented in Chrome; Mozilla doesn't want anything to do with it. They have asm.js, that is another way to run C/C++ compiled in the browser. But asm.js is 2x slower than native code. If we are talking about rebooting the web, then why point out these things that run from the browser? Because once such an alternative proves to be better than traditional web developing, it would be a matter of implementing the corresponding technology outside the browser and ditch all that garbage. With good planning a migration would be possible. Portability is a big issue, since today web browsers allow for media and apps distribution to a lot of different plataforms. Any solution that is worse than that have a lot less chances to win. Then there is the InfernoOS[3], which runs on the Dis virtual machine. There is a 50% slowdown when compared to native code, what is a lot better than asm.js. It is a work originated on Bell Labs, with a lot of high-quality man-hours behind it, and it has been ported to a lot of systems and architectures. In the days of Internet Explorer 4.0, it was even able to run as a browser plugin. And by the way, it uses 9P as its protocol to access local and remote resources. I've also found a couple of posts[4][5] talking about this with some more links. Maybe porting Inferno to run from inside modern browsers is the way to start the revolution? References: [1]http://news.harvard.edu/gazette/story/2012/07/nacl-to-give-way-to-rocksalt/ [2]https://en.wikipedia.org/wiki/Google_Native_Client [3]http://en.wikipedia.org/wiki/Inferno_(operating_system) [4]http://alexdanilo.com/?p=20 [5]http://alexdanilo.com/?p=24 >> Well, I can't say that to the grandma who wants to see her grandsons >> pictures on the Internet. > > No, but you can install a trusted graphics viewer program. That's the current software distribution model, with all its problems. That's not what we want.