Informer

Version 1.1
November 1993

This is the first release of Informer for NEXTSTEP 3.1. As such, it has not been thoroughly tested. This distribution is available in source form and in binary form for Motorola only (I don't have NEXTSTEP for Intel, and this program is system-dependant enough that a number of modules will probably break on Intel).

To use Informer, you pretty much have to be logged in as root. Informer accesses a lot of data that is not readable by regular users. If you are not root, a number of modules will simply not work, in particular the processor set/task hierarchy.

What is Informer ?

Informer is a system browser. It is designed to explore your NeXT computer easily. It is a read-only tool : you can not change anything using Informer. This means it should not breaking anything (there is at least one minor exception, though, so read on).
Basically, I wanted to write a tool that would allow me to see the guts of the machine. In the current version, it allows you to inspect the following aspects of your machine :

	· System info
		- general info
		- kernel info
		- virtual memory stats
		- virtual memory graphs
		- shutdown log
		- kernel I/O statistics (like in iostat)
		- boot services
		
	· Users
		- login info
		- login stats
		
	· Groups
		- general info
		
	· Network stats
		- IP
		- TCP
		- ICMP
		- UDP
		- routing
		- memory
		
	· Network interfaces
		- general info
		- addresses
	
	· Processor sets
		- general info
		- activity graphs

	· Processors : type and state
	
	· Tasks
		- general info
		- memory graphs
	
	· Threads 
		- general info
		- activity graphs
		
	· VM regions
		- general info
		- contents in hex or ASCII
	
	· Disks :
		- mount information
		- label
		- geometry.
	
	· Window server
		- general info
		- error messages
		- font cache
		- usage graphs
	
	· Screens : general info
	
	· Windows : general info
	
	· Postscript contexts
		- general info
		- windows
	
	· Postscript dictionaries : contents

	· Processes
		- usage
		- children usage
		- signal handling
		- resource limits
	
	· Kernel loader servers
		- general info
		- ports

Each of these is done by a different module.

I can't give a complete description of each module, but I find the following modules particularly useful and/or fun :

   - the PostScript dictionary browser allows you to navigate in the hierarchy of PostScript dictionaries and examin the values of all variables.
	
   - the shutdown log shows you how long your machine has been on and off.
	
   - the VM region browser allows you to see the contents of the memory of any task.
	
   - the network stats show you all stats for all TCP/IP protocols, and they are easier to read than the output from netstat(1).

There are 45 modules. Just explore them. I believe one of the best features of Informer is how easy it is to use. Most modules have on-line help.

Who can use Informer ?

Anyone (who has root access) can use it, but not everyone will benefit the same way from it. It will be most useful to technically-oriented people, such as programmers and system administrators.

Installation

Informer is kind of big : 1.7 megabyte. Unfortunately, there is no way around it. The program can not be stripped because it uses dynamic linking rather extensively. Ditto for the modules.
You can just copy Informer.app into any place you want, and you should be in business.

Caveats

There is at least one dangerous problem in Informer. If you use the memory region inspector to view the memory of the window server, you may freeze it. Just don't do it. If you have to try it, you can kill the window server from another terminal.

What's the future of Informer ?

The big difference between the time when I wrote Informer and now is that now I have a job, and I don't have much free time. I would like to improve Informer, add new modules, fix a lot of things, but let's be frank : I probably won't have the time. You are welcome to take the source and improve it, as long as you make your changes publicly available. The base classes are actually documented, and the modules are simple enough that it is very easy to add your own.

A word about portability

Informer is moderately portable. Porting it from NextStep 2.1 to 3.1 took me about two days. The biggest problem was that NeXT does not include a lot of kernel-level header files anymore - I had to refer to the ones from 2.1 and poke around in the kernel.
I have no idea whether Informer will compile and run on Intel. If you do get it to work, please let me know.