HI version is available. Content is displayed in original English for accuracy.
Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
89% Positive
Analyzed from 582 words in the discussion.
Trending Topics
#unix#https#thompson#files#called#org#paper#bsd#source#assembly

Discussion (8 Comments)Read Original on HackerNews
My subject is some details surrounding the first white paper that Bell Labs published about Unix was "The Unix Time-Sharing System". I wrote what Ken Thompson was doing in between the end of Multics but before he found the "little used PDP-7" that he wrote Unix on, the difference between opening files on Multics and Unix, and what the "comfile" mentioned in the paper is.
I wrote this without AI involvement; I follow Unix history because I love knowing what the history is and what I can learn from it, and I love showing others these sorts of cool details.
I'd love to hear any feedback you might have :)
The vestige I'm amused by on my (BSD) systems is <foo>.S files. "S" for "Source". From the time when "source code" meant "assembly". Python, zig, C++, C, etc would be invented later...
Seeing the quote from Doug McIlroy many years later lodged in my brain as answering a question I didn't even have, and I've been looking for a good reason to use it ever since.
There's a lot of cool small details like that in so many early white papers about Unix; I'm looking forwards to working through a good number of them over the next 12 months. I think next I'll look at Dennis Ritchie's paper on the impact of migrating Unix from assembly to C. It may give me good opportunity to cover the B->C change as background, which is fascinating to see.
[0] https://cdn.netbsd.org/pub/NetBSD/NetBSD-release-9/src/sys/a...
[1] https://en.wikipedia.org/wiki/Berkeley_Software_Distribution
[2] https://en.wikipedia.org/wiki/C_(programming_language)
[3] https://en.wikipedia.org/wiki/Unix
The quickest source I can find this moment for my claim is an interview with Ken Thompson in IEEE magazine called "Unix and Beyond: An Interview with Ken Thompson". Here's the quote, "At one point, I took BCPL from Martin Richards at MIT and converted it into what I thought was a fairly straight translation, but it turned out to be a different language so I called it B, and then Dennis took it and added types and called it C." You can read the whole thing at https://ieeexplore.ieee.org/document/762801 (or https://www.cs.princeton.edu/courses/archive/spring03/cs333/... if you prefer plain text).
When I write the newsletter, I'm _fairly_ sure one of Thompson's big interviews on YouTube has him call this out more clearly, but if I'm misrecalling I'll be sure to write exactly what I can figure out and where I'm sourcing the ideas from.
The specific Dennis Ritchie essay that I was referring to, though, is https://www.nokia.com/bell-labs/about/dennis-m-ritchie/portp... - "Portability of C Programs and the UNIX System". He coauthored it with Stephen Johnson, who can count Yacc amongst his many contributions to Unix.
The C compiler appeared in v3, and the kernel rewrite happened for Version 4, which is the version described in the paper.
Using .S for assembly language source is a historical accident, by the time the majority of code was written in C, .a was defined as the conventional filetype for archive (ar) files.