ugh.book

(singke) #1

174 Programming


However, the Unix kernels, shell, and C language taken together
address some large-scale issues that are not handled well (or are
often not even addressed) in those languages and environments.

Examples of such large-scale issues are certain aspects of memory
management and locality (through process creation and exit), persis-
tency (using files as data structures), parallelism (by means of pipes,
processes, and IPC), protection and recovery (through separate
address spaces), and human editable data representations (text).
From a practical point of view, these are handled quite well in the
Unix environment.

Thomas Breuel credits Unix with one approach to solving the complicated
problems of computer science. Fortunately, this is not the approach that
other sciences have used for solving problems posed by the human condi-
tion.
Date: Tue, 12 Nov 91 11:36:04 -0500
From: [email protected]
To: UNIX-HATERS
Subject: Random Unix similes

Treating memory management through process creation and exit is
like medicine treating illness through living and dying, i.e., it is
ignoring the problem.

Having Unix files (i.e., the Bag O’ Bytes) be your sole interface to
persistency is like throwing everything you own into your closet and
hoping that you can find what you want when you need it (which,
unfortunately, is what I do).

Parallelism through pipes, processes, and IPC? Unix process over-
head is so high that this is not a significant source of parallelism. It is
like an employer solving a personnel shortage by asking his employ-
ees to have more children.

Yep, Unix can sure handle text. It can also handle text. Oh, by the
way, did I mention that Unix is good at handling text?

—Mark
Free download pdf