File: SEP_OS.TXT Guy Dunphy 8 Jan 1998 Separation of OS and Web Browser considered important There are a number of reasons why it is important that computer operating systems, and internet access software tools (eg 'browsers') should remain as completely separate yet interopperable packages. Over the last few years, as Internet use has evolved, such components were invariably considered (and marketed) as completely independent items. For PCs, Microsoft produced the Windows (so called) operating system, and (much later) its own web browser 'Internet Explorer'. For the whole period there have been non-Microsoft browser(s), starting with the original Mosaic browser from NCSA, and ending with the current multitude of alternatives, among which Netscape's Navigator is still the predominant browser in the market. Now however, as part of a marketing ploy intended to achieve a monopoly on Internet access software, Microsoft is attempting to blend it's browser (Internet Explorer) and its operating system (Windows) into one inseparable unit. Some of the steps MS have taken towards this monopolistic goal are:- - Providing the browser itself for free (via download on the net.) This encourages people to use it, rather than alternative browsers. Other companies (not having the financial reserves of MS), must charge for their software products. Though some allow customers to obtain free copies of their earlier version browsers, and even the current versions for 'personal use'. Effectively, MS is performing 'software dumping' to eliminate competition. - Commercial tying agreements with computer hardware vendors, wherby the vendors are required to install Windows 95 and Internet Explorer (and nothing else) on every machine sold, or Microsoft refuses to supply anything at all. This ensures that new (ie naive) computer users are exposed first and only to Microsoft's internet access tools, and reinforces the public perception that Win95 and IE are somehow the same thing. Even the startup screen graphic on recent versions of Win95 works to blur the distinction - saying "Windows 95 Internet Explorer". - Producing actual functional interdependencies between newer versions of their OS and browser, so that it becomes harder for third parties to identify any boundary between browser and OS. Whether these interdependencies are required for reasons of honest functional enhancement, or simply to achieve the objective of gluing the OS and browser together, is difficult for anyone beyond the MS inner circle of management to determine. Primarily in response to Microsoft's practices of forcing commercial tying agreements, the US Department Of Justice (DOJ) has embarked on legal proceedings, ostensibly to prevent Microsoft from completely integrating their browser and OS. The argument is that this integration would create a monopolistic situation. So far there does not appear to have been any claim that such an integration could be against the public interest for other reasons. Yet it is possible to argue that this is the case - that regardless of issues of commercial monopoly, an integration of OS and browser would be undesirable. Some reasons are:- * For stand alone computers (ie those not connected to the internet). Inability to remove (or not install) all the 'integrated' network related components of the OS results in:- - a waste of storage space. - distraction and irritation to the computer user/owner. There are simply cases where all the baggage of browsers and network access are not wanted, for whatever reason. There will always be. * Security of private stored information and system setup. Consider the development of these points:- 1. It is not safe to trust Microsoft. They have politically suspect objectives, and no apparent respect for individual rights to privacy, data ownership and computer-use self-determination. 2. If the MS networking code is embedded inextricably in the OS, you cannot ever be sure it is turned off or disabled. 3. You'd be wise to use 3rd party code for _all_ your network tools, since this lets you chose tools that work the way you like, and that allow you to closely monitor whats going on with your machine. 4. With 'woven in' MS network code, even if you install and use 3rd party networking utilities, you can't be sure that MS code won't get into the act (and do who knows what - like send a copy of your PC's application registry back to MS. Or a directory/file tree list. Or accept remote requests to upload specific files - silently.) If you can't remove all traces of a particular network interface, then mistrust of that interface becomes a very serious problem. However! There is another issue here, that must be examined. That is the question of what exactly an OS _is_, and what a browser is, and where the natural functionality boundary lies. And as you shall see, the answers to these questions suggest some very interesting observations about the future of man-computer interfaces in general. Some aspects of system functionality must definately be the responsibility of an OS:- - Management of hardware resources - memory, mass storage, user input and display devices, communications services, etc. - Organisation, structuring and maintenance of available stored information. In short, a file system. This is really a special case of the 'hardware resources' management capacity. - Provision of a clean, convenient, standard and fully documented execution environment in which software applications may run, and make use of the above hardware resources. - Facility to automate, or 'script' the operation of the OS and utilities running under it. This is also really just a special case of the 'standard execution environment'. Do you see what I have left off this list? Yes - the user interface (apart from the basic text scripting and command layer). Traditionally, provision of a standard visual/command user interface to the capabilities above has also been considered a natural task for an OS. Indeed, where there is no alternative means for users to interact with a computer system, this function must necessarily be provided by the OS. With early operating systems, this went only so far as a text based command line and display interface. Naturally enough, since this is a required basic feature of an OS. Later on graphical overlays were added, generally in the form of 'WIMP' (Windows, Icons, Mouse, Pointer) systems, as invented by PARC, developed by Apple for the Mac, adopted by the Unix community as X-Windows, and finally stolen and patented as their own clever idea by Microsoft. This point was where things started to go wrong - with the assumption that such GUIs were also an integral component of the operating system. Still, in all these incarnations, the Graphical User Interface (GUI) has been solely a mechanism for user observation and direct manual interaction with the existing capabilities of the computer system. Whenever any actual programming needs to be done, its generally back to the plain old text based interfaces. Even the more recent 'visual design tools' are just front ends, ultimately producing text source code that will be further edited manually before compilation or other use. This may change in future, however I strongly suspect that it is fundamental to information systems that complex (and even simple) algorithmic creation and examination is most efficiently and powerfully done in the medium of plain text. So any GUI present will be primarily used for browsing and gross manipulation of existing information structures. In reality, despite all the bells and whistles of 'desktops' and 'start menus', Windows 95 is nothing but a glorified 'local information browser and manipulator'. And one with very restricted capabilities at that, eg: - It provides virtually no mechanism for the data being viewed to modify the manner of its own presentation, beyond the weak and restricted use of icons to represent whole files. - It does not support any sort of relational linking between data groups (files) other than the crude 'member of directory x' mechanism, and the file type suffix groupings. - It imposes a 'methodology straightjacket' on the ways users can interact with their machines, and the data in them. It is virtually impossible to work with the machine other than in the 'Microsoft Way' short of switching to an entirely different operating system. - It is severely deficient in the area of scripted control of operation. True, such scripting capability should be a service of an underlying OS layer. However, Win95 tries to pretend that there is no such layer, so we can still blame Win95 for this lack. On the other hand, current Web browsers were developed as 'remote information browsers and manipulators'. And because 'remote' was understood to generally mean '3rd party', ie read only, Web browsers are severely lacking in their ability to manipulate files in the ways needed to manage file structures - whether remote or local. Yet the use of networks proliferates, and it becomes more common for whole networks to exist within the domain of 'ownership' of single organisations and even individuals. Consequently the distinction in functional capabilities required for dealing with 'local' vs 'remote' data becomes ever more blurred - and will eventually vanish altogether for the majority of computer users. Quite apart from the fact that the act of simply viewing information should be consistent, regardless of where the information is physically located. Information browsing tools should not impose any differences between how a user deals with the contents of their own private mass storage systems, and deals with the contents of the world wide public information resources. From this viewpoint, a merging of the capabilities of browsers and GUIs such as Win95 is a desirable, even inevitable development. However there are two ways in which this merger can be achieved. One way (dissolving browser capability down into the OS) is very harmful to the public interest, while the other way (allowing browsers to assume all the functions of an OS GUI) is vastly preferable for social, political and economic reasons. Consider that:- - An OS is essential to provide a standard base of services for the use of applications. - The more widely adopted that OS is, the greater the number and variety of applications that will be produced to run on it. This has a positive feedback effect on adoption of the operating system in the market. The greatest benefit of a consistent and standard interface would be realised if it reached 100% market share, although the old 80/20 rule suggests this would never quite be reached. People being what they are. - An OS is a fairly intricate thing, and consequently is unlikely to be successfully developed by anything but a single tightly knit, well organised and motivated group. Hence it is fairly certain that there will always be a 'dominant OS', and that it will have been produced by a single organisation. (Whether that organisation is necessarily Microsoft, or even a commercial entity, is a seperate issue. See Evergreen) However, is is still desirable for users to have a choice in the matter of how they 'manage' their computers. It is universally accepted that users should have freedom of choice in applications such as graphics tools, word processors, software compilers, and all the myriad other ways that computers can be put to work. Why then do we accept that the very means of interacting with the machine, ie the GUI, should be chained to the basic OS? With the result of allowing absolutely no choice in the computer interface in which we spend the most time? We should not acept this. The Graphical User Interface to an OS and all its available applications should itself be just another independent application, able to be substituted and deleted like any other application. And such interfaces should be able to handle both net browsing and local file support in unified ways. Users may choose to use different tools, at different times and for different purposes, but the basic, commonly available tools for information browsing should work for both private and public data viewing and manipulation. As for why this has 'political, social and economic' benefits, consider that such 'information browsers' will provide the bulk of the infrastructure on which our civilisation will base all information traffic and archiving. At issue is whether the people will have freedom of choice and market competition for the most critical software tools in their possession. The need for security and trusted software to access the nets is also served by such a combination of local and net browser, since as a self- contained application it can be thrown away and replaced with a competing alternative if there is ever any doubt about its trustworthiness. The point is that all these activities should be considered as the domain of application programs, _not_ as operating system services. Conclusion ---------- So we see that it is important to maintain separation between the machine operating system, and the user-driven 'information browser'. Further, that there is a serious conceptual error underlying placement of the dividing line that is understood today to separate the functionality of these two components. The GUI component is generally placed in the domain of the OS, whereas in fact it should be considered a natural aspect of the Browser(s). If this was so, users would be able to switch the GUI methodology on their machines at will, simply by running different installed Browsers. Indeed, taking this to its logical conclusion, the appearance and operating style of the user interface should not even be determined solely by the current browser, but should be dynamicly controlled by the actual data being 'browsed' (or user default settings, where the target information contained no specifications for browser appearance, or user overrides). There should be no such thing as 'the operating system look and feel'. The whole idea of commercial ownership of, and enforced public use of (suffering of), a particular GUI style is wrong. How this relates to Microsoft ----------------------------- MS remains guilty of fusing together software components that should be separate. However, their major crime was commited years ago, in their actions that made it difficult for competing graphical user interfaces to exist in the market of machines running DOS. Actions such as all the undocumented DOS system calls, alterations of DOS to deliberately kill software utilities produced by competitors, etc. I for one would be perfectly happy for MS to completely integrate Windows and Internet Explorer - so long as there was an open public standard for a capable and widely accepted set of low level machine and file system services, that Windows itself depended solely upon. Then it would be possible for viable alternatives to Windows as a user interface to be produced by independent developers. Prediction ---------- Give me a windowing 'web browser' that can: - Navigate and manipulate my own filesystem as well as old XtreeGold, - Launch applications and support passing of information between them, - Provide a powerful interpreted, platform independent system scripting language, (Three cheers for Java and JavaScript!) - Impress me with the openness and honesty of its producers, and which does not waste my time with insulting and devious secretiveness coupled with condescending twaddle, and which sits on top of a decent, public, hardware and file services layer, and you'll see how fast I can delete Microsoft Windows from my PC. Now, do you notice how little difference there is between that wish list, and what many browsers (eg Navigator) already do? My prediction is that in 1988 we'll see some of the independent browsers grow 'downwards', and assume a great deal of the burden of an operating system. Possibly even providing the much needed low level services standard. And in doing so, finally start to give Microsoft the thrashing it has deserved for so long.