INTRO(9)               NetBSD Kernel Developer's Manual               INTRO(9)

     intro -- introduction to kernel internals

     This section contains information related to the internal operation of
     the system kernel.  It describes function interfaces and variables of use
     to the systems and device driver programmer.

     In addition to the normal man page format, the kernel pages include an
     additional section:

     CODE REFERENCES  Contains the pathname(s) of the source file(s) which
                      contain the definition and/or source code of the vari-
                      ables or functions being documented.  Any paths are rel-
                      ative to the top level of the source tree (traditionally

     Introduction to kernel memory allocators.  See memoryallocators(9).

     Machine-dependent portion of the virtual memory system.  See pmap(9).

     Virtual memory system external interface.  See uvm(9).

     Buffer cache interfaces.  See buffercache(9).

     Device buffer queues.  See bufq(9).

     Initiate I/O on raw devices.  See physio(9).

     I/O descriptor allocation interface.  See getiobuf(9).

     Idle CPU while waiting for work.  See cpu_idle(9).

     Finish a fork operation.  See cpu_lwp_fork(9).

     Switch to another light weight process.  See mi_switch(9).

     Current process and processor.  See curproc(9).

     Set process uid and gid.  See do_setresuid(9).

     New processes and kernel threads.  See fork1(9), kthread(9).

     Context switch notification.  See cpu_need_resched(9).

     Common scheduler framework.  See csf(9).

     Software signal facilities.  See signal(9).

     Suspend the scheduler.  See suspendsched(9).

     Return path to user-mode execution.  See userret(9).

     High-level file operations.  See dofileread(9).

     Convert an extended attribute namespace identifier to a string and vice
     versa.  See extattr(9).

     Operations on file entries.  See file(9).

     In-kernel, file-system independent, file-meta data association.  See

     File descriptor tables and operations.  See filedesc(9).

     File descriptor owner handling functions.  See fsetown(9).

     File system suspension helper subsystem.  See fstrans(9).

     Pathname lookup, cache and management.  See namei(9), namecache(9).

     Kernel interface to file systems.  See vfs(9).

     Kernel representation of a file or directory and vnode attributes.  See
     vnode(9), vattr(9).

     Kernel interfaces for manipulating output queues on network interfaces.
     See altq(9).

     Externally visible ARP functions.  See arp(9).

     Ethernet and FDDI driver support functions and macros.  See ethersubr(9).

     Core 802.11 network stack functions and rate adaptation based on received
     signal strength.  See ieee80211(9), rssadapt(9).

     Compute Internet checksum.  See in_cksum(9).

     Look up the IPv4 source address best matching an IPv4 destination.  See

     Functions and macros for managing memory used by networking code.  See

     Packet filter interface.  See pfil(9).

     Route callout functions.  See rt_timer(9).

     TCP congestion control API.  See tcp_congctl(9).

     Condition variables.  See condvar(9).

     Kernel lock functions.  See lock(9).

     Memory barriers.  See mb(9).

     Mutual exclusion primitives.  See mutex(9).

     Restartable atomic sequences.  See ras(9).

     Reader / writer lock primitives.  See rwlock(9).

     Machine-independent software interrupt framework.  See softint(9).

     Functions to modify system interrupt priority level.  See spl(9).

     Functions to raise the system priority level.  See splraiseipl(9).

     Kernel authorization framework.  See kauth(9).

     API for cryptographic services in the kernel.  See opencrypto(9).

     Security model development guidelines.  See secmodel(9).

     Execute a function after a specified length of time.  See callout(9).

     Microsecond delay.  See delay(9).

     Real-time timer.  See hardclock(9).

     System clock frequency.  See hz(9).

     Initialization of system time and time-of-day clock support.  See
     inittodr(9), todr(9).

     Check that a timeval value is valid, and correct.  See itimerfix(9).

     System time variables.  See timecounter(9).

     Realtime system clock.  See microtime(9).

     Get the time elapsed since boot.  See microuptime(9).

     Convert milliseconds to system clock ticks.  See mstohz(9).

     Function to help implement rate-limited actions.  See ppsratecheck(9).

     Function to help implement rate-limited actions.  See ratecheck(9).

     Set battery-backed clock from system time.  See resettodr(9).

     System time variables.  See time_second(9).

     Kernel space to/from user space copy functions.  See copy(9).

     Store data to user-space.  See store(9).

     Fetch data from user-space.  See fetch(9).

     Move data described by a struct uio.  See uiomove(9).

     Machine-dependent clock setup interface.  See cpu_initclocks(9).

     Machine-dependent process core dump interface.  See cpu_coredump(9).

     Machine-dependent kernel core dumps.  See cpu_dumpconf(9).

     Unique CPU identification number See cpu_number(9).

     Halt or reboot the system See cpu_reboot(9).

     Machine-dependent root file system setup See cpu_rootconf(9).

     Machine-dependent CPU startup See cpu_startup(9).

     Disk label management routines.  See disklabel(9).

     Autoconfiguration frame-work.  See autoconf(9).

     Description of a device driver.  See driver(9).

     The autoconfiguration framework ``device definition'' language.  See

     Machine-dependent device autoconfiguration.  See cpu_configure(9).

     Bus and Machine Independent DMA Mapping Interface.  See bus_dma(9).

     Bus space manipulation functions.  See bus_space(9).

     Generic disk framework.  See disk(9).

     Hardware-assisted data mover interface.  See dmover(9).  Generic event
     counter framework.  See evcnt(9).

     Firmware loader API for device drivers.  See firmload(9).

     How to implement a new ioctl call to access device drivers.  See

     Extensible line discipline framework.  See linedisc(9).

     Console magic key sequence management.  See cnmagic(9).

     Console access interface.  See cons(9).

     Raster display operations.  See rasops(9).

     Generic virtual console framework.  See vcons(9).

     Machine-independent console support.  See wscons(9).

     Interface between low and high level audio drivers.  See audio(9).

     The NetBSD audio specification. See audio_system(9).

     Bluetooth Device/Protocol API.  See bluetooth(9).

     Support for CardBus PC-Card devices.  See cardbus(9).

     VESA Display Data Channel V2.  See ddc(9).

     VESA Extended Display Identification Data.  See edid(9).

     Inter IC (I2C) bus.  See iic(9).

     Baseboard I/O control ASIC for DEC TURBOchannel systems.  See ioasic(9).

     Industry-standard Architecture.  See isa(9).

     Introduction to ISA Plug-and-Play support.  See isapnp(9).

     MicroChannel Architecture bus.  See mca(9).

     PPBUS microseqencer developer's guide.  See microseq(9).

     Peripheral Component Interconnect.  See pci(9).

     Perform PCI bus configuration.  See pci_configure_bus(9).

     PCI bus interrupt manipulation functions.  See pci_intr(9).

     PC keyboard port interface.  See pckbport(9).

     Support for PCMCIA PC-Card devices.  See pcmcia(9).

     User-space interface to ppbus parallel port.  See ppi(9).

     Interface between low and high level radio drivers.  See radio(9).

     Functions to make a device available for entropy collection.  See rnd(9).

     SCSI/ATAPI middle-layer interface.  See scsipi(9).

     TURBOchannel bus.  See tc(9).

     USB tty support.  See ucom(9).

     USB device drivers interface.  See usbdi(9).

     Versa Module Euroboard bus.  See vme(9).

     Machine-independent IDE/ATAPI driver.  See wdc(9).

     Functions to add or remove kernel event filters.  See

     Functions to raise kernel event.  See knote(9).

     Record and wakeup select requests.  See selrecord(9).

     Simple do-it-in-thread-context framework.  See workqueue(9).

     Kernel expression verification macros.  See KASSERT(9).

     Convert a single byte between (unsigned) packed bcd and binary.  See

     Bitmask output conversion.  See snprintb(3).

     General purpose extent manager.  See extent(9).

     Compare integers.  See imax(9).

     Kernel formatted output conversion.  See kprintf(9).

     Data comparing, moving, copying, setting and cleaning.  See memcmp(9),
     memmove(9), memcpy(9), memset(9), bcmp(9), bcopy(9), bzero(9), kcopy(9).

     Log a message from the kernel through the /dev/klog device.  See log(9).

     Bring down system on fatal error.  See panic(9).

     Power management and inter-driver messaging.  See pmf(9).

     Run all shutdown hooks.  See pmf_system_shutdown(9).

     Kernel internal error numbers.  See errno(9).

     Kernel hash functions, hash table construction and destruction.  See
     hash(9), hashinit(9).

     Format a number into a human readable form.  See humanize_number(9).

     Machine-dependent interface to ipkdb.  See ipkdb(9).

     Options string management.  See optstr(9).

     Performs pattern matching on strings.  See pmatch(9).

     Hardware Performance Monitoring Interface.  See pmc(9).

     Add or remove a shutdown hook.  See pmf(9).

     Non-local jumps.  See setjmp(9).

     System variable control interfaces.  See sysctl(9).

     The NetBSD kernel internals section first appeared in NetBSD 1.2.

NetBSD 8.1                       May 30, 2017                       NetBSD 8.1

You can also request any man page by name and (optionally) by section:


Use the DEFAULT collection to view manual pages for third-party software.

©1994 Man-cgi 1.15, Panagiotis Christias
©1996-2019 Modified for NetBSD by Kimmo Suominen