Also, I only now realized that only mknod existed, up until a long time, only later on with the GNU coreutils did mkdir as a command come into existence. Running the PDP-11 v7 on SIMH showed that, gotten so accustomed to the Linux env that thinking backwards seemed suddenly arcane. On Mon, Oct 21, 2019 at 4:13 PM Abhinav Rajagopalan < abhinavrajagopalan@gmail.com> wrote: > > >> . and .. >> >> Was this introduced first with PDP-11 unix or did the convention >> start on the PDP-7 already? It certainly seems to be the case with . >> but how about ..? the dd directory seems to take on the role of a sort >> of root directory and the now discovered program pd actually creates a >> file .. (haven't tried to understand what it does though yet) >> What does dd stand for, dotdot? directory directory? >> >> >> > . and .. are quite intuitive the more I think about it, they're > essentially acting as symbolic representations of the 'current' and > 'parent' dirs as in, when we look at it from / : > > / > |--|--|--|--|--|--|--|--| > /etc /bin /root /home /mnt /dev /usr > |--|--|--|--|--|--|--|--| > ../ ../ ../ ../ ../ ../ ../ ../ > > As we see, each of the subdirectories hold a / prefix to them as we're > used to seeing, and this translated to the subfolders having their ../ > descriptor denoting their parent (I think of them as recursive pointers to > parent dirs), where the parent holds ../ and child dir has a name like /.. > and invoking > > I don't know if it wasn't until the mkdir() syscall was added this > approach took form. There was an earlier 'Aha, Unix!' thread where Ken had > mentioned a similar thing, where invoking pwd gave only the /usr/name > directory even if the directory had been changed with chdir, essentially > stemming out of only the forked child changing dirs, when the cd wasn't > built into the shell (this was in the PDP-11 when he was writing the > initial set utilities like cd, ls) > > Also, depending on the implementation of 'ls' we were to try this out > today, these are bound to have their differences. The original syscalls on > the PDP-7 had chdir, > > swp: " system call dispatch table > jmp . " base instruction > .save; .getuid; .open; .read; .write; .creat; .seek; .tell > .close; .link; .unlink; .setuid; .rename; .exit; .time; .intrp > .chdir; .chmod; .chown; badcal; .sysloc; badcal; .capt; .rele > .status; badcal; .smes; .rmes; .fork > > > mkdir was probably in the works at this stage. > > We should also touch upon the "cd -" as this one takes you back like a > back button into the directory you were last inside, whereas the cd ../.. > takes you up or down the hierarchy depending on the placement of the / and > adding placeholders i.e directory names in place of the .. (dots). > > Of course, only the creators can embark upon the design details of the > hierarchical system and the reasons behind all the above and more. > > Since you mentioned the word dd, the utility which serves me like none > other for my frequent rewrites of images, it too has an interesting past, > it seems like 'dd' was non-unixy in it's design approach, if I'm to believe > the lores around, which leads me to think that this might have been another > one of the many idiosyncratic naming conventions used back then. More on > the dd stuff: http://www.catb.org/jargon/html/D/dd.html > > Personally, I just like to think of it in my head as disk-disk. > > -- > > Abhinav Rajagopalan > > > -- Abhinav Rajagopalan