I also second/support Ron's and uh Clem's view. In addition to zeroing out the
inumber field, "removing" a file decremented the reference count in the i-node
causing it to be freed (not cleared) when the reference count went to zero. There was no
strncpy() in the kernel. Was there a strcpy() (other than a macro) in the kernel?? Long
live movtuc.
Begin forwarded message:
From: Ronald Natalie <ron(a)ronnatalie.com>
Subject: Re: [TUHS] History of strncpy
Date: January 23, 2013 9:01:04 AM CST
To: Clem Cole <clemc(a)ccc.com>
Cc: tuhs(a)minnie.tuhs.org
I agree with uh Clem. First off, Nevin's rememberence is wrong. The I-node
number was the first two bytes of the V6 directory entry followed by a FIXED 14 spaces for
the name (null terminated or not depending on whether the length was there).
I can guarantee there was no STRNCPY in the kernel, and my memory is with Clem, the V6
and even the phototypesetter versions of the C compiler and libraries didn't have
these functions.
By the time Version 7 rolled around, the variable length directories had also appeared in
the filesystem. I suspect strcpy arrived with the "portable I/O library", an
abomination that eventually evolved into the stdio library and to this day is still
stinking up the standard C language.
Amusingly, removing a file only zeroed out the inumber field. This could lead the
creative hacker to leave all sorts of fun messages in the directory by creating and
removing files carefully.
We had an alternate shell that was removed for security reasons and one day I found if
you did "cat /tmp" there was some noise at the top for the current user of it
but then a bunch of new lines and a message that said "Looking for a ghost of
nosh?"
_______________________________________________
TUHS mailing list
TUHS(a)minnie.tuhs.org
https://minnie.tuhs.org/mailman/listinfo/tuhs