On Tue, 8 Dec 2015, Brantley Coile wrote:
> We were indeed lucky that admiral hooper was with us. I know people who
> still cherish their "nano" seconds.
Ah yes, the 1ft piece of wire... Got a photo of it?
> By the way, she wouldn't have said she coined the term "debugging". That
> is at least as old as Thomas Edison. She said she was the first to a
> actually find a real bug!
For those who may be new around here:
https://en.wikipedia.org/wiki/Grace_Hopper#/media/File:H96566k.jpg
Yes, that is a real bug, found inside a real computer.
--
Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."
All,
According to "Setting Up Unix - Seventh Edition", by Haley and Ritchie:
The best way to convert file systems from 6th edition (V6) to 7th
edition (V7) format is to use tar(1). However, a special version of tar
must be prepared to run on V6.
The document goes on to describe a reasonable method to make v6tar on v7
and copy the binary over to the v6 system. I successfully built the
v6tar binary, which will execute in the v7 environment. I then moved it
over to the v6 system and did a byte compare on the file using od to
dump the octal bytes and then comparing them to the v7 version. The
match was perfect.
The problem is this, when I attempt to execute the v6tar binary on the
v6 system (it works in v7) it errors out:
v6tar
v6tar: too large
on the v7 system, it works:
v6tar
tar: usage tar -{txru}[cvfblm] [tapefile] [blocksize] file1 file2...
I don't think the binary is too large, is is only 18148 bytes.
ls -l v6tar
-rwxrwxrwx 1 root 18148 Oct 10 14:09 v6tar
Help. First, what does too large mean? Second, does this sound familiar
to anyone? etc.
Thanks,
Will
OK, slightly OT...
Rear Admiral Grace ("Amazing") Hopper PhD was given unto us in 1906. She
was famous for coining the term "debugging", whereby a moth was removed
from a relay contact in a *real* computer[*].
However, she must be condemned for giving us COBOL; yes, I know that vile
language, but I carefully leave it off my CV, as it seemed to be designed
for suits (Business Studies of course, but nothing technical) to spy upon
their programmers.
[*]
Defined, of course, where you could open a door and step inside it; I
actually did that once.
--
Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."
> It might not be so much a set of macros as just using a
> subset of raw groff.
Yes, there were no macros back then. If you format the
document using raw groff, the odds are that you will be
speaking the same roff that Dennis did.
> Doug having been there, might know/remember the actually lineage.
Aside from some fuzziness about who wrote what and in what
language, here's what happened:
To port Jerry Saltzer's Runoff (presumably written in MAD)
to Multics, either Dennis or Bob Morris or both together
reimplemented it (presumably in PL/I). To coexist with
Saltzer's version on CTSS, the new program needed a
distinct name, hence roff.
The early Multics PL/I compiler was far from a production
tool. Justifiably, the Bell Labs comp center didn't
support it. To get roff into general use at the Labs,
I undertook yet another implementation in BCPL. I added
functionality (number registers, three-part headings, etc)
and kept the new name. Molly Wagner added hyphenation.
Eventually, I added macros that were usable either as
commands or (when parameterless) embedded in text.
Almost as soon as Unix was up on the PDP-11 one of Ken, Dennis
or Ossanna reimplemented a pre-macro version of roff (presumably
in assembler or B). I'm quite sure roff never ran on the PDP-7.
Ossana had a grander plan and undertook nroff. When he learned
of the availability of the Graphic Systems CAT phototypesetter,
he promptly generalized nroff to handle it. Joe replaced the
CAT's paper tape reader with a direct wire to the computer.
It all worked swimmingly--nothing like the travails when the
CAT was replaced by the more capable Merganthaler Linotron.
An interesting question of priority is whether nroff or
BCPL roff was first to have a macro capability. Though
I don't remember for sure, the fact that BCPL roff unified
registers, macros, strings and diversions suggests that
I abstracted from nroff facilities.
Doug
All,
In the same vein as my prior note, I have made a note available on the
process of getting up and running on Unix Seventh Edition in a SimH
PDP-11 environment. The text is located at:
http://decuser.blogspot.com/2015/12/installing-and-using-research-unix.html
I welcome comments, suggestions, and even criticisms.
While I have learned a lot since my last blog entry (many thanks to
Hellwig Geisse, Nelson Beebe, Noel Chiappa, Clement Cole and several
others), I am still learning about these environments. I originally
invested time in getting v7 running so that I could more easily work
with v6, after having gone there, I believe that it was time very well
spent. I know a lot more about special devices, tape formats, and so on
than I did before as a result of taking the fork in the road.
Thanks for everyone's help.
Oh, and by the way, there appears to be quite a bit of active interest
in this topic - the blog post has been viewed several thousand times
since I posted it, two weeks ago.
Kind regards,
Will
I have set up v7 following [1] and I would like to better understand the
process of adding a disk to the environment. Here is what I know:
The system has one RP06 with two partitions rp0 and rp3 which correspond
to the two block devices rp0, rp3, and the two character devices rrp0,
and rrp3. The special files look like so:
brw-r--r-- 1 root 6, 0 Dec 31 19:05 /dev/rp0
brw-r--r-- 1 root 6, 7 Dec 31 19:04 /dev/rp3
crw-r--r-- 1 root 14, 0 Dec 31 19:01 /dev/rrp0
crw-r--r-- 1 root 14, 7 Dec 31 19:01 /dev/rrp3
This meshes with the device classes switches in c.c:
The block device switch:
struct bdevsw bdevsw[] =
{
...
nulldev, nulldev, hpstrategy, &hptab, /* hp = 6 */
...
}
The character device switch:
struct cdevsw cdevsw[] =
{
...
nulldev, nulldev, hpread, hpwrite, nodev, nulldev, 0, /* hp =
14 */
...
}
I would like to add another RP disk to the environment. After I attach
an RP04/05/06 to the system, what should I use as the major/minor device
numbers? To put it differently, it doesn't seem correct to me to use 6,1
for the block device or 14,1 for the character device on the new drive
as it's a completely different disk from rp0 and rp3 which are just
partitions on the first drive and have 6,0, 6,7, and 14,0, 14,7. If each
RP can have 8 partitions and there can be 8 drives, what is the correct
major, minor numbers to use with v7 for multiple devices?
c.c only lists one vector each for the hp device (one block vector where
hp = 6, and one char vector where hp = 15).
Thanks,
Will
[1] Haley, C. B. & Ritchie, D. M. (1979). Setting Up Unix – Seventh
Edition (pp. 497-505) in UNIX programmer's manual, Vol. 2, Revised and
Expanded Version. Bell Laboratories: NY.
In exploring v6, I have found some uses for having a running v7 instance...
When I try to install the RP bootblock during the installation procedure
for installing Version 7 Unix following the original documentation:
ftp://ftp.uvsq.fr/pub/tuhs/PDP-11/Documentation/v7_setup.html
I am unable to boot from the RP06 disk that I installed into the boot
block onto via:
dd if=/usr/mdec/hpuboot of=/dev/rp0 count=1
No error, it just hangs. I compared hpuboot to the bootblock at it
matches byte for byte. I also compared it to the hpuboot file in Henry
Spencer's tape image (I am using Keith Bostic's tape) and it matches
that as well.
I am asking this list because I thought y'all might know if there was a
problem with:
1) the hpuboot binary on the tapes
2) v7 using RP06
3) something else helpful :) (maybe it's not supposed to be loaded to
byte 0 on the disk image, although that's how it works with v6?)
I am aware that the system can be booted from tape, but that seems hokey
(obviously it works, since that's how the installation process works in
the first place, but I think it is reasonable to expect to be able to
boot from the RP06). Interestingly, there are and RL02 and RK05 v7
images that boot from disk available, but not RP.
I will ask on the SimH list, if y'all don't think it's appropriately
directed.
Thoughts?
Thanks,
Will
All,
I am studying Unix v6 using SimH and I am documenting the process, as I
go, as part of my own learning process. I have much to learn about Unix,
Unix v6 in particular, the PDP architecture and its relationship with
v6, and SimH's emulation of the PDP, so, I am taking notes... I thought
that I would share the notes in raw form as occasional blog posts in the
hope that the knowledge that I work to obtain, might be made available
and useful to others. I also believe that these forms of communication,
as insignificant as they may seem individually are part of helping to
preserve the knowledge of our computing history, in the aggregate. Here
is a link to the first post, a run at an installation walk-through:
http://decuser.blogspot.com/2015/11/installing-and-using-research-unix.html
I am open to feedback and criticism, but please keep in mind that I am a
relative newbie to v6 and PDP land, some of my assumptions are
probably/undoubtedly wrong, but definitely fixable :).
Regards,
Will
> From: Will Senn <will.senn(a)gmail.com>
> a deeper read will require the reader to have knowledge beyond what is
> required of most modern software developers (PDP-11 architecture,
> assembly language, and UNIX are prerequisite).
Well, for pretty much any _operating system_ (as opposed to applications),
one will need to know something about the details of the machine it is
intended to run on; depending on which part of the OS one is looking at, it
will be more or less. E.g. switching processes probably requires a fair
amount, since one needs to know about internal CPU registers, etc; whereas
working on the file system, one probably doesn't need to know very much about
the machine.
> It will also require access to a lab where the ideas covered can be
> experimented with.
Actually, Lions/V6 was used in operating systems courses using simulated
machines; one at MIT, 6.828 "Operating Systems Engineering":
https://pdos.csail.mit.edu/6.828/
used it for a while before the students started complaining about being
forced to learn an obsolete machine. They thereupon wrote a V6 clone for the
x86 architecture, 'XV6' (see the top of that page), which is apparently now
used for similar courses at quite a few other universities.
> The v6 kernel ... packs in features that were either unavailable in
> larger more established systems or may have been present in some form,
> but were orders of magnitude more lines of code and attendant
> complexity. It was and remains an amazing operating system and worthy
> of contemporary study.
I don't think you will find too many people here who disagree! ;-)
> So, I was thinking that next up, I would write up notes to help the
> modern reader engage with v6 more easily in order to follow works like
> Lyons.
Check around online to see what exists, first; there has been stuff written
since Lions! ;-)
Noel
Hi,
Don't forget the Zuse machines, which were later proven to be Turing
complete. It is certainly fascinating to see handling binary floating point
numbers in a purely mechanical device (check it out if you happen to be in
Berlin). Later machines were electromechanical and electronics.
Regards,
Szabolcs
>
> 2015.12.04. 15:52 ezt Ãrta ("John Cowan" <cowan(a)mercury.ccil.org>):
>>
>> Greg 'groggy' Lehey scripsit:
>>
>> > Take a look at CSIRAC in the Melbourne museum, the oldest computer in
>> > the world. It's worth it, even if they don't have it running.
>>
>> Well, there's the Antikythera mechanism.
>>
>> --
>> John Cowan http://www.ccil.org/~cowan cowan(a)ccil.org
>> In the sciences, we are now uniquely privileged to sit side by side
>> with the giants on whose shoulders we stand. --Gerald Holton
>> _______________________________________________
>> TUHS mailing list
>> TUHS(a)minnie.tuhs.org
>> https://minnie.tuhs.org/mailman/listinfo/tuhs