Program Management

Program management in our current OS's is brutal. It can be simplified greatly by implementing three features found in previous documents. Code Form Applications, The Database File System, and of course Hardware Abstracts to allow the other two to work.

The essence of the idea is to make applications consist of single file, and store these applications within a special database so they can be easily managed.  This may sound like it takes control away from the user, but in reality it does just the opposite.

The OS, as all do, would have a program management interface or access prompt. The command line prompt would simply path to the directory and use the programs on command (i.e.. "start /games/quake4" simple enough).  The GUI however would allow for customizable groups and folders or for simplicity, a push button access or web page like interface.  The major difference with this system over the traditional is the ability to isolate everything a program consists of and be able to delete it.  For example, if you were using a program like Corel Draw 5.0, it would be installed in a Corel Draw 5.0 directory under applications in the programs database.  Any new version of Corel Draw, would install to a new directory, and be able to read your old configuration files, but NOT modify them, or delete or overwrite the older version (each application is protected).  If you finally decided the newer version was better, you simply send the old one to the trash (or press DEL, or type DEL...etc.) and the program and it's configuration files are gone... completely (minus the unerase, restore trash features of course).  There are NO left over program libraries or anything of that nature.  The data files that were created with the program are not deleted however, and can be managed by the user (these are in a separate database).

The way it works is, an install application module built into the OS, when activated, reads the configuration (database entries) for the application (pre generated by the application developer) in question.  It then installs and compiles it to a section of the application database, and adds the default links in the program manager.  To keep document centric computing in mind, the program manager would also contain access to pre created documents on the system (yet another database), or possibly a seperate process called the Document manager.

This method allows us to better control the install and uninstall procedure for programs.  The base OS (hardware abstracts, boot files) would not be placed in this structure, but all supplemental programs, that are packaged with the OS, would be.