Skip to contentSkip to content
Verified credentials. On-chain. Forever.Learn more
Cover image for Implement a User-Space Shell with Process and Signal Handling
Code

Implement a User-Space Shell with Process and Signal Handling

FreeVerified credential2 weeksIntermediate

Overview

What this challenge is about.

Implement a shell in C (no shell helpers, just POSIX system calls). Required features: read a line, parse it into commands + arguments, handle pipelines with arbitrary chain length using pipe() + dup2() + fork() + execvp(), implement I/O redirection (<, >, >>), background jobs (&) with non-blocking wait via SIGCHLD handler that reaps zombies and prints '[1]+ Done command' messages, built-ins cd, jobs, exit (cd must run in the parent process). Handle SIGINT in foreground children only; never let the shell die. Include a Makefile, a test script with 25 cases (including the tricky ones: cd inside a pipeline, kill -9 a background job, ctrl-C interrupting only the foreground). Deliver source, Makefile, test script, and a 3-page design note explaining the trickiest decisions.

CredentialBlockchain-anchored
ShareableLinkedIn-ready
LanguageEnglish
PaceSelf-paced

The Brief

What you'll do, and what you'll demonstrate.

Implement a POSIX-style shell in C with pipelines, redirection, background jobs, and proper signal handling against a 25-case test script.

Earning criteria — what you'll demonstrate

  • Use fork/exec/wait/pipe/dup2 to implement Unix process semantics
  • Handle SIGCHLD and SIGINT correctly without race conditions
  • Implement built-ins that must run in the shell process (cd) vs. children (others)
  • Write a test script that exercises the tricky cases, not just happy paths

Program Fit

Where this fits in your program.

Sharpens the same skills your degree expects you to demonstrate.

Skills

Skills you'll demonstrate.

Each one shows up on your verified credential.

Careers

Roles this prepares you for.

Real titles. Real skill bridges. Pick the one closest to your trajectory.

Career mappings coming soon.

One more thing

You can put a credential on your CV by Friday.