From: Marc Donner <firstname.lastname@example.org>
To: TUHS <email@example.com>
Subject: [TUHS] Re: Has this been discussed on-list? How Unix changed Software.
Date: Tue, 6 Sep 2022 12:09:56 -0400 [thread overview]
Message-ID: <CALQ0xCBjxQWUfcdKy_tU9Ee=O0TXd0NOyNivYqbeq1rQKg_Ehg@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 10782 bytes --]
Having spent many formative years at IBM Research throwing (metaphorical)
bombs at mainframe systems and infiltrating the place with BSD, I have
thought about this question on and off.
I would like to augment your comments with a couple of extra observations:
UNIX was built for a particular set of users - document writers and
Before UNIX the systems were industrial in design and scope. Sort of like
MVS was a locomotive - designed to be used for hauling heavy freight
(acres of data entry clerks answering 800 numbers and entering
transactions). UNIX was more like cars and trucks - designed for use by
When I was a grad student I hung out with some remarkable programmers. We
all observed that learning to program was impossible without a body of code
to read, study, and learn from. The best places to learn programming in
the 70s and 80s were places like MIT, Berkeley, Bell Labs, and IBM Research
... places with an established culture of sharing code internally and large
repositories of code to read.
By the mid-1980s the Microsoft folks established the notion that software
was economically valuable. People stopped giving away source code (IBM's
change in strategy was called OCO - "Object Code Only") and it totally
shocked the software developer community by destroying the jobs for
programmers at user sites. Combine that with the mid-1980s recession and
the first layoffs that programmers had ever seen and we saw the first
horrified realization that the social contract between programmers and
employers did not actually exist.
We, the programmer community, woke up and committed ourselves as much as
ever we could to non-proprietary languages and tools, putting our shoulders
to the OSS movement and hence to UNIX and the layer of tools built on top
Of course it helped to have some brilliant engineers like Ken, Dennis,
Doug, Rob, Michael, Stu (and and and) and brilliant writers like Brian so
that the thing (UNIX) had intellectual integrity and scope.
It took UNIX twenty to thirty years, but the economic logic of our approach
put an end to efforts to totally dominate the tech world.
On Mon, Sep 5, 2022 at 7:49 PM steve jenkin <firstname.lastname@example.org>
> I’ve been looking at this question for a time and thought it could’ve
> appeared on the TUHS list - but don’t have an idea of the search terms to
> use on the list.
> Perhaps someone suggest some to me.
> As a starting point, below is what John Lions wrote on a similar topic in
> 1978. Conspicuously, “Security” is missing, though “Reliability &
> Maintenance” would encompass the idea.
> With hindsight, I’d suggest (Research) Unix took a very strong stance on
> “Technical Debt” - it was small, clean & efficient, even elegant. And
> ‘shipped' with zero known bugs.
> It didn’t just bring the Unix kernel to many architectures, the same tools
> were applied to create what we now call “Open Source” in User land:
> - Multi-platform / portable
> - the very act of porting software to diverse architectures
> uncovered new classes of bugs and implicit assumptions. Big- &
> Little-endian were irrelevant or unknown Before Unix.
> - full source
> - compatibility layers via
> - written in common, well-known, well-supported languages [ solving the
> maintenance & update problem ]
> - standard, portable “toolchains”
> - shell, make, compiler, library tools for system linker,
> documentation & doc reading tools
> - distribution systems including test builds, issue / fault
> reporting & tracking
> An emergent property is "Good Security”, both by Design and by (mostly)
> error-free implementations.
> In the Epoch Before Unix (which started when exactly?), there was a lot of
> Shared Software, but very little that could be mechanically ported to
> another architecture.
> Tools like QED and ROFF were reimplemented on multiple platforms, not
> ‘ported’ in current lingo.
> There are still large, complex FORTRAN libraries shared as source.
> There’s an important distinction between “Open” and “Free” : cost &
> We’ve gone on to have broadband near universally available with easy to
> use Internet collaboration tools - e.g. “git”, “mercurial” and “Subversion”
> just as CVS’s.
> The Unix-created Open Source concept broke Vendor Lock-in & erased most
> The BSD TCP/IP stack, and Berkeley sockets library, were sponsored by
> DARPA, and made freely available to vendors as source code.
> Similarly, important tools for SMTP and DNS were freely available as
> Source Code, both speeding the implementation of Internet services and
> providing “out of the box” protocol / function compatibility.
> The best tools, or even just adequate, became only a download & install
> away for all coding shops, showing up a lot of poor code developed by
> in-house “experts” and radically trimming many project schedules.
> While the Unix “Software Tools” approach - mediated by the STDOUT / STDIN
> interface, not API’s - was new & radical, and for many classes of problems,
> provided a definitive solution,
> I’d not include it in a list of “Open Source” features.
> It assumes a “command line” and process pipelines, which aren’t relevant
> to very large post-Unix program classes: Graphical Apps and Web / Internet
> steve jenkin
> Lions, J., "An operating system case study" ACM SIGOPS Operating Systems
> Review, July 1978, ACM SIGOPS Oper. Syst. Rev. 12(3): 46-53 (1978)
> 2. Some Comments on UNIX
> There is no space here to describe the technical features of UNIX in
> detail (see Ritchie and Thompson, 1974 ; also Kernighan and Plauger, 1976),
> nor to document its performance characteristics, which we have found to be
> very satisfactory.
> The following general comments do bear upon the present discussion:
> (a) Cost.
> UNIX is distributed for "academic and educational purposes" to
> educational institutions by the Western Electric Company for only a nominal
> and may be implemented effectively on hardware configurations costing
> less than $50,000.
> (b) Reliability and Maintenance.
> Since no support of any kind is provided by Western Electric,
> each installation is potentially on its own for software
> UNIX would not have prospered if it were not almost completely
> error-free and easy to use.
> There are few disappointments and no unpleasant surprises.
> (c) Conciseness.
> The PDP-11 architecture places a strong limitation on the size of the
> resident operating system nucleus.
> As Ritchie and Thompson (1974) observe,
> "the size constraint has encouraged not only economy but a certain
> elegance of design".
> The nucleus provides support services and basic management of
> processes, files and other resources.
> Many important system functions are carried out by utility programs.
> Perhaps the most important of these is the command language
> interpreter, known as the "shell".
> (Modification of this program could alter, even drastically, the
> interface between the system and the user.)
> (d) Source Code.
> UNIX is written almost entirely in a high level language called "C"
> which is derived from BCPL and which is well matched to the PDP-11.
> It provides record and pointer types,
> has well developed control structures,
> and is consistent with modern ideas on structured Programming.
> (For the curious, the paper by Kernighan (1975) indirectly indicates
> the flavour of "C"
> and exemplifies one type of utility program contained in UNIX.)
> Something less than i0,000 lines of code are needed to describe the
> resident nucleus.
> pg 47
> (e) Amenability.
> Changes can be made to UNIX with little difficulty.
> A new system can be instituted by recompiling one or more files (at an
> average of 20 to 30 seconds per file),
> relinking the file containing the nucleus (another 30 seconds or so),
> and rebooting using the new file.
> In simple cases the whole process need take no more than a few minutes.
> (f) Intrinsic Interest.
> UNIX contains a number of features which make it interesting in its own
> the run-time support for the general tree structured file system
> is particularly efficient;
> the use of a reserved set of file names smooths the concepts of
> device independence;
> multiple processes (three or four per user is average) are used in
> a way which in most systems is regarded as totally extravagant
> (this leads to considerable simplification of the system/user
> and the interactive intent of the system has resulted in an
> unusually rich set of text editing and formatting programs.
> (g) Limitations.
> There are few limitations which are of concern to us.
> The PDP-11 architecture limits program size, and this for example
> frustrated an initial attempt to transfer Pascal P onto the 11/40.
> Perhaps the greatest weakness of UNIX as it is presently distributed
> (and this is not fundamental!)
> is in the area where other systems usually claim to be strong:
> support for "bread and butter" items such as Fortran and Basic.
> (h) Documentation.
> The entire official UNIX documentation, including tutorial material,
> runs to less than 500 pages.
> By some standards this is incredibly meagre,
> but it does mean that student can carry his own copy in his brief
> Features of the documentation include:
> - an unconventional arrangement of material (unsettling at first,
> but really very convenient);
> - a terse, enigmatic style, with much information conveyed by
> - a permuted KWIC index.
> Most importantly perhaps UNIX encourages the programmer to document his
> There is a very full set of programs for editing and formatting text.
> The extent to which this has been developed can be gauged from the
> paper by Kernighan and Cherry (1975).
> Steve Jenkin, IT Systems and Design
> 0412 786 915 (+61 412 786 915)
> PO Box 38, Kippax ACT 2615, AUSTRALIA
> mailto:email@example.com http://members.tip.net.au/~sjenkin
[-- Attachment #2: Type: text/html, Size: 13289 bytes --]
next prev parent reply other threads:[~2022-09-06 16:11 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-05 23:48 [TUHS] " steve jenkin
2022-09-06 16:09 ` Marc Donner [this message]
2022-09-07 4:00 ` [TUHS] " steve jenkin
2022-09-07 14:58 ` John Cowan
2022-09-07 17:13 ` Paul Winalski
2022-09-08 14:12 ` Paul Winalski
2022-09-07 5:15 ` steve jenkin
2022-09-07 13:20 ` Dan Cross
2022-09-07 13:52 ` Steve Nickolas
2022-09-07 12:53 ` [TUHS] STDIN/OUT vs APIs [was: How Unix changed Software] Brian Zick
2022-09-07 13:19 ` [TUHS] " John Cowan
2022-09-07 15:39 ` Joe
2022-09-07 15:43 ` John Cowan
2022-09-07 16:01 ` Charles H Sauer (he/him)
2022-09-06 15:07 [TUHS] Re: Has this been discussed on-list? How Unix changed Software Douglas McIlroy
2022-09-06 17:13 ` Larry McVoy
2022-09-07 1:40 ` steve jenkin
2022-09-07 2:33 ` segaloco via TUHS
2022-09-07 4:08 ` Steve Jenkin
2022-09-07 13:08 ` Steffen Nurpmeso
2022-09-07 14:56 ` Larry McVoy
2022-09-07 21:27 ` Steve Jenkin
2022-09-07 22:36 ` Larry McVoy
2022-09-08 14:42 ` Paul Winalski
2022-09-08 15:02 ` Larry McVoy
2022-09-08 15:04 ` ron minnich
2022-09-08 15:52 ` Warner Losh
2022-09-08 16:47 ` Paul Winalski
2022-09-08 16:50 ` segaloco via TUHS
2022-09-08 17:58 ` ron minnich
2022-09-06 19:04 Douglas McIlroy
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).