Many tree and dag pipe notations have been proposed. Marc's was one of
the first. I devised one myself, but didn't like it enough to publish
it even as a TM. A recent one is Spinellis's dgsh. More elaborate
networks with feedback loops evolve for power-series computation. The
idea of implementing cellular automata as arrays of processes with
nearest neighbors connected by pipes was suggested early on, but I've
never seen such an arrangement implemented--it would be hideously
slow.
I once wrote a general plumber that worked from a connection list:
connect fd m in process A to fd n in process B. The main challenge was
to find an order of hooking things up so that the number of live file
descriptors in the plumber didn't exceed the system limit.
Doug
> Pipes were invented at least three times
I would add a 4th: POGOL--a remarkable data-processing language from
NSA, described by Gloria Lambert at the first POPL conference, 1973. A
POGOL program is made of processes that read and write notional files.
The compiler considers all the processes together and optimizes files
out of existence wherever it sees that written data can be read
immediately. Otherwise a buffering file is instantiated. Unlike Unix
pipes, though, a pair of communicating processes must share common
knowledge about the connection--the file name.
A ready-made theory of pipe networks was published essentially
simultaneously with the advent of DTSS communication files:
R.M. Karp, R.E. Miller, and S. Winograd. The organization of
computations for uniform recurrence equations. Journal of the ACM,
14(3):563-590, July 1967.
Completely unsuspecting processes could have been connected by a pair
of DTSS communication files controlled by a master relay process. As
far as I know this was never done, although such a mechanism was used
for the DTSS chat facility.
For the special case of clocked sample-data networks, BLODI (block
diagram compiler) by Lochbaum, Kelly and Vyssotsky was way ahead
(1960) of all the pipe-based formalisms.
Doug
Since MINIX was a UNIX V7 clone for teaching, I figure this is at least somewhat on-topic.
I’ve wanted to port MINIX 1.5 for M68000 to other systems besides Amiga, Atari ST, and the classic Mac, but trying to do that within a system emulator is a pain and doesn’t help you use a modern editor or SCM system. So I took the Musashi M68000 emulator and, using the MINIX 1.5 sources for Atari ST for reference, I’ve implemented a system call emulator that’s now _almost_ sufficient to run /usr/bin/cc.
It’s up on GitHub at https://github.com/eschaton/MINIXCompat and I’ve released it under an MIT license. It requires my forked version of the Musashi project that supports implementing a TRAP instruction via a callback, which is necessary for implementing system calls on the host side. I reference this via a submodule so it can be kept at least logically distinct from the rest of the code. There’s no Makefile as I’m using Xcode on macOS to develop it, though I expect to write one at some point so I can run it on NetBSD and Linux as well as on macOS; writing one should be straightforward.
-- Chris
> From:
> I was able to rebuild both the UNSW and the native PWB compiler on PWB
> 1.0, but not to backport either to vanilla v6.
Any idea what the problem was? I'm curious, because we ran a version of the
Typesetter compiler on the MIT systems, which ran an enhanced V6.
Noel
Marshall Kirk McKusick gave a talk on the history of
the BSD Daemon:
https://www.youtube.com/watch?v=AeDaD-CEzzg
"This video tells the history of the BSD Daemon. It
starts with the first renditions in the 1970s of the
daemons that help UNIX systems provide services to
users. These early daemons were the inspiration for
the well-known daemon created by John Lasseter in the
early 1980s that became synonymous with BSD as they
adorned the covers of the first three editions of `The
Design and Implementation of the BSD Operating System'
textbooks. The talk will also highlight many of the
shirt designs that featured the BSD Daemon."
On Sun, Oct 20, 2024 at 01:23:23AM -0400, Dan Plassche wrote:
>
> On Sat, 19 Oct 2024, Jonathan Gray wrote:
>
> > PWB was an early external distribution with troff.
> >
> > Documents for the PWB/UNIX Time-Sharing System
> > https://datamuseum.dk/wiki/Bits:30007124
> > https://bitsavers.org/pdf/att/unix/PWB_UNIX/
> >
> > NROFF/TROFF User's Manual
> > October 11, 1976
> > datamuseum.dk, pp 325-357
> > bitsavers, pp 217-249
> >
> > Addendum to the NROFF/TROFF User's Manual
> > May 1977
> > datamuseum.dk, p 358
> > bitsavers, p 250
> >
> > fonts described in:
> > Administrative Advice for PWB/UNIX
> > 23. PHOTOTYPESETTING EQUIPMENT AND SUPPLIES
> > datamuseum.dk, p 647
>
> Thank you Jonathan. I was previously not sure where to place the
> PWB documentation in the timeline but a clearer picture is
> emerging.
>
> Based on the v6 "NROFF User's Manual" revised in 1974 and
> published in 1975, I can now see that the PWB documentation with
> the "NROFF/TROFF User's Manual" from 1976-77 has most of the
> content that later appears in v7. The major change immediately
> beforehand was the rewrite of troff into C.[1] Some clear
> differences are the combination of nroff and troff manpages and
> the addition of troff specific features like the special fonts
> into the user's manual.
>
> [1]. Apparently in 1976:
> https://www.tuhs.org/Archive/Distributions/USDL/unix_program_description-tr…
"It was rewritten in C around 1975"
Kernighan in CSTR 97, A Typesetter-independent TROFF
I've seen references to
"Documents for Use with the Phototypesetter (Version 7)"
which was likely distributed with the licensed phototypesetter tape in 1977.
What may have been the manual distributed with that tape is also close to v7.
https://www.tuhs.org/cgi-bin/utree.pl?file=Interdata732/usr/source/troff/dochttps://www.tuhs.org/Archive/Distributions/Other/Interdata/
tuhs Applications/Spencer_Tapes/unsw3.tar.gz
usr/source/formatters/troff/doc/
The "man 1 iconv" page on both HP-UX 11i 11.23 (Aug 2003) and 11.31 (Feb
2007) remark that iconv was developed by HP.
Cheers,
uncle rubl
--
The more I learn the better I understand I know nothing.
So a project I'm working on recently includes a need to store UTF-8 Japanese kana text in source files for readability, but then process those source files through tools only guaranteed to support single-byte code points, with something mapping the UTF-8 code points to single-byte points in the destination execution environment. After a bit of futzing, I've landed on the definition of iconv(1) provided by the Single UNIX Specification to push this character mapping concern to the tip of my pipelines. It is working well thus far and insulates the utilities down-pipe from needing multi-byte support (I'm looking at you Apple).
I started thumbing through my old manuals and noted that iconv(1) is not a historic utility, rather, SUS picked it up from HP-UX along the way.
Was there any older utility or set of practices for converting files between character encodings besides the ASCII/EBCDIC stuff in dd(1)? As I understand it, iconv(1) is just recognizing sequences of bytes, mapping them to a symbolic name, then emitting them in the complementary series of bytes assigned to that symbolic name in a second charmap file. This sounds like a simple filter operation that could be done in a few other ways. I'm curious if any particular approach was relatively ubiquitous, or if this was an exercise largely left to the individual and so solutions were wide and varied? My tool chain doesn't need to work on historic UNIX, but it would be cool to understand how to make it work on the least common denominator.
- Matt G.
>>> malloc(0) isn't undefined behaviour but implementation defined.
>>
>> In modern C there is no difference between those two concepts.
> Can you explain more about your view
There certainly is a difference, but in this case the practical
implications are the same: avoid malloc(0). malloc(0) lies at the high end
of a range of severity of concerns about implementation-definedness. At the
low end are things like the size of ints, which only affects applications
that may confront very large numbers. In the middle is the default
signedness of chars, which generally may be mitigated by explicit type
declarations.
For the size of ints, C offers guardrails like INT_MAX. There is no test to
discern what an error return from malloc(0) means.
Is there any other C construct that implementation-definedness renders
useless?
Doug
Hello, all.
Have you an idea where one could find the sources of the various
versions of the ex/vi editor, besides those archived at TUHS:
1BSD/ex-1.1
2.11BSD/src/ucb/ex
2.9BSD/usr/src/ucb/ex/ex2
2.9BSD/usr/src/ucb/ex/ex3
2BSD/src/ex
3BSD/usr/src/cmd/ex
4.1cBSD/usr/src/ucb/ex
4.2BSD/usr/src/ucb/ex
4.3BSD-Reno/src/usr.bin/ex
4.3BSD-Tahoe/usr/src/ucb
4.3BSD-UWisc/src/ucb/ex
4.3BSD/usr/src/ucb/ex
4.4BSD/usr/src/usr.bin/ex
4BSD/usr/src/cmd/ex
OpenSolaris_b135/cmd/vi
There include vv. 1.1, 2.13, 3.2, 3.6, and many variants of 3.7. Has
anything else been preserved to your knowledge?
It happened in September, apparently, but is only now making the rounds.
Darl McBride, known for taking everybody and his brother to court over
stolen code, has passed away.
https://fossforce.com/2024/11/once-linuxs-biggest-enemy-darl-mcbride-dies-a…
I actually remember liking SCO back in the day, before the company
leadership went dark-side. These days, we get to play with ancient unix
cuz of their license. What a topsy turvy world.
Is there a concise summary of the SCO suits and fallout out there? I've
seen a lot on the AT&T side of things, but other than having lived
through it, I've not seen much on what eventually happened and why it
all sort of just dissappeared.
Will
> From: Warner Losh
>> On Mon, Nov 4, 2024 at 8:14PM Larry McVoy wrote:
>> The bmap implementations I saw were bit for bit identical, same code,
>> same variables, same style, same indentation. I'm 100% sure they were
>> not independent.
> They are different in 4.3BSD. They are different in 4.2BSD (but less
> different). The underlying filesystems are different on disk, so they
> routines have to be different.
That last sentence points out something important that people need to remember
in this discussion: in between 4.1 and 4.2 (technically, in 4.1B), BSD
switched to the BSD Fast File System, so I very much doubt that the low-level
(i.e. logical file block to disk block) file system code in anything after
4.1A looks much like the AT+T low-level file system code. (I have no idea how
the BSD code compares to the Linux file system code, but that's between the
Linux people, and Berkeley.)
Noel
As a bit-part expert witness for the other side of the SCO case, I saw
hundreds of pages of evidence in the form of side-by-side code
comparison. As I recall, the vast majority of highlighted
correspondences were small snippets, often rearranged. I didn't
interact with the lawyers enough to form a solid opinion about where
this stood on the spectrum of coincidence to fair use to plagiarism.
It certainly wasn't wholesale copying. I do not recall being asked to
opine on whether trade secrets had been stolen.
Apropos of rearranged snippets, one of the diff algorithms I
experimented with in the mid-70s identified rearrangements. I
abandoned it because real life code contains lots of similar lines, so
many in PDP-11 assembler programs as to suggest that these programs
are largely permutations of each other. The phenomenon is much less
common in C, but still present; witness the prevalence of code like
int i, n;
for(i=0; i<n; i++) {
The phenomenon may have been afoot in the SCO evidence.
In regard to trade secrets, I was surprised when I moved from Unix at
Bell Labs to Linux at Dartmouth and found calendar(1) to be completely
rewritten, but with logic absolutely identical to the original version
I wrote at the Labs. That was so idiosyncratic that the identity of
the two could not have been an accident.
Doug
Hi All.
For anyone who's interested, my QED archive at
https://github.com/arnoldrobbins/qed-archive has been updated. Changes
were provided by Sean Jensen.
The usenix-80-caltech subdirectory is now more complete and the README.md
points at Sean's updated QED port which now works with Unicode.
I thank him.
Arnold
So with all that has happened with the Internet Archive lately, I
do find myself a bit concerned regarding the UNIX materials that
I know to only exist there. Selfishly, this includes my own
uploads here: https://archive.org/details/@segaloco
I was curious if anyone has any suggestions on places beyond just
IA and TUHS where I could see about getting this stuff mirrored?
Unfortunately my stuff runs afoul of bitsavers's DPI requirements,
that's the only other source that immediately comes
to mind where these materials would find home. Any thoughts?
Warren, I know you had mentioned a "write only" archive you
maintain regarding materials that need to be mothballed until legal
understandings are reached, would you be comfortable with my
contributing any of my materials the Caldera license does not apply
to there?
- Matt G.
Hi,
A scan of the printed UNIX Version 6 documents set is now online
at the link below since last week. The set consists of documents
accompanying the manual pages in the programmer's manual (similar
to volume 2 in v7).
https://www.computerhistory.org/collections/catalog/102659317
The [nt]roff user manual, tmg compiler-compiler, and m6 macro
processor memos were previously missing from the distributions
in TUHS and later efforts to re-create the documentation.
I have been working on finding this documentation as part of
researching roff history. Still interested in earlier copies of
the internal memoranda from Ossanna that served as the NROFF
User's Manual since v3, the TROFF User's Manual after v5, and
TROFF Made Trivial starting around v4. Based on the manpage
histories, the documentation was revised for v4, 5, and 6.
Best,
Dan Plassche
> Who created the "cat" command and did they have the
> word "catenate" or "concatenate" in their heads?
Ken Thompson wrote "cat" for the PDP-7, with "concatenate" in
mind. The cat(1) page in the v1 manual is titled, "concatenate (or
print) files". Only later did someone in Research--I don't know
who--remark on the existence of the shorter synonym. It was
deliberately adopted in v7, perhaps because it better mirrored
the command name.
But brevity is the defensible argument for "catenate", while
familiarity boosts "concatenate". It stll takes some conscious
effort for me to use the former, However, I sense sinister
vibes in "concatenate", driven by the phrase "concatenation
of events", which often is used to explain misfortune.
Doug
I always forget that TUHS can't handle pictures. Perhaps Warren will let my
post through, but in any case here's a link to the mail, reformatted but
otherwise intact, with photos, on Mastodon.
https://hachyderm.io/@robpike/113322062117546253
To pique your interest, here's the first paragraph.
*In August 1981 we had a persistent problem with the RP06 on our PDP-11/70
crashing disks. It even crashed once while the DEC repairman was standing
next to it trying to figure out why the previous pack had died. We
collected a few dead packs, and they were forming a pile. Lillian, never
one to miss an opportunity, suggested building a mobile.*
-rob
Hello, all.
In 2002, Caldera released Ancient Unix code under Caldera
license:
<https://www.tuhs.org/Archive/Caldera-license.pdf>
based on the four-clause BSD license:
<https://spdx.org/licenses/BSD-4-Clause.html>
Consequently, it was used by derived projects, such as
Traditional Vi:
<https://ex-vi.sourceforge.net/>
This proect having been abandoned and orphaned since 2005, I
wanted to host it on GNU Savanna and there to breath some
life into it. Unfortunately, the 4-clause BSD license is
incompatible with GPL:
<https://www.gnu.org/licenses/license-list.html#OriginalBSD>
The incompatibilty is due entirely to the infamous third
clause about adverising. Three years prior to Caldera's
release of old Unix code, The Berkley Univercity removed
this clause, producing the GNU-compatible modified BSD
License:
<https://opensource.org/license/BSD-3-clause>
They published a notice to that effect on their FTP:
<ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change>
Although it has been taken down[1], copies exist all over
the internet, e.g.:
<https://raw.githubusercontent.com/abbrev/punix/refs/heads/master/README.Imp…>
That said, is there a chance that the copyright holder of
Ancient Will agree to release a similar note regarding
everying released under Caldera license? If there is, whom
shall I contact about it? It will benefit everybody using
Ancient Unix code.
____________________
1. Why the murrain of FTP servers all over the world?