summaryrefslogtreecommitdiff
path: root/ANNOUNCE-0.25
blob: 8bd07c083433d939581e8a182e965cb58454a208 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
[Posted to the Gnome Mailing List on Fri Aug 21 1998]

About this release:
------------------

LibGTop 0.25 is a stable release.

Of cause it has its bug like any software has, I'm planning
to fix as many bugs as possible in _this_ release and then
re-release it as libgtop-0.26 or even libgtop-0.30.

Especially portings to new operating systems should be made
in this release.

This also means that we can safely use this version of LibGTop
all over the GNOME project.

Currently LibGTop-Apps is still a little bit under development -
especially the LibGTop-Apps GTop does not yet have the full
functionallity of the real GTop.

We should test this extensively and then decide whether to continue
with the `libgtop-apps' module or whether to merge all its code
back into the modules it came from. I'd like to hear some comments
about this from you !

Please look at the release notes below for more details about this
release.

Where to get the sources
------------------------

The sources can be found at:

	ftp://ftp.home-of-linux.org/pub/

Tarballs:

	libgtop-0.25.0.tar.gz
	libgtop-apps-0.25.0.tar.gz

Source RPM:

	libgtop-0.25.0-REL.src.rpm
	libgtop-apps-0.25.0-REL.src.rpm

Binary RPMS:

	libgtop-0.25.0-REL.i386.rpm
	libgtop-devel-0.25.0-REL.i386.rpm
	libgtop-examples-0.25.0-REL.i386.rpm
	libgtop-apps-0.25.0-REL.i386.rpm

There is some little problem with the binary RPMS of `libgtop-apps':

Most of its files will conflict with ones from `gnome-core' and `gnome-utils',
so you'll need to use the `--force' parameter to install it.

Getting the sources from CVS:
----------------------------

You can also fetch the sources from the GNOME CVS tree
(see http://www.gnome.org/ for details).

To get the latest sources:

$ cvs checkout libgtop
$ cvs checkout libgtop-apps

To get the sources of *this* release:

$ cvs checkout -r LIBGTOP_0_25 libgtop
$ cvs checkout -r LIBGTOP_0_25 libgtop-apps

To get the sources of this release with all bug-fixes applied:

$ cvs checkout -r LIBGTOP_0_25_PATCHES libgtop
$ cvs checkout -r LIBGTOP_0_25_PATCHES libgtop-apps

To get a patch to apply to the tarballs to get all bug-fixes:

$ cvs rdiff -r LIBGTOP_0_25 -r LIBGTOP_0_25_PATCHES libgtop
$ cvs rdiff -r LIBGTOP_0_25 -r LIBGTOP_0_25_PATCHES libgtop-apps

[Note for people having write access to the GNOME CVS tree:

 Please apply bug fixes to the `LIBGTOP_0_25_PATCHES' branch and
 merge them into the main trunk.

 After merging, please re-tag the branch `libgtop_0_25_after_merge'.

 This will help us to re-release this package when all bugs are
 fixed.
]

RELEASE NOTES FOR LIBGTOP 0.25 STABLE
=====================================

OVERVIEW
--------

LibGTop is a library that read information about processes and the running
systems. This information include:

General System Information

cpu		- CPU Usage
mem		- Memory Usage
swap		- Swap Usage (including paging activity)
loadavg		- Load average (including nr_running, nr_tasks, last_pid)
uptime		- Uptime and Idle time, can be calculated from CPU usage

SYS V IPC Limits:

shm_limits	- Shared Memory Limits
msg_limits	- Message Queue Limits
sem_limits	- Semaphore Set Limits

Process List:

proclist	- List of processes

Process information:

proc_state	- cmd, state, uid, gid
proc_uid	- uid,euid,gid,egid,pid,ppid,pgrp
		  session,tty,tpgid,priority,nice
proc_mem	- size,vsize,resident,share,rss,rss_rlim
proc_time	- start_time,rtime,utime,stime,cutime,cstime
		  timeout,it_real_value,frequency
proc_signal	- signal,blocked,sigignore,sigcatch
proc_kernel	- k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt
		  kstk_esp,kstk_eip,nwchan,wchan
proc_segment	- text_rss,shlib_rss,data_rss,stack_rss,dirty_size
		  start_code,end_code,start_stack

Process maps:

proc_map	- Process map (/proc/<pid>/maps under Linux)

File system usage:

mountlist	- List of currently mounted filesystems
fsusage		- File system usage

PORTABILITY:
-----------

LibGtop is designed to be as portable as possible. None of the functions
and retrieved information should be specific to a specific operating
system. So you only need to port the system dependent part of the library
to a new system and all application programs can then use libgtop on this
new system.

CLIENT/SERVER MODEL:
-------------------

Some systems like DEC OSF/1 or BSD require special priviledges for the calling
proces to fetch the required information (SUID root/SGID kmem). To solve this
problem, I designed a client/server model which makes a call to a SUID/SGID
server which fetches the required information whenever it is required. This
server is only called for features that really require priviledges, otherwise
the sysdeps code is called directory (every user can get the CPU usage on
DEC OSF/1, but only root can get information about processes other than the
current one).

There is also some kind of daemon which can be used to fetch information from
remote systems (still experimental). This daemon normally runs as nobody and
calls the SUID/SGID itself when needed.

GNOME APPLETS:
--------------

There are some applets and applications which already use LibGTop. They can
be found in the `libgtop-apps' module in the GNOME CVS tree:

* Applets:  cpuload, cpumemusage - they need LibGTop to get their information
                                   on all systems other than Linux.

* Applets:  diskusage - just uses the mountlist/fsusage features of LibGTop,
                        the one in gnome-core also works on other systems.

* Applets:  multiload - I enhanced the cpuload applet a little bit, it is
                        now a multi applet and can display CPU, Memory and
                        Swap usages.

GTOP:
----

This cool GNOME app has been ported to use LibGTop. It can be found in
`libgtop-apps/gtop' in the GNOME CVS tree.

You can now use nearly the full functionality of GTop on FreeBSD !


PLATTFORM SPECIFIC NOTES FOR LINUX:
==================================

Under Linux, LibGTop should work without problems and read everything
from /proc.

There is also an experimental kernel interface to read this information
directly from the kernel with a system call - but this is still experimental
and not well tested while I made this release.

PLATTFORM SPECIFIC NOTES FOR FREEBSD:
====================================

LibGTop should now work under FreeBSD and give you the full functionality
of GTop.

There are a few caveats:

* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to kmem
  after installation and mount the /proc filesystem of FreeBSD
  (/proc/<pid>/mem is used withing kvm_uread ()).

* To get the filenames of the process maps displayed in GTop, you need to
  configure with the `--with-libgtop-inodedb' option (you need GDBM for this
  to work).

* You have then to create an inode database which is used to look up to
  filenames. This is done using the `mkinodedb' program which comes along
  with libgtop.

  See the file src/inodedb/README for details:

  The `mkinodedb' program which is build in this directory takes two
  command line arguments: the full pathname of the database to be created
  and the name of a configuration file consisting of directory and file names
  each on a line by itself - see `/etc/ld.so.conf' for an example.

  Putting a directory name in this file means all regular files found in this
  directory are included in the database, but it will not recursively descend
  into subdirectories (for instance, we want everythink in `/usr/lib' but not
  every single file in `/usr/lib/sgml'). You can also use filenames to include
  a single file.

Have fun,

Martin <martin@home-of-linux.org>