3 ms·
The history of documented Unix facilities
- sigil 9y agoI was hoping this would answer a recent question about the origin of the `unlink(1)` command. [1] The table says it appeared in FreeBSD 3.5.0, but in digging I found that FreeBSD introduced it after NetBSD, who introduced it "for XCU5's sake, and due to popular demand." [2] So `unlink(1)` must have existed in some even earlier Unix variant. So the history of these things remains murky. Part of that is it's difficult to find old ("superseded") versions of the XCU / XOpen specs, let alone trace the new things each revision introduced to the sometimes-now-extinct Unix variants they first appeared in. I do love the `unix-history-repo` and applaud the ongoing work there! [1] https://twitter.com/alangrow/status/966081208487575552 https://twitter.com/alangrow/status/966081208487575552 [2] https://github.com/NetBSD/src/commit/54af00c6ee446afe395f319015194e6946276523 https://github.com/NetBSD/src/commit/54af00c6ee446afe395f319...
- qubex 9y agoI think you mean superseded.
- sigil 9y agoFixed, thanks.
- jwilk 9y agounlink(1) is indeed in SUSv2/XCU5: http://pubs.opengroup.org/onlinepubs/7908799/xcu/unlink.html http://pubs.opengroup.org/onlinepubs/7908799/xcu/unlink.html I couldn't get my hands on SUSv1/XCU4. It's supposedly available here: https://publications.opengroup.org/c43x https://publications.opengroup.org/c43x But you have to log in to download, and I gave up upon seeing account creation form with 16 required fields. "Open" in "The Open Group" is a bad joke.
- sverige 9y agoAccording to the HISTORY section at the bottom of the OpenBSD man page for unlink() , it first appeared in Version 1 AT&T UNIX. [1] FWIW, all OpenBSD man pages have a history section at the bottom that notes when the command first appeared. [1] https://man.openbsd.org/unlink https://man.openbsd.org/unlink
- oneweekwonder 9y agoAh looks interesting. Contains my two favorite things: unix history, and slickgrid.
- rambojazz 9y agoHow do I read this?
- korethr 9y agoThis looks like this only traces the original Unix and the BSD lines. I assume that's because that's what the sources are available for. It would be cool to see what came from the SysV side of things over time, but, one would have to get the sources for a SysV-derived Unix. I'd think Illumos would count, having come from Solaris. But that doesn't help much either, does it, since Illumos is a modern Unix, and not a historic version?
- arca_vorago 9y agoFor those interested, here is a relevant link: http://bhami.com/rosetta.html http://bhami.com/rosetta.html Personally, I tend to focus on GNU coreutils on the gnu/linux side.(https://www.gnu.org/software/coreutils/manual/coreutils.html https://www.gnu.org/software/coreutils/manual/coreutils.html) I can't find my list of non-gnu linux kernel utilities at the moment. I think it's in the older kernel documentation.
- ChuckMcM 9y agoFun stuff. My one contribution was the libc function getsubopt() which originated in what was the first release of Solaris (code named Zeus) and picked up in the Net-2 release. I was the engineer responsible for harmonizing the 'mount' command between SunOS (aka BSD 4.2+) and SysV R3.2. The way that worked usually is that the command would get options from both sides of the tree and we would argue about the ones that overlapped, but in the case of mount the AT&T System engineer was totally appalled that mount had a -all option to mount everything in the /etc/fstab file. AT&T was pushing a new script named 'mountall' what would mount all file systems. They also hated multi-letter options like '-o rw,noatime'. Their argument was that there wasn't a subroutine in the C library to parse multi-letter options like we had for the mount command. So I invented getsubopt which, with Bill Shannon's sign off, we made a 'standard part of SunOS'. And then we added it as something to be included in the consolidated lib C. Going through that exercise of trying to harmonize System V and SunOS into the one true UNIX was the weirdest thing. AT&T had 'system engineers' who never wrote code, and Sun just had engineers who actually wrote code. Some of the technical disagreements were settled at the 'VP' level (Eric Schmidt at the time) where Eric and his AT&T counter part would 'trade' concessions that had escalated to that level. Like I said, very weird.