Release notes for LibGTop 1.0.
This commit is contained in:
139
RELNOTES-1.0
139
RELNOTES-1.0
@@ -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,
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user