home *** CD-ROM | disk | FTP | other *** search
- A history of ofiles
- Dan Bernstein
- 4/6/91
-
-
- 1. Contributors to ofiles/fstat/pff
-
- C. Spencer <??? at BBN> was the original author of ofiles.
-
- Vic Abell <abe@mace.cc.purdue.edu>
- Dan Bernstein <brnstnd@nyu.edu>
- Will Crowder <willcr@ism.isc.com>
- Tom Christiansen <tchrist@convex.com>
- Michael Ditto <???>
- Viktor Dukhovni <viktor@shearson.com>
- Tom Dunigan <dunigan@msr.epm.ornl.gov>
- Alexander Dupuy <dupuy@cs.columbia.edu>
- Vik Lall <???>
- Craig Leres <leres@helios.ee.lbl.gov>
- Ray Moody <Ray.Moody@timbuk.cray.com>
- Gary Nebbett <grn@stl.stc.co.uk last known address>
- Tim Rosmus <tim@pilchuck.data-io.com>
- Mike Spitzer <???>
- Richard Tobin <richard@aiai.ed.ac.uk>
-
- Particular thanks to Vic Abell, Alexander Dupuy, and Craig Leres for a
- lot of the information contained here. Thanks also to Eduardo Krell
- <ekrell@ulysses.att.com> for bringing the Dupuy version of ofiles to my
- attention.
-
-
- 2. The ofiles/fstat/pff tree
-
- original ofiles
- |
- modified original ofiles find-fs BSD 4.3-Tahoe fstat
- | \ | |
- Abell ofiles Dupuy ofiles Abell fstat
- | | |
- modified Abell ofiles | Christiansen fstat
- \ | /
- ---------pff--------
-
- The lines here trace ideas, not just code. pff does not use any fstat
- code, but it borrows heavily from the fstat output format, for example.
-
-
- 3. Who, what, when
-
- C. Spencer <??? at BBN> wrote the original ofiles for BSD 4.2, around
- May 1985. This is the ``original ofiles'' node above.
-
- Alexander Dupuy <dupuy@cs.columbia.edu> maintained ofiles in September
- and October 1988. He integrated a vnode version with DYNIX support from
- Tom Dunigan <dunigan@msr.epm.ornl.gov>, modified it to work with remote
- files and filesystems, added support for examining the descriptor tables
- of selected processes, added text segment support, merged enhancements
- to the vnode version with the inode version, added socket-printing
- options done in August 1988 by Craig Leres <leres@helios.ee.lbl.gov>,
- and ported ofiles to Ultrix 2.0.
-
- At some point (viz., ``modified original ofiles''), another version of
- ofiles---the ``Abell ofiles'', maintained by Vic Abell
- <abe@mace.cc.purdue.edu>---split off the above branch. See below for
- further details.
-
- In July 1990 Dupuy eliminated the DYNIX support but integrated several
- further versions, including an initial SunOS 4.0 port by Gary Nebbett
- <last known address grn@stl.stc.co.uk> and socket-searching enhancements
- by Viktor Dukhovni <viktor@shearson.com>. He then ported ofiles to a VAX
- running 4.3+NFS and finished integrating Dukhovni's May 1990 SunOS 4.1
- port. This version was distributed. In late June 1990 Dupuy integrated a
- patch from Tim Rosmus <tim@pilchuck.data-io.com> to distinguish between
- NFS4 vnodes and SunOS 4's NFS, to handle Mt. XINU systems. That version
- is the ``Dupuy ofiles'' node in the tree.
-
- The Abell ofiles gives credit to Dunigan, Dupuy, Nebbett, Michael Ditto
- <???>, and Richard Tobin <richard@aiai.ed.ac.uk>. It is not clear when
- this version split off; it may have been directly from the original
- ofiles, as it does not support NFS. Abell tracked down the above names;
- they did not (necessarily) contribute to that version. (In fact, Tobin
- apparently did not work on ofiles; Dupuy took the text segment search
- code from Tobin's find-fs, which he posted to Sun-Spots at some point.)
-
- At the Purdue University Computer Center, Mike Spitzer <???> ported
- ofiles to BSD 4.3 and DYNIX 3.0.1[24], Ray Moody <ray@mace.cc.purdue.edu>
- added code to report on shared and exclusive locks, Vik Lall <???>
- apparently did some ports, somebody ported it to SunOS 4.0 and Ultrix
- 2.2, and Abell added an option to look up network connections by
- protocol control block address. This became the Abell ofiles, which
- appeared on comp.sources.unix in volume 18. Will Crowder
- <willcr@ism.isc.com> patched the Abell ofiles for SunOS 4.1; this, and
- any other modifications to that version after the comp.sources.unix
- release, appear at the ``modified Abell ofiles'' node.
-
- In the meantime, an independent fstat program appeared in BSD 4.3-Tahoe
- (when?). fstat performs much of the same function as ofiles in a
- somewhat different way. The 4.3-Tahoe version does not support NFS.
- Abell ported fstat to various systems and sent it to comp.sources.unix
- volume 18. Tom Christiansen <tchrist@convex.com> ported it to the Convex
- and added partial NFS support (his version didn't decode the filesystem
- from /etc/mtab as the Dupuy ofiles does); note that source to this
- version is not available because Convex is, well, um, stingy.
-
- In March and April 1991, Dan Bernstein <brnstnd@nyu.edu---that's me>
- integrated the various versions of ofiles, stole some ideas (though not
- code) from fstat, and rewrote most of the program (the easy parts) from
- scratch. ``pff'' (process-file-file) has getuser() and various other
- pieces of the Abell ofiles, mmap and text segment support from the Dupuy
- ofiles, Convex support as in the Christiansen fstat, offset reporting as
- in fstat, controlling ttys, open file flags (like rwa for read, write,
- append), vnode and device printing mostly from the Dupuy ofiles, NFS
- support as in the Dupuy ofiles and the Christiansen fstat, socket
- searching similar to the Dupuy ofiles, and several output formats
- imitating the output formats of the older programs. pff can also report
- process status, including resource usage and signal handling.
-
- pff does *not* support the DYNIX core file reading from the Abell ofiles,
- any sort of debugging output, file size reporting as in fstat, various
- name lookups (e.g., hostnames, services), and socket searches by
- protocol. It's also rather shoddy on error-checking. Other than this, pff
- appears to provide all the features of its ancestors. It works so far
- under Ultrix 4.1, SunOS 4.0.3, SunOS 4.1, and Convex UNIX 9.0.
-
- I do not know what interest Spencer, Ditto, Dunigan, Lall, Nebbett,
- Rosmus, or Spitzer currently have in the code, so as noted in README
- certain parts of pff might not be freely distributable. The code I wrote
- for this package is all public-domain.
-