TY - GEN
T1 - Files-as-Filesystems for POSIX Shell Data Processing
AU - Greenberg, Michael
N1 - Publisher Copyright:
© 2021 Owner/Author.
PY - 2021/10/25
Y1 - 2021/10/25
N2 - The POSIX shell is 'stringy', and its ecosystem primarily supports line-oriented formats. While such formats are popular and common, contemporary programming often involves semi-structured data, like JSON or YAML. Dealing with such formats, the shell's stringiness leaves users out in the cold - -the POSIX ecosystem struggles with semi-structured data. New command-line tools work well with 'modern' data formats, but each tool is its own complex language to learn. The tree-like filesystem is the shell's only real data structure. By mapping 'modern' formats onto file hierarchies, we can work effectively in the existing ecosystem. We introduce ffs, the file filesystem, a new tool for mapping semi-structured data formats to filesystems in userspace. Like /proc and /sys, our filesystem-based approach helps the shell (and other tools) manipulate structured data.
AB - The POSIX shell is 'stringy', and its ecosystem primarily supports line-oriented formats. While such formats are popular and common, contemporary programming often involves semi-structured data, like JSON or YAML. Dealing with such formats, the shell's stringiness leaves users out in the cold - -the POSIX ecosystem struggles with semi-structured data. New command-line tools work well with 'modern' data formats, but each tool is its own complex language to learn. The tree-like filesystem is the shell's only real data structure. By mapping 'modern' formats onto file hierarchies, we can work effectively in the existing ecosystem. We introduce ffs, the file filesystem, a new tool for mapping semi-structured data formats to filesystems in userspace. Like /proc and /sys, our filesystem-based approach helps the shell (and other tools) manipulate structured data.
UR - http://www.scopus.com/inward/record.url?scp=85119093778&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85119093778&partnerID=8YFLogxK
U2 - 10.1145/3477113.3487265
DO - 10.1145/3477113.3487265
M3 - Conference contribution
AN - SCOPUS:85119093778
T3 - PLOS 2021 - Proceedings of the 2021 11th Workshop on Programming Languages and Operating Systems
SP - 17
EP - 23
BT - PLOS 2021 - Proceedings of the 2021 11th Workshop on Programming Languages and Operating Systems
T2 - 11th Workshop on Programming Languages and Operating Systems, PLOS 2021
Y2 - 25 October 2021
ER -