Methods of factoring operating system functions into one or more groups of
functions are described. Factorization permits operating systems that are
not configured to support computing in an object-oriented environment to
be used in an object oriented environment. This promotes distributed
computing by enabling operating system resources to be instantiated and
used across process and machine boundaries. In one embodiment, criteria
are defined that govern how functions of an operating system are to be
factored into one or more groups. Based on the defined criteria, the
functions are factors into groups and groups of functions are then
associated with programming objects that have data and methods, wherein
the methods correspond to the operating system functions. Applications
can call methods on the programming objects either directly or indirectly
that, in turn, call operating system functions.