so the question of pseudo tty came up today.
My memory is that it started with TOPS-10, though I doubt I know enough.
Vague memory says there was a PTY: device.
Further, I believe pty came in from UCB ca 1977 or so?
I'm wondering if people who were Present at the Creation can fill in the
gaps.
Thanks
[Note: A few folks Cc'ed directly]
This is not exactly a Unix history question, but given the close
relationship between C's development and that of Unix, perhaps it is
both topical and someone may chime in with a definitive answer.
Starting with the 1990 ANSI/ISO C standard, and continuing on to the
present day, C has specified that signed integer overflow is
"undefined behavior"; unsigned integer arithmetic is defined to be
modular, and unsigned integer operations thus cannot meaningfully
overflow, since they're always taken mod 2^b, where b is the number of
bits in the datum (assuming unsigned int or larger, since type
promotion of smaller things gets weird).
But why is signed overflow UB? My belief has always been that signed
integer overflow across various machines has non-deterministic
behavior, in part because some machines would trap on overflow (e.g.,
Unisys 1100 series mainframes) while others used non-2's-complement
representations for signed integers (again, the Unisys 1100 series,
which used 1's complement), and so the results could not be precisely
defined: even if it did not trap, overflowing a 1's complement machine
yielded a different _value_ than on 2's complement. And around the
time of initial standardization, targeting those machines was still an
important use case. So while 2's complement with silent wrap-around
was common, it could not be assumed, and once machines that generated
traps on overflow were brought into the mix, it was safer to simply
declare behavior on overflow undefined.
But is that actually the case?
Thanks in advance.
- Dan C.
my memory is the major differences between the research RFS and USG’s RFS was the support of ioctls (as mentioned) and, Research RFS supported exporting file trees with an abstract name rather than the path on the source machine - a small but very useful change.
research RFS could (i feel) be seen as the direct ancestor of plan9’s 9p protocol.
-Steve
CSIRO is an Australian government research agency with a long history.
Siromath, a commercial spinoff, had a binary redistribution license
for Unix. The Siromath Unix was called SIRONIX.
The Australian Unison computer was sold with SIRONIX.
Siromath was also going to provide a version of Unix for
the DCR/CSIRONET workstation. At some point they switched to
a port of System V/68 from Neology/Softway. Does anyone know why?
Or if the CSIRONET workstation got beyond the prototype stage? Did
it get cancelled when CSIRONET was privatised?
For more background notes see
https://github.com/jonathangray/csiro-unix
Hello all,
What teleprinter models were used at Bell Labs, particularly by the Unix groups? Judging by troff escape sequences, it expected a Teletype Model 37, and early all-caps support implies Model 33 usage. But I don’t have a sense of what users and the core developers used.
I am working on building a Teletype Model 37 ASR emulator for my PiDP-11 with the goal of replicating the early Unix experience as accurately as possible without physical hardware.
As I get deeper into research, I’ve learned of a variety of configuration options beyond what the operator could configure with buttons, e.g., sub-models which come with different components, optional components which can be installed later, and features that can be configured by a craftsman. Here are some examples:
- Two-color was optional
- The shift-out character set was configurable
- An ASR could come without a tape reader/puncher
- Half-line forward and reverse was optional
- Character sizes varied, e.g., 72 chars per line at 10 chars per inch, adjustable up to 80 per line; or 86 per line at 12 per inch
- The paper could be roll paper (friction feed)or flat-folded, form-feed paper with marginal perforations (sprocket feed)
- Paper sizes varied, e.g., 3 to 8-1/2 wide or, for sprocket feed, up to 11 inches long and 9-1/2 wide
- Some printed control characters; most didn’t
- Holding a key could be configured to repeat the character
- They could operate half-duplex (transmitted data is copied by the sender) or full-duplex (only received data is copied)
- They could receive and transmit at various speeds
That’s a lot of options and it’s not exhaustive.
The Model 37 product catalog[0] has tables of many configurations and their catalog numbers. Is there a list of the teleprinters purchased by Bell Labs? With that, I could possibly narrow it down like how Warner Losh identified the PDP-7 model used for Unix V0.
Thanks!
Thalia Archibald
[0]: https://ia800702.us.archive.org/32/items/TNM_Model_37_terminal_product_cata…
[1]: https://bsdimp.blogspot.com/2019/07/the-pdp-7-where-unix-began.html
Hi All.
Cleaning up the basement, I found a parallel port printer ethernet server.
It lets you put a parallel port printer onto your local network. It
speaks the BSD lpr protocol. I used to use it on an HP LaserJet 6
printer.
If anyone wants it for an old printer you might have laying around,
please let me know, *privately*. It's yours for the cost of postage
from Israel.
Note, I no longer remember how I got it working with Linux, but
I did... This was a llllooonnnngggg time agao. :-)
Thanks,
Arnold
sam was my only editor from 92 when i discovered it until last year.
under continual peer pressure i moved to zed on a mac which does many clever things i don’t need and even occasionally gets in the way, but (for me) it had one killer feature:
i write go these days and use dozens of third party libraries. zed allows me to ask “what methods are available on this variable?”
i would love to go back to sam but i fear adding treesitter and the rest needed to support this feature would kill one of us for sure.
-Steve
Folks,
For those of you who were unable to attend, I took this photo
yesterday, at the end of the closing remarks for ATC'25 in Boston:
https://photos.app.goo.gl/tcaAFQgjGPn5s8Dh7
As most of you know, USENIX has sunsetted the conference, and this
was the last time ATC will be run, though of course other USENIX
conferences will continue in its place. But I wanted to be in the room
as it ended, and I snapped this as everything was winding down, and am
now sharing it with our community.
For those of you who were able to attend, it was wonderful to see
a number of familiar faces, and also meet some folks I've known of and
interacted with here and elsewhere, face-to-face. USENIX also turned
50 this year, and the organization made sure to create space for
reflection on its history; remembrances were shared by Clem Cole, Bill
Cheswick, Doug McIlroy, Andrew Hume, Peter Honeyman, Tom Lyon, and
others.
On a personal note, I found this very meaningful: I was once told,
"never meet your heroes." However, in the Unix community, by and large
my heroes are wonderfully pleasant, generous, and kind people in real
life, all of whom have either indirectly or directly had a profound
influence on the course of my career and life. Thank you for that; it
was an honor to share space with you.
While ATC is ending, it is also clear that there is a vibrant
research community flourishing, building on the legacy of work created
by the USENIX community and shared through this conference. Many of
you nurtured that community, laying its framework, shepherding and
guiding its work, cultivating new generations of researchers while
providing the basic tools we all depend on, and thus creating the
fertile ground on which it now grows. What greater professional
accomplishment could one hope for?
Perhaps it is best not to think of this as an end, but an epoch
marking the transition from one stage of the community's evolution to
the next.
- Dan C.
Hi All.
As a back burner project, I have the sources for a book, given to me
by the author, from around 1981. It was originally formatted using
the device independent troff suite. It used the -ms macros plus an
additional set of custom macros. I have the additional macros.
The book used tbl and pic. A quick grep does not find any instances
of .EQ, so it looks like eqn isn't needed.
I would like to be able to format the book and generate PDF.
What's the best way to go about this? Using groff in compatibility
mode? Or the Heirloom troff suite? If the latter, what's the
canonical location for it?
I will be working on Linux, Ubuntu 24.04.
Any and all advice will be welcome.
Thanks,
Arnold
Larry McVoy wrote
> Well, we had begin and end blocks. And other than that, the whole thing
> is a wad that is called per line. That was definitely awk inspired.
The way I have used m4, a program is executed just once from top to bottom.
There is no input file. Another way to describe it is that the program is
the input file, which happens to have some program elements interspersed.
But m4 never acts as awk does, running the whole "wad" on each line of
a separate input file.
Of course, one often puts definitions in one file, and "data" in another
and catenates them. Then, however, it is only convention--not language
design--that keeps the program and data separate. In awk, the
separation is absolute.
> I'm surprised you see lisp and haskell. The language came from me
> and I've never touched haskell and I tried to like lisp, I really
> did, but it never grew on me. Care to explain why you saw that?
The parenthesized decomposition of a list comes straight out of Lisp,
with car-cdr terminology (referring to parts of an IBM 700-series word)
modernized to Haskell's more intuitive head and tail. The functional
style of programming imitates Haskell within the confines of m4 syntax,
but of course. Lisp founded the functional tradition.
The word "atom" is borrowed from Lisp, "foldl", "foldr", and "zip" come
from Haskell.
Doug
On Mon, Jul 21, 2025 at 9:28 AM Larry McVoy <lm(a)mcvoy.com> wrote:
>
> Well, we had begin and end blocks. And other than that, the whole thing
> is a wad that is called per line. That was definitely awk inspired.
>
> I'm surprised you see lisp and haskell. The language came from me
> and I've never touched haskell and I tried to like lisp, I really
> did, but it never grew on me. Care to explain why you saw that?
>
> For what it is worth, nobody cares because all that code is dead, but
> I'm proud of that little language, it's miles and miles beyound what
> SCCS could do. I whipped up that json dspec pretty quickly and my
> memory is it just worked, we didn't have to go back and fix anything.
>
> And it is fast. It used to be lex/yacc but that was too slow so Rob
> rewrote it as a recursive-descent parser that was boatloads faster.
> We actually used that language quite a bit.
>
> On Mon, Jul 21, 2025 at 07:19:00AM -0400, Douglas McIlroy wrote: > No awk
> at all. Much imitation of Lisp and Haskell > > On Sunday, July 20, 2025,
> Larry McVoy <lm(a)mcvoy.com> wrote: > > > On Sun, Jul 20, 2025 at 07:06:38PM
> -0700, Larry McVoy wrote: > > > On Sun, Jul 20, 2025 at 08:30:45PM -0400,
> Douglas McIlroy wrote: > > > > I just posted the most heavily commented
> code I have ever written. > > > > It's a radical (mis?)application of m4,
> which is about as inscrutable > > > > as any language short of APL. The
> ratio of comments to code is more > > > > than 3:1. > > > > It's at
> www.cs.dartmouth.edu/~doug/barem4.m4. 3:1 may be > > > > overkill, but
> I think 2:1 would not be unreasonable. > > > > > > > > Doug > > > > > >
> Whenever I see something like this, it reminds me of one of my engineers >
> > > who said you couldn't make BK produce json out put. > > > > > > Hold
> my beer. > > > > > > http://mcvoy.com/lm/bkdocs/dspec-changes-json-v.txt
> > > > > > > It's a lot less miserable than the m4 (and I'm a fan of m4).
> > > > > It's pretty awk inspired. > > -- > > --- > > Larry McVoy
> Retired to fishing > > http://www.mcvoy.com/lm/boat > >
>
> --
> ---
> Larry McVoy Retired to fishing http://www.mcvoy.com/lm/boat
> I opened them all in vim instances running in the background at login time,
> and then I read email until they were all loaded. I then put the process
> with the file I needed into the foreground, examined it, and returned to
> the shell with :stop (which all command line editors should have) when I
> was done. Worked like a charm.
A curious mix of present and past tenses. Haven't window systems made
foreground/background distinctions irrelevant to most applications,
including editors? To my mind :stop is none of an editor's business.
Doug
I always recoiled from vi's plethora of commands. Then came sam, and I
haven't looked back since. It handles multiple windows with barely
more commands than ed, real regular expressions, good mouse support,
and great global editing capability. It can even run by script without
a screen.
Doug
About a week ago, I designed a sticker for ed users. Hands up, I kind of half stole the tagline, but they're not-for-profit and I only did it because I couldn't find ed stickers by anyone else:
https://i.postimg.cc/hjS5Wt6Z/esgag-fin3f.png
As an homage to both teleprinters and monochrome monitors, the lettering is in a typewriter font and a representation of monitor green. The actual stickers have rounded corners and are 2-inches wide so ideal for laptops, desktop monitors or even teleprinters!
If anyone on this list wants one, please contact me off-list and I will mail it to you, wherever in the world you live. These stickers are free/gratis and it will be my pleasure to post one to you.
I haven't received them yet, they should arrive tomorrow, but I've had stickers made by the same company before and they were decent quality.
Best regards,
Cameron
Folks,
It has been great to read about everyone's preferences, uses and recollections for and of editors. In my ignorance, until just a few days ago I knew of perhaps only ed, vi, vim, nano and emacs so it has been a bonus to learn of all the others and their variants.
In a somewhat related thread that seemed to end up on COFF and on here, Warner said, in part, "It may just be an odd quirk of when I grew up...", and I think that and other factors leads each of us to use the different tools we use.
My earliest hands on computer experiences involved machines with monochrome display capabilities, no GUI and very little little memory to work with and those are some of the influences that led me, now, to ed. One of my favorite parts is opening a file or writing an edited file.
ed somefile
438
<add some more lines>
w
672
So simple and, for me, relatable. In the sample file above, the enlarged file would just about fit in my first computer, a Sinclair ZX81 which came with 1KB of RAM. In short, everyone needs to wear the shoe that best fits them.
What I've found, with ed, is that it helps me focus more intently on what I'm typing, regardless of whether it's code or a magazine article. Always at the back of mind when I use ed, especially if I run into a problem with my operation of it, is the thought, "Operating systems and languages were created on this.". That humbles me every time.
Best regards,
Cameron
-------- Original Message --------
On 20/07/2025 02:28, Warner Losh <imp(a)bsdimp.com> wrote, in part:
> It may just be an odd quirk of when I grew up
>
> Warner
It's not exactly a UNIX artifact but in the late 60s - early 70s when
we wanted a break at night we'd go down to the second floor of building
2 which had a PDP-15/GRIN-2 and play space war. It sticks in my memory
because there was an Etch-A-Sketch hanging on the side of one of the
equipment racks with a sign under it that said "In case of fire, throw
in".
Anyway, I have a hunk of DEC fan-fold paper tape with double-sun space
war on it; the boot address is written on the leader in my teen-age
handwriting.
Somewhere I have a paper tape reader. When I have some spare cycles
I plan to read that tape in and try to get it running as folks have
VMs for that architecture. Probably will have to build a button box
to go with it - I recall that there was an 8 button box, 4 for each
player - turn left, turn right, accelerate, and shoot. And it also
read the front panel console switches to change the game settings
such as limited/unlimited ammo, limited/unlimited fuel, tumble-mode,
etc.
Another non-UNIX artifact that I came across is a 1974 BTL directory.
The departmental index is fascinating - gives a view of what a real
research lab looked like.
Jon
I see the Wikipedia "Flag day (computing)" [1] article references two
semi-different ESR sources [2,3] to support the claim:
> This systems terminology originates from a major change in the Multics
operating system's definition of ASCII, which was scheduled for the United
States holiday, Flag Day, on June 14, 1966.
I don't doubt the validity, but I'm looking for other "citation worthy"
sources that supplement this claim --- ideally that predate the ESR ones,
so that they are unambiguously independent.
1. https://en.wikipedia.org/wiki/Flag_day_(computing)
2. http://www.catb.org/jargon/html/F/flag-day.html
3. *The New Hacker's Dictionary*
<https://books.google.com/books?id=g80P_4v4QbIC&pg=PA192>pp. 192–
--
Royce Williams
Tech Solvency
As someone who has been quite attentive to the documentation situation with UNIX, I've managed to build out a pretty appreciable library of historic works. Among my most treasured bits are my 3B20S Release 4.1 manual and Bell Labs copies of the Lions's Commentary.
What do folks have around that you're particularly thrilled to have among your UNIX-y possessions?
- Matt G.
On Thursday, July 17th, 2025 at 10:44 PM, Rob Pike <robpike(a)gmail.com> wrote:
> Sam had it, acme took it (and much else) from Sam.
>
> -rob
>
>
> On Fri, Jul 18, 2025 at 3:22 PM Noel Hunt <noel.hunt(a)gmail.com> wrote:
>
> > > But that is far less useful than having two windows into the same
> > > file where the mods to each window go to the same file. Think
> > > looking at code that has the structs at the top of the file and you
> > > need to wack a struck and wack the code that uses that struct.
> > > Quite pleasant.
> >
> >
> > You will find that this is exactly what 'Zerox' in acme does.
Sam is indeed nice but I have not quite gotten to the point of using it daily. For my hobby projects I rarely launch an X session, opting to simply work from the framebuffer console instead. I don't have a graphical editor of choice these days though so Sam is certainly on the docket whenever I start using a windowing environment heavily outside of web browsing again. End of the day though I like being able to do the bulk of what I do sitting at any given computer from the console. I have a VT100 that I've finally restored to perfect health I plan on setting up in my bedroom as a true terminal (routed through my Dataphone modems down to my office machine).
To hopefully inspire some interesting discussion, was Sam ever formally supported by AT&T as an editor in System V, either OpenLook or X environments? Or did it never escape Plan 9 as far as AT&T's commercial UNIX offerings go? In a more general sense I find the later genetic flow from BTL et. al. to USL intriguing since the Labs were already onto things so far ahead of what System V was in the commercial scene.
- Matt G.
Cameron_M����e��l_Tyre_via_TUHS:
I got obsessed with getting ed running on every device I have including
my phones and then the big rabbit hole off that first one was learning
how to use it properly and to the fullest of its abilities.
==
Of course. ed(1) is the standard editor.
Norman Wilson
Toronto ON
Hi folks,
I'm trying to clear up a historical matter.
In reviewing groff's "LICENSES" file, I find myself stuck on the
following paragraph.
>grn, written by Barry Roitblat <barry(a)rentonww.com> and David
>Slattengren <slatteng(a)Xinet.COM>, was part of the Berkeley
>troff distribution. The files contain no AT&T code
>and are in the public domain. Historically, the original package could
>be found at <http://ftp.cs.wisc.edu/pub/misc/grn.tar.Z>.
I'm not sure about that reference to "Berkeley troff". I already
deleted the modifier "device-independent" from that sentence because
I've never seen even a whisper of evidence that the CSRG ever
distributed Kernighan's device-independent troff; that was locked up
behind AT&T's revenue-seeking aims.
But also, I can't find evidence that "grn" was distributed by Berkeley
at all. At Warren's "Unix Tree",[1] I see what looks superficially like
evidence of support for Gremlin terminals in "libplot", but that's not
the same thing.
However there is evidence of support for grn, the troff preprocessor, in
other unquestionable BSD artifacts, like Eric Allman's "me" package.
Can someone clear up my misconceptions or suggest non-misleading
alternative wording?
Was the grn preprocessor one of these "USENIX tape" things, like nethack
and jove?
Regards,
Branden
[1] https://minnie.tuhs.org/cgi-bin/utree.pl
Hi TUHS,
A poster on the Stardot Acorn forum asked whether the Numerical Turing
compiler had survived. I figure this is probably the best place to ask.
Numerical Turing was a mid-80s variant of the University of Toronto's
Turing programme language that provided arbitrary-precision decimal
float arithmetic, developed by Tom Hull and others.
It's described in this paper:
https://dl.acm.org/doi/abs/10.1145/1057947.1057949
It ran on Toronto's ai VAX under 4.2BSD. The paper mentions the compiler
ntc and its man page, the demo program ntdemo.x, and the standard
include directory /usr/include/nt. There are a few references to it in
the utzoo Usenet archive but it looks like it was distributed upon
request.
Has anybody seen a surviving copy?
Thanks,
--
Adam Sampson <ats(a)offog.org> <http://offog.org/>
In the 2nd Edition Plan 9, in the Alef Language Reference Manual by
Phil Winterbottom, the title of section 7 is "The Plan 9
Implementation". Were there other implementations?