TODO 4.75 KB
Newer Older
csmall's avatar
csmall committed
1 2
-------------------------- general ------------------------

3 4
Consider using glibc obstacks for memory allocation.

csmall's avatar
csmall committed
5
Implement /usr/proc/bin tools like Solaris has.
6
The prstat command is interesting, like top in batch mode.
7
SCO has a pstat command.
csmall's avatar
csmall committed
8

9 10
Don't these really belong in the procps-ng package?
         killall pstree fuser lsof who
csmall's avatar
csmall committed
11 12
(they are maintained elsewhere, which causes version problems)

13 14
OpenBSD has a pfind command.

csmall's avatar
csmall committed
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Cache results of dev_to_tty.

---------------------- kernel -------------------------

Add an "adopted child" flag to mark processes that are not
natural children of init. This can make --forest work better.

Supply better data for top's CPU state display. Currently top has
to subtract old numbers from new numbers and divide that result by
the number of processors. The kernel won't even supply the number
of processors in a portable way.

Supply data for the ADDR and JOBC fields.

Support & supply data for SL and RE.

Add a /proc/*/tty symlink to eliminate guessing when /proc/*/fd is
32
not accessible.
csmall's avatar
csmall committed
33 34 35 36 37 38 39

Add /proc/*/.bindata files to avoid string parsing. It should be an array
of 64-bit values on all machines. New entries go on the end and obsolete
ones get filled in with something logical -- entries must never be deleted!

Add all the stuff Solaris has. This would also replace ptrace.

40 41
---------------------- watch --------------------------

albert's avatar
albert committed
42 43
Tolerate VT100 line-drawing characters. Maybe translate them.

csmall's avatar
csmall committed
44 45 46 47 48
---------------------- w --------------------------

The LOGIN@ column sometimes has a space in it. This makes correct
scripting difficult.

49
Time formats are demented.
csmall's avatar
csmall committed
50 51 52

---------------------- vmstat --------------------------

albert's avatar
albert committed
53
Extract /proc/diskstats parsing from vmstat into libproc somewhere.
albert's avatar
albert committed
54

csmall's avatar
csmall committed
55 56 57 58 59
--------------------- libproc ----------------------

Stop storing fields with duplicate info (often different
units: kB and pages, seconds and jiffies) in the proc_t struct.

60 61
Use own readdir code (assembly language) because glibc sucks ass.

csmall's avatar
csmall committed
62 63 64 65
---------------------- top -------------------------

Share more stuff with ps.

66 67 68 69
don't truncate long usernames

have a --config option

csmall's avatar
csmall committed
70 71 72 73 74
---------------- ps for now, maybe move to libproc ------------------

With forest output and a tty named /dev/this_is_my_tty, the position
of the command name gets messed up. (we print too many spaces) (fixed?)

albert's avatar
albert committed
75 76
Fix missing stuff for these formats: FB_j FB_l FB_v HP_f HP_l HP_fl JFMT OL_m
(jobc,cpu,sl,re,cpu,prmgrp,m_swap,m_share,vm_lib,m_dt)
csmall's avatar
csmall committed
77 78 79 80 81 82 83
Note that "cpu" has two meanings.

Add Beowulf support. This is ugly, since the current patches use a
daemon to collect info and add a HOST field after the PID field.

Query optimizer, put cheap/required process selection first.

albert's avatar
albert committed
84
Avoid reading both /proc/*/status and /proc/*/stat.
csmall's avatar
csmall committed
85 86

Support printing the client hostname (the FROM that w(1) uses) in place
87
of a pty.
csmall's avatar
csmall committed
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

Disambiguate narrow tty info. (/dev/tty7 == /dev/pts/7 now)
1------8     1--4
ttyS2        S2
ttyI31       I31
pts/7        7        Short form could be /999.
pts/9999     9999     Short form could just be trunctuated to /999.
tty7         7        Short form could be vc-7.
tty63        63       Short form could be vc63.

Internationalization, as specified by XPG3, Volume 1, Commands and Utilities.
(and suggested by Unix98) LC_TIME affects date format.

----------------------- ps -----------------------

Add an option to select all processes that a user can kill.
(related to RUID, EUID, tty, etc. -- but maybe ignore root power)

Add a nice display option for killing things.
107 108 109 110 111 112 113
ruser,euser,ppid,pid,pmem,stime,args

For RT stuff:
pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm

For job control:
stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
csmall's avatar
csmall committed
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

Make the column alignment algorithm support this:
    FOO BAR
    8 44444
    453  45
    45 2989
    63666 0
    34  333
(useful for the UNIX tty and time values, since the time might look
like 100-10:40:32 for old processes and the tty might have extra room)

Improve long sort/format specifiers documentation and fill in the missing
code as much as the kernel can support. Make sure that memory amounts are in
pages when they should be and in kB when they should be, not backwards.

output encoding: UTF8 --nul --null

Make BSD formats use non-standard BSD time format, at least when it
doesn't violate the "no whitespace" rule.

Better unmangling of '?' as a tty. The shell destroys '?' when there
is a filename that matches. If the argument seems like garbage,
check for a file that might have screwed up the '?'.

If the 'O' option is given something already implied by 'O',
assume the user wanted a sorting option.

Conflict:
Digital THREAD is user,pcpu,pri,scnt,wchan,usertime,systime
AIX     THREAD is uname,pid,ppid,tid,S,C,PRI,scount,WCHAN,F,tty,bnd,comm
AIX looks like this:
         USER   PID  PPID  TID S  C PRI SC   WCHAN   FLAG   TTY BND  CMD