My Problem With Operating Systems
Copyright 1999 - 2008,
by
Surly
I am an experienced and savvy computer user and creative thinker who very much wants an OS to fulfill my needs, thinking and working styles. But it doesn't exist. The Macintosh, the unfortunately failed BeOS and Linux probably come closer to an ideal, but even these are inadequate.
Most computers are much too difficult to set up, configure and upgrade. Unnecessary incompatibilities abound. These problems could be handled by advanced hardware and operating systems with an eye focused on ergonomic design and some strictly-enforced, universal standards.
The established business, programmer and engineering legacies severely hamper any really user-friendly OS. DOS was obsolete 30 years ago compared to other operating systems, but the enormous investment in the installed user base kept it the default OS long past its time. Current OS interfaces are not like the real world and life in general. These are outmoded ideas not relevant to many potential users in other fields, notably in the arts and humanities and many other fields of research. The interfaces are too square and unimaginative, functions are too separate, kludgy; the hierarchies of files/directories are confusing and limit flexibility and usability. We shouldn't have to conform to the limits of an operating system and hardware; it should conform and configure to our needs. The metaphor of a Virtual Reality world that can mirror the real world would be a good start, but the electronic medium can be a world to itself with its own peculiar and unique properties that might make user interface easier, more creative, etc. Therefore, the user interface must begin as a 3-D graphical drawing/processing, object-manipulation engine. Graphic recognition should be built in at system level. This 3-D VR GUI space should be fully user configurable to any metaphor: office desktop, artist's studio, laboratory, library, etc. Let's get rid of the rectangular box metaphor. There needn't be windows or program icons unless the user wants them. Work-object icons might be appropriate, but why shouldn't it be the object itself? Too, the display should always come back to the configuration present when it was closed down. The display and work model metaphor goes beyond document-centric to work-object-centric and it is process-oriented.
An OS should not be exclusively graphically-based; a text command line could appear anywhere the cursor or pointer is on the desktop, as in Oberon. Text should be both character and graphic object, i.e., all text displayed should have graphical properties and be displayed in any desired font and size. There should be no difference between a text mode and graphics mode.
Documents/objects should look like real world objects if they have that counterpoint in the real world, such as a piece of paper or a book. For example, a book could appear as a book with turnable pages. To access an object the user could type in its title or could search for objects of preferred type. When an object is selected, an appropriate toolbox/palette opens and can be positioned anywhere on the screen and expanded or contracted in size. Displayed objects could be sized by a zoom function using perspective of the VR space, so that they can fill the screen or vanish in the distance, or they can be put away. Appropriate toolboxes/palettes to select tools to operate on a work-object may be selected on screen by clicking on an object. Suggested Tools: pen/pencil, brush, open/close hand (mover/grabber), outliner-selector (used with grabber), scissors or knife, eraser. What else?
A 3-D, multi-function pointing device or "joystick" with many more buttons than the standard mouse would be needed to control the interface. A graphics pad would be another standard input device, as well as a standard keyboard. Handwriting and voice recognition should also be built in.
The OS should be an application/database/very high-level programming language in one, using plug-in data/function/process modules that are 100% compatible. These modules are not separate applications as we know the term now. No more major, drive space hogging and redundant function applications programs would have to be written, only small function modules, which should make writing and debugging easier. No more would one open an application for specific kinds of data. When a work-object is selected the OS would run the appropriate modules. In a compound object, such as a book with pictures, tables, charts, etc., the objects would retain their identity but be linked to the master object. If saved for archiving, all the associated objects could be included in one compound file, like a UNIX TAR file or embedded in a single file. If an object is linked to another, the OS would not allow deletion or at least warn the user of the link. Suggested modules: Networking/communications, Word processor, Table (spreadsheet, etc.), MIDI, Digital audio, video (MPEG-1,2), Extended graphics editor, Extended drawing editor (vector, raster, CAD), Charting/graphing, Equation processor, Data acquisition, Special databases for specific fields, Statistics, Dictionary (spell checker, definitions and thesaurus), OCR, Voice Recognition, file compression, etc.
Installing and upgrading software should be made simple. No more should one need to replace whole applications, modules or even the entire OS. I suggest patches that would update and overwrite only the necessary code, as is often used in UNIX systems. The installer should be built into the OS so as to enforce a uniform method of control, no more separate installers with new software. The OS should be able to handle these automatically and in a user-friendly manner.
The operating system should know where everything is and what it is at all times, so it should automatically database all objects and their properties/characteristics, as do journaling file systems.. All information about an object should be included in object (file) headers for the OS to read. File (object) names should not need extensions or special characters to identify them as in DOS, OS/2, etc. And of course long file names with spaces must be supported to title objects as in the real world. The file system could be an object-based tangled hierarchy, spanning all drives. No drive letters or numbers need be displayed nor directories or folders need be seen by the end-user, unless they want them. Only external storage drives (backup) are directly user accessible and might need icons.
Should a microkernel be used?
Each object should occupy its own memory space.
Objects can have any size, shape, colors and position in VR space.
Objects are divisible, groupable (compound objects), linkable, can communicate, have inheritance, user permissions and passwords.
Multitasking and multithreading is inherent.
No memory or storage size limit.
All system utilities should be included as a standard issue with the OS and automatically run in the background: anti-virus, drive check, compression; memory and CPU load, power management, etc. These should only report to the user if there is a problem, but should log reports to files.
The OS should be fully scalable from single end-user to SMP enterprise server.
Plug and play should be supported. Most other hardware recognition, especially scanning.
The PCI bus, without the legacy AT bus, would be a good hardware platform.
SATA drives should be the default. At least UDMA IDE drives.
The OS should run on faster Pentiums and x86 clone microprocessors, Power PCs, MIPS, Ultra Sparc, DEC Alpha, etc.
Software and hardware design should conform to a strict set of standards so that no incompatibilities could exist. No developer would be allowed to vary from the standards, or else their license to develop for the platform would be revoked.
The OS should recognize and be able to import most file data formats, especially from DOS/Windows, Macintosh and UNIX.
A PDA version that interfaces with the desktop computer might be a good idea.
High resolution stereo monitor glasses might become the monitor replacement.
The OS should be Open Source.
Is what we have envisioned possible now? What are the difficulties to be overcome? Is anyone out there interested in attempting it?