On Mon, Jan 5, 2015 at 12:04 PM, Jacob Ritorto <jacob.ritorto(a)gmail.com>
wrote:
Bear in mind that unix didn't even have fsck for
a decade after its
release (it appeared after v7 released),
That is actually not wholly true - although in practice you are probably
right. The late Ted Kowalski starting writing fsck as an undergrad at
Michigan in about 1976 and then finished it up as a grad student at CMU in
1977 with a summer of work in between at BTL [if I have the dates right --
Armando I think you OYOC at the same time as Ted - is that about right].
BTW: fsck was the program Ted introduced me to C, as I was BLISS hacker
before that. Anyway, all of that was done on 6th edition not 7th. Fsck
was first released as part of Unix TS inside the labs and migrated
independently of any base distribution - although it was included as part
of BSD. Ted has been Bill Joy's roommate at Michigan and I never knew how
UCB got it, but I'm guessing it was that connection because it was already
at UCB by the time I arrived. I never knew for sure, but I think from a
legal standpoint it was assumed a CMU program, so BTL could not make claims
on it - since you right it was not part of V7 either.
Also, for those of you that never saw Unix before fsck or before the work
that Goble did at Purdue to get the write ordering down, you have no idea
what it was like to put a file system back together. The sync;sync;sync
stuff was because of the lack write ordering; but even with that, small
file system corruptions where common. fsck was a huge improvement.
Also in an earlier thread people we asking about small address space. One
of the issues Ted had to deal with early in the life of fsck was that the
size of a file system on something like the RP06 was too large for the
data structures (just think the RP06 had a formatted capacity of less than
200 Mbytes and we partitioned them into smaller file systems). So, some of
you will remember. that when fsck started up, it asked for a temp file
[which could be tricky if you were trying to fix the root file system].
In fact, one of the things I worked on was the code that allowed us the
deal with the temp file so we could swap those large structures in and out
memory and still work on and 11/40 without I/D space. If you look at the
early fsck code on Warren's site, I suspect you can find it - crude as it
may be -- it worked pretty well.