|Welcome to Sysctl.|
|Sysctl||Kldstat||Third-party Kernel Modules|
|Kernel Modules||FreeBSD Ports: Kld||Kenv|
|Back to the System|
The sysctl utility retrieves kernel state and allows processes with appropriate privilege to set kernel state. The state to be retrieved or set is described using a “Management Information Base” (“MIB”) style name, described as a dotted set of components.
Retrieve Kernel Information
The information available from sysctl consists of integers, strings, and opaque types. The sysctl utility only knows about a couple of opaque types, and will resort to hexdumps for the rest. The opaque information is much more useful if retrieved by special purpose programs such as ps(1), systat(1), and netstat(1).
Some of the variables which cannot be modified during normal system operation can be initialized via loader(8) tunables. This can for example be done by setting them in loader.conf(5). Please refer to loader.conf(5) for more information on which tunables are available and how to set them.
To retrieve kernel information use sysctl plus the following sysctl variable NAME:
You will get the following examples:
Categories of Kernel information
The kernel information are organized in a tree format, called as management information base (MIB) with several categories. Compare the following list with the NAMEs above.
|kern||Core kernel funktions and features|
|vm||Virtual memory system|
|user||Userland interface information|
|security||Security-specific kernel features|
Each of this categories have further subcategories. Each category is connected with its subcategories by making a string with a point between them.
Example: the category kern and its subcategory hostname give you: kern.hostname a unique sysctl variable.
Retrieve Definition of a sysctl Variable
If you like to know how is the sysctl variable defined, you have to use the following command:
sysctl -d NAME
sysctl -d kern.osreldate
You will get:
kern.osreldate: Kernel release date
For more sysctl options look at sysctl on the man pages.
Unfortunately not all sysctl variables provide definitions with -d.
More variables than in sysctl(8) exist and the best and likely only place to search for their deeper meaning is undoubtedly the source where they are defined.
View all the MIB available Variables
If you like to view all the MIBs available in a particular sub-tree of the MIB tree, use the sysctl command with the name of the part of the tree you want to see. For example you want to see everything under hw write the command:
If you try it, you will get a lot of answers. You can limit it for example to hw.usb:
You will see the MIB tree shows further subcategories like
Changing sysctl Variables
If you look in the sysctl(8) man pages, you will see a table. Some variables are changeable and some not. GhostBSD/FreeBSD protects you to crash you system. therefor are some variables not changeable.
To change a value of a sysctl variable you can use the sysctl(8) command.
For example: If you look into the MIB tree for vfs with
and you see vfs.usermount: 0 The value says you can not mount. You have to set the value to 1 by the command:
You set the value to 1.
The sysctl program responds to you set the old value 0 to the new value 1: