Unix / Linux shell scripting is ubiquitous, partly due to the
simplicity in which it allows combining third-party components
(commands) written in any programming language. Unfortunately, this
language-agnostic composition hinders automated parallelization, often
forcing developers to manually rewrite shell scripts and their
third-party components in other languages that support these features.
In this talk I will present PaSh, a system for parallelizing
Unix/Linux shell scripts. PaSh combines a just-in-time transcompiler
that blends static pre-processing with dynamic interposition, a
high-level annotation framework for expressing partial command
specifications, and a collection of runtime primitives that support
the execution of parallel shell scripts. PaSh achieves
order-of-magnitude speedups on unmodified shell scripts, all while
requiring no modifications to the system's underlying shell
interpreter and while remaining virtually indistinguishable from Bash
across the entire POSIX test suite. PaSh is worked on by several
institutions, has received multiple awards, and is open-source
software available by the Linux Foundation.
About the speaker
Nikos Vasilakis is an Assistant Professor of Computer Science at Brown
University. His research encompasses systems, programming languages,
and security and has been recognized by several best paper, best
presentation, and best demo awards. His current focus is on
automatically enhancing software systems with new capabilities such as
parallelism, distribution, and security against a variety of threat
models. Nikos is also a Co-Founder and Chief Technology Officer at
RequireSecurity; a chair of the Technical Steering Committee behind
PaSh, a shell-script parallelization project hosted by the Linux
Foundation; and a Research Affiliate at MIT CSAIL.
https://nikos.vasilak.is