ksyms(4d) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

ksyms(4d)

ksyms(4D)                 Device Drivers & /dev files                ksyms(4D)

NAME
       ksyms - kernel symbols

SYNOPSIS
       /dev/ksyms

DESCRIPTION
       The  file  /dev/ksyms is a character special file that allows read-only
       access to an ELF format image containing two sections: a  symbol  table
       and  a corresponding string table. The contents of the symbol table re‐
       flect the symbol state of the currently running kernel. You can  deter‐
       mine  the  size  of the image with the fstat(2) system call. The recom‐
       mended method for accessing the /dev/ksyms file is by using the ELF ac‐
       cess library. See elf(3ELF) for details. If you are not  familiar  with
       ELF format, see a.out(5).


       /dev/ksyms  is an executable for the processor on which you are access‐
       ing it. It contains ELF program headers which  describe  the  text  and
       data segment(s) in kernel memory. Since /dev/ksyms has no text or data,
       the fields specific to file attributes are initialized to NULL. The re‐
       maining fields describe the text or data segment(s) in kernel memory.

       Symbol table    The  SYMTAB  section  contains the symbol table entries
                       present in the currently running kernel.  This  section
                       is  ordered  as  defined by the ELF definition with lo‐
                       cally-defined symbols first, followed  by  globally-de‐
                       fined  symbols. Within symbol type, the symbols are or‐
                       dered by kernel module load time. For example, the ker‐
                       nel file symbols are first, followed by the first  mod‐
                       ule's  symbols, and so on, ending with the symbols from
                       the last module loaded.

                       The section header index (st_shndx) field of each  sym‐
                       bol  entry  in  the symbol table is set to SHN_ABS, be‐
                       cause any necessary symbol relocations are performed by
                       the kernel link editor at module load time.


       String table    The STRTAB section contains  the  symbol  name  strings
                       that the symbol table entries reference.


SEE ALSO
       elf(3ELF), stat(2), kvm_open(3KVM), mem(4D), a.out(5), kernel(8)

WARNINGS
       The kernel is dynamically configured. It loads kernel modules when nec‐
       essary.  Because  of  this aspect of the system, the symbol information
       present in the running system can vary from time  to  time,  as  kernel
       modules are loaded and unloaded.


       When  you  open  the  /dev/ksyms  file, you have access to an ELF image
       which represents a snapshot of the state of the kernel symbol  informa‐
       tion  at  that instant in time. While the /dev/ksyms file remains open,
       kernel module autounloading is disabled, so that you are protected from
       the possibility of acquiring stale symbol data. Note that  new  modules
       can  still  be  loaded, however. If kernel modules are loaded while you
       have the /dev/ksyms file open, the snapshot held by you will not be up‐
       dated. In order to have access to the symbol information of  the  newly
       loaded  modules,  you  must  first close and then reopen the /dev/ksyms
       file. Be aware that the size of the /dev/ksyms file will have  changed.
       You will need to use the fstat(2) function to determine the new size of
       the file.


       Avoid  keeping  the  /dev/ksyms file open for extended periods of time,
       either by using kvm_open(3KVM) of the default namelist file or  with  a
       direct  open.  There are two reasons why you should not hold /dev/ksyms
       open. First, the system's ability to dynamically  configure  itself  is
       partially  disabled  by the locking down of loaded modules. Second, the
       snapshot of symbol information held by you will not reflect the  symbol
       information of modules loaded after your initial open of /dev/ksyms.


       Note  that  the  ksyms driver is a loadable module, and that the kernel
       driver modules are only loaded during an open system call. Thus  it  is
       possible  to  run  stat(2)  on  the /dev/ksyms file without causing the
       ksyms driver to be loaded. In this case, the file size returned is  UN‐
       KNOWN_SIZE.  A  solution  for  this  behavior  is  to  first  open  the
       /dev/ksyms file, causing the ksyms driver to be loaded (if  necessary).
       You can then use the file descriptor from this open in a fstat() system
       call to get the file's size.

NOTES
       The   kernel  virtual  memory  access  library  (libkvm)  routines  use
       /dev/ksyms as the default namelist file.  See  kvm_open(3KVM)  for  de‐
       tails.

Oracle Solaris 11.4               15 Mar 2024                        ksyms(4D)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3