TimeMon.nib
/* README README file for the TimeMon program. Copyright 1991 Scott Hess. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that this copyright notice appear in all copies. The copyright notice need not appear on binary-only distributions - just in source code. Scott Hess makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. */ Changes from TimeMon-2.1 to TimeMon-2.2 I modified the routines that get the CPU usage info to use the apparently undocumented table() function of mach. This function returns a structure which contains all of the information I needed, and is actually much easier to use than the /dev/kmem stuff. Since the function is undocumented, I included code which _should_ automagically fall-back to the /dev/kmem reading stuff if needed. The upshot is that TimeMon no longer requires setgid kmem. This is great, since it plugs a security hole. Thus, the installation notes no longer apply. If, in the future, NeXT should decide not to include the table() function, the /dev/kmem functionality is still there. By doing 'make "CFLAGS= -DUSEKMEM=1", the original TimeMon-2.1 program is produced. The other change is that I updated all those nasty copyright notices. I snarfed most of the notice from the BSD sources (somewhere or other), and seemed to have forgotten that 1988 didn't really make much sense WRT NeXT and myself. They're now updated to 1991. README from TimeMon-2.1 follows: Find enclosed the new, improved TimeMon program. TimeMon monitors your system and tells you where the cycles are going - to kernel processing, user processes, "nice" processes, and idle time. OK, so it's a bit coarse. TimeMon2.1 has been much improved over the original TimeMon program. You'll first notice that TimeMon does the output display in the program's icon, as opposed to using a separate window. I found that the separate window was continually losing itself, and also really didn't give me all the information I wanted. The new version gives more information than the original, in a more compact, yet more readable form. Installation Version 2.1 of TimeMon compiles and runs under NextStep2.1. It more than likely works under 2.0 (I use no weird stuff - in fact, most of the remotely weird stuff is based on code that worked in NextStep1.0, also). It will not work under NextStep1.0, and I have no plans for such a port. Get yourself upgraded, it's worth it. To install TimeMon, do your make in the TimeMon-2.1 directory, run 'strip TimeMon' to remove debugging symbols, and move the executable to the appropriate place. Then you must incant: chgrp kmem TimeMon ; chmod g+s TimeMon to the command line as root. As shipped, NeXT's allow group kmem read access to /dev/kmem, which TimeMon needs in order to read the required data from it. Note that this is much safer than the earlier TimeMon, which wanted to be setuid root. Technically, that wasn't really required, except that I tested the effective uid and didn't run if it wasn't root . . . Later, scott hess RR#4 Box 227 Pipestone, MN 56164 (507) 825-2788 scott@gac.edu
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.