Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OpenBSD-5.7)
Apropos / Subsearch:
optional field

KSYMS(4)                 BSD Kernel Interfaces Manual                 KSYMS(4)

     ksyms -- kernel symbol table device

     pseudo-device ksyms [count]

     The /dev/ksyms device masquerades as an OpenBSD native executable with
     the symbols from the running kernel as its symbol segment.  Use of
     /dev/ksyms requires that the boot loader preserve the kernel symbols and
     place them at the end of the kernel's address space.

     The /dev/ksyms device is used to look up the symbol table name list from
     the running kernel.  Because it represents the running kernel it is guar-
     anteed to always be up to date even if the kernel file has been changed
     (or is even non-existent).  It is most useful when used in conjunction
     with nlist(3) or the kvm(3) routines (note that kvm_open(3) and
     kvm_openfiles(3) will try /dev/ksyms automatically if the first parameter
     to them is the NULL pointer).


     An open of /dev/ksyms will fail if:

     [EPERM]            An open was attempted with write permissions.

     [ENXIO]            No kernel symbols were saved by the boot loader (usu-
                        ally because they were removed with strip(1)), or the
                        kernel has been compiled without a ``pseudo-device
                        ksyms'' line.

     kvm(3), nlist(3)

     The /dev/ksyms device appeared in OpenBSD 2.4.

     It is not possible to mmap(2) /dev/ksyms because the boot loader does not
     load the symbol table onto a page boundary (so it is not page aligned).
     If all the boot loaders were fixed, mmap(2) support would be trivial.

BSD                            November 1, 2013                            BSD