O p e r a t i n g   S y s t e m   W o e s


   " a spectre is haunting the computer industry - the spectre of
     object/capability systems. All the powers of old computing
     have entered into a holy alliance to exorcise this spectre. "

Recently, a friend pointed me to  this thing written by Rob Pike, way
back in the year 2000. Love him or hate him, but it is pretty spot on
I think:

       http://doc.cat-v.org/bell_labs/utah2000/utah2000.html

Ignore the Microsoft and or programming language comments in there if
you don't agree with them, or if they haven't aged well - The essense
of the talk -  how monetization destroyed innovation, and how there's
little to no real systems and OS innovation happening rings very true
And I would say things have gotten worse since Rob gave this talk  in
2000, much worse.

A lot of us  have  come  to  believe  Unix  is  pretty  great.  Treat
everything as a file, have simple  small utilities  that do one thing
well, etc,...

After all,  if all we have  to compare against is GUI systems such as
those  used  on Microsoft's Windows OS'es, this  approach seems a lot
more flexible.

But, can you imagine better ways a system might work?  Believe  it or
not, there is a lot more to computer history than Unix (+derivatives)
and Windows, and we've thrown out a lot of good ideas  with the bath-
water in the name of standardization, and it  not  making  short-term
business-sense to work on  new groundbreaking OS technology  for most
companies.

Imagine an operating system where you can just grab variables/objects
out  of  another  process without having to worry about inter-process
communications. Things like serialization, and the funky formats that
come with it, like json and the like, would suddenly become obsolete.
Security could  be dealt  with on a per-object level, or objects of a
given type/category.  This is how capability-based  operating systems
could work. If everything interacts with  objects,  and  object-based
permissions, you also no longer have to worry so much about isolating
individual processes memory address space - heck, you could  do  away
with addresses all together. This would also mean less(/no?) context-
switching etc,...

If this sounds like crazy science fiction, think again, because  it's
been done before. MCP did some of this on Burroughs B5000  mainframes
way back in 1961. An example of a later, more advanced systems is the
BiiN systems which grew  out of  the intel  iAPX 432  project.  These
systems included a full UI, filesystem, etc,...

Manuals for the  BiiN  can be found here, these include some pictures
of these beautiful systems and some gui examples.

                http://bitsavers.org/pdf/biin/

If you're interested in cap-based systems, give this book a read:

       https://homes.cs.washington.edu/~levy/capabook/

This is not about which operating system is better than others, it is
about encouraging people to think outside of the boxes we're so  used
to.  Like all software,  every operating system will inevitably start
to suck the more general purpose it's trying to be, the more usecases
& people it's trying to cater to,  which is a function of how popular
it is,  and  thus the more organic growth  and  compromises have been
layered on it's foundation. That doesn't mean we should stop striving
for a better foundation, or be afraid to start with a clean slate and
try to make things better, or re-imagine what computing COULD be.  It
also  shows  that  studying older  systems isn't just a  thing to  be
dismissed as a hobby with little value.  There is a lot to be learned
from our history.  Older does not mean worse and newer does not imply
better.  Better/worse/whatever,  it's all a matter of perspective and
what you're comparing against what.

In  any event, I hope this post inspired someone, somewhere, somehow!