Transparently Interposing User Code at the System Interface

Abstract

Many contemporary systems utilize a system call interface between the operating system and its clients. Increasing numbers of systems are providing low-level mechanisms for intercepting and handling system calls in user code. Nonetheless, they typically provide no higher-level tools or abstractions for effectively utilizing these mechanisms. Using them has typically required reimplementation of a substantial portion of the system interface from scratch, making the use of such facilities unwieldy at best. This dissertation presents a toolkit that substantially increases the ease of interposing user code between clients and instances of the system interface by allowing such code to be written in terms of the high-level objects provided by this interface, rather than in terms of the intercepted system calls themselves. This tool kit helps enable new interposition agents to be written, many of which would not otherwise have been attempted. This toolkit has also been used to construct several agents including: system call tracing tools, file reference tracing tools, and customizable file system views. Examples of other agents that could be built include: protected environments for running untrusted binaries, logical devices implemented entirely in user space, transparent data compression and/or encryption agents, transactional software environments, and emulators for other operating system environments.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 01, 1992
Accession Number
ADA256636

Entities

People

  • Michael B. Jones

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Human Systems
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Anti-Virus Software
  • Application Software
  • C Programming Language
  • Communication Channels
  • Computer Program Documentation
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Cybersecurity
  • Data Compression
  • Debugging
  • Object Oriented Programming
  • Operating Systems
  • Programming Languages
  • Software Development
  • System Software

Fields of Study

  • Computer science

Readers

  • Database Systems and Applications
  • Parallel and Distributed Computing.
  • Systems Analysis and Design

Technology Areas

  • Space