Re:In search of 2.11BSD, as originally released
by breput on Tuesday July 14, 2020 @08:07PM
(#23839689)
2.11BSD is still getting patches[1] - mostly due to renewed interest from the PiDP-11 project[2]. Recent changes[3] include the addition of the 'top' utility.
Reverting to patch level zero is an interesting exercise but there are still plenty of people who are interested in maintaining and updating the operating system.
Edit: And I understand the pain - the "patches" are a eclectic mix of straight diff output, shell archives, uuencoded compressed tar files, and all sorts of manual steps. But the patch "readme" information is unusually verbose and the update instructions are well written and informative.
Re:In search of 2.11BSD, as originally released
by breput on Tuesday July 14, 2020 @09:11PM
(#23840119)
To do that, you'd really need the entire 2.11BSD distribution in source control. So the real problem would be that you'd need to start with...patch...level...zero. :whoa:
Seriously, that would be a beautiful thing from a historic standpoint. But there is no git client for 2.11BSD, so you'd also end up having to build a git->something (probably shell archive and b64 compressed tar) that could allow the 2.11BSD system to update itself (and we're talking a 16/22 bit system here). There are also changes that require kernel recompiles and/or reboots so it turns out to be an extremely difficult problem. Which is why there are these human readable patches.
Re:In search of 2.11BSD, as originally released
by progman32 on Tuesday July 14, 2020 @09:20PM
(#23840174)
> To do that, you'd really need the entire 2.11BSD distribution in source control. So the real problem would be that you'd need to start with...patch...level...zero. :whoa:
I might be misunderstanding, but I don't think this is true. As long as there's a complete snapshot to start from anywhere in the revision history, it's possible to apply each patch in reverse (as far back as possible), even if it doesn't get all the way to patch level 0. Then later, if earlier patches are found, these can be applied in reverse and the branch rebased.
Re:In search of 2.11BSD, as originally released
by breput on Tuesday July 14, 2020 @09:37PM
(#23840255)
The confusion might be around the term "patch". These can be sometimes be simple diff patches. Or they can be multi-step processes, including reboots, all wrapped up into a single "patch".
I recently updated from patch level 462 to 469 (the most recently patch available) and even with excellent documentation, it was an involved process. If you look all the way back to the first set of patches (https://www.tuhs.org/Archive/Distributions/UCB/2.11BSD/Patch...) there isn't even documentation for the most part. Some diffs, some random tar files, and some "Remove everything above the #! /bin/sh line." patches.
Re:In search of 2.11BSD, as originally released
by bsdimp on Tuesday July 14, 2020 @10:08PM
(#23840427)
It's hard to reverse apply 'rm /usr/src/bin/ld.c' in the instructions to patch 160, for example. You have to reconstruct ld.c from 2.10.1BSD, and then add missing changes to get it to work...
Re:In search of 2.11BSD, as originally released
by jacoblambda on Tuesday July 14, 2020 @09:35PM
(#23840240)
You can do this but rebasing plays havoc on a lot of git integrations. Every time you insert a commit into an earlier spot, it changes the hash of every commit after it which has the potential to cause all kinds of problems for systems assuming git hashes are permanent.
Re:In search of 2.11BSD, as originally released
by progman32 on Tuesday July 14, 2020 @09:47PM
(#23840312)
For sure, this is very bad practice when using git for forward development. When working in reverse, a lot of things go out the window :)
The way I see it, git's main role here would simply be a way to standardize patch format, not its usual role as a distributed software development aid.
Re:In search of 2.11BSD, as originally released
by bsdimp on Wednesday July 15, 2020 @12:50AM
(#23841454)
Git's role would be to record the system incrementally as each patch is applied. I've already worked all the way back to the unpatched system. I assume that if I got it right, then I'll be able to rebuild. I've mostly been able to, and I'm investigating the mostly. Plus, I'm making sure that it's 100% reproducible so anybody can down the TUHS artifacts, run my scripts and have release 0 tapes, and a git repo of all the changes. And historians will be able to see what's definitely original, and my reconstructions of missing changes to programs. Those we'll never know to a higher degree of 'consistent with everything else'
Re:In search of 2.11BSD, as originally released
by irl_zebra on Tuesday July 14, 2020 @07:55PM
(#23839583)
I love these great, though utterly useless, projects people do for the love of things and for no other reason than it’s something interesting to them. I will be following along.
Re:In search of 2.11BSD, as originally released
by nix23 on Wednesday July 15, 2020 @06:50AM
(#23843480)
Yes this!! Its normal to read comments like that in linkedIn but not on HN...same as why use 9front/*BSD/Haiku/Inferno? Just take a normal Linux Distribution.
Re:In search of 2.11BSD, as originally released
by progman32 on Tuesday July 14, 2020 @09:00PM
(#23840053)
Reminds me of this recent video on recovering Luminary 69, Apollo 10's lunar module code (the only known copy of which is somewhere in solar orbit) by careful reconstruction of the development process: https://www.youtube.com/watch?v=-JTa1RQxU04
This exploitation of side-channels is something to pay attention to. Data is rarely fully lost!
Re:In search of 2.11BSD, as originally released
by taejo on Wednesday July 15, 2020 @07:23AM
(#23843691)
In that case someone found a listing of the checksums of the code that launched in the archives (!), that could be used to verify the reconstruction. I wonder if there's anything like that for 2.11BSD
Re:In search of 2.11BSD, as originally released
by bsdimp on Tuesday July 14, 2020 @10:10PM
(#23840436)
No. 2.11BSDpl195 is the earliest one available. It's what was on the old PUPS disk... PUPS became TUHS (http://www.tuhs.org) and this is the oldest one there and none of the old timers that ran 2BSD in PDP11 have the original tapes.
Reverting to patch level zero is an interesting exercise but there are still plenty of people who are interested in maintaining and updating the operating system.
Edit: And I understand the pain - the "patches" are a eclectic mix of straight diff output, shell archives, uuencoded compressed tar files, and all sorts of manual steps. But the patch "readme" information is unusually verbose and the update instructions are well written and informative.
[1] https://www.tuhs.org/Archive/Distributions/UCB/2.11BSD/Patch...
[2] https://obsolescence.wixsite.com/obsolescence/pidp-11
[3] https://github.com/chasecovello/211bsd-pidp11
I've done this with a lot of things which only have changelogs and tarballs, it is convenient.
Seriously, that would be a beautiful thing from a historic standpoint. But there is no git client for 2.11BSD, so you'd also end up having to build a git->something (probably shell archive and b64 compressed tar) that could allow the 2.11BSD system to update itself (and we're talking a 16/22 bit system here). There are also changes that require kernel recompiles and/or reboots so it turns out to be an extremely difficult problem. Which is why there are these human readable patches.
You might also want to mention it on the PiDP-11 Google Group (https://groups.google.com/forum/#!forum/pidp-11) where there are some original patchers and lots of other interested people.
I might be misunderstanding, but I don't think this is true. As long as there's a complete snapshot to start from anywhere in the revision history, it's possible to apply each patch in reverse (as far back as possible), even if it doesn't get all the way to patch level 0. Then later, if earlier patches are found, these can be applied in reverse and the branch rebased.
For example: https://www.tuhs.org/Archive/Distributions/UCB/2.11BSD/Patch...
I recently updated from patch level 462 to 469 (the most recently patch available) and even with excellent documentation, it was an involved process. If you look all the way back to the first set of patches (https://www.tuhs.org/Archive/Distributions/UCB/2.11BSD/Patch...) there isn't even documentation for the most part. Some diffs, some random tar files, and some "Remove everything above the #! /bin/sh line." patches.
The way I see it, git's main role here would simply be a way to standardize patch format, not its usual role as a distributed software development aid.
https://www.krsaborio.net/bsd/research/1991/0314.htm
It is great encouragement that time investment is never lost if it is something you love and enjoy, even when no one else has benefit of it.
This exploitation of side-channels is something to pay attention to. Data is rarely fully lost!
What do you mean? The text renders fine here on both desktop and mobile (no need to scroll horizontally).