                 >> README-2.4 <<

Hiya,
	Yamm 2.4 is now avaible.
	If no bugs are discovered this is the last one ( using curses :-) ).

	o - Add the ability to move through processes with reverse-bar.
		using vi-style.
	o - If you are root you can kill processes, kill users, renice processes.
	o - Examine utmp.
	o - Mini browser for help.
	o - others ?

	If you have problems, bugs, comments, ideas, let me know.

	Andrea.

PS: 
	Before you install this, look at files renice.c and wutmp.c.
	In renice.c you must define RENICE_DEBUG before using renice.
	This is ensures that renice works correctly.
	In wutmp.c look around line 15 for security problems. 


E-Mail: marangon@ghost.dsi.unimi.it


                 >> README-2.4a <<

Heyla',

this is my porting of yamm 2.4 to Linux OS
This version of yamm will be called 2.4a because it is an ALPHA version
with a restricted distribution due to the debugging and enhancements i've
planned to do before release it.

This port of yamm have some limitations.

- It works only if you have compiled the /proc filesystem in the kernel image.

- when SUID != UID, it don't print the '*'. Just note
that SUID is not really a SUID, but an UID: i have to find out
how to get the suid without touch the kernel/fs/proc/array.c (hmmm my compatibi-
lity mania! :)
I have commented out the SUID sections until i will be able to get the suid
from a process.

- I would like to have a way to use nlist to get the proc-table, but i need to
study a bit more the problem. Hmm compressed kernels are really nice!

- RATIO in virtual memory option are equal to SUM values, because i don't
know what RATIO means (RATIO againts what ?)

- %WCPU is an absolute ratio, not an istantaneous one, because of obscure (for
now) problems with (yum) yamm's process structure [ s ] refresh

For more informations read the heading of pstat.c.linux.

If you have problems, comments, ideas, or find bugs or bad things etc etc,
let me know. I'm sure my code is not bug free (Murphy teach). The only
resposible person for the bugs you find in yamm 2.4a is ME.
So don't bother Andrea if you find bugs in this code.

PS: Note that this is an ALPHA version of the port. Bugs and suggestions are
    really welcome!

	- Riccardo -
--
Riccardo Facchetti | Internet: riccardo@cdc8g5.cdc.polimi.it
Information *wants* to be free.  (B. Sterling)


                 >> README-2.4b <<

This is the beta version of the port of yamm 2.4 to Linux OS.

This version is near to be bug free, but i think i must e careful.
The next version will be the final one and will be called 2.5

I've added few new features for Linux:

 o - renice process groups and users
 o - added Linux specific info reports
 o - kill tasks now can be done specifying the signal to send, by
     number or by name (e.g. 9 is equivalent to 'SIGKILL' or 'KILL')
 o - written a man page
 o - more ? bah, some minor things i cannot remember now

Enjoy it! and remember, bugs are hiding just behind the corner, so if you find
it please, let me know!

- Riccardo -

E-mail: riccardo@cdc8g5.cdc.polimi.it


                 >> README-2.5alpha <<

Okay, this is the release of yamm 2.5alpha1

New Features:

o - corrected a bug in curses echoing (hpux)
o - hpux SIGWINCH trap is made directly by curses (hpux)


                 >> README-2.5.0.beta <<

There are no major changes from 2.5alpha, only some bug fixes and some little
enhancements.
Read the ChangeLog to see what things was touched.

o - Found and corrected a bug in memory reporting. (linux)
o - Started the code to use ncurses package, instead of the curses one
o - When using ncurses, you can choose the back/foreground colors, defining
    them at compile time (see the Makefile) and changing them at run time.
o - From now the information section of this project is complete (linux)
o - Now you can choose from curses or ncurses packages when compiling for
    text windowing

This version took a long time before its release I hope this means that bugs
are being killed and new ones are too hidden to be found :))

The next release will be the working release (final) and will be called
yamm-2.5.1

Ciao,
	- riccardo -


                 >> README-2.5.1 <<

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.

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


                 >> README-2.5.2 <<

Here a new release of yamm.

Thanks to all the ppl that have helped me in hunting bugs and making
yamm better.

Read the NOTES at the end of this file carefully.

WHERE TO FIND YAMM:

anonymous/ftp site at

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

FEATURES:

This release include:

o - binaries compiled by me, in bin/ directory
o - Updated man page
o - WCHAN function name displayed if you update /etc/zSystem.map every time
    a new kernel is compiled and installed (linux)
o - Also modular version is now supportin WCHAN (linux)
o - added the W status for tasks with no rss a la ps and top (linux)
o - now task names and enclosed in brackets only if swapped out, a la top (linux)
o - tested with ncurses 1.8.5: it works fine
o - updated man page
o - keypad functions (arrows/pgup/pgdown/home/end/del). See online help ('?')
    and you will find which function is activated by which key
o - Configure: this is a script for configuring yamm compilation. Try it out.
    (I hope you find some bugs, hehehehe ... uaaaarggg!! :)
o - module version (drv_yamm.o) is supporting the wchan with kernel 1.1.49 and
    above (linux)
o - SIGWINCH now works (if someone would like to rewrite that code please,
    do not be shy, take a look at do_resize() :))))
o - Cleaned up some other bugs in code.
o - The program can now be compiled with not only gcc compiler, but they must
    support the stringify preprocessor function or the signalling code will
    be limited only to signumbers and not signames.

NOTES:

- In the bin/ directory you will find the binaries:
  yamm compiled with curses, using /proc filesystem (linux)
  yamm compiled with curses, using drv_yamm.o, with drv_yamm.o (linux)
  yamm compiled with ncurses 1.8.5, using /proc filesystem (linux)
  yamm compiled with ncurses 1.8.5, using drv_yamm.o, with drv_yamm.o (linux)
  yamm compiled with curses, HP-UX 9.00, gcc (HPUX)

  All the linux binaries are compiled with:
  kernel version 1.1.49
  gcc version 2.5.8
  shlibs version 4.5.26

- The directory tree is changed. Do you like it ?

- keypad works only on systems that support the KEY_ I have used for its
  implementation. The KEY_ #define'itions are in (n)curses header file

- WCHAN needs the zSystem.map in /etc directory, so to make use of this feature
  you have compile the kernel, and copy the /usr/src/linux/zSystem.map in /etc

- Configure is still experimental, but try it just to see if works. If you find
  bugs in Configure and/or you want to config. the compilation by hand, you can
  copy the Makefile.std to Makefile and edit it. Anyway with Configure i've
  tryed to resolve the problems with system-specific variables such as OS,
  ncurses installation, etc etc

- This version of yamm is tested with:

Compiler:
Reading specs from /usr/lib/gcc-lib/i486-linux/2.5.8/specs
gcc version 2.5.8

Linux version:
Linux azuth 1.1.49 #2 Tue Aug 30 19:58:41 MET DST 1994 i486

Shared libraries:
libc.so.4.5.26

  The module version will run only with the kernels v 1.1.49 and newest,
  the /proc filesystem version will run with older kernels too (at least i hope)


                 >> README-2.5.3 <<

This is the release of yamm-2.5.3,

This release include some changes and a lot of bug hunting.
Read the Notes at the end of this file carefully.

- Where to find yamm:
Read the lsm entry. I have at last written it.

- News from previous version:
o Better memory allocation so less %cpu eaten
o Configuration for compilation is now done only with src/Configure
o Can compile kernels 1.1.76 and newer
o Tested with ncurses-1.8.6
o %WCPU should no more be major of 100% (little bug corrected)
o utmp code checked
o Uses ncurses to resize the window when SIGWINCH is received. No more
  awful resizing.
  There is a problem with memory allocation in ncurses package.
  I have fixed it but the fix is highly dependent of ncurses-1.8.6.
  You will be able to compile yamm and use the resizing code, only if you have
  the ncurses-1.8.6. I hope this will be fixed in the next release of yamm.
  Anyway you can use the executables you find in bin/ directory.
  To compile the package with ncurses different from 1.8.6, please
  #undef NCURSES_186 in src/curses.c
o wchan code tryes to have an updated zSystem.map (System.map if > 1.1.75)
o Bug fixes here and there.

- Notes:

- To build the hp-ux executable, you should use the GNU make utility instead
  of HP make. I'm sorry for this, but there are some GNU-make dependent
  directives in Makefile(s) that will be revised and corrected with the next
  version of yamm. Anyway you can find a precompiled executable in bin/
- Recompile the package with ncurses only if your ncurses version is 1.8.6
- If you change the kernel version, and you use drv_yamm.o, you have to
  recompile it. To do that you can ./Configure and then 'make drv_yamm.o'
- Use the src/Configure script to configure the package. Makefile.std is gone.
- If you have a linux kernel v1.1.75 or previous, edit the src/Makefile
  after Configure, and add the -DLINUX_1_1_75 to the DEFINES= line.
- There is an src/X directory. It does mean nothing. It is garbage.
- There should be a bug in gcc that shows up with the new improved inline
  kernel code (1.1.76), that don't let compile with the -g flag only. If you
  want debug the program, be sure to use the "-g -O" flags.
- In bin/ you can find some pre-compiled binaries of this version of yamm.
  read the bin/README.BIN to have some infos about the compilation.
- Remember: to compile yamm (and every other program of course) you need
  kernel headers in the right place. So you must have kernel sources, and
  you have at least to 'make config' the kernel, to make it generate the
  right symlinks for the linux/include/asm directory.


                 >> README-2.5.3c <<

This is the release of yamm version 2.5.3c

Where to find patches:

You can find all the patches (2.5.3a, 2.5.3b and 2.5.3c) at
sunsite.unc.edu
or at
ftp.unipv.it

New features:

o Various bug fixes
o Better use of memory
o Automagic compatibility with new dinamic module kernel strategy,
  CONFIG_MODVERSIONS (linux)
 

Note:

- Tested the resizing code with ncurses-1.8.7: seems to work.
- Kernel 1.1.85 seems to have some bugs in memory statistics. Both yamm
  and top (but ps too) report invalid values for memory used by tasks.
  Seems to me that this behaviour may be ascribed to some bug in tasks
  memory reporting.


                 >> README-2.5.3d <<

Hello,
this is the release of yamm-2.5.3d

New features:
o More memory savings
o Bug fixes and cleanups here and there
o drv_yamm: better ioctl management (linux)
o More informations in per-process informations (linux)
o Now yamm can show the complete command line when the process
  is now swapped out (linux)

Notes:
- yamm-2.5.4 will be released with linux-1.2.x


                 >> README-2.5.3e <<

This release of yamm is mainly for bug fixes and some other little things.

Read the ChangeLog.


                 >> README-2.5.4 <<

Hello,

this is the release of yamm-2.5.4

The changes in this release are:

o Revised and updated man page.
o NEW! Bar chart graphic rapresentation of system load average.
  'L' || -L option. Present only in (n)curses version.
o No more crazy regex memory allocation in /proc version of yamm (linux)
o Resolved the problem of line wrapping when the CMD is too long.
o Added a new char in the status field, that notice you when a process
  run at a non ZERO nice.
o Added a top-level Makefile (after so long time I have decided to write it
  down :)
o src/Configure let you choose f/b colors when using ncurses package.
o 'I' || -I option debugged and popped up.
o bug fixes all around.
o code cleanups all around.

Notes:
- I have compiled yamm with ELF compiler and it is okay. You need of course
  an ELF ncurses library if you want to use ncurses :)
  To compile yamm with ELF compiler you should edit the src/Makefile and
  substitute the CC=gcc line with CC=gcc-elf
- Read the README of previous releases.
- There's still a regex bug that eats some memory whenever one make some kind
  of search ('/' command), but I'm confident I will track it down :)
- The ncurses-1.8.6 hack works with ncurses-1.8.7 too.

Bugs:
yamm-2.5.4 is ready for release, but I have a problem:
my HPUX system (v.9.04) seems to broke yamm. I think there was some
kind of stupid action when my sysadmins ugraded system the last time.
Something like <sys/pstat.h> older or newer than the kernel.
I don't know why, but the pst_status structure seems to be broken. I know
this is impossible, but yamm don't work under HP-UX. I have compiled
versions of yamm known to work under older HP-UX and seems they are broken too.
I need someone that compile yamm under HP-UX and report to me failures and
successes (e-mail me. Please include HP-UX version and yamm version).
I have not too much time to find out this bug, but I think it should be a
mis-installation of my system. If not you will find the same bug. I'm sorry,
I will correct this one in the next release of yamm.


