ch08 02


Kernel Utilities (Mac OS X for Unix Geeks) 8.2. Kernel Utilities Mac OS X includes various utilities that interact with the kernel. With these utilities, you can debug a running kernel, load and unload kernel modules or extensions, or set kernel variables. 8.2.1. ddb The ddb utility can debug a running kernel. It is not included with the current version of Mac OS X. If you want to use ddb, you can find its source code in the xnu (Darwin kernel) source code. For details on building the kernel or obtaining source code from CVS, see Chapter 7. 8.2.2. Kernel Module Utilities The following list describes utilities for manipulating kernel modules. For more information, see the kernel extension tutorials available at http://www.opensource.apple.com/projects/documentation/howto. These utilities must be run by root or by someone with superuser privileges. kextload Loads an extension bundle. kextunload Unloads an extension bundle. kextstat Displays the status of currently loaded kernel extensions. Table 8-5 describes this utility's output. Table 8-5. Information displayed by kextstat Item number Column Description 1 Index Index number of the loaded extension. Extensions are loaded in sequence; gaps in this sequence signify extensions that have been unloaded. 2 Refs Number of references to this extension from other extensions. 3 Address Kernel space address of the extension. 4 Size Amount of kernel memory (in bytes) used by the extension. 5 Wired Amount of wired kernel memory (in bytes) used by the extension. 6 Name (Version) Name and version of the extension. 7 <Linked Against> Index of kernel extensions to which this extension refers. Figure 8-5 shows sample output. Figure 8-5. Partial output of kextstat 8.2.3. sysctl sysctl is a standard BSD facility for configuring kernel state variables. Use sysctl name to display a variable name, as in sysctl kern.ostype. Use sysctl -a to display all variables. You can set a variable with sysctl -w name=value. You must have superuser privileges to set a variable. Table 8-6 lists the sysctl variables on Mac OS X. See the sysctl(3) manpage for a description of the sysctl system call and more detailed information on the kernel state variables. Table 8-6. sysctl's kernel state variables Name Type Writable Description hw.busfrequency int no Bus frequency in hertz. Divide by one million to get a megahertz figure. hw.byteorder int no Variable that returns 4321, showing the ordering of four bytes on the PowerPC platform. hw.cachelinesize int no The cache line size in bytes. hw.cpufrequency int no CPU frequency in hertz. Divide by one million to get a megahertz figure. hw.epoch int no Variable that indicates whether your hardware is in the New World or the Old World. Old World Macintoshes (pre-G3) will have a value of 0. hw.l1dcachesize int no Level 1 data cache size in bytes. hw.l1icachesize int no Level 1 instruction cache size in bytes. hw.l2cachesize int no Level 2 cache size in bytes. hw.l2settings int no Level 2 cache settings. hw.l3cachesize int no Level 3 cache size in bytes. hw.l3settings int no Level 3 cache settings. hw.machine string no Machine class (Power Macintosh on most systems). hw.model string no Machine model. hw.ncpu int no Number of CPUs. hw.pagesize int no Software page size in bytes. hw.physmem int no Physical memory in bytes. hw.usermem int no Non-kernel memory. hw.vectorunit int no Variable that indicates whether you are running on an AltiVec-enabled CPU. kern.argmax int no Maximum number of arguments supported by exec( ). kern.boottime struct timeval no The time when the system was booted. kern.clockrate struct clockinfo no System clock timings. kern.dummy n/a n/a Unused. kern.hostid int yes Host identifier. kern.hostname string yes Hostname. kern.job_control int no Variable that indicates whether job control is available. kern.maxfiles int yes Maximum number of open files. kern.maxproc int yes Maximum number of simultaneous processes. kern.maxvnodes int yes Maximum number of vnodes. kern.ngroups int no Maximum number of supplemental groups. kern.netboot int no Variable that indicates whether the system booted via NetBoot. kern.nisdomainname string yes NIS domain name. kern.osrelease string no Operating system release version. kern.osrevision int no Operating system revision. kern.ostype string no Operating system name. kern.posix1version int no The version of POSIX 1003.1 with which the system attempts to comply. kern.saved_ids int no This is set to 1 if saved set-group and set-user IDs are available. kern.securelevel int increment only The system security level. kern.symfile string no The kernel symbol file. kern.sysv.shmmax int yes The maximum number of shared memory pages. kern.sysv.shmmin int yes The maximum number of shared memory segments per process. kern.sysv.shmmni int yes The maximum number of shared memory segments. kern.sysv.shmseg int yes The minimum size of a shared memory segment. kern.sysv.shmall int yes The maximum size of a shared memory segment. kern.version string no The kernel version string. net.inet.* various n/a IPv4 settings. net.key.* various n/a IPSec key management settings. net.inet6.* various n/a IPv6 settings. user.bc_base_max int no Maximum ibase/obase available in the bc calculator. user.bc_dim_max int no Maximum array size available in the bc calculator. user.bc_scale_max int no Maximum scale value available in the bc calculator. user.bc_string_max int no Maximum string length available in the bc calculator. user.coll_weights_max int no Maximum number of weights that can be used with LC_COLLATE in the locale definition file. user.cs_path string no Value for PATH that can find all the standard utilities. user.expr_nest_max int no Maximum number of expressions you can nest within parentheses using expr. user.line_max int no Maximum length in bytes of an input line used with a text-processing utility. user.posix2_c_bind int no Variable that returns 1 if the C development environment supports the POSIX C Language Bindings Option; otherwise, the result will be 0. user.posix2_c_dev int no Variable that returns 1 if the C development environment supports the POSIX C Language Development Utilities Option; otherwise, the result will be 0. user.posix2_char_term int no Variable that returns 1 if the systems supports at least one terminal type specified in POSIX 1003.2; otherwise, the result will be 0. user.posix2_fort_dev int no Variable that returns 1 if the system supports the POSIX FORTRAN Development Utilities Option; otherwise, the result will be 0. user.posix2_fort_run int no Variable that returns 1 if the system supports the POSIX FORTRAN Runtime Utilities Option; otherwise, the result will be 0. user.posix2_localedef int no Variable that returns 1 if the system allows you to create locale; otherwise, the result will be 0. user.posix2_sw_dev int no Variable that returns 1 if the system supports the POSIX Software Development Utilities Option; otherwise, the result will be 0. user.posix2_upe int no Variable that returns 1 if the system supports the POSIX User Portable Utilities Option; otherwise, the result will be 0. user.posix2_version int no Variable that returns the POSIX 1003.2 version with which the system attempts to comply. user.re_dup_max int no Maximum repeated occurrences of a regular expression when using interval notation. user.stream_max int no Maximum number of streams a process may have open. user.tzname_max int no Maximum number of types supported for a time zone name. 8. System Management Tools8.3. System Configuration Copyright © 2003 O'Reilly & Associates. All rights reserved.

Wyszukiwarka

Podobne podstrony:
ch08
ch08
ch08
ch08
ch08
ch08
ch08
CH08
ch08
ch08 (17)
ch08
ch08
ch08
ch08
ch08
ch08
CH08

więcej podobnych podstron