[BACK]Return to README CVS log [TXT][DIR] Up to [local] / sys / miscfs / procfs

Annotation of sys/miscfs/procfs/README, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: README,v 1.6 2002/03/14 00:42:25 miod Exp $   */
        !             2: /*     $NetBSD: README,v 1.4 1994/06/29 06:34:43 cgd Exp $     */
        !             3:
        !             4: saute procfs lyonnais
        !             5:
        !             6: procfs supports two levels of directory.  the filesystem root
        !             7: directory contains a representation of the system process table.
        !             8: this consists of an entry for each active and zombie process, and
        !             9: an additional entry "curproc" which always represents the process
        !            10: making the lookup request.
        !            11:
        !            12: each of the sub-directories contains several files.  these files
        !            13: are used to control and interrogate processes.  the files implemented
        !            14: are:
        !            15:
        !            16:        file    - xxx.  the exec'ed file.
        !            17:
        !            18:        status  - r/o.  returns process status.
        !            19:
        !            20:        ctl     - w/o.  sends a control message to the process.
        !            21:                        for example:
        !            22:                                echo hup > /proc/curproc/note
        !            23:                        will send a SIGHUP to the shell.
        !            24:                        whereas
        !            25:                                echo attach > /proc/1293/ctl
        !            26:                        would set up process 1293 for debugging.
        !            27:                        see below for more details.
        !            28:
        !            29:        mem     - r/w.  virtual memory image of the process.
        !            30:                        parts of the address space are readable
        !            31:                        only if they exist in the target process.
        !            32:                        a more reasonable alternative might be
        !            33:                        to return zero pages instead of an error.
        !            34:                        comments?
        !            35:
        !            36:        note    - w/o.  writing a string here sends the
        !            37:                        equivalent note to the process.
        !            38:                        [ not implemented. ]
        !            39:
        !            40:        notepg  - w/o.  the same as note, but sends to all
        !            41:                        members of the process group.
        !            42:                        [ not implemented. ]
        !            43:
        !            44:        regs    - r/w.  process register set.  this can be read
        !            45:                        or written any time even if the process
        !            46:                        is not stopped.  since the bsd kernel
        !            47:                        is single-processor, this implementation
        !            48:                        will get the "right" register values.
        !            49:                        a multi-proc kernel would need to do some
        !            50:                        synchronisation.
        !            51:
        !            52:        fpregs  - r/w.  same as regs, but for floating point registers
        !            53:                        when available.
        !            54:
        !            55:        cmdline - r/o.  process command line parameters, separated
        !            56:                        by NULs
        !            57:
        !            58: Note that regs and fpregs are not available if the kernel is compiled
        !            59: without option PTRACE.
        !            60:
        !            61: this then looks like:
        !            62:
        !            63: % ls -li /proc
        !            64: total 0
        !            65:    9 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 0
        !            66:   17 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 1
        !            67:   89 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 10
        !            68:   25 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 2
        !            69: 2065 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 257
        !            70: 2481 dr-xr-xr-x  2 jsp   staff  0 Sep 21 15:06 309
        !            71:  265 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 32
        !            72: 3129 dr-xr-xr-x  2 jsp   staff  0 Sep 21 15:06 390
        !            73: 3209 dr-xr-xr-x  2 jsp   staff  0 Sep 21 15:06 400
        !            74: 3217 dr-xr-xr-x  2 jsp   staff  0 Sep 21 15:06 401
        !            75: 3273 dr-xr-xr-x  2 jsp   staff  0 Sep 21 15:06 408
        !            76:  393 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 48
        !            77:  409 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 50
        !            78:  465 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 57
        !            79:  481 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 59
        !            80:  537 dr-xr-xr-x  2 root  kmem   0 Sep 21 15:06 66
        !            81:  545 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 67
        !            82:  657 dr-xr-xr-x  2 jsp   staff  0 Sep 21 15:06 81
        !            83:  665 dr-xr-xr-x  2 jsp   staff  0 Sep 21 15:06 82
        !            84:  673 dr-xr-xr-x  2 jsp   staff  0 Sep 21 15:06 83
        !            85:  681 dr-xr-xr-x  2 root  wheel  0 Sep 21 15:06 84
        !            86: 3273 dr-xr-xr-x  2 jsp   staff  0 Sep 21 15:06 curproc
        !            87: % ls -li /proc/curproc
        !            88: total 792
        !            89: 135147 -r--r--r--  1 jason  staff       0 Aug 11 22:52 cmdline
        !            90: 135143 --w-------  1 jason  staff       0 Aug 11 22:52 ctl
        !            91:   3860 -r-xr-xr-x  1 root   bin    167936 Jul 30 14:23 file
        !            92: 135142 -rw-------  1 jason  staff     108 Aug 11 22:52 fpregs
        !            93: 135140 -rw-------  1 jason  staff  225280 Aug 11 22:52 mem
        !            94: 135145 --w-------  1 jason  staff       0 Aug 11 22:52 note
        !            95: 135146 --w-------  1 jason  staff       0 Aug 11 22:52 notepg
        !            96: 135141 -rw-------  1 jason  staff      64 Aug 11 22:52 regs
        !            97: 135144 -r--r--r--  1 jason  staff       0 Aug 11 22:52 status
        !            98: % df /proc/curproc /proc/curproc/file
        !            99: Filesystem  512-blocks    Used   Avail Capacity  Mounted on
        !           100: proc                 2       2       0   100%    /proc
        !           101: /dev/wd0a        16186   13548    1018    93%    /
        !           102: % cat /proc/curproc/status
        !           103: cat 446 439 400 81 12,0 ctty 748620684 270000 0 0 0 20000 nochan 11 20 20 20 0 21 117
        !           104:
        !           105:
        !           106:
        !           107: the basic sequence of commands written to "ctl" would be
        !           108:
        !           109:        attach          - this stops the target process and
        !           110:                          arranges for the sending process
        !           111:                          to become the debug control process
        !           112:        wait            - wait for the target process to come to
        !           113:                          a steady state ready for debugging.
        !           114:        step            - single step, with no signal delivery.
        !           115:        run             - continue running, with no signal delivery,
        !           116:                          until next trap or breakpoint.
        !           117:        <signame>       - deliver signal <signame> and continue running.
        !           118:        detach          - continue execution of the target process
        !           119:                          and remove it from control by the debug process
        !           120:
        !           121: Note that attach, wait, step, run and detach are not available if the
        !           122: kernel is compiled without option PTRACE.
        !           123:
        !           124: in a normal debugging environment, where the target is fork/exec'd by
        !           125: the debugger, the debugger should fork and the child should stop itself
        !           126: (with a self-inflicted SIGSTOP).  the parent should do a "wait" then an
        !           127: "attach".  as before, the child will hit a breakpoint on the first
        !           128: instruction in any newly exec'd image.

CVSweb