Repository files navigation
Linux에서 기본적으로 제공하는 bash 쉘과 유사한 간단한 SSUShell 구현
운영체제의 프로세스 관리 기본 개념 이해
시스템 호출 함수를 이용하여 간단한 프로그램 작성 기법 이해
Linux의 간단한 내장 명령어(echo, cat, sleep, ls, ps, top, grep 등) 기능 이해
Linux의 간단한 내장 명령어와 유사한 명령어(pps, ttop) 구현
1. Linux 내장 명령어를 실행하는 간단한 쉘 (SSUShell) 구현
ssu_shell.c skeleton 코드를 완성
입력 (대화식 또는 배치식 모드로)을 읽고 입력을 토큰화
./ssu_shell : 대화식 모드
./ssu_shell commands.txt : 배치식 모드
SSUShell은 사용자 입력 -> fork(2)를 사용하여 하나 이상의 자식 프로세스를 생성 -> 자식 프로세스들로부터 exec()를 호출하여 사용자 명령을 실행 -> wait(2)를 사용하여 죽은 자식을 거둠
SSUShell은 ls, cat, echo 및 sleep과 같은 모든 간단한 Linux 내장 명령어 실행 가능해야 함
SSUShell의 모든 명령어는 리디렉션 또는 기타 특수한 경우가 없는 Linux 제공 명령어와 직접 구현 명령어 pps, ttop
Linux가 제공하는 기본 명령어는 실행되어야 하나, pps와 ttop은 별도로 구현하고 구현한 명령어가 실행되어야 함.
SSUShell의 모든 명령어는 리디렉션 또는 기타 특수한 경우가 없는 Linux 제공 명령어와 직접 구현 명령어 pps, ttop로 구성
Linux가 제공하는 기본 명령어는 실행되어야 하나, pps, ttop은 별도로 구현하고 구현한 명령어가실행되어야 함
ttop와 pps는 사용자 홈 디렉토리(pwd) 내 존재해야 함
ttop 명령어 입력 시 기본 출력은 기본 내장 명령어 top와 유사한 기능을 갖고 있음
interval 간격 (3초) 마다 화면을 갱신하여 정보가 출력됨
top 명령어와 동일하게 키보드의 상하 화살표 키를 사용하여 목록에 대한 스크롤 제어가 가능
상하 화살표키 입력 시 interval 시간에 상관없이 화면 정보가 갱신됨
명령어 결과 출력 시, 현재 터미널 크기에 맞게 글자 수가 한 행을 넘어가지 않도록 구현(libcurses5-dev 패키지 사용 필요)
문자 ‘q’ 입력 시 해당 명령어가 종료되며 쉘로 복귀하여 $ 프롬프트를 다시 표시
pps 명령어 입력 시 기본 출력은 기본 내장 명령어 ps와 유사한 기능을 갖고 있음
명령어 결과 출력 시, 현재 터미널 크기에 맞게 글자 수가 한 행을 넘어가지 않도록 구현(libcurses5-dev 패키지 사용 필요)
옵션 a, u, x 구현
각각의 옵션에 대한 출력은 내장 명령어 ps의 a, u, x 옵션과 동일하며 기능은 man 페이지로 확인 (–a, -u, -x 옵션이 아님을 주의)
위 세 가지 옵션은 함께 사용 가능해야 함 (예. pps ux, pps aux 등)
About
Shell Implementation Project with top, ps command, and pipe.
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.