PROJECT DOSSIER // [MINISHELL 1]VIEW SOURCEBACK TO PROJECTS →

01 // PROJECT AT A GLANCE

MINISHELL 1

C

Writing your own shell: the program that launches all the others.

Everything you type in a terminal goes through a shell. This project consists in writing one: reading a command, finding the matching program on disk, launching it in a separate process, waiting for it to finish and starting again. It is the project that makes you understand what really happens when you press Enter.

A minimal shell in C: read loop, command splitting, PATH resolution, process creation through fork/execve and handling of built-in commands.

PRIMARYC
DELIVERYTEAM RECORD
VERIFICATIONCriterion
SOURCEINSPECTOR READY
MEDIA ATTACHMENTS (Images, Photos, Videos)

03 // KEY OUTCOMES

  • Concretely understanding what a terminal does for every command
  • The built-in / external distinction: why cd cannot be a program
  • Termination messages reproduced signal by signal, like the reference shell
  • Bonus: aliases loaded at startup from a .myshrc file

BEYOND THE BRIEF

  • A bonus version in a separate tree adding aliases (my_alias.c) and a homemade stat command (my_stat.c)
  • Twelve Criterion test files covering the built-ins and error handling

04 // SOURCE TREE

READING SOURCE…