Off topic, but too much fun to pass up.
>> You wrote your algorithm in Pascal, debugged it, and then rewrote it in your favourite language (in my case, ALGOL-W).
> Now why didn't Don Knuth think of that for TeX?
I'm glad he didn't. He might have written it in Mix. Knuth once said
he didn't believe in higher-level languages. Of course he knew more
about them than anybody else and was CACM's associate editor for the
subject--like a minister who doesn't believe in God.
Doug
> From: "Theodore Y. Ts'o"
> Having a clean architecture is useful in so far as it makes reduces
> maintenance overhead and improves reliability.
I would put it differently, hence my aphorism that: "the sign of great
architecture is not how well it does the things it was designed to do, but how
well it does things you never imagined it would be used for".
I suppose you could say that reducing maintenance and improving reliability
are examples of the natural consequences of that, but to me those are limited
special cases of the more general statement. My sense is that systems decline
over time because of what I call 'system cancer': as they are modified to do
more and more (new) things, the changes are not usually very cleanly
integrated, and eventually one winds up with a big pile. (Examples of this
abound; I'm sure we can all think of several.)
Noel
Sorta relevant to both groups...
Augusta Ada King-Noel, Countess of Lovelace (and daughter of Lord Byron),
was born on this day in 1815; arguably the world's first computer
programmer and a highly independent woman, she saw the potential in
Charles Babbage's new-fangled invention.
J.F.Ossanna was given unto us on this day in 1928; a prolific programmer,
he not only had a hand in developing Unix but also gave us the ROFF
series.
Who'ld've thought that two computer greats would share the same birthday?
-- Dave
> From: Niklas Karlsson
> Just consider Multics, or IBM's "Future System".
Here's a nice irony for you: one of the key people in killing off FS was
reported to me (by someone who should have known) to be Jerry Saltzer (of
Multics fame). That wasn't the only time he did something like thst, either;
when MIT leaned on him to take over Athena, the first thing he did was to take
a lot of their ambitious system plans, and ditch them; they fell back to
mostly 'off the shelf' stuff: pretty much vanilla 4.2, etc.
Multics itself has an interesting story, quite different from the popular
image among those who know little (or nothing) of it. The system, as it was
when Honeywell pulled the plug on further generations of new hardware (in the
mid-80's) was very different from the system as originally envisaged by MIT
(in the mid-60's); it had undergone a massive amount 'experience-based
evolution' during those 20 years.
For instance, the original concept was to have a process per command (like
Unix), but that was dropped early on (because Multics processes were too
'expensive'); they wound up going with doing commands with inter-segment
procedure calls. (Which has the nice benefit that when a command faults, you
can get dropped right into the debugger, with the failed instance there to
look at.) If you read the Organick book on Multics, it describes a much
different system: e.g. in Organick there's a 'linkage segment' (used for
inter-segment pointers, in pure-code segments) per code segment, but in
reality Multics, as distributed, used a single 'combined linkage segment'
(which also contained the stack, also unlike the original design, where the
stack was a separate segment).
There were also numerous places where major sub-systems were re-implemeneted
from scratch, with major changes (often great simplifications): one major
re-do was the New Storage System, but that one had major new features (based
on operationally-shown needs, like the 4.1/.2 Fast File System), so it's not a
'simplification' case. There's one I read about which was much simpler the second
time it was implemented, I think it was IPC?
Noel
At 09:40 AM 12/9/2020, Clem Cole wrote:
>My own take on this is what I call "Cole's Law"Â Â Simple economics always beats sophisticated architecture.
I thought that was finely sliced cabbage with a tart salad dressing.
- John
When I got into Unix in 1976 cron and at were both there.
I got to wondering for no particular reason which came first -- I had
always assumed cron, but ...?
Anyone know?
Last night I stumbled upon this speech by Doug McIlroy at Dijkstra's retirement banquet @ UT Austin where he tells the story of his first encounter with EWD and the origins of programming without goto.... Given that we recently had a discussion on "Goto considered harmful", you all may enjoy it. Make sure you watch the start of part 10 as well as that is where the story ends.
https://youtu.be/5OUPBwrufKA?list=PL328C7EFFC1F41674&t=326
Hoi,
I'm wondering what the name of the B compiler was.
Doug's ``Unix Reader'' lists:
1 2 3 4 5 6 7 8 9
+ + + . . . . . . b compile b program
. . . . . + + + + bc arbitrary-precision arithmetic language
Via Wikipedia I found a scan of the ``Users' Reference to B'',
a technical memorandum by Ken, dated 1972-01-07 (which is between
the releases of the 1st and 2nd Edition).
https://web.archive.org/web/20150317033259/https://www.bell-labs.com/usr/dm…
There on page 25:
10.0 Usage
Currently on UNIX, there is no B command. The B compiler phases
must be executed piecemeal. The first phase turns a B source
program into an intermediate language.
/etc/bc source interm
The next phase turns the intermediate language into assembler
source, at which time the intermediate language can be removed.
/etc/ba interm asource
rm interm
The next phase assembles the assembler source into the object
tile a.out. After this the a.out file can be renamed and the
assembler source file can be removed.
as asource
mv a.out object
rm asource
The last phase loads the various object files with the necessary
libraries in the desired order.
ld object /etc/brtl -lb /etc/bilib /etc/brt2
Now a.out contains the completely bound and loaded program and
can be executed.
a.out
A canned sequence of shell commands exists invoked as follows:
sh /usr/b/rc x
It will compile, convert, assemble and load the file x.b into the
executable file a.out.
It lists /etc/bc, as a command to convert into the intermediate
language, and /etc/ba, to convert the intermediate language into
assembler source, but lists no `b' command. The wrapper script is
/usr/b/rc.
Can someone clarify?
I came to this question because I was looking for one letter
commands. I always thought them to be a reserved namespace for the
user ... Any background on that topic is appreciated as well. ;-)
meillo
There's a back story. The paper appears in the proceedings of a
conference held in London in 1973, a few months after the advent of
pipes. While preparing the presentation, Ken was inspired to invent
and install the pipe operator. His talk wouldn't have been nearly as
compelling had it been expressed in the original pipeline syntax (for
which I take the blame).
References to eqn (v5), bc (v6), and ratfor (v7) obviously postdate
the London conference. Ken must have edited--or re-created--the
transcript for the proceedings sometime after v6 (May, 1975).
Bibliographic citations are missing. Can they be resurrected?
Reference 137, about Unix itself, probably refers to a
presentation by Ken and Dennis at SOSP in January1973. Alas, only an
abstract of the talk appears in the conference proceedings. But the
abstract does contain the potent and often-repeated sentence, "It
offers a number of features seldom found even in larger operating
systems, including ... inter-process IO ..." The talk--in Yorktown
Heights--was memorable, and so was a ride to the same place in Ken's
'vette. (I can't recall whether the two happened on the same
occasion.)
Given that the talk at SOSP preceded the talk in London, and that the
Unix manual was widely distributed by (1976) when the revised London
talk was printed, the claim that "The Unix command language" was the
first publication of Unix seems hyperbolic. In no way, though, does
this detract from the inherent interest of the paper.
Doug
Hi All,
So, I'm about to get my very own Apple IIe and while it's an incredibly
versatile machine for assembly language and hardware hackery, I'm not
aware of any Unices that run on the machine, natively. Does anybody know
of any from back in the day?
It's got a 65c02 processor and somewhere around 128k of RAM, but it's
also pretty expandable w/7 slots and a huge amount of literature about
how to do stuff w/those slots.
Thanks,
Will
--
GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF