Polyglot C Library

RESOURCE

Abstract

The C library component of Polyglot. Polyglot utilizes a combination of custom and open source tools and libraries to provide developers with a consistent environment for building tools, etc. for a wide variety of targets with minimal changes to the code being built. It supports a variety of architectures and operating systems/firmware in as target-agnostic way as possible. This allows for developers to minimize the amount of time/effort required to port tools-in particular, forensic tools-to a wide variety of targets. The project is comprised of two main components: a frontend toolchain that understands how to utilize other tools in order to build code for a specific target, and a minimalistic C library specific to Polyglot. These collectively provide the method to build code for a specific target, and the capability for code to interact with the underlying operating system when run on the target. Both components are written in a way to minimize the amount of target-specific knowledge required to both develop and utilize the project.
Developers:
Huddleston, Timothy [1] Stewart, Ellen [1] Kvarfordt, Kent [1] McCready, Kyle [1] Hudson, Sara [1]
  1. Idaho National Laboratory (INL), Idaho Falls, ID (United States)
Release Date:
2024-04-23
Project Type:
Open Source, Publicly Available Repository
Software Type:
Scientific
Programming Languages:
C
Licenses:
GNU Lesser General Public License v2.1
Sponsoring Org.:
Code ID:
132352
Research Org.:
Idaho National Laboratory (INL), Idaho Falls, ID (United States)
Country of Origin:
United States
Keywords:
Polyglot; embedded systems; toolchain; self-contained executables; polygraph

RESOURCE

Citation Formats

Huddleston, Timothy A., Stewart, Ellen N., Kvarfordt, Kent B., McCready, Kyle J., and Hudson, Sara A. Polyglot C Library. Computer Software. https://github.com/idaholab/polyglot-libc. USDOE Office of Nuclear Energy (NE). 23 Apr. 2024. Web. doi:10.11578/dc.20240620.2.
Huddleston, Timothy A., Stewart, Ellen N., Kvarfordt, Kent B., McCready, Kyle J., & Hudson, Sara A. (2024, April 23). Polyglot C Library. [Computer software]. https://github.com/idaholab/polyglot-libc. https://doi.org/10.11578/dc.20240620.2.
Huddleston, Timothy A., Stewart, Ellen N., Kvarfordt, Kent B., McCready, Kyle J., and Hudson, Sara A. "Polyglot C Library." Computer software. April 23, 2024. https://github.com/idaholab/polyglot-libc. https://doi.org/10.11578/dc.20240620.2.
@misc{ doecode_132352,
title = {Polyglot C Library},
author = {Huddleston, Timothy A. and Stewart, Ellen N. and Kvarfordt, Kent B. and McCready, Kyle J. and Hudson, Sara A.},
abstractNote = {The C library component of Polyglot. Polyglot utilizes a combination of custom and open source tools and libraries to provide developers with a consistent environment for building tools, etc. for a wide variety of targets with minimal changes to the code being built. It supports a variety of architectures and operating systems/firmware in as target-agnostic way as possible. This allows for developers to minimize the amount of time/effort required to port tools-in particular, forensic tools-to a wide variety of targets. The project is comprised of two main components: a frontend toolchain that understands how to utilize other tools in order to build code for a specific target, and a minimalistic C library specific to Polyglot. These collectively provide the method to build code for a specific target, and the capability for code to interact with the underlying operating system when run on the target. Both components are written in a way to minimize the amount of target-specific knowledge required to both develop and utilize the project.},
doi = {10.11578/dc.20240620.2},
url = {https://doi.org/10.11578/dc.20240620.2},
howpublished = {[Computer Software] \url{https://doi.org/10.11578/dc.20240620.2}},
year = {2024},
month = {apr}
}