Due to differences in (mainly) measuring and accumulating CPU times, the two top programs end up serving different purposes: the NetBSD top is a system administration tool, while the MINIX3 top (now mtop) is a performance debugging tool. Therefore, we keep both. The newly imported BSD top has a few MINIX3-specific changes. CPU statistics separate system time from kernel time, rather than kernel time from time spent on handling interrupts. Memory statistics show numbers that are currently relevant for MINIX3. Swap statistics are disabled entirely. All of these changes effectively bring it closer to how mtop already worked as well. Change-Id: I9611917cb03e164ddf012c5def6da0e7fede826d
192 lines
7.9 KiB
Plaintext
192 lines
7.9 KiB
Plaintext
TOP
|
|
Version 3.8beta1
|
|
|
|
William LeFebvre
|
|
and a cast of dozens
|
|
|
|
|
|
If you do not want to read this entire file, then at least read
|
|
the section at the end entitled "KNOWN PROBLEMS".
|
|
|
|
If you are having any problems getting top to work, please read the
|
|
file "FAQ" *before* contacting me. Thank you.
|
|
|
|
"top" is a program that will give continual reports about the state of
|
|
the system, including a list of the top cpu using processes. Version 3
|
|
of "top" has three primary design goals: provide an accurate snapshot of
|
|
the system and process state, not be one of the top processes itself, be
|
|
as portable as possible.
|
|
|
|
Version 3 has many bug fixes from version 2.5, and it has also been
|
|
reorganized in a major way to make it easy to port to other platforms.
|
|
All system dependent code is now contained in one file.
|
|
|
|
Starting with version 3.6, top includes a "configure" script generated
|
|
by Gnu's autoconf. This script MUST be run before attempting to
|
|
compile top. It will explore the system and generate approriate
|
|
contents for Makefile, config.h, and top.1.
|
|
|
|
On some systems, top requires read access to the memory files
|
|
"/dev/kmem" and "/dev/mem" as well as the system's kernel image. Most
|
|
installations have these files protected from general access. These
|
|
sites would have to install this program in the same way that programs
|
|
such as "ps" are installed. On most systems with a /proc file system,
|
|
top will try to read everything it can from /proc, but may need extra
|
|
permissions to do so. The configure script will determine the
|
|
permissions needed by the top binary, and a "make install" as root
|
|
will get the binary installed correctly. Sometimes this requires that
|
|
the binary be installed with set-group-id privileges and, in rare
|
|
cases, set-user-id to root.
|
|
|
|
CAVEAT: version 3 of top has internal commands that kill and renice
|
|
processes. Although I have taken steps to insure that top makes
|
|
appropriate checks with these commands, I cannot guarantee that these
|
|
internal commands are totally secure. IF YOU INSTALL top SET-USER-ID
|
|
TO ROOT, YOU DO SO AT YOUR OWN RISK! I realize that some operating
|
|
systems will require top to run setuid root, and I will do everything
|
|
I can to make sure that top is a secure setuid program.
|
|
|
|
System support now takes the form of "modules". Adding support for a
|
|
different architecture requires only adding a module. These modules
|
|
are contained in the subdirectory "machine". The "configure" script
|
|
automatically determines which module is approproate. However, it may
|
|
not be able to determine what the correct module is. This can happen
|
|
either because it doesn't know about the system or there is no module
|
|
to support the system. In the former case, if you know which module
|
|
to use, you can force "configure" to choose a particular module with
|
|
the option "--with-module". For example, if you want to force the use
|
|
of the svr4 module (which appears as "machine/m_svr4.c") then use
|
|
"configure --with-module=svr4" to generate the correct Makefile. See
|
|
the file "Porting" for a description of how to write your own module.
|
|
|
|
To compile and install "top", read the file "INSTALL" and follow the
|
|
directions and advice contained therein.
|
|
|
|
If you make any kind of change to "top" that you feel would be
|
|
beneficial to others who use this program, or if you find and fix a bug,
|
|
please send me the change.
|
|
|
|
Be sure to read the FAQ enclosed with the distrubution. It contains
|
|
answers to the most commonly asked questions about the configuration,
|
|
installation, and operation of top.
|
|
|
|
COLOR
|
|
|
|
Version 3.6 incorporated the idea of using ANSI color sequences to
|
|
enhance information on the screen. By default, no color is used. But
|
|
you can configure the use of color through the environment variable
|
|
TOPCOLORS (or, for compatibility, TOPCOLOURS). The interface is
|
|
identical to the one first implemented by chris@spang.uk.eu.org, but
|
|
the implementation is entirely different. The option -C can be used
|
|
to diable the feature entirely.
|
|
|
|
Any information at the top of the screen can be enhanced with color.
|
|
However, due to implementation difficulties, the per-process area
|
|
cannot be color-enhanced. A complete description of color support can
|
|
be found in the man page. References for ANSI color codes can be
|
|
found all over the Internet, but if you want a handy reference, look
|
|
in color.h.
|
|
|
|
|
|
AVAILABILITY
|
|
|
|
Note that top is now a sourceforge project! Its project name is
|
|
"unixtop" and you can access its project page here:
|
|
|
|
http://sourceforge.net/projects/unixtop
|
|
|
|
On the project page you can find more information and access the
|
|
official bug and feature request trackers. If you find a bug,
|
|
want to request a feature, or need help, please submit a request
|
|
to the appropriate tracker on sourceforge. Thank you.
|
|
|
|
Subversion access is also provided by Sourceforge. If Subversion is
|
|
installed on your system you can check out the project with the
|
|
following command:
|
|
|
|
svn co https://svn.sourceforge.net/svnroot/unixtop unixtop
|
|
|
|
There is also a web site dedicated to the project, and it is here:
|
|
|
|
http://www.unixtop.org
|
|
|
|
The latest version of "top" is available as a download through
|
|
sourceforge. Start here to access the downloadable files:
|
|
|
|
http://sourceforge.net/project/showfiles.php?group_id=72892
|
|
|
|
|
|
KNOWN PROBLEMS:
|
|
|
|
Gnu CC
|
|
|
|
Compiling via Gnu CC continued to be the source of most of the
|
|
questions I receive. By far the most common mistake made by those
|
|
attempting to compile top with Gnu CC is out of date include files.
|
|
When the operating system is upgraded, the include files that are part
|
|
of the gcc package MUST also be updated. Gcc maintains its own
|
|
include files. Even a minor OS upgrade can involve changes to some of
|
|
the kernel's internal data structures, which are defined in include
|
|
files in "sys". Top is very sensitive to these changes. If you are
|
|
compiling with gcc and experience any sort of strange problems, please
|
|
make sure the include files you are using are up to date BEFORE
|
|
sending me a bug report. Look in the gcc source distribution for the
|
|
shell script "fixincludes".
|
|
|
|
MacOS X
|
|
|
|
Since I don't have full time root access to a MacOS X system I cannot
|
|
provide effective support for the platform. MacOS X uses Mach, and it
|
|
is very difficult to extract accurate system and process information
|
|
from the system. It takes a lot of trial and error, along with root
|
|
access. I have included the most up-to-date version of the macosx module
|
|
in the distribution, but I do not claim that it works. If you want to
|
|
try to use it, you can configure with "./configure --with-module=macosx".
|
|
|
|
HP/UX 10.10
|
|
|
|
In their infinite wisdom, the folks at HP have decided that mere mortals
|
|
such as you and I don't need to know what the kernel's proc structure looks
|
|
like. To that end, they have removed all useful content from the include
|
|
file <sys/proc.h> in version 10.10. As a result, top will not compile
|
|
under 10.10. What HP is trying to accomplish with this move is to force
|
|
iconoclasts such as myself to use "pstat" for collecting all process
|
|
information. I have no immediate solution for this problem, but hope to
|
|
obtain a sufficiently complete definition of "struct proc" at some point in
|
|
the near future. Stay tuned.
|
|
|
|
|
|
GRATITUDE
|
|
|
|
My perpetual thanks to all the people who have helped me support top
|
|
on so many platforms. Without these people, top would not be what it
|
|
is. Here is a partial list of contributors and other individuals.
|
|
|
|
Robert Boucher, Marc Cohen, David Cutter, Casper Dik,
|
|
Charles Hedrick, Andrew Herbert, Jeff Janvrin, Torsten Kasch,
|
|
Petri Kutvonen, William L. Jones, Tim Pugh, Steve Scherf,
|
|
Phillip Wu
|
|
|
|
(My apologies if I missed anyone.)
|
|
|
|
|
|
LICENSE
|
|
|
|
Top is distributed free of charge under the same terms as the BSD
|
|
license. For an official statement, please refer to the file "LICENSE"
|
|
which should be included with the source distribution.
|
|
|
|
|
|
AUTHOR
|
|
|
|
If you wish to contact me, please send a message to the sourceforge
|
|
username "wnl".
|
|
|
|
William LeFebvre
|
|
|
|
U.S. Mail address:
|
|
William LeFebvre
|
|
11585 Jones Bridge Road
|
|
Suite 420 PMB 139
|
|
Alpharetta, GA 30202
|