Cleaning up the OS
A Master Thesis proposal
Henrik Kniberg
h
kniberg.com
http://www.kniberg.com/henrik/
1999
Introduction & Summary
I am a student at the Royal Institute of Technology, Stockholm, and am
completing the last year of my Masters degree in Computer Science. As the
final part of my education I am expected to perform a Master Thesis, which
should represent approximately five to six months of work.
After some consideration I am now starting to get a clear picture of
what I would like to do for my Masters Thesis. My idea is based on something
I have thought about during the past couple of years, and have been engaged
in deep discussions with friends - an improved operating system. More specifically,
a user friendly operating system. Most operating systems have many
different layers of operation and many different duties to perform, but
I would like to concentrate on the topmost layer, i.e. the layer that the
end user is confronted with. This includes the actual graphical user interface
as well as the model or metaphor behind it that the user needs to understand.
My Master thesis proposal
I would like to conduct a study from a HCI (human-computer interaction)
point-of-view and identify which problems with today's operating systems
are most serious and which problems are likely to get even more serious
in the future when computers get even larger, faster, and more distributed.
Then I would like to propose a new operating system design, also from a
HCI point-of-view, and implement a prototype of this using Java.
I would also like to evaluate the possibility of actually implementing
and using this operating system design. Being implemented in Java it could
run both on top of an existing operating system or as a stand-alone operating
system like JavaOS. This includes studying how my design proposal fits
into existing projects along this line.
My background
I consider myself experienced and talented with user interface design,
object oriented analysis/design, client/server design, and Java programming.
I am also open minded with respect to the tools and environments I use,
and like to discuss and analyze their advantages and disadvantages. My
choice of Master thesis will allow me to combine these skills into one
single project, thereby hopefully enabling me to make some kind of relevant
contribution to this field.
More detailed description of the problem
Most modern operating systems employ some sort of windowing system with
an underlying desktop metaphor - this trend was commercialized by the Apple
Macintosh computers and was somewhat of a revolution in user friendliness.
Now we have Microsoft Windows, Solaris XWindows, and other systems that
employ the same basic type of user interface and metaphor. However I believe
it is time to take a step further if operating systems are to be truly
user-friendly and robust in the future.
Personally I have most experience with Windows 95, but as far as I have
seen many of the problems with Windows 95 are common to most other common
operating systems. Here is a list of issues that are becoming more and
more relevant as computers become more widely used by non-experts:
-
File management. I have 50,000 files in my 4 gigabytes of hard-disk
space. I doubt more than 1% of these files are of any interest to me -
the rest are used only by applications or the operating system itself,
and should not be touched by me. Why are my documents mixed up with system
files? One application should have one icon - that's it. All other system
files should be well hidden and inaccessable to the user.
-
Information retrieval. When I create a document I will place it
in a folder, or perhaps even a subfolder within another folder, thus nicely
categorizing my files. However, as I start getting very many files and
folders it becomes exceedingly difficult to remember which files are where
- did I store my letter to Mom under "letters", "family", "wordprocessing",
or "private"? Documents are easily lost deep within a directory hierarchy
- some more advanced document classification mechanism is necessary, where
documents can be classified using multiple keywords, where perhaps even
the keywords can be related to each other.
-
Networking. I have files at home, at my account at school, and on
a couple of other internet accounts. Why do I have to use FTP programs
to access these files, instead of just accessing them the same way I do
my other files? Why do I have to download a file in order to edit it, and
then upload it again and thereby have to keep track of multiple copies
of my documents? This should all be integrated.
-
System integrity. This is a terrible mess in Windows 95 - if I install
or run a faulty program, it could easily mess up my operating system and
other applications within it. Furthermore if I uninstall an application
it may very well uninstall a component that another application needs,
thus invalidating that application as well. Furthermore if I install a
new application it might include a newer version of an existing component
and replace the existing old version, and thereby cause havoc if the new
version of the component is not perfectly backwards compatible.
-
Dependencies. What happens if I move or rename an application directory?
In most cases that application will be invalidated. The location of files
should be completely up to the user and totally irrelevant to the system
itself - all references and dependencies should use file IDs instead of
hard-coded pathnames.
Furthermore, there are some other general HCI approaches I would like to
challenge. This is related more to the applications running within
the operating system, and not as much the operating system itself:
-
Saving documents. The user should not have to worry about saving
documents. In fact, he should not have to think in terms of loading
or saving at all. From the user's point of view, everything should be saved
all the time, just like when you create physical document. The notion of
whether or not a document is "opened" should be irrelevant - it is just
a matter of how many open windows the user wants to have cluttering up
his screen, and not related to what is stored on the disk.
-
System shutdown. The user should be able to shut down the system
without closing any applications - the system state will be exactly the
same next time he boots the computer.
-
Opening documents. All documents should be aware of which type of
application is needed to open it. Some documents may embed the application,
others may query the OS for the application, and others may download the
application from the network (for example an applet).
I could go on and on, but I will stop here, since this is not meant to
be a technical document...
Final words
My goal right now is to find a company or research institute that could
be interested in helping me perform my Master thesis.