source: trunk/third/libgtop/RELNOTES-1.0.x @ 18272

Revision 18272, 5.9 KB checked in by ghudson, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18271, which included commits to RCS files with non-trunk default branches.
Line 
1RELEASE NOTES FOR LIBGTOP 1.0.7
2===============================
3
4OVERVIEW
5--------
6
7LibGTop is a library that read information about processes and the
8running systems. This information include:
9
10General System Information:
11
12cpu             - CPU Usage
13mem             - Memory Usage
14swap            - Swap Usage (including paging activity)
15loadavg         - Load average (including nr_running, nr_tasks, last_pid)
16uptime          - Uptime and Idle time, can be calculated from CPU usage
17
18SYS V IPC Limits:
19
20shm_limits      - Shared Memory Limits
21msg_limits      - Message Queue Limits
22sem_limits      - Semaphore Set Limits
23
24Network:
25
26netload         - Network load
27ppp             - PPP statistics
28
29Process List:
30
31proclist        - List of processes
32
33Process information:
34
35proc_state      - cmd, state, uid, gid
36proc_uid        - uid,euid,gid,egid,pid,ppid,pgrp
37                  session,tty,tpgid,priority,nice
38proc_mem        - size,vsize,resident,share,rss,rss_rlim
39proc_time       - start_time,rtime,utime,stime,cutime,cstime
40                  timeout,it_real_value,frequency
41proc_signal     - signal,blocked,sigignore,sigcatch
42proc_kernel     - k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt
43                  kstk_esp,kstk_eip,nwchan,wchan
44proc_segment    - text_rss,shlib_rss,data_rss,stack_rss,dirty_size
45                  start_code,end_code,start_stack
46
47Process maps:
48
49proc_args       - Command line arguments
50proc_map        - Process map (/proc/<pid>/maps under Linux)
51
52File system usage:
53
54mountlist       - List of currently mounted filesystems
55fsusage         - File system usage
56
57PORTABILITY:
58-----------
59
60LibGTop is designed to be as portable as possible. None of the
61functions and retrieved information should be specific to a specific
62operating system. So you only need to port the system dependent part
63of the library to a new system and all application programs can then
64use libgtop on this new system.
65
66CLIENT/SERVER MODEL:
67-------------------
68
69Some systems like DEC OSF/1 or BSD require special privileges for the
70calling process to fetch the required information (SUID root/SGID
71kmem). To solve this problem, I designed a client/server model which
72makes a call to a SUID/SGID server which fetches the required
73information whenever it is required. This server is only called for
74features that really require privileges, otherwise the sysdeps code
75is called directory (every user can get the CPU usage on DEC OSF/1,
76but only root can get information about processes other than the
77current one).
78
79There is also some kind of daemon which can be used to fetch
80information from remote systems (still experimental). This daemon
81normally runs as nobody and calls the SUID/SGID itself when needed.
82
83LIBGTOP AND GNOME:
84-----------------
85
86Although LibGTop is part of the GNOME desktop environment, its main
87interface is totally independent from any particular desktop environment,
88so you can also use it as a standalone library in any piece of GPLed
89software which makes it also a valuable part of the GNU project.
90
91LibGTop is currently used in various places in the GNOME Project,
92for instance in some of the applets in gnome-core and - of cause -
93this ultra-cool application called GTop ...
94
95However, you need to give the configure.in script the `--without-gnome'
96parameter when you want to use LibGTop without GNOME (this is because,
97if you want to use it with GNOME, you need to compile it after the main
98GNOME libraries and I wanted to avoid getting unnecessary bug reports
99about this).
100
101LIBGTOP AND GNOME - PART II:
102---------------------------
103
104LibGTop was tested with FreeBSD 3.0 but it should also work with
105FreeBSD 2.2.7, NetBSD and OpenBSD.
106
107Unfortunately, I don't have the power and disk space to install all
108possible operating systems out there on my machine and test things myself,
109so I depend on people telling me whether it works and sending me bug
110reports and patches if not.
111
112However, I consider FreeBSD, NetBSD and OpenBSD as supported systems for
113LibGTop and whenever I get bug reports I will do my best to fix them as
114quickly as possible.
115
116PLATFORM SPECIFIC NOTES FOR LINUX:
117==================================
118
119[I am speaking of the Linux kernel here.]
120
121Under Linux, LibGTop should work without problems and read everything
122from /proc.
123
124LibGTop 0.25 also had an experimental kernel interface to read this
125information directly from the kernel with a system call - but I have
126currently dropped support for this as I am too busy with GNOME
127development to keep current with kernel hacking.
128
129PLATFORM SPECIFIC NOTES FOR SOLARIS:
130====================================
131
132The development branch of LibGTop (the 1.1.x series) has a first version
133of the Solaris port which works at least on Solaris 7.
134
135If you are on a Solaris system and want to give it a try, just fetch the
136latest 1.1.x tarball from ftp://ftp.home-of-linux.org/pub/libgtop/1.1/
137and try it out.
138
139PLATFORM SPECIFIC NOTES FOR BSD:
140=================================
141
142There are a few caveats:
143
144* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to
145  kmem after installation and mount the /proc file system of FreeBSD
146  (/proc/<pid>/mem is used within kvm_uread ()).
147
148* To get the filenames of the process maps displayed in GTop, you need
149  to configure with the `--with-libgtop-inodedb' option (you need GDBM
150  for this to work).
151
152  You have then to create an inode database which is used to look up
153  filenames. This is done using the `mkinodedb' program which comes
154  along with libgtop.
155
156  See the file src/inodedb/README for details:
157
158  The `mkinodedb' program which is build in this directory takes two
159  command line arguments: the full pathname of the database to be
160  created and the name of a configuration file consisting of directory
161  and file names each on a line by itself - see `/etc/ld.so.conf' for
162  an example.
163
164  Putting a directory name in this file means all regular files found
165  in this directory are included in the database, but it will not
166  recursively descend into subdirectories (for instance, we want
167  everything in `/usr/lib' but not every single file in `/usr/lib/sgml').
168  You can also use filenames to include a single file.
169
170Have fun,
171
172Martin <martin@home-of-linux.org>
Note: See TracBrowser for help on using the repository browser.