KSYMS(4) BSD Programmer's Manual KSYMS(4)
ksyms - kernel symbol table device
pseudo-device ksyms [count]
The /dev/ksyms device masquerades as an OpenBSD native executable (a.out or ELF, depending on the platform) with the symbols from the run- ning 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 guaranteed 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 con- junction 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 (usually because they were removed with strip(1)), or the kernel has been compiled without a "pseudo-device ksyms" line.
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. MirOS BSD #10-current August 24, 1998 1
Generated on 2016-04-09 18:24:16 by $MirOS: src/scripts/roff2htm,v 1.83 2016/03/26 23:38:28 tg Exp $
This product includes material provided by mirabilos.