variable v7? : v7! " kernelheap" eval w@ v7? ! ; : v9v7 v7? @ if swap then drop ; : p@ v7? @ if " l@" else " x@" then eval ; : ps v7! base @ decimal space ." proc_p" 6 spaces ." pid" 4 spaces ." uid" 2 spaces ." command" cr " practive" eval p@ begin dup .h ( proc_p ) dup b0 64 v9v7 + p@ 4 + l@ 6 .r ( p_pid->pid_id ) dup 20 14 v9v7 + p@ 4 + l@ 7 .r ( p_cred -> uid ) space dup 4c0 300 v9v7 + dup cstrlen 35 min type ( 0x35 chars of command ) cr 70 44 v9v7 + p@ ( p_next ) dup 0= exit? or ( loop or more? exit ) until drop base ! ; : pid v7! " practive" eval p@ begin dup b0 64 v9v7 + p@ 4 + l@ 2 pick <> while 70 44 v9v7 + p@ dup 0= abort" process not found" repeat nip ; : kill v7! 108 98 v9v7 + dup l@ 100 or swap l! ; : su v7! 20 14 v9v7 + p@ dup 4 + 0 swap l! c + 0 swap l! ;