So System V shops had to hold a license with AT&T to modify and redistribute
code based on UNIX System V and they would then license directly with their
customers correct? This being distinct from the way licensing with BSD was
concerned in that you had to pursue the license with AT&T to then use BSD. That
is my current understanding anyway that I base this question on.
So IBM, DEC, Sun, HP, Microsoft, etc. approach AT&T, got a source license, and
started producing their System V value adds out there in the world. In this
present day and age, for those still shipping genuine System V derivatives, what
does this licensing landscape actually look like? Do the players still in the
game still refer to whatever license they started with back in the 80s, did they
renew up until say SVR4 when folks stopped drinking from the USL well, or are
there still ongoing licenses that the remaining vendors have to renew to
distribute their software?
Where I'm going with this is just another angle on the whole "who owns System V"
question which comes up in my mind all the time. Knowing the specific legal
entities involved in the most recent licensing documentation would certainly
factor into understanding the landscape a little better.
To boil that down to a specific example, once upon a time, Sun held a license
with AT&T to use, modify, and redistribute UNIX System V. At the present
moment, Oracle is the distributor of Solaris. If there is a piece of licensing
paperwork sitting in a filing cabinet at Oracle somewhere, who would that
paperwork say is the original licensor of the product? Would that even matter
in this year of 2025?
- Matt G.
Hi all,
I see that there has been quite a bit of activity in the last few weeks
with 2.11BSD, resulting in the release of a number of patches. Is there
any sort of announcement list that one could subscribe to in order to be
notified of when these patch releases occur? Would it make sense to post
patch announcements to the TUHS or SIMH lists? TUHS seems somewhat natural
since one of the patch distribution methods is through their archive,
though I am open to thoughts that anyone else has about this. I only
happened to be aware of the patches because I have the "History of the
Berkeley Software Distribution" page on my Wikipedia watchlist and someone
has been very diligent about updating the 2.11BSD patch status there.
-Henry
> "The requirement that awk add a trailing <newline> to the program argument
> text is to simplify the grammar, making it match a text file in form."
This should no more be a *requirement* for awk than globbing should have
been a requirement for MS-DOS apps. A widespread principle deserves a
widespread answer. If it is a requirement on awk, then for interoperability
it should be made a requirement on all programs that handle text files,
especially editors.
The way to do that, of course, would be to redefine text file to allow a
non-newline as the last character. Ugh.
Not warning perpetuates travesties like "awk END{print NR}' " giving a different
answer than "wc -l".
I agree that awk does the kind thing by supplying the final newline. But
it should recognize that this is non-standard behavior and warn in the
interest of discouraging the proliferation of garbage.
Postel's so-called "robustness principle" is in play here. "Be conservative
in what you send, be liberal in what you accept" would better read,
"Send conservatively; receive amply but grudgingly".
Doug
Re: newlines at the end of files.
I hesitate to ask this in such exalted company, but isn’t it a question of whether the newline is (or should be) a line terminator, or a statement separator?
-Steve
>> info groff gives semantics for including nonempty files that don't end
>> with newline. Such files violate the Posix definition of text file.
>>
>> Although groff is certainly justified in providing semantics for
>> non-Posix text, I suggest that it should warn when it does so.
> That's true but I'm hesitant to put groff in the business of wagging its
> finger at users feeding it non-strictly-conforming text files when doing
> so doesn't cause it any problems.
Causing groff problems is an odd criterion. The fact that groff will paste
files together unless the first happens to end in a newline is a sign of
groff 's internals, not of the underlying problem.
A newline missing at the end of a file is typically a symptom of either the
incaution of some other program (perhaps an editor) or of a file having
been unexpectedly truncated (as by a program abort). The latter cause
is common enough to justify warning always, not just about cases that
are inconvenient to groff.
Groff is what it is, but if the treatment of absent final newlines were up
for grabs, I'd argue for the more common solution: in all cases insert
a newline and warn.
Doug
The March 2025 issue of an IEEE journal has published Marc Rochkind's
article on SCCS. TUHS list members discussed a draft version of the
article last fall. Here is its BibTeX entry:
@String{j-IEEE-TRANS-SOFTW-ENG = "IEEE Transactions on Software Engineering"}
@Article{Rochkind:2025:RSC,
author = "Marc J. Rochkind",
title = "A Retrospective on the {Source Code Control System}",
journal = j-IEEE-TRANS-SOFTW-ENG,
volume = "51",
number = "3",
pages = "695--699",
month = mar,
year = "2025",
CODEN = "IESEDJ",
DOI = "https://doi.org/10.1109/TSE.2024.3524947",
ISSN = "0098-5589 (print), 1939-3520 (electronic)",
ISSN-L = "0098-5589",
bibdate = "Tue Mar 25 08:57:56 2025",
bibsource = "https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng2020.bib",
acknowledgement = ack-nhfb,
ajournal = "IEEE Trans. Softw. Eng.",
fjournal = "IEEE Transactions on Software Engineering",
journal-URL = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
keywords = "Codes; Control systems; CSSC; Mainframes; Merging;
Programming; SCCS; Software; software configuration
management; Software development management; software
engineering; Software engineering; software
reliability; Software reliability; software tools;
Source coding; source control management; version
control systems",
}
-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- University of Utah -
- Department of Mathematics, 110 LCB Internet e-mail: beebe(a)math.utah.edu -
- 155 S 1400 E RM 233 beebe(a)acm.org beebe(a)computer.org -
- Salt Lake City, UT 84112-0090, USA URL: https://www.math.utah.edu/~beebe -
-------------------------------------------------------------------------------
The specs aren’t that quite equivalent:
1Kb SRAM vs 48K core memory, 32-bit vs 16-bit CPU and 24Mhz vs 1MHz, but what does that clock mean in MIPS?
Anyone want to take a stab at the Moore’s Law constant over 55 years, given the specs non-equivalence?
~2.5M times price change, = 2^22 times.
=====================
<https://www.nokia.com/bell-labs/unix-history/firstport.html>
In 1970, they proposed buying a PDP-11 for about $65,000. [ $535,000 in 2025 according to US Inflation Calculator ]
=====================
Texas Instruments Introduces MSPM0C1104 as the Smallest Available Microcontroller
<https://linuxgizmos.com/texas-instruments-introduces-mspm0c1104-as-the-smal…>
Measuring only 1.38mm², this wafer chip-scale package MCU is 38% smaller than existing alternatives.
The MSPM0C1104 includes a
24MHz Arm Cortex-M0+ core (32-bit),
16KB of flash memory,
1KB of SRAM,
a 12-bit ADC with three channels, and
six GPIO pins.
It also supports standard communication interfaces,
including UART, SPI, and I2C.
Additional features include 5V-tolerant I/Os,
a 1-channel DMA controller,
a CRC-16 accelerator, and
various timers, including a 16-bit advanced timer
and two 16-bit general-purpose timers.
These MCUs operate in an extended temperature range from -40°C to 125°C
and support supply voltages from 1.62V to 3.6V.
The MSPM0 series starts at $0.16 in 1,000-unit quantities, with multiple configurations available.
=====================
--
Steve Jenkin, IT Systems and Design
0412 786 915 (+61 412 786 915)
PO Box 38, Kippax ACT 2615, AUSTRALIA
mailto:sjenkin@canb.auug.org.au http://members.tip.net.au/~sjenkin
Hi all, I've just received a set of MP3 recordings from Bob Kridle. He says:
These are recordings of Ken Thompson doing a read through of one of
an early UNIX kernel code listing with a group of grad students at
UC Berkeley while he was a visiting prof. there.
The date is roughly 1975. I've put the recordings here along with his
e-mails about the recordings:
https://www.tuhs.org/Archive/Recordings/1975_Unix_Code_Walkthru/
I've only just listened to the first few minutes of each. The quality
is fine, but I might spend some time reducing the noise, bringing up
the quiet parts and removing a few clicks and pops.
If anybody else has more details of these recording, please let us know!
Cheers, Warren
Hi All.
A while back I found a copy of the MPM macros and code
that I undoubtedly got from Brian Kernighan.
Warren has put it in the archives:
> Date: Mon, 17 Mar 2025 08:04:55 +1000
> From: Warren Toomey <wkt(a)tuhs.org>
> To: Aharon Robbins <arnold(a)skeeve.com>
> Cc: Warren Toomey <wkt(a)tuhs.org>
> Subject: Re: MPM macros and code
>
> On Fri, Mar 07, 2025 at 03:11:47PM +0200, Aharon Robbins wrote:
> > I have the following file:
> > -rw-r--r-- 1 arnold arnold 100770 Feb 17 2002 mpm.shar
>
> Thanks Arnold, I've just put it here:
>
> https://www.tuhs.org/Archive/Applications/Typesetting/
>
> Cheers! Warren
Thanks Warren!
Arnold
Hi All.
A while back I found the Caldera release of awk, grep and
libregex from 2001. The tar file is dated 2012, but the
actual code is from earlier.
Warren has put it in the archive:
> Date: Mon, 17 Mar 2025 08:07:12 +1000
> From: Warren Toomey <wkt(a)tuhs.org>
> To: Aharon Robbins <arnold(a)skeeve.com>
> Cc: Warren Toomey <wkt(a)tuhs.org>
> Subject: Re: Caldera release of awk, grep, and libregex from 2001
>
> On Mon, Feb 24, 2025 at 06:42:50PM +0200, Aharon Robbins wrote:
> > I'm looking through my Downloads directory to try to clean it up
> > a bit. I found this:
> >
> > $ ls -l osutils.tar.gz
> > -rw-rw-r-- 1 arnold arnold 101072 Nov 25 2012 osutils.tar.gz
>
> Thanks for this as well, it's now at:
> https://www.tuhs.org/Archive/Applications/Awk_Grep/
>
> Cheers, Warren
Thanks Warren!
Arnold
Hello all , Here I am again , Maybe my ? might be relative to the
community .
I grabbed an archive of precompiled gnu software , During the
extraction I got a 'warning' from a gzip'd tar & decided to dig into the
underlying tarball to see if it was trully corrupted or repairable .
Tada , I did a silly and less'd one of the binary files and noticed
that the underlying file was 'ar'd by /usr/local/alphaev6-dec-osf5.1b/bin/ar ,
well all said and done My ol' as100 ain't a ev6 .
So my Question , Could I use these programs that were created on a ev6 cpu
system on my ev4 ?
Tia , JimL
--
+---------------------------------------------------------------------+
| James W. Laferriere | System Techniques | Give me VMS |
| Network & System Engineer | 3237 Holden Road | Give me Linux |
| jiml(a)system-techniques.com | Fairbanks, AK. 99709 | only on AXP |
+---------------------------------------------------------------------+
Hi,
This was seen on Dave Farber's IP list; with many of
the Dramatis Personae on this list it seems worthwhile
to share it here, too:
"What I Saw at the Evolution of Plan 9" by Geoff Collyer
https://adi.onl/oral.pdf
-Jan
As part of a discusion on the Linux kernel mailing list, there was an
assertion that ctime was orginally "creation time".
From the v7 sources in TUHS, we can see:
struct dinode
{
unsigned short di_mode; /* mode and type of file */
short di_nlink; /* number of links to file */
short di_uid; /* owner's user id */
short di_gid; /* owner's group id */
off_t di_size; /* number of bytes in file */
char di_addr[40]; /* disk block addresses */
time_t di_atime; /* time last accessed */
time_t di_mtime; /* time last modified */
time_t di_ctime; /* time created */
};
... although the v7 kernel sources does seem to update ctime when the
inode metadata changes, regardless of what the coment in
/usr/src/sys/h/ino.h might say.
More interestingly, this comment seems to continue in newer versions
up to 3BSD, and then the comments becomes "change time" in BSD 4.2,
probably coincident with the File System Implementation?
The best we can guess is that the change from "creation time" to
"inode change time" happened sometime between 1979 and 1982. Does
anyone who was around can give the story about how and when this
happened?
- Ted
In July 1974 I visited Bell Labs Murray Hill, and Ken & Dennis showed me
around. I was very impressed because we (Univ of Nijmegen, NL) had a
PDP-11/45 just like theirs and I knew that machine quite well.
It was clear that their software kicked the machine much heavier than
our (DEC-original) DOS-system did. But I was a naive student so I wanted
more information and asked Ken: are there many UNIX users in Europe?
Ken brought us to the library where a Ms. Irma B. Biren, librarian, kept
the record of licenses. We found prof. Colouris in London... When I
asked whether maybe somebody closer by our place was present, Ken found
Gideon Yuval in Tel Aviv. Nobody closer....
Hendrik-Jan Thomassen
> everyone should write for their first compiler in Pascal for a
> simple language and no cheating using YACC. You need to write the whole
> thing if you want to understand how parsing really works.
Yacc certainly makes it easier to write parsers for big grammars, but
it's far from cheating. You need to know a lot more about parsing to use
Yacc than you need to roll your own.
Hand parsing of a tiny grammar is almost a necessary step on the way to
understanding Yacc. But I think hand-building the whole parser for a
compiler is unnecessary torture--like doing trigonometry with log tables.
Doug
Found out today that we lost George Coulouris about a month ago, he was at QMC (then QMW, now Queen Mary, University of London) in CompSci and an old Unix hand (but not only).
Obituary from his PhD student (who wrote a Unix editor called “ded”):
https://www.theguardian.com/education/2025/jan/19/george-coulouris-obituary
Someone I know is seeking the original version of an internal Bell Labs
memo from 1974 titled "Webster's Second on the Head of a Pin" by Morris and
Thompson. The topic appears to be related to improving the speed of lookups
or search. It's cited in a few papers as "Unpublished Technical Memo, Bell
Laboratories, Murray Hill, NJ 1974." All I can find online is citations.
Any leads appreciated!
--
Royce
As I mentioned in the discussion about C, it's easy to look back with
a modern perspective and cast aspersions on C. But this got me
thinking, what would possible alternatives have been? In the context
of the very late 1960s heading into the early 70s, and given the
constraints of the PDP-7 and early PDP-11s, what languages would one
consider for implementing a system like early Unix? Dennis's history
paper mentioned a very short-lived effort at Fortran, and I asked
about that a few years ago, but no one really remembered much about
it; I gather this was an experiment that lasted a few days or weeks
and was quickly abandoned. But what else?
My short list included PL/1, Algol/W, Fortran, and Pascal. Fortran was
already mentioned. I don't think PL/1 (or PL/I) could have fit on
those machines. Pascal was really targeted towards teaching and would
have required pretty extensive work to be usable. The big question
mark in my mind is Algol/W; how well known was it at the time? Was any
consideration for it made?
Obviously, the decision to go with BCPL (as the basis for B, which
beget C) was made and the rest is history. But I'm really curious
about how, in the research culture at the time, information about new
programming languages made its way through the community.
- Dan C.
On Mar 10, 2025, at 7:26 PM, John Levine <johnl(a)taugh.com> wrote:
>
> In my 1971 compiler course at Yale, Alan Perlis made us try to write a compiler
> that translated a subset of APL into Basic. He suggested we write it in APL,
> which was a terrible idea, so I wrote it in Trac, for which I happened to have
> written my own interpreter.
>
> I think my compiler was the only one that worked, and it was pretty clever,
> turning the APL array expressions into structures with array boundaries and
> example expressions, with no array temporaries. It only generated the loops to
> evaluate the expressions when storing into another array.
>
> Someone got a PhD in 1978 for a similar compiling technique but in 1971 I was a
> 17 year old twerp so what did I know?
>
> R's,
> John
Pretty impressive for a 17yo!
Isn’t APL syntax rather context sensitive[1]? Neither yacc nor
a RD parser would’ve helped! Unless the subset was limited to a
context free subset.
Tim Budd in his 1978 work made quite a few changes to APL to
ease compilation and used yacc. [I have the book somewhere....]
[1] I do not recall if Iverson's original APL had a context sensitive
grammar but modern APLs do.
Given an expression ‘x y z’, its parse depends on the types of
x, y & z. Example: y(x,z) if y is a dyadic verb, x & z are values,
x(y(z)) if x & y are monadic verbs, z a value etc.
I assume people have seen this?
https://github.com/ryomuk/TangNanoDCJ11MEM/tree/main
It's capable of running Unix v1 & some limited amount of v6 among other
things. The FPGA in question the Tang Nano 20k is sub 30GBP delivered from
AliExpress.
Kind of neat to combine a real processor with a simple FPGA implementation
of the hardware.
Ken,
Was smalgol also known as BC Algol, as described here:
https://www.softwarepreservation.org/projects/ALGOL/algol60impl/#BC_ALGOL
> On Mar 9, 2025, at 12:06 PM, Ken Thompson <kenbob(a)gmail.com <mailto:kenbob@gmail.com>>
> wrote:
>
> how about smalgol?
>
> it was an algol-like language with just int and float types.
> i dont know its history, but it came out of berkeley near
> when Niklaus Wirth was there. it compiled for the ibm 7094
> in normal batch processing fashion. i converted it to a jit
> into memory in order to skip the loading phase. i used
> it for a lot of my fun-work. (1965-66)
>
> mainframe time, then, was a big factor in the computing process.
> smalgol could compile, load, and run in about 1 cpu-second.
>
> smalgol was all ibm-cards, but it was on my mind through
> the bcpl to b to nb phases. i would use the modern word
> "influencer.”
Paul McJones
Adding to Brian's remarks.
Both PL/I, which had been adopted by Multics, and BCPL/B were very
familiar. PL/I , even gutted as it had been for Multics, was much too big
to contemplate. BCPL's integration of subscripting and pointers was nice,
as was its closeness to the machine. Typlessness was a drawback: how would
one integrate floating point or characters? Another was the global vector,
like Fortran COMMON.
Algol W was known (to me, at least) only via its publication in CACM. I
don't recall it having been considered. Because Algol W had more concepts
than BCPL,was not as closely matched to machine-level coding, and (I
believe) was equally lacking in separate-compilation facilities, I suspect
it would not have made the cut.
Doug
I asked BWK if he had any thoughts about possible alternative
languages. Here is his response, forwarded by permission.
Arnold
> Date: Sun, 9 Mar 2025 08:27:57 -0400 (EDT)
> From: Brian Kernighan <bwk(a)cs.princeton.edu>
> To: arnold(a)skeeve.com
> cc: crossd(a)gmail.com, Brian Kernighan <bwk(a)cs.princeton.edu>
> Subject: Re: An interesting history question
>
> Dan raises an interesting question. I don't have a good answer,
> but there are possibilities.
>
> Typeless languages like BCPL were in the air; Bliss, from CMU in
> 1970, was a significant example, used mostly on the PDP-10 but it
> could run on a PDP-11. It was definitely a contender for doing
> systems work.
>
> I used MAD in the summer of 1966 at MIT and remembered it as being
> much nicer than Fortran, though when I looked at a description a
> while ago, it wasn't clear what the attraction was.
>
> Bell Labs (Doug McIlroy and Bob Morris, mostly) made a PL/I subset
> called EPL that was at least compilable and a lot easier to manage
> than the full language. I don't know whether that would have
> worked, but it would seem that Ken didn't think so, since he went
> off on his own direction. Doug would know more; he sent me some
> corrective info a month ago, on the errata page here:
>
> https://www.cs.princeton.edu/~bwk/memoir.html
>
> Fortran would have needed major work to handle non-numeric data.
> I wrote a text formatter in it by hacking with the Logical*1 type;
> that let me handle one character at a time by basically lying,
> though I've long since forgotten the details.
>
> Pascal was hopeless, as I have described elsewhere, though
> variants that repaired some of the type system might have worked.
>
> The US military used Jovial; it sounds like it's still sort of in
> use, since it handles the avionics in a lot of planes. It looks
> like a direct descendant of Algol 58.
>
> I never used Algol/W, but of all the options, it seems like it
> might have been the strongest contender.
>
> Xerox PARC had Mesa, but my dim memory is that it was big and
> complicated, which is the opposite of what was needed at the time.
> It also came along too late, mid to late 1970s. It did influence
> Java and Modula-2, says Wikipedia.
>
> HOPL 1 includes papers on other languages of the time, most of
> which would not have worked, and/or have died by now. There's a
> lot of history, and I have no idea how to get on top of it all.
> But still interesting to look at and speculate about.
>
> Brian
>
>
> On Sat, 8 Mar 2025, arnold(a)skeeve.com wrote:
>
> > Hi Brian.
> >
> > Any thoughts on this?
> >
> > (cc-ing Dan, the original poster)
> >
> > Thanks,
> >
> > Arnold
> >
> >> From: Dan Cross <crossd(a)gmail.com>
> >> Date: Sat, 8 Mar 2025 22:46:58 -0500
> >> To: TUHS <tuhs(a)tuhs.org>
> >> Subject: [TUHS] What would early alternatives to C have been?
> >>
> >> As I mentioned in the discussion about C, it's easy to look back with
> >> a modern perspective and cast aspersions on C. But this got me
> >> thinking, what would possible alternatives have been? In the context
> >> of the very late 1960s heading into the early 70s, and given the
> >> constraints of the PDP-7 and early PDP-11s, what languages would one
> >> consider for implementing a system like early Unix? Dennis's history
> >> paper mentioned a very short-lived effort at Fortran, and I asked
> >> about that a few years ago, but no one really remembered much about
> >> it; I gather this was an experiment that lasted a few days or weeks
> >> and was quickly abandoned. But what else?
> >>
> >> My short list included PL/1, Algol/W, Fortran, and Pascal. Fortran was
> >> already mentioned. I don't think PL/1 (or PL/I) could have fit on
> >> those machines. Pascal was really targeted towards teaching and would
> >> have required pretty extensive work to be usable. The big question
> >> mark in my mind is Algol/W; how well known was it at the time? Was any
> >> consideration for it made?
> >>
> >> Obviously, the decision to go with BCPL (as the basis for B, which
> >> beget C) was made and the rest is history. But I'm really curious
> >> about how, in the research culture at the time, information about new
> >> programming languages made its way through the community.
> >>
> >> - Dan C.
> >>
> >
>