Subject: yamm 2.5.1: Yet Another Micro Monitor
From: Riccardo Facchetti - Allanon - <[email-masked]>
Date: 30 Jul 1994 02:07:03 +0300
Newsgroups: comp.os.linux.announce

[ Moderator's note: yamm is a process/memory/system monitor
  similar-to-but-hopefully-better-than top.  -liw ]

Hello ppl,
here the announcement for the new 2.5.1 version of yamm. This is still a beta
because it correct some major problems you have found in compilation with
system header files, and some other minor and major things.
You can find it ftp/anon on:

hplda1.unipv.it:/pub/linux/Local-Soft

Here the README-2.5.1. Read it carefully!

Ciao a tutti,
	Riccardo.
--
This seems to be the final, (un)stable, release (lie lie lie lie lie lie)

COMMENT:

It is not the final, it is only a transition release. Too many ppl told me
that the new kernels don't allow a clean compilation of yamm. ncurses on
the other hand seems to be installed randomly one time in /usr/include/
another in /usr/include/ncurses/ another one in /usr/include/ncurses/ncurses/
so i've made a script that search for the ncurses.h header file. It is
the FindNcurses.
About its stability, i hope it is stable enough.
Obviously i need your help. If you find bugs, or have suggestions, please
tell me.
This release was not planned so soon so i have had not the time to include all
the nice features suggested by all you ppl. Anyway thank you for your comments,
they are everytime welcome.
For the same reason, it compile under HPUX only with gcc and not with HP's cc
because it don't recognize the stringify directive

NOW SOME POINTS:

martien: now yamm eats a mean of 5% of cpu ... near the 'top' :) The better
         will be if you use the module because there is no open/read/close
         overhead, but one single ioctl(), sorry but i have no idea about
         reduce it more. There is still too much open/read/close overhead for
         gathering other infos from /proc
         The CMD column: i have had no time to correct the problem of
         parenthesis

David:   now all the compilation problems should not happen anymore.
         If i'm wrong ... he he, tell me the punishment you would like to
         apply :)

Ulli:    for the compilation problems see above the David comment.
         For the ncurses.h correct inclusion, i have built a script that
         search for it and if it find zero it *bang* (no ncurses installation)
         if it find one include it and compile, if it find more than one
         ncurses.h it *bang* and you should check your ncurses installation.
         The %MEM column, please be patient :)

dl:      the screwing of values with new kernels should not happen if you use
         the module drv_yamm.o because it get the task infos directly from
         kernel and not from /proc filesystem
         %cpu: see martien comment
         IP not filled in 'e' output. Still not filled: next wednesday i will
         go away for a week of holidays. Please be patient :)

MODULES:

Modules are piece of kernel code that can be loaded run-time to drive
devices and insert new filesystems. I have used the module feature in the first
way. If you want to use the modular version of yamm you need the /dev/yamm
device, creating it with the commands:

mknod /dev/yamm c 29 0
chmod 444 /dev/yamm

The major number of this device is 29, high enough, i hope, to be safe from
conflicts with other devices. Anyway this (and the following) version of yamm
retain the old code that use the /proc filesystem to get the infos about tasks.
The only work of this module (its name is drv_yamm.o) is to return the
processes informations.
To load the module, you need to:

insmod drv_yamm.o

at boot time (/etc/rc/rc.local) or when you use yamm.
To do this you need the modutils.tar.gz package.

NOTE:

/proc filesystem is still required!

About memory and cpu usage, here is an hint:
try different configurations with curses/ncurses/modules to find out the
better from memory usage and %cpu
Anyway:
modules require more memory while less %cpu
curses require less %cpu that ncurses

NEW FEATURES:

o - SUID asterisk is now active if you use the module
o - Cleaned up the code to compile better (bah! take this for what it is,
    a hope :)
o - Added modules support for better simulation of pstat system call (linux)
    This have the side effect of reducing %cpu usage. Now it is near the
    top's usage. Another side effect is the increased memory usage; anyway
    the RSS of the program is near the same in the two versions. (linux)
o - Make use of existing sys_sysinfo for better performance and %CPU time
    usage (a syscall is better than an open/read/close) (linux)
o - Set the refresh time default to 4 seconds: less %cpu consumed (now it is
    at the same %cpu of top)

COPYRIGHT:

To add the modules, i have used little pieces of kernel that are
(C) Linus Torvalds: include/linux/strings.h in drv_yamm.c
(C) Linus Torvalds: fs/proc/array.c in drv_yamm.c

All the changes from yamm 2.4 to this version of yamm and the next i will
release are
(C) Riccardo Facchetti

The version 2.4 was released to the public domain by and are
(C) Andrea Marangoni

--
Send submissions for comp.os.linux.announce to: [email-masked]
PLEASE remember Keywords: and a short description of the software.