본문 바로가기
42Seoul

Minishell

by millar 2023. 11. 6.

Minishell

The existence of shells is linked to the very existence of IT.
쉘(Shell)의 존재는 IT의 존재와 밀접하게 연관되어 있습니다.

At the time, all developers agreed that communicating with a computer using aligned 1/0 switches was seriously irritating.
당시, 모든 개발자들은 1과 0으로 정렬된 스위치를 사용하여 컴퓨터와 통신하는 것이 매우 귀찮다고 동의했습니다.

It was only logical that they came up with the idea of creating a software to com-municate with a computer using interactive lines of commands in a language somewhat close to the human language.
컴퓨터와 대화식 명령 라인을 사용하여 인간의 언어와 다소 유사한 언어로 컴퓨터와 통신하는 소프트웨어를 만들어 내는 아이디어만이 논리적이었습니다.

Thanks to Minishell, you’ll be able to travel through time and come back to problems people faced when Windows didn’t exist.
 Minishell을 덕분에, Windows가 존재하지 않았던 시기의 사람들이 직면한 문제들로 시간을 여행하고 돌아올 수 있을 것입니다.

개요

 

 오랜만에 뵙습니다. 2 서클의 마지막 과제가 끝난 후로 약 2개월이 지났습니다. 그동안 minishell에 전념했는데요. 공통 교육과정의 첫 번째 팀 프로젝트입니다. 2명이 한 팀을 이루어 과제를 하는데, 한 명은 자료 구조를 만들고 한 명은 구현 부를 만드는 것이 일반적입니다.

 

 minishell은 카뎃이 넘어야 할 고비 중 하나라고 합니다. 과제 하나하나 큰 산처럼 느껴지긴 했지만, 가장 할 것이 많고 어려운 과제였습니다. 이 과제에서 블랙홀에 많이 빠진다고 합니다.

 

 minishell은 자료구조, 프로세스 통신, 터미널 조작, 시그널 그리고 갖가지 파싱 등을 학습하고 pipex과제에서처럼 UNIX 동작 원리를 파헤칠 수 있습니다. pipex는 minishell의 15퍼센트 도 안되는 것 같습니다.

 

평가 항목도 길어서 온갖 경우의 수를 경험하실 수 있습니다. 정말 개 같은 과제에요.

 

목표

여러분들 만의 쉘을 만들어보세요.

구현에 확신이 들지 않는다면 bash를 참고하세요.

zsh을 참고하셔도 됩니다.

정답은 과제에 표기되어 있는 것이 전부일 뿐, 그 이상은 물을 수 없습니다.


구현 전 사전 지식

1. LCRS hierarchy & BNF production rules

2. built-in

3. signal

- bonus -

1. and_if, or_if

2. wildcard


 

각 구현 파트가 큰 부피를 차지하므로, 따로 글을 나누어 정리하도록 하겠습니다.

'42Seoul' 카테고리의 다른 글

Minishell - Built-in  (1) 2023.11.09
Minishell - LCRS hierarchy & BNF production rules  (0) 2023.11.06
FdF - Bonus  (0) 2023.08.14
FdF - Mandatory  (0) 2023.08.14
Pipex - Bonus  (0) 2023.08.14

댓글