PaSh: Light-Touch, Practically Correct, Just-in-Time Shell Script Parallelization
Nikos Vasilakis, Brown University
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.
Date & Time
Thursday, November 24, 2022 - 14:00
Imperial College London