Shell과 System Call: Prompt, POSIX
포스트 난이도: HOO_Middle
# Shell
Shell(쉘)과 System call(시스템 호출)은 다른 목적으로 사용되는 기능이다.
우선 Shell은 사용자와 Operating system 간의 Command line Interface 역할을 수행한다.
현재는 다양한 종류의 Shell이 존재하고 있다.
- . sh
- . csh
- . bash
GUI 또한 또 다른 하나의 Interface 역할을 수행할 수 있다.
예를 들면 Windows Explorer가 GUI interface에 해당한다.
# Prompt
Prompt는 하나의 Character로써 사용자에게 명령이 받아들일 때까지 기다리라는 의미를 가지고 있다.
대표적인 예로는,
$ for bash
% for csh
등이 있다.
# System Calls
System calls는 사용자 프로그램과 Operating system 간의 Programming interface 역할을 수행한다.
한마디로 user program이 OS에 접근하여 Kernel 안에서 OS 기능을 실행하는 것을 의미한다.
System calls는 11가지 단계를 거치게 된다.
예를 들어 System call이 read(fd, buffer, nbytes)를 한다고 가정한다면,
- Step 1-3: Push parameters nbytes, &buffer, fd
- Step 4: Call the library procedure read
- Step 5: The library procedure put a code for read in register
- Step 6: Call trap instruction, trap to the kernel
- Step 7: The kernel locates and dispatches the system call handler via a table of pointers to system call handlers indexed on system call number
- Step 8: The system call handler runs
- Step 9: Returns to the user-space library procedure
- Step 10: The library procedure returns to the user program
- Step 11: The SP is incremented to clean up the stack
Shell처럼 System calls도 다양한 operating systems interfaces들이 존재한다.
#Portable Operating System Interface
POSIX는 대표적인 이식이 가능한 operating system interface 중에 하나이다.
IEEE에서 표준화되어 있으며, System calls의 API를 정의한다.
또한 Command line shells나 utility interfaces들도 정의하는 것이 POSIX이다.
POSIX가 표준화가 될 수 있는 이유 중 하나는 다양한 OS에서 유지관리가 가능하기 때문이데 Unix, Linux, Window 등에서 가능하다.
한마디로 호환성이 좋아서 다른 OS와도 잘 결합이 된다고 볼 수 있다.
또한 POSIX는 code-level 수준의 이식성을 제공한다는 점에서도 사용이 용이하다.
'Computer Science' 카테고리의 다른 글
[Operating System] OS Structure (0) | 2022.03.04 |
---|---|
[Operating System] System Calls Example Tables (0) | 2022.03.04 |
[Operating System] Process: Process Tree, Child Processes, Root Processes (0) | 2022.03.04 |
[Operating System] Process Associate: Address Space, Registers, Resources (0) | 2022.03.04 |
[Operating System] Operating System History (0) | 2022.03.03 |
댓글