rework Unix to be more MS-DOS like

Timothy L. Kay tim at csvax.caltech.edu
Thu Mar 30 12:13:57 AEST 1989


[Moderators note:-  I am real hesitant to post this.  I mean, to be honest
 I can safely say that I disagree with most everything stated.  On the other
 hand, Mr. Kay brings up some salient points.  I'd rather not see this
 degenerate into the average "MSDOS compared to UNIX"-type discussion/war.
 So, try and avoid the inclination to react violently one way or the
 other.   Please, please, please!  Don't turn this into a flamefest!  - Der]


It is a fact that Unix is too complicated to be maintained by most
PC users, while MS-DOS is not.

I have been thinking about reworking Unix to be more like MS-DOS from
the system management point of view.  What does it take to make Unix
easy to maintain?

It seems to me that, assuming that all the hardware works correctly,
people never have problems booting the kernel.  I claim that the Unix
kernel is quite maintenance free.

The maintenance problem comes with all the parts of Unix built above
the kernel.  For example, let's get rid of passwords.  Certainly, the
average user can learn how to log in (we hope).  The trouble is that I
have never seen an absolutely fool proof way to make accounts.  So why
bother with the added complexity of accounts?  When you boot the
machine or hook up a terminal, why not simply get a logged in shell?

How about the complexity of divvying up a hard disk?  Why do people do
that!?!?!?  It makes things 10 times more complicated.  True, it makes
the filesystems more robust; if one partition gets blown away, you can
still get your data.

The ideal solution is to harden the file system (even if it costs in
terms of performance.)  After all, why does Unix sync?  Why can't the
buffer cache be implemented as a write-through cache?  Not only would
the file system be more robust, but the system wouldn't come to a
screeching halt every thirty seconds.  Unfortunately this requires
kernel modifications.

I don't even need to mention the complexity of packages such as UUCP
or sendmail.  Get rid of them!  Let third-party software houses write
new, easy to use packages.  Sure there will be a lack of standards for
a short time.  The point is that having complicated standards
guarantees that they will never get accepted.

One could have an MS-DOS shell.  This would be fairly simple to write.
It doesn't even need to understand multitasking.  If it is really
going to mimic MS-DOS, piping could be implemented in the same way as
MS-DOS, via writing a file.  If somebody wants to use things the right
way, they would pop into sh or csh command first.  Otherwise, you would
say "copy" and "rename" rather than cp and mv.

I'm sure I've made some of you gag.  After all, we all know that UUCP
is implemented *the* correct way.

I just hope there are some of you out there that see it my way.  Some
company should contract with AT&T to supply a Unix without all the
crap.  In its place, they would provide a bunch of simple utilities
like the MS-DOS shell.  Installation would involve putting in the boot
floppy and turning on the machine.  Then you would be up and running.
You could copy /unix to the hard disk partition if you want to be
bootable off the hard disk.  (The boot sector would be replaced with
automatically one that looks for the first bootable /unix or MS-DOS
disk.

There are lots of other ways to simplify things.  For example, why is
it the practice with Unix to put all the binaries in one place and
their associated data files in another!?  Why can't I simply have a
/commands/gnuemacs directory that contains all the emacs files.  I
load this directory from a tape or floppies or something.  I then add
/commands/gnuemacs to my path, and it is installed!  Wow!  Magic!  The
application should look at argv[0] (plus the PATH environment) to
figure out where its datafiles are.  I shouldn't need to recompile the
application to tell it where it should look for the stuff, and I
shouldn't have to have any "standard" place (ala /usr/lib) for it to
look either.

Is there anybody out there that thinks I'm onto something interesting?
Any comments?

Tim Kay
tim at csvax.caltech.edu



More information about the Comp.unix mailing list