Click-Me-To-Go-Home

PACE Overview PACE Obtain PACE Documentation

Click-Me-To-Go-Home


PACE Overview

PACE is an OS abstraction layer designed for lightweight and/or verified systems.

It offers these benefits:

  • A strict POSIX.1-like, low-level interface. Its interface is "POSIX compatible"; by that we mean as close to POSIX.1 as it can be, given that PACE is not an operating system. And, to avoid name conflicts with OS APIs, all low-level PACE function names have the pace_ prefix.

  • The low-level interface is a C file, so that it can be used in both C and C++ programs.

  • The low-level interface is partitioned into multiple files, one per POSIX.1 section.


ACE uses PACE

The ADAPTIVE Communication Environment (ACE) is a freely available, open-source, object-oriented (OO) framework that implements many core design patterns for concurrent communication software.

ACE is currently built on an OS Adaptation Layer that abstracts away specific computer architecture / platform dependencies therfore allowing ACE to be portable across any platform that the adaptation layer supports.

ACE also forms the foundation upon which TAO is built. The combination of implementing TAO (adding specific functionality to ACE) and the ever shifting sands of vendor-specific operating systems has grown the ACE adapatation layer from a small core of critial functions to over 30,000 lines of interdependent code. The development of TAO tied in with requests from our sponsors as well as suggestions from the development community at large contributed to our decision to re-engineer ACE' adaptation layer. PACE is one part of this effort.


PACE Objectives

Some objectives of this phase of ACE' development (PACE) include:

  • ACE Developers: Make the low level abstraction layer code more maintainable.
    (reduce file size and file interdependence - improve code modularity)

  • ACE Users: Reduce ACE' footprint.
    (this is not a one-step task by any stretch of the imagination, but we will begin breaking out the code into separate files - allowing developers the opportunity option to compile and link specific object files to their executables instead of the entire ACE adaptation layer library)

  • ACE Users: Update the adaptation layer to be POSIX compliant.
    (see next)

  • ACE Users: Split the adaptation layer to support both a C API (PACE) as well as a set of C++ wrapper classes (ACE_OS) allowing both C & C++ developers to call directly into the low level API.
    (encapslate POSIX and system calls in C wrappers and re-write the (ACE_OS) adaptation layer to transparently call into the POSIX emulation API (PACE))

  • ACE Users: ACE will not change its public interface, it will only add low level C operations to its repertoire. As is obvious, software built on this adaptation layer is portable across the various platforms that ACE supports. This provides backward compatilibity for people already using the current C++ (ACE_OS) adaptation layer of ACE.

This is an open-source project maintained by:


Additional information regarding ACE and PACE and TAO is available as well as a full source distribution of TAO + ACE + PACE.

If you have any questions, suggestions or contributions regarding PACE, please write to us or subscribe to the pace-users mailing list (send email to majordomo@cs.wustl.edu with "subscribe pace-users" in the body, not the subject line ;-)


Doc Group

Last modified: Sun May 13 14:45:55 CDT 2001