Release notes for LibGTop 1.0.

This commit is contained in:
Martin Baulig
1999-02-16 14:41:58 +00:00
parent 896729108c
commit 1086496f93

View File

@@ -1,13 +1,13 @@
RELEASE NOTES FOR LIBGTOP 0.25 STABLE RELEASE NOTES FOR LIBGTOP 1.0 STABLE
===================================== ====================================
OVERVIEW OVERVIEW
-------- --------
LibGTop is a library that read information about processes and the running LibGTop is a library that read information about processes and the
systems. This information include: running systems. This information include:
General System Information General System Information:
cpu - CPU Usage cpu - CPU Usage
mem - Memory Usage mem - Memory Usage
@@ -21,6 +21,11 @@ shm_limits - Shared Memory Limits
msg_limits - Message Queue Limits msg_limits - Message Queue Limits
sem_limits - Semaphore Set Limits sem_limits - Semaphore Set Limits
Network:
netload - Network load
ppp - PPP statistics
Process List: Process List:
proclist - List of processes proclist - List of processes
@@ -41,6 +46,7 @@ proc_segment - text_rss,shlib_rss,data_rss,stack_rss,dirty_size
Process maps: Process maps:
proc_args - Command line arguments
proc_map - Process map (/proc/<pid>/maps under Linux) proc_map - Process map (/proc/<pid>/maps under Linux)
File system usage: File system usage:
@@ -51,95 +57,106 @@ fsusage - File system usage
PORTABILITY: PORTABILITY:
----------- -----------
LibGtop is designed to be as portable as possible. None of the functions LibGTop is designed to be as portable as possible. None of the
and retrieved information should be specific to a specific operating functions and retrieved information should be specific to a specific
system. So you only need to port the system dependent part of the library operating system. So you only need to port the system dependent part
to a new system and all application programs can then use libgtop on this of the library to a new system and all application programs can then
new system. use libgtop on this new system.
CLIENT/SERVER MODEL: CLIENT/SERVER MODEL:
------------------- -------------------
Some systems like DEC OSF/1 or BSD require special priviledges for the calling Some systems like DEC OSF/1 or BSD require special privileges for the
proces to fetch the required information (SUID root/SGID kmem). To solve this calling process to fetch the required information (SUID root/SGID
problem, I designed a client/server model which makes a call to a SUID/SGID kmem). To solve this problem, I designed a client/server model which
server which fetches the required information whenever it is required. This makes a call to a SUID/SGID server which fetches the required
server is only called for features that really require priviledges, otherwise information whenever it is required. This server is only called for
the sysdeps code is called directory (every user can get the CPU usage on features that really require privileges, otherwise the sysdeps code
DEC OSF/1, but only root can get information about processes other than the 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). current one).
There is also some kind of daemon which can be used to fetch information from There is also some kind of daemon which can be used to fetch
remote systems (still experimental). This daemon normally runs as nobody and information from remote systems (still experimental). This daemon
calls the SUID/SGID itself when needed. normally runs as nobody and calls the SUID/SGID itself when needed.
GNOME APPLETS: LIBGTOP AND GNOME:
-------------- -----------------
There are some applets and applications which already use LibGTop. They can LibGTop is currently used in various places in the GNOME Project,
be found in the `libgtop-apps' module in the GNOME CVS tree: for instance in some of the applets in gnome-core and - of cause -
this ultra-cool application called GTop ...
* Applets: cpuload, cpumemusage - they need LibGTop to get their information Although LibGTop is not specific to GNOME and under LGPL license, I
on all systems other than Linux. spent most my time during the last months to work in the GNOME project
so this is the primary use for LibGTop (and currently the only one).
* Applets: diskusage - just uses the mountlist/fsusage features of LibGTop, However, you can also give its configure.in script the `--without-gnome'
the one in gnome-core also works on other systems. parameter and then use it fully without GNOME in your own applications.
* Applets: multiload - I enhanced the cpuload applet a little bit, it is LIBGTOP AND GNOME - PART II:
now a multi applet and can display CPU, Memory and ---------------------------
Swap usages.
GTOP: LibGTop was tested with FreeBSD 3.0 but it should also work with
---- FreeBSD 2.2.7, NetBSD and OpenBSD.
This cool GNOME app has been ported to use LibGTop. It can be found in Currently my primary aim is to help the GNOME people with our 1.0 release
`libgtop-apps/gtop' in the GNOME CVS tree. so I won't have much time to test it with any other system than Linux.
You can now use nearly the full functionality of GTop on FreeBSD ! However, I consider FreeBSD, NetBSD and OpenBSD as supported systems for
LibGTop and whenever I get bug reports I will do my best to fix them as
quickly as possible.
PLATFORM SPECIFIC NOTES FOR LINUX:
PLATTFORM SPECIFIC NOTES FOR LINUX:
================================== ==================================
Under Linux, LibGTop should work without problems and read everything Under Linux, LibGTop should work without problems and read everything
from /proc. from /proc.
There is also an experimental kernel interface to read this information LibGTop 0.25 also had an experimental kernel interface to read this
directly from the kernel with a system call - but this is still experimental information directly from the kernel with a system call - but I have
and not well tested while I made this release. currently dropped support for this as I am too busy with GNOME
development to keep current with kernel hacking.
PLATTFORM SPECIFIC NOTES FOR FREEBSD: PLATFORM SPECIFIC NOTES FOR SOLARIS:
==================================== ====================================
LibGTop should now work under FreeBSD and give you the full functionality Since so many people were asking me about this:
of GTop.
LibGTop currently does not have any support for Solaris, and it will
never have until some volunteer writes the code for it. I can't do this
myself since I do not have any machine to test it on.
PLATFORM SPECIFIC NOTES FOR BSD:
=================================
There are a few caveats: There are a few caveats:
* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to kmem * You need to manually make the `$(prefix)/bin/libgtop_server' SGID to
after installation and mount the /proc filesystem of FreeBSD kmem after installation and mount the /proc file system of FreeBSD
(/proc/<pid>/mem is used withing kvm_uread ()). (/proc/<pid>/mem is used within kvm_uread ()).
* To get the filenames of the process maps displayed in GTop, you need to * To get the filenames of the process maps displayed in GTop, you need
configure with the `--with-libgtop-inodedb' option (you need GDBM for this to configure with the `--with-libgtop-inodedb' option (you need GDBM
to work). for this to work).
* You have then to create an inode database which is used to look up to You have then to create an inode database which is used to look up
filenames. This is done using the `mkinodedb' program which comes along filenames. This is done using the `mkinodedb' program which comes
with libgtop. along with libgtop.
See the file src/inodedb/README for details: See the file src/inodedb/README for details:
The `mkinodedb' program which is build in this directory takes two The `mkinodedb' program which is build in this directory takes two
command line arguments: the full pathname of the database to be created command line arguments: the full pathname of the database to be
and the name of a configuration file consisting of directory and file names created and the name of a configuration file consisting of directory
each on a line by itself - see `/etc/ld.so.conf' for an example. 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 Putting a directory name in this file means all regular files found
directory are included in the database, but it will not recursively descend in this directory are included in the database, but it will not
into subdirectories (for instance, we want everythink in `/usr/lib' but not recursively descend into subdirectories (for instance, we want
every single file in `/usr/lib/sgml'). You can also use filenames to include everything in `/usr/lib' but not every single file in `/usr/lib/sgml').
a single file. You can also use filenames to include a single file.
Have fun, Have fun,