llnl / llnl/UnifyFS

Design: Use busybox as the UnifyFS shell

Open
#426 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
C
Stars
122
Forks
34
PR merge metrics
No merged PRs in 30d

Description

In light of the https://github.com/LLNL/UnifyFS/pull/425, I wanted to offer an alternative idea for a UnifyFS shell. I'd like to propose building busybox (https://en.wikipedia.org/wiki/BusyBox) against UnifyFS and using that as our shell. Benefits:

  • It gives us all the unix commands, with all their command line options, and a shell (ash), in a single binary, allowing us to run commands directly in /unifyfs. This gives us a lot of power. For example:
   $ echo "hello world" > /unifyfs/helloworld.txt
   $ ls -lStr /unifyfs
   /unifyfs $ tar -cf mycheckpoints.tar.gz checkpoints/*
   $ wget -O /unifyfs/file https://path/to/file
   $ grep foo /unifyfs/checkpoints* 
  • Effectively removes the need for a FUSE driver
  • Gives us the option to write shell scripts for our automated tests.
  • Gives our users a familiar shell environment to manipulate their files.
  • Saves us from having to write, test, document, maintain, and support a custom shell for the lifetime of the UnifyFS project.
  • Gives us the ability to build other commands against Unifyfs and use them with the busybox commands. For example, we could build bash against Unify, and have it use the busybox commands.

Thoughts?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading pull request #425 and the BusyBox proposal in this issue, focusing on how the proposed ash shell would interact with UnifyFS. Done means reaching a project decision on whether to pursue this design and documenting the resulting implementation scope or rejection rationale.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, shell
Domain
cli, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.