> From: Will Senn
> Thanks for not dismissing the thread as frivolity.
Hey, anyone wanting to do things with V6 I take seriously! :-)
> I'm sure y'all have seen Mills's winning Best in Show IOCCC entry:
> https://www.ioccc.org/2018/mills/hint.html
Yes, that was pretty awesome.
> Fantastic, I'm prolly gonna try it.
OK; if you want to know what it's doing (somehow I figured you probably didn't
just want to simply follow the instructions :-) that is different from the /40
(it's quite different, and somewhat complicated), I just wrote this:
http://gunkies.org/wiki/Unix_V6_kernel_memory_layout
to explain it a bit. Currently, one has to read the source to 'sysfix', and
also m45.s, to understand how the /45 version works; that new page is a little
crude still, but it hopefully explains the big picture.
> If the instructions in Setting up are as good for the 45 as they are for
> the 40, I should be able to bring one up relatively painlessly.
I just took a look at "Setting up UNIX - Sixth Edition", and it doesn't really
say much about the /45; it basically just says 'the /45 is wiered inside' and
'look at sys/run'. It is certainly true that that does cover all one needs to
bring V6 up on the /45, but... The coverage of what to do if your '45' has
hardware floating point is pretty complete, though.
> What it sounds like is that Unix was transitioning from non-I/D land to
> I/D land and maintaining a measure of backward compatibility
That's pretty accurate. One main advantage of the /45 is that it could have a
lot more disk buffers, but I'm not sure that makes much difference for
emulation. If you have some application that won't fit well in 64KB, that's
big, but that's a user-land difference, not the OS.
> Is there a bootable tape of the MIT system extant?
Not yet, sorry. I do have a complete dump, but it i) includes all the users'
personal files, and ii) is not well organized. It's on my to-do list.
Noel
> But wasn't it tsort that did the heavy lifting to get things in order?
An amusing notion. Having written tsort, I can assure you it couldn't
lift anything heavy--it used the most naive quadratic algorithm. But
it was good enough for libc.
Doug
>Date: Sun, 30 Dec 2018 14:24:55 -0500
>From: Paul Winalski <paul.winalski(a)gmail.com>
>To: Norman Wilson <norman(a)oclsc.org>
>Cc: tuhs(a)tuhs.org
>Subject: Re: [TUHS] Deleted lib1 and lib2 in v6, recoverable?
>Message-ID:
> <CABH=_VTqZzNXPNecFCVZeqfMTnoJiWHbXZz->BriRGtxBY0J10Q(a)mail.gmail.com>
>Content-Type: text/plain; charset="UTF-8"
>
>On 12/30/18, Norman Wilson <norman(a)oclsc.org> wrote:
>
>> <snip>
>>
>> Nowadays ranlib is no longer a separate program: ar
>> recognizes object files and maintains an index if any are
>> present. I never especially liked that; ar is in.
>> principle a general tool so why should it have a special
>> case for one type of file? But in practice I don't know
>> anyone who uses ar for anything except libraries any more
>> (everyone uses tar for the general case, since .it does a.
>> better job).
>
>As you say, nobody these days uses ar for anything except object
>module libraries. And just about anything you do that modifies an ar
>library will require re-running ranlib afterwards. So as a
>convenience and as a way to avoid cockpit errors, it makes sense to
>merge the ranlib function into ar. MacOS still uses an independent
>ranlib, and it's a pain in the butt to have to remember to run ranlib
>after each time you modify an archive.
>
Maybe not on some of the older, more (resource) restricted systems,
but now normally wouldn't modifying an archive be part of
definitions/rules in a makefile and as such wouldn't the makefile
include using ranlib if an archive was modified ?
uncle rubl
I wrote (re my approach to sendmail.cf):
> Bill's half right. I didn't invent a language; I used what was there.
Grant Taylor asked:
Can I ask what language you did use? Was it m4 or something else?
====
I think you missed my point. The language I used was plain old
sendmail.cf.
Norman Wilson
Toronto ON
In the help file for v6 (/usr/doc/hel), it says that troff, eqn, etc are not part of the distro and even though there are man pages, the utils are not present in my base v6 install. I know this because I copied the hel0-hel5 files and naa over to my mac and used groff to make ps files and ps2pdf to turn those files into pdfs. While they came out ok, there was some overlapping text and the math equations were imperfect. I figured if I could do more preprocessing in v6 before moving files into mac, they might come out better, but the utils as noted above. Do we have the utils as bits somewhere (or is this an oblique reference to 1bsd)?
Thanks,
Will
Sent from my iPhone
There is a file, intro, in /usr/doc/man/man0, that is a system introduction prepared for a ‘Graphic System phototypesetter... in troff’. I was wondering if there was a way to display the file in v6 on the terminal, similar to displaying man pages:
nroff /usr/doc/man/man0/naa /usr/doc/man/man1/write.1
I couldn’t find a troff command and the output from various nroff incantations were less readable than cat.
Thanks,
Will
> On 12/28/18 7:35 PM, Warren Toomey wrote:
> > I just tried it here. I had to do:
> > chdir ken; ...
> > ar r ../lib1 *.o
> > chdir ../dmr; ...
> > ar r ../lib2 *.o
On Fri, Dec 28, 2018 at 08:02:55PM -0600, Will Senn wrote:
> I wound up doing:
> chdir ken
> cc -c -O *.c
> ar r ../lib1 main.o
> ar r ../lib1 alloc.o
> ar r ../lib1 iget.o
> ar r ../lib1 prf.o
> ar r ../lib1 rdwri.o
> ar r ../lib1 slp.o
> ar r ../lib1 subr.o
> ar r ../lib1 text.o
> ar r ../lib1 trap.o
> ar r ../lib1 sig.o
> ar r ../lib1 sysent.o
> ar r ../lib1 clock.o
> ar r ../lib1 fio.o
> ar r ../lib1 malloc.o
> ar r ../lib1 nami.o
> ar r ../lib1 pipe.o
> ar r ../lib1 sys1.o
> ar r ../lib1 sys2.o
> ar r ../lib1 sys3.o
> ar r ../lib1 sys4.o
>
> rm *.o
>
> chdir ../dmr
> cc -c -O *.c
>
> ar r ../lib2 bio.o
> ar r ../lib2 tty.o
> ar r ../lib2 dc.o
> ar r ../lib2 dn.o
> ar r ../lib2 dp.o
> ar r ../lib2 kl.o
> ar r ../lib2 mem.o
> ar r ../lib2 pc.o
> ar r ../lib2 rf.o
> ar r ../lib2 rk.o
> ar r ../lib2 tc.o
> ar r ../lib2 tm.o
> ar r ../lib2 partab.o
> ar r ../lib2 rp.o
> ar r ../lib2 lp.o
> ar r ../lib2 dhdm.o
> ar r ../lib2 dh.o
> ar r ../lib2 dhfdm.o
> ar r ../lib2 sys.o
> ar r ../lib2 hp.o
> ar r ../lib2 ht.o
> ar r ../lib2 hs.o
> rm *.o
>
> Then I continued with the system build and it worked and my changes were
> there!
> Will
Yes, order will be important, I forgot. There's no ranlib in v6 :-)
Cheers, Warren
> From: Warren Toomey
> I just tried it here. I had to do:
> ...
> ar r ../lib1 *.o
> ...
> to get them to rebuild. Otherwise, I had empty libraries.
Duhh. I never noticed the missing "*.o"!
I wonder how that one slipped through? Looking at 'run', it really does look
like it was used to prepare the systems on the distribution tape. So probably
the libraries just happened to already hold the latest and greatest, so that
error had no effect.
The thing with needing to order the library contents properly to cause all the
modules to get loaded is, I reckon, the reason why 'ar' has those arguments to
specify where in the archive a given file goes.
Noel
So... I whacked /usr/sys/lib1 and lib2 ‘accidentally’ meaning I logged in as bin changed to /usr/sys and typed rm lib1 and rm lib2 :). Now, I was thinking at the time that I could regenerate them... this seems like a possibility, but I can’t seem to get them back.
sh run as bin doesn’t do it.
So, what magic incantation is required to rebuild them.
What motivated the exploration was a desire to modify main.c and see those changes manifest.
Help.
Thanks,
Will
Sent from my iPhone
We gained John von Neumann on this day in 1903, and if you haven't heard
of him then you are barely human... As computer science goes, he's right
up there with Alan Turing. There is speculation that he knew of Babbage's
work; see
https://cstheory.stackexchange.com/questions/10828/the-relation-between-bab…
.
-- Dave