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
below
On Fri, Dec 4, 2015 at 12:02 AM, Will Senn <will.senn(a)gmail.com> wrote:
> 1. a utility on the host that is capable of copying a directory and its
> contents, recursively, onto a blank magtape/dectape/rk image that is then
> readable in the v6 environment
>
Right - you want a common archive format between the two systems that talk
to the tape device.
You can either create your own or better take on the old ones that exist.
> 2. a tar and unzip binary for v6 that is capable of dealing with the
> tarball (but isn't the tarball going to exceed the max file size anyway, if
> so this won't work)
>
I think you have a many to chose from off the top of my head I can think of
each with different advantages (more in a minute):
- tar
- cpio
- tp/stp
- ar (new format)
You seem to also want a compression tool, but you might try compressing on
the modern system - but there are solution here also.
- pack/unpack was the old v5/v6 compression tool - I've forgotten where
it was sourced check the first USENIX tape in 77
- porting a modern zip/gzip/bzip
> 3. an alternative archiver that runs on FreeBSD or Mac OS X, that can
> create a single file archive from a subdirectory's contents on the host
> (the resultant file would need to be extractable on v6, and if file size is
> too limited, won't work either).
>
That is a lot of work and unless this is going to be a very long term
thing, I'm not so sure it's worth it. Basically you want a virtual FS on
the v6 system and the simulator. If you are going to do this alot, then
its worth it. Think the VFS that vmware and like offer.
> 4. some kind of directory transfer utility that works over telnet that can
> be executed from a FreeBSD or Mac OS X host and that can be executed on the
> v6 system as well.
>
the original unix kermit will compile using the v6 compiler (maybe the
v5) compiler. You have to dig in the archives, but you want a version
from Columbia circa 1977 and you be fine. The latest version will use
things in the language first described in the white book - aka Typersetter
C (Dennis was wrote the book starting with v6, but's not published until
v7). If you a later compiler running on v6 you'll be fine.
> 5. a utility capable of creating an empty magtape/dectape/rk image and
> another capable of making a filesystem on the image and another of
> populating the image (analogous to fdisk rkimage; mkfs rkimage; rkcopy dir
> rkimage)
>
You could move the file system creation tools and set of a virtual v6 FS.
It's a lot of work and unless this is going to be a very long term thing,
I'm not so sure it's worth it.
As for the archivers which in the short term is likely to be your best bet:
1. tar - there a couple of versions of tar for v6 including binaries.
I personally would start there.
2. cpio was written for PWB 1.0 which is v6 kernel based. That binary
should run. But IIRC correctly the original cpio was only binary headers
(the -c/ascii headers was added later). So you'll need to be careful on
the modern computer and make sure you set the switches so that he created
the proper endian/byte swapping -- ness in the header
3. tp/stp - on the original USENIX tape is a "super tp" that replaced
the original one. The binary should run as is. The code for it is
pre-K&R so compiling it with a modern compiler will be a little bit of
work. Also, IIRC the "directory" which is on the front of the tape is
binary, so you'll need to make sure you write everything in PDP-11 format.
4. ar - was updated by the community. Eventually, V7 took the "new ar"
from original USENIX tape. Again that binary should just run fine.
Although I don't think its directory is recursive so it may fail that
requirement for you
Clem
All,
I am trying to figure out how to get parts of 1BSD added into a pristine
v6 install, but the question I have relates to moving more than a
handful of files from a host system into v6, which lacks several
capabilities that are taken for granted from v7 onward (tar, unzip, and
so on).
For background, in looking at the 1bsd tarball, exploded out, I saw that
ex was available on the tape in a binary form that is suitable for a
PDP-11/40 and I thought it would make life easier in v6 to have ex. So,
I used dd to move the a.outNOID file onto a file, which can be used as
a raw RK image and then off the RK image loaded in the PDP-11 into the
v6 system as the executable file ex, and that worked. I was able to run
ex (well, sort of, I get the colon prompt anyway... I haven't figured
out how it actually works yet). Yeeha! Having had success of a sort with
a single executable from the 1BSD tape, I would like to see if other
parts of 1BSD will work in the environment and if I can properly install
those parts.
Individually moving files using dd is tedious in the extreme (there are
many files in the tarball). I know there has to be a better way. Since
v6 doesn't have tar, or unzip, it doesn't seem likely that using dd to
move the tarball into v6 will be help matters. But, if there was a way
to dd a subdirectory and its contents onto an RK image and get them off
again into a useable v6 file system, that would work.
My question for the group is based on the preceding discussion and the
following assumption:
1. given a tarball such as 1bsd.tar.gz from the TUHS archive located at:
/PDP-11/Distributions/ucb
2. with a running SimH PDP-11/40 instance
with a virtual TU10 magtape
with a virtual TU56 dectape
with a virtual RK05 hard drive
3. running v6 as the operating system
What is an efficient method of moving the files of the 1bsd
distribution, or any other set of files and directories, into the v6
operating environment?
Here are some approaches that seem reasonable, but that I haven't been
able to figure out, if you know better, please do tell:
1. a utility on the host that is capable of copying a directory and its
contents, recursively, onto a blank magtape/dectape/rk image that is
then readable in the v6 environment
2. a tar and unzip binary for v6 that is capable of dealing with the
tarball (but isn't the tarball going to exceed the max file size anyway,
if so this won't work)
3. an alternative archiver that runs on FreeBSD or Mac OS X, that can
create a single file archive from a subdirectory's contents on the host
(the resultant file would need to be extractable on v6, and if file size
is too limited, won't work either).
4. some kind of directory transfer utility that works over telnet that
can be executed from a FreeBSD or Mac OS X host and that can be executed
on the v6 system as well.
5. a utility capable of creating an empty magtape/dectape/rk image and
another capable of making a filesystem on the image and another of
populating the image (analogous to fdisk rkimage; mkfs rkimage; rkcopy
dir rkimage)
If I am asking the wrong questions, or thinking badly, I would
appreciate a steer in the right direction.
Regards,
Will
> From: Will Senn <will.senn(a)gmail.com>
> I am studying Unix v6 using SimH and I am documenting the process
I did a very similar exercise using the Ersatz11 simulator; I have a lot
of stuff about the process here:
http://www.chiappa.net/~jnc/tech/V6Unix.html
It contains a number of items that you might find useful, e.g.: "V6 as
distributed is strictly a 20th Century operating system. Literally. You can't
set the date to anytime in the 21st century, for two reasons. First, the
'date' command only take a 2-digit year number. Second, even if you fix that,
the ctime() library routine has a bug in it that makes it stop working in the
closing months of 1999."
> the PDP architecture
Technically, a PDP-11 - there were a number of different PDP architectures:
https://en.wikipedia.org/wiki/Programmed_Data_Processor
is a decent listing of them; several (PDP-8, PDP-10, etc) were very popular
and successful.
A few things I noted in your first post:
> I am using the Ken Wellsch tape because it boots and is stated to be
> identical to Dennis Ritchie's tape other than being bootable and having
> a different timestamp on root.
The only differences I could discover between the two are that in the Wellsch
versions i) a Western Electric rights notice (which prints on booting) has
been added to ken/main.c, and the Unix bootable images; and ii) the RK pack
images do have, as you noted, the bootstrap in block 0.
> Note: sh is critically important, don't muck it up :). The issue is
> that if you do, there really isn't an easy way to recover.
One should _never_ install a new shell version as '/bin/sh' until it has been
run and tested for a while (for the exact reason you mention). Happily, in
Unix, as far as the OS is concerned, the command interpreter is just another
program, so it's trivial to name a new binary of the shell 'nsh' or
something, and run that for a while to make sure it's working OK, before
installing it as '/bin/sh'.
> a special file (whatever that is)
Special files are UNIXisms for 'devices'. _All_ devices in Unix appear as
'special files' in the file system, usually (but not necessarily) in /dev -
that location is a convention, not a requirment of the OS.
Noel
On Sun, Nov 29, 2015 at 08:55:23PM -0800, Paul McJones wrote:
> Thanks very much for making the original and the OCR-enhanced versions
> of Doug’s scan of the “UnixEditionZero” document available
> on tuhs.org. I notice that even with Nelson’s enhanced version,
> the file size is still large for a scanned text document, apparently
> because it was originally scanned in RGB mode, 24 bits/pixel. The
> attached version is 2.5MB, and to my eye is identical looks identical
> to UnixEditionZero-OCR.pdf.
Paul, I've added your version into the same directory. Thanks!
Warren
Hi all,
In v2 no5 AUUGN Jun-Jul 1980, Andy Tanenbaum announced the availability of a Portable Pascal Compiler for the then proposed ISO standard. A tape was made for v6, v7, and non-unix platforms. Does anyone know if there is a tape image around that has the distro?
On a related note, has anyone successfully installed 1BSD on a v6 install running in SImH? 1BSD has the Berkeley Pascal Instructional system on it.
Regards,
Will
Sent from my iPhone
I'm too tired to dig for the exact words in the ISO standard,
but I had the impression that the official C rule these days
is that the effect of writing on a string literal is undefined.
So it's legal for an implementation to make strings read-only,
or to point several references to "What's the recipe today, Jim"
to one copy of the stripng in memory, and even to point uses of
"Jim" to the tail of the same string. Or both.
It is also legal for every string literal to reside in its own
memory and to be writable, but since the effect is undefined,
code that relies on that is on thin ice, especially if meant to
be portable code.
I have used, and even fixed (unrelated) bugs in, a compiler
that merged identical strings. I forget whether it also looked
for suffix matches. Whether the strings went in read-only
memory was up to the code generator (of course); in the new
back-end I wrote for it, I made them so. This turned up quite a
few fumbles in very-old UNIX code that assumed unique, writable
string literals, especially those that called mktemp(3). To my
mind that just meant the programs needed to be fixed to match
current standards (just as many old programs needed fixes to
compile without error in ISO C), so I fixed them.
I didn't (and still don't) like Joy's heavy-handed hack, but I
see his point, and think it's just fine for the language rules
to allow the compiler to do it hacklessly.
Norman Wilson
Toronto ON
I've gotten sucked into an embedded system project and they are running out of
memory. I have a vague memory of some sort of tool that I think Bill Joy
wrote (or maybe he told me about it) that would do some magic processing of
all the string constants and somehow it de-dupped the space.
Though now that I'm typing this that doesn't seem possible. Does this ring
a bell with anyone? I'm sure it was for the PDP 11 port.
Thanks,
--lm
Thanks, Doug and Warren, for the new files at
http://www.tuhs.org/Archive/PDP-11/Distributions/research/McIlroy_v0/
At the TUHS mirror at my site, you can find an additional file
http://www.math.utah.edu/pub/mirrors/minnie.tuhs.org/PDP-11/Distributions/r…ftp://ftp.math.utah.edu/pub/mirrors/minnie.tuhs.org/PDP-11/Distributions/re…
that is less than half the size, and is (somewhat) searchable, thanks
to Adobe Acrobat Pro 11 OCR conversion. Please include that in the
TUHS master archive, even renaming it to the original file, if you
wish.
I like the beginning of "Section 2. Hardware", where Dennis wrote:
>> ...
>> The PDP-11 on which UNIX is implemented is a 16-bit 12K computer,
>> and UNIX occupies 8K words. More than half of this space, however, is
>> utilized for a variable number of disk buffers; with some loss of
>> speed the number of buffers could be cut significantly.
>> ...
How much more powerful early Unix was compared to CP/M and MS-DOS, in
a small fraction of their memory space!
-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- University of Utah FAX: +1 801 581 4148 -
- Department of Mathematics, 110 LCB Internet e-mail: beebe(a)math.utah.edu -
- 155 S 1400 E RM 233 beebe(a)acm.org beebe(a)computer.org -
- Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------
> Woe betide the user if any string was changed at run time...
That was then. Now it would be OK to do so for const data.
(Unless the tool chain has discarded const indications.)
Doug
> It's worth noting that Unix was built for troff. Typesetting patents
if I recall correctly.
This is a stretch. Unix was really built because Ken and Dennis
had a good idea. The purchase of a PDP-11 for it was in part
justified by the goal of making a word-processing system. The
first in-house "sale" of Unix was indeed to the patent department
for typing patents--the selling point was that roff could be
made (by an overnight modification) to print line numbers as
USPTO required, whereas that was not a feature of a commercial
competitor. The timeline is really roff--Unix--patent--nroff--troff.
Though roff antedated Unix, it did not motivate Unix.
> Is this The UNIX Time-Sharing System, or related to it? The same
> claim appears in the first paragraph:
> https://www.bell-labs.com/usr/dmr/www/cacm.html
This draft clearly dates from 1971. Pieces of it were worked
into subsequent versions of the manual as well as published
descriptions of Unix, including the SIGOPS/CACM paper.
Doug
Hi,
I wanted to at least give it a try porting 2.11 BSD to my Z8001
machine. I din't really wrote any kernel part until now so it
will be a huge learning curve for sure. No idea what my spare
time permits, but... at least I'm planning giving it a try.
I didn't found something like "thing you should do first when
porting 2.11 BSD to another architecture" online so I thought
myself... maybe it would be good to start with the standalone
utilities - more precisely with "disklabel".
Is there a good "HOWTO" for "first things first" as implementing
disklabel seems to require quite some "device work" before the
first "hello world" is there - is there something else which
should be could be done first and does not require so much to
port (the whole disk subsystem on that machine is different
from "usual" disk subsystems as it is handled via a PIO)
Regards, Oliver
I know that I'm jumping the gun a bit, but if/when someone has any news
of any 50th anniversary celebrations for Unix in mid-2019?
I'd love to start planning things now, given I'm in Australia and I also
need to convince my darling wife of the need for a holiday in the U.S
[or elsewhere 8-) ].
I will keep asking every six months.
Cheers, Warren
> I've not seen anything before Dennis' scan of the 1st
> Edition manuals. Can you make a scan of this one available?
I shall, as I had intended to do if this document was as
unknown or forgotten by others as it was by me.
Doug
> The phototypesetter version of Unix was V7.
I'm not sure of what's being said here. Manuals from
the 4th edition on were phototypeaet, first on a
CAT and later a Linotron (if I remember the name right).
Doug
Hi all, I just receivd this e-mail from Will Senn who has just joined
the TUHS mailing list:
----- Forwarded message from Will Senn -----
Hi,
I am conducting research on older UNIX operating systems and came
across a letter from Richard Wolf to Ian Johnstone, dated Feb 5, 1979.
On p. 29 of the AUUGN, Volume 1 number 3, Mr. Wolf refers to a set of
101 fixes for research version 6. In my research, I am currently using
v6 and wondered if you knew where I might find the fixes or if the
bits are known to exist?
Kind Regards,
Will
----- End forwarded message -----
Will, there was a "50 bugs" tape for 6th Edition Unix that was "released"
to Unix owners in a very interesting distribution method: see
http://www.groklaw.net/articlebasic.php?story=20060616172103795
You can find it in the Unix Archive. Look in Applications/Spencer_Tapes/unsw3.tar.gz. It is the file usr/sys/v6unix/unix_changes.
Does anybody know of something which could be described as "101 fixes for
research version 6"? The phototypesetter version of Unix was V7.
Cheers all and welcome to the list Will.
Warren
https://groups.google.com/d/msg/net.unix/Cya18ywIebk/2SI8HrSciyYJ
Apparently the 8th Edition shell had the ability to export functions via
the environment.
I'm wondering - were there (are there?) any other shells other than bash
that picked up this feature? How was it implemented, considering this
was the cause of the "Shellshock" vulnerability?
I was amused to see it come up in one of the olduse.net newsgroups I've
been following.
Interestingly, the SysIII version of cut.c does not have the line
mentioned here. That's because it doesn't initialize _any_ of the flag
variables. The line was added some time between then and SysV, and that
is the _only_ significant change between the SysIII and pdp11v versions.
https://groups.google.com/d/msg/net.bugs.usg/iAkgNVBJNSo/PgXAC2vi044J
Hi,
I'm struggling on reimplementing the C code for the link()
syscall.
Usually on SYSIII and V7 you have something like:
link()
{
register struct inode *ip, *xp;
register struct a {
char *target;
char *linkname;
} *uap;
[...]
u.u_dirp = (caddr_t)uap->linkname;
[...]
}
The problem now on my system is, u_dirp in the user struct
is saddr_t (*long) and not caddr_t (*char) and I wonder how
I have to assign uap->linkname.
The original ASM code looks like:
_link::
{
dec fp,#~L2
ldm _stkseg+4(fp),r8,#6
ldl rr8,_u+36
[...]
ldl rr2,rr8(#4)
ldl rr4,rr2
and r4,#32512
ldl _u+78,rr4
[...]
I had the same problem already 7 years ago but didn't came up
with a solution back then.
http://home.salatschuessel.net/quest/problems.php
What came to my mind in the meantime is the following and maybe
someone can check if this is right:
1. _u+78 (u.u_dirp) contains a pointer - so what is assigned
here in ASM is a memory address.
2. The memory notation for accessing segmented data on Z8001
seems to be 0xSS00XXXX where SS is the segment number up
to 127 and XXXX is the relative address in that segment.
3. This means ANDing 0xSS00 with 0x7F00 means to strip out
all invalid data from the segment-position of the address,
to make sure it can only be between 0 and 127 (0x0000 and
0x7F00).
I wonder how the assignment of uap->linkname to u.u_dirp has
to be done correctly?!
I see http://archive.org/details/BillJoyInterview but the source is
unknown. Does anyone know who conducted this interview or where it came
from? (I tried to contact the archive years ago but didn't hear back.)
Most of the stories I have alternative sources for but I'd like to cite
some of this content in a book I am authoring.
Also it doesn't seem to have a starting place. It appears the beginning
of the interview is missing. (Also it has eight sections marked with
"[Skipped portion you requested.]" and 27 page breaks.)
It appears it may have been OCR'd (Exacfiy = Exactly, correcfiy =
correctly, f'mally = finally, f'md = find, f'n'st = first, llliac =
ILLIAC, Riogin = Rlogin, HTrP: = HTTP: and many other OCR-like typos),
plus misspelled names where the originally typed wrong (so I assume the
transcriber wasn't directly related to this story, like deck = DEC,
Favory = Fabry, Gerwitz = Gurwitz, "E-bid(?) ASCH" = maybe EBCDIC to
ASCII).
If anyone knows the source for this interview or a proper bibtex entry
for it, I'd appreciate it.
Howdy,
I'm the secretary of the Atlanta Historical Computing Society, and a lurker
here on the TUHS list.
We're starting our process of looking for speakers at our upcoming VCF SE
4.0. It'll be April 2nd and 3rd 2016
in the Atlanta area. Since I've enjoyed reading and hearing about all the
UNIX history on this list,
I was wondering if anybody here might be willing to speak at our event.
It seems there is a good
deal of history that is captured in the minds of the members of this
list... which might make a number
of good presentations.
We're open on ranges of topics. We've had many different people speak...
the first editor of Byte,
the artist who did the covers of many Byte magazines, Jason Scott from
archive.org, some early SWTPC
engineers, some early Apple engineers including Daniel Kottke. We also
have members from the
various Vintage Computer groups from around the U.S. speak (and of course
some local members),
and some University Archivists who are starting to have to deal with old
media. This year we will have
Jerry Manock (the designer from Apple who established their design
group...designed cases for Mac, etc.)
as one speaker.
We love to learn about the history, esp. from the folks who lived it. I am
just slightly too young to have
been there (was born in '65) but always enjoy the talks. We can
accommodate from a 30 min talk to
an hour. We have a professional sound set up and stage. We have a
co-sponsor, the Computer
Museum of America that is being established in the area as well. We have
between 5 and 10 slots to fill.
We aren't a large group, but we do have a limited budget to assist with
travel, lodging, etc. We can handle
"nice" but not the Ritz :-)
If anybody is interested, please contact me and I can provide further
details. And if you'd be interested
but can't make this year, please still contact me, maybe we can work
something out in the future.
Thanks!
Earl Baugh
Secretary
Atlanta Historical Computing Society.