← Projects

minishell

명령 해석·프로세스 실행·파이프·리다이렉션을 구현한 Unix shell

기간
2022.09 – 2022.10
인원
2명
역할
파서 · 실행기 구현
기술
C · POSIX

입력 문자열부터 프로세스 실행까지

  • Bash의 핵심 동작을 재현하는 2인 팀 프로젝트
  • 명령어 파싱과 실행기 구현 담당

파이프와 리다이렉션의 입출력 연결

  • ls | grep foo > result.txt처럼 파이프와 리다이렉션을 함께 사용하는 명령 처리
  • 명령별 표준 입출력 연결과 불필요한 파일 디스크립터의 종료 시점 관리 필요

해석·연결·실행 단계를 분리

  • 토큰·따옴표·파이프라인 구조를 해석하는 scanner·parser 구현
  • 환경 변수·경로 확장과 builtin 명령 처리 분리
  • 파이프 생성 → dup2() 연결 → 불필요한 fd 닫기 → 자식 프로세스 실행 순으로 처리
  • fork()·execve()·waitpid() 기반 프로세스 생성·실행·회수 구현

대화형 셸의 기본 기능

  • builtin·환경 변수 확장·파이프·리다이렉션·시그널 처리 구현
  • 실행 경로별 fd 연결·정리와 프로세스 생명주기 관리

파싱과 실행의 경계

  • 입력 → 토큰화·파싱 → 실행 계획 → builtin 또는 Unix 프로세스 API
minishell UML component diagram
파싱 단계와 프로세스 실행의 경계