Browse Prior Art Database

Extendible Kernel Configuration Parameters for a UNIX Operating System

IP.com Disclosure Number: IPCOM000107550D
Original Publication Date: 1992-Mar-01
Included in the Prior Art Database: 2005-Mar-21
Document File: 2 page(s) / 109K

Publishing Venue

IBM

Related People

Coley, ML: AUTHOR [+2]

Abstract

A method is provided to allow a trusted application to read kernel configuration variables and set them atomically. This method is extendible when components are added to the kernel that has configuration variables.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Extendible Kernel Configuration Parameters for a UNIX Operating System

       A method is provided to allow a trusted application to
read kernel configuration variables and set them atomically. This
method is extendible when components are added to the kernel that has
configuration variables.

      Traditionally UNIX* operating systems do not provide the
capability to change the kernel operating variables dynamically.
Instead, they use a procedure where the kernel is recompiled and link
edited to build a new kernel image statically.  The system must then
be rebooted with the new kernel.  This process makes field support of
the operating system difficult, since one does not know what all was
compiled and link edited into the kernel image.  AIX** v3 provides
for dynamic configuration of the kernel operating parameters.
Described is the mechanism employed.

      This invention uses the sysconfig system call to provide a
get_sysparms and a set_sysparms function to an application with
sufficient authority to modify the operational characteristics of the
kernel.  A kernel variable structure is defined by the header file
var.h which documents the parameters that may be read or changed by
using the get or set system parameters function.  Since this
structure may be enhanced in future releases of the operating system,
the structure contains a version number and the length of the
structure, so that applications may properly handle the parameters.
In order to provide an atomic operation when reading the structure,
modifying it, and writing it back to the kernel, the get_sysparms
sysconfig system call places a generation number into the structure
when read.  When written using the set_sysparms sysconfig system
call, the generation number is checked with the one last generated,
and if they do not match, an EAGAIN error is returned.  This
indicates that the application should redo the complete sequence of
reading the structure, modifying it, and writing it back to the
kernel with the sysconfig system call.  This mechanism prevents a
consistency problem when multiple processes are modifying the kernel
parameters concurrently.

      Kernel routines utilizing configurable variables may support
them in one of two methods.  The passive method is where the variable
does not have an invalid value, and the kernel routine can simply
read the value of the configurable variable before use to determine
if a new value should be used.  However, the active mechanism is
normally utilized so that kernel routines can be notified when the
set_sysp...