Browse Prior Art Database

Algorithm for Simulating Kernel-Level Primitives Without Table References

IP.com Disclosure Number: IPCOM000102438D
Original Publication Date: 1990-Nov-01
Included in the Prior Art Database: 2005-Mar-17
Document File: 3 page(s) / 132K

Publishing Venue

IBM

Related People

Ogle, DM: AUTHOR [+2]

Abstract

An algorithm is disclosed that simulates computer operating system kernel-level object descriptors at a user/application level. (Object descriptors are defined to be one or more integer identifiers.)

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

Algorithm for Simulating Kernel-Level Primitives Without Table References

       An algorithm is disclosed that simulates computer
operating system kernel-level object descriptors at a
user/application level.  (Object descriptors are defined to be one or
more integer identifiers.)

      The purpose is to provide support to systems that would
otherwise require changes to a proprietary (no source code available)
kernel.  Further limitations include a need to have the object
descriptors survive power losses and system crashes, which implies
that the information may not be permanently memory-resident.
Additionally, because kernel- level software is being simulated at a
user level, performance is a primary concern.  Therefore, translation
tables stored on disk cannot be used to manipulate and operate on the
object descriptors.

      OS/2* 1.2 provides a facility for new file systems to be
installed above the operating system (1).  Also under investigation
is the feasibility of the Andrew File System (AFS) (2,3) which is a
Unix**-based file system for use in the OS/2 environment.  AFS
depends heavily on the use of the Unix "inode" file system primitive
(4,5).  Inodes are identifiers for fast kernel-level file access.
Inodes do not exist in the OS/2 environment, and an installed file
system (above OS/2) can only access files through textual file names.

      For AFS to run on OS/2 without changes to either the OS/2
kernel or AFS, the functionality of inodes must be provided in the
form of OS/2 file names.

      The algorithm uses a one-to-one mapping of object descriptors
to strings, which are used as file names in the target operating
system.  If a descriptor is made up of N integer parts, each part is
converted to a base B number, where B is the number of unique
characters allowed in the file system's file names.  The N base B
numbers are converted to strings and concatenated to provide the file
name for the particular object.

      The length of the file name may be limited by the target
operating system, and it is, therefore, possible that the range of
the identifiers will have to be truncated.  The use of a base B
number allows a far greater range of identifiers in a
name-length-restricted file system.

      Since the mapping of a base 10 number to any base B number is
a one-to-one mapping, the conversions are guaranteed to work in both
directions.  The file name can be created from the identifiers, and
the identifiers can be reconstructed from the file name.

      If the object descriptors must be saved for a time during which
they may not remain unique, a field can be added to the descriptor
based on a clock.

      The conversion of AFS file identifiers to OS/2 file names
requires the preservation of three object descriptors per file: the
identifier itself, a uniquifier (to allow identifiers to be re-used),
and a version number.  There are approximately 43 unique characters
allowed in O...