INSTALL revision 89750
133965Sjdp TOP 233965Sjdp Version 3.5 333965Sjdp 433965Sjdp William LeFebvre 533965Sjdp and a cast of many 633965Sjdp 760484SobrienINSTALLATION 833965Sjdp 933965SjdpConfiguration and installation of top is very straightforward. After 1033965Sjdpunpacking the sources, run the script "Configure". It will present you 1133965Sjdpwith a series of questions, all of which should be explained in the 1233965Sjdppresentation. After you have answered all the questions, "Configure" will 1333965Sjdpperform all the necessary configuration. Once this is finished, type 1433965Sjdp"make install". Make will compile the sources then install the resulting 1533965Sjdpexecutable and manual page in the appropriate places. 1633965Sjdp 1733965SjdpThe most difficult step in the configuration is the choice of an 1833965Sjdpappropriate machine-specific module. The Configure script gives you a 1933965Sjdplist of choices complete with brief descriptions of when each choice is 2033965Sjdpappropriate. Each module is contained in a separate c file in the 2133965Sjdpdirectory "machine". The module contains all of the machine-specific code 2233965Sjdpthat makes top work correctly on the architecture in question. All of the 2333965Sjdpcode in the top-level directory is machine-independent (or at least 2433965Sjdpstrives to be). Hints for some module choices that are not obvious are 2533965Sjdpgiven at the end of this file. 2633965Sjdp 2733965SjdpThe first comment in each c file in that directory contains the synopsis 2833965SjdpAND a detailed description of the machines for which that module is 2933965Sjdpappropriate. It also contains a list of authors for that module. If you 3033965Sjdpare really stumped in this choice, use grep to find your machine 3133965Sjdpmanufacturer's name or operating system name in machine/*.c. If you still 3233965Sjdpcan't find one that is appropriate, then chances are very good that one 3333965Sjdphasn't been written yet. If that is the case, then you are out of luck. 3433965Sjdp 3533965SjdpHANDLING MULTIPLE ARCHITECTURES 3633965Sjdp 3733965SjdpIf you need to recompile top for a different architecture (that is, using 3833965Sjdpa different module) you need to reconfigure top. A short cut is available 3933965Sjdpto make this a little easier. If all of your previous answers to the 4033965Sjdpconfiguration questions (except for the module name of course) are 4133965Sjdpadequate for the new architecture, then you can just use the command 4233965Sjdp"Configure <modulename>". The configuration script will reconfigure top 4333965Sjdpusing the new module and all the answers you gave last time. It will 4433965Sjdpfinish with a "make clean". Once that completes, type "make install" 4533965Sjdpand make will compile the sources and do the installation. 4633965Sjdp 4733965SjdpHANDLING MULTIPLE OS VERSIONS 4833965Sjdp 4933965SjdpBy far the most frequently received bug report for top is something like 5033965Sjdpthis: "We just upgraded our operating system to version 99.9.9.9 and top 5133965Sjdpbroke. What should we do?" The simple answer is "recompile". 5233965Sjdp 5333965SjdpTop is very sensitive to changes in internal kernel data structures 5433965Sjdp(especially the proc and user structures). Some operating systems 5533965Sjdp(especially SunOS) are notorious for changing these structure in every 5660484Sobrienminor release of the OS. This means that a top executable made under one 5733965Sjdpversion of the OS will not always work correctly (if even at all) under 5833965Sjdpanother version. This is just one of those tough facts of life. There is 5933965Sjdpreally no way around it. 6033965Sjdp 6133965SjdpTo make life even worse, some operating systems (SunOS again) will use 6233965Sjdpslightly different proc and user structures on different models. For 6333965Sjdpexample, "top" built on a SparcStation 2 will not run correctly on a 6433965SjdpSparcStation 10, even if they are both running SunOS 4.1.3. These 6533965Sjdpunfortunate circumstances make maintaining top very difficult, especially 6633965Sjdpin an environment that runs several different versions of the same 6733965Sjdpoperating system. 6833965Sjdp 6933965SjdpBut there is hope. If your operating system has a properly functioning 7033965Sjdp"uname" command then you can handle this problem rather gracefully. 7133965SjdpIncluded in the distribution is a shell file called "metatop". All this 7233965Sjdpshell file does is: 7333965Sjdp 7433965Sjdp exec top-`uname -m`-`uname -r` "$@" 7533965Sjdp 7633965SjdpSo when you run this script, it execs a filename that is unique to your 7733965Sjdpspecific machine architecture and your OS revision number. 7833965Sjdp 7933965SjdpTo use "metatop", do the following: 8033965Sjdp 8133965Sjdp . on any machine, run Configure and choose the module that is 8233965Sjdp appropriate for the machine 8333965Sjdp . for all machines which use the same module: 8433965Sjdp . group machines according to machine architecture AND OS 8533965Sjdp revision number (i.e.: sun4-4.1.1, sun4c-4.1.1, sun4c-4.1.2, 8633965Sjdp sun4-4.1.3, sun4c-4.1.3, sun4m-4.1.3, ...) 8733965Sjdp . for each group, choose one machine from that group and on it 8833965Sjdp run "make clean; make installmeta". 8933965Sjdp 9033965Sjdp 9133965SjdpThe "installmeta" rule in the makefile will insure that top is compiled, 9233965Sjdpinstall the shell file "metatop" as "top", then install the executable 9333965Sjdp"top" with a name appropriate to the machine architecture and OS revision. 9433965Sjdp 9533965Sjdp 9633965SjdpHINTS FOR CHOOSING THE CORRECT MODULE: 9733965Sjdp 9833965SjdpSOLARIS 2.x 9933965Sjdp 10033965SjdpAll versions of Solaris will now work with the module sunos5. Version 10133965Sjdpspecific modules (such as sunos54) no longer exist. 10233965Sjdp 10333965Sjdp 10433965SjdpSUNOS 4.x AND MULTIPROCESSOR ARCHITECTURES 10533965Sjdp 10633965SjdpFirst, we need to be speaking the same language: 10733965Sjdp 10833965Sjdpsun4 a regular sparc sun 4 architecture machine (sparc station 1, 10933965Sjdp sparc station 2, IPC, SLC, etc.) 11033965Sjdp 11133965Sjdpsun4m a multiprocessor sparc (Sparc 10, 4/670, 4/690) 11233965Sjdp 11333965SjdpI intended to write the sunos4 module so that an executable compiled on a 11433965Sjdpsun4m machine would work correctly on a sun4 machine. Unfortunately my 11533965Sjdpexperiments indicate that this cannot be done. It turns out that the user 11633965Sjdpstructure is so different between these two architectures that nothing 11733965Sjdpshort of a serious hack will make the same executable work correctly on 11833965Sjdpboth machines. I recommend that you use the separate module "sunos4mp" 11933965Sjdpwhen making an executable for a sun4m architecture, and use "sunos4" when 12033965Sjdpmaking an executable for sun4 or sun4c architectures. 12133965Sjdp 12233965SjdpDIGITAL UNIX V4.0 12333965Sjdp 12433965SjdpThis is the successor to DECOSF/1. Use the module decosf1. 12533965Sjdp 12633965SjdpSOLBOURNE OPERATING SYSTEM (OS/MP) 12733965Sjdp 12833965SjdpIf you are running OS/MP version 4.1A, then use the module "osmp4.1a". 12933965Sjdp 13033965SjdpIf you are running a version of OS/MP OLDER than 4.1A (that is, one 13133965Sjdpof its predecessors), use the module "sunos4". 13233965Sjdp 13333965SjdpIf you are running OS/MP 4.1B or LATER, use the module "sunos4mp". 13433965Sjdp 13533965SjdpHP/UX OPERATING SYSTEM 13633965Sjdp 13733965SjdpThe module hpux8 works on all version 8 systems. Some say that it works 13833965Sjdpwith version 9 as well, but one user did send me a separate module for 13933965Sjdpversion 9. This module has only been tested on series 800 machines. I 14033965Sjdpwould recommend the following for those running version 9: try hpux9 and 14133965Sjdpif it doesn't work then try hpux8. If neither work, then send mail to me 14233965Sjdpand/or the modules' authors. Another note: we have a model 730 supposedly 14360484Sobrienrunning version 9.01. The module hpux9 did not compile successfully, but 14433965Sjdpthe module hpux8 worked fine. The module hpux10 works on all revisions of 14533965SjdpHP/UX 10 except 10.10, where HP removed the definition of the proc structure 14633965Sjdpfrom the system include files. 14733965Sjdp 14833965SjdpNET/2 386BSD SYSTEMS 14933965Sjdp 15060484SobrienIf your version of the operating system has patchkit 2.4 installed, 15133965Sjdpthen you will need to modify machine/m_386bsd.c and uncomment the 15260484Sobriendefinition of PATCHED_KVM. This patchkit makes what more than a few 15360484Sobrienpeople believe to be a wholly unnecessary patch to the way the kvm 15460484Sobrienroutines work. 15560484Sobrien 15660484SobrienA/UX SYSTEMS 15760484Sobrien 15860484SobrienThere is a module for A/UX 3.0 and 3.1. Whether or not it works for 15960484Sobrienany other version is not known. Proceed at your own risk. 16060484Sobrien 16160484SobrienAlthough AUX does not generally have a renice systemcall, it can be 16233965Sjdpimplemented by tweeking kernel memory. The flag IMPLEMENT_SETPRIORITY 16333965Sjdpcontrols the inclusion of this code. It is off be default. While 16433965Sjdpsuch a simple hack should not be difficult to get right, USE THIS 16533965SjdpFEATURE AT YOUR OWN RISK! 16633965Sjdp 16733965Sjdp