On Thu, 2009-07-16 at 22:01 -0500, Benj. Mako Hill wrote: > <quote who="Luis Villa" date="Sat, Jul 11, 2009 at 02:21:26PM -0400"> > > http://www.freesoftwaremagazine.com/columns/why_google_chrome_os_will_turn_gnu_linux_desktop_winner > > > > Seems ripe for deconstruction on autonomo.us. > > Done: http://autonomo.us/2009/07/chrome-os-and-autonomy/ > > Thanks for the prompting Luis!
Benjamin, I'm not sure you're looking at this in quite the right way. Regardless of anything that Google does or does not do, W3C is pretty darn far along in specifying a new OS. We could, for the sake of this conversation, dub that new OS to be w3cOS. w3cOS, somewhat like the Hurd, can be regarded as a "micro-kernel". The interface to system facilities is (mostly) through message passing (such as HTTP requests). WebDAV provides one possible file system API. Process control is ad hoc, depending on the context, but generally speaking URLs identify contexts in which processes might exist. The one big difference from the message-passing micro-kernel design is in the area of user interaction in GUIs. In that area, programs can have limited control over a GUI terminal by replying to requests with HTML content, image files, and so forth -- but more dynamic forms of interaction are handled through W3Cs taxonomy of events for input and through the DOM model of a GUI display list. Probably, someday, this difference will begin to disappear. For example, the interface to the DOM can be expressed as HTTP GET and PUT requests. An event stream can be modeled as the multi-part reply to an HTTP GET request. w3cOS, in other words, is converging on the design of a pure microkernel in which - at least abstractly - HTTP primitives are the only system call. I say "abstractly" meaning that it isn't literally necessary for an HTTP API to translate every request and reply into HTTP bytes on a wire; some calls can be optimized to take a shorter path. So the picture you can see coming together for w3cOS has some interesting features in common with the GNU Hurd. Both are operating systems built around a message passing primitive. Both allow "user space" programs to pick and choose how various OS capabilities - like file storage - are provided. This is really a great deal of freedom for users. Nobody has yet fully implemented a "self contained and complete" w3cOS. The closest approximation is probably javascript on browsers. If we switch from Javascript to, say, C, then programs might well have HTTP available and a DOM display-list and an API to w3c events -- but something like Posix systems calls will also be exposed and essential. In the future, though, I think that is likely to change and we'll have very general programming environments that are more like javascript in a browser, with only w3cOS interfaces to services provided outside of the program. That's an attractive architecture for an OS for well known reasons. One reason that is gaining a lot of attention today through examples like "google docs", is that the message passing interface to basic OS functions means that applications can be split with the UI running on one machine and the database or file system running remotely. So, a user can have his documents on some server on the web but access them and edit them from nearly any w3cOS terminal, anywhere in the world. It is hard to see this as anything but either neutral or a boon to users' software freedoms. By the (scant) accounts, it sounds as if ChromeOS is not a fully self-contained, complete w3cOS implementation but that it is a lot closer to such a thing than conventional GNU/Linux systems. And that's it's main point. I suspect that ChromeOS will be a set-back for standard GNU/Linux systems in this way: I suspect that Google will not leave "user space" in anything quite like a traditional or compatible form. I don't know how radical they will be but I don't have trouble imagining them going so far as to, say, ditch /bin/sh (probably not in the first release, though). To the extent I'm right, it will probably contain lots of GNU code but it won't be anything like an ordinary GNU/Linux system. We already know it has a "new window system" and so, of course, OpenOffice and friends will be second class citizens if they run on ChromeOS at all. But the good news, apparently, is their promise that ChromeOS will be free software. That's a big win for the software freedom of users IF you believe that w3cOS is important, desirable, and unavoidable. It means that before a proprietary OS vendor has even a partial approximation of a w3cOS self-contained and complete system, a good free software approximation - a good starting point - will be publicly available. There is another way in which reusing the Linux kernel to approximate w3cOS is a win for people everywhere: w3cOS, aside from the convenience of its distributed nature, is "green tech" in a sense. Data centers (when well designed) are very efficient. Low-capability terminals (mobile devices, etc.) are efficient. They both (can be) comparatively inexpensive compared to traditional desktop machines, workstations, and office server racks - so this is also a more democratizing architecture. The *only* problem for software freedom in this whole arrangement comes from how certain people are inclined to use this new architecture. And by this I mean the technical style of software that people write for it and the business models people build on it. A good example of an abuse of user freedom might be, just to pick on a famous target, Twitter. So, why do I say Twitter is an "abuse"... When freedom loving hackers set out to build something in the vague space of "instant messaging" they took the approach of Jabber and designed a decentralized, distributed, peering-based protocol. When Twitter was invented, as Dave Weiner will be happy to tell you about at great length, RSS already existed, could be adapted to provide the same functionality (he's doing so today), and was decentralized, distributed, and peering-based. (If you think Weiner is a fool, and really, who doesn't (kidding ;-) then how about Google Wave? Eric Schmidt has already commented, re Twitter, that he regards the distributed, decentralized Wave architecture as, in part, a superior replacement.) So, it was obnoxious to write Twitter the way it was implemented. Why did they do such an obnoxious thing? Because of how the investment community (VCs and such) currently think about business models. Past generations of proprietary software makers (think, Gates - DOS) went "proprietary" in order to be legally entitled to collect rent on every copy of their programs. The new generation is thinking that, what with this new Interweb thing, they'll instead maintain exactly one copy of the program. Instead of collecting rent from users, they'll leverage the fact that all users must use that one copy. They'll leverage that control over users by spying on users and selling derivatives of the surveillance data they collect and by forcing the users to put up with a bombardment of advertising, with ad space also sold to third parties. It is that business model - not w3cOS and not ChromeOS which is the real threat to user freedom. Nothing in w3cOS or ChromeOS makes that business model necessary and there are better styles in which to write better w3cOS programs. There are probably good wholesome ways to make money while so doing. Our attitude, I think, should not be that we ought to resist or discourage use of or otherwise be "against" ChromeOS. It's a fine thing assuming that we really do receive it as free software. Rather, our attitude should be that we must fight against bogus business models like Twitter and against bogus software architectures like Twitter. Suppose that, in 5 years, quite inexpensive mobile computers running ChromeOS are very common. The free software movement will be in good shape if, at the same time, it is offering up web service infrastructure that provides all essential functionality but that is distributed, decentralized (and under user or user-community control), and peering based. I think that these are problems the free software movement best addresses with hacking, data center provisioning and sublets, and education. ChromeOS, if they did a good job and if it is in fact provided as free software, is a boon: it has a good opportunity to save the rest of us a lot of work. -t _______________________________________________ Discuss mailing list [email protected] http://lists.autonomo.us/mailman/listinfo/discuss
