: ps base @ decimal space ." proc_p" 4 spaces ." pid" 4 spaces ." uid" 2 spaces ." command" cr " practive" eval l@ begin dup .h ( proc_p ) dup 64 + l@ 4 + l@ 6 .r ( p_pid->pid_id ) dup 14 + l@ 4 + l@ 7 .r ( p_cred -> uid ) space dup 300 + dup cstrlen 38 min type ( 0x38 chars of command ) cr 44 + l@ ( p_next ) dup 0= exit? or ( loop or more? exit ) until drop base ! ; : pid " practive" eval l@ begin dup 64 + l@ 4 + l@ 2 pick <> while 44 + l@ dup 0= abort" process not found" repeat nip ; : kill 98 + dup l@ 100 or swap l! ; : su 14 + l@ dup 4 + 0 swap l! c + 0 swap l! ;