이번에는 POSIX가 무엇인지에 대해서 알아보고자 한다.
POSIX
POSIX란 Portable Operating System InterFace For Unix의 약자로 IEEE에서 지정한 운영체제간의 호환성을 유지하기 위해 서로 다른 UNIX OS의 공통 API을 정리하여 책정한 애플리 케이션 인터페이스 규격을 의미한다. POSIX를 준수하는 운영체제는 POSIX를 준수하는 다른 운영체제와 호환이 되어야 한다.
POSIX가 등장하게 된 역사로는 운영 체제를 위한 소프트웨어가 각기 다른 환경과 시스템 인터페이스 속에서 개발되어 이를 다른 운영체제 이식하기 위해서 상당한 노력과 비용이 소모되어 해당 문제를 해결하고자 나왔다는 배경을 가지고 있다.
Standard Stream
표준 스트림은 특정한 프로그램이 언어 인터페이스 뿐만 아니라 유직스, 유닉스 계열 운영체제에서 컴퓨터 프로그램과 그 환겨 ㅇ사이에 미리 연결된 입출력 통로를 의미한다. 표준 스트림으로 인해 프로그래머나 프로그램에서 입출력을 사용할 때, 입출력 장치를 연결하기 위한 어떤 추가 작업도 하지 않을 수 있는 편리함을 얻게 되었다. 표준 스트림의 종류로는 표준 입력, 출력, 오류가 있다.
- 표준입력(STDIN): 표준 입력 장치의 ID 는 숫자로는 0 이며 일반적으로는 키보드다.
- 표준출력(STDOUT): 출력을 위한 스트림으로 표준 출력 장치의 ID 는 1이며 일반적으로는 현재 쉘을 실행한 콘솔이다.
- 표준에러(STDERR): 에러를 위한 스트림으로 표준 에러 장치의 ID 는 2이며 일반적으로는 표준 출력과 동일하다.
Pipes
파이프는 어떤 프로그램의 출력 결과를 다음 단계의 입력 값으로 이어지는 형태로 연결된 구조를 의미한다.
man cat | grep POSIX
해당 명령어는 프로세스 하나로 동작하는 것 처럼 보이지만, 실제로는 man cat, grep POSIX 이렇게 각각의 프로세스로 작동한다. 위 두개의 프로세스는 pipe(|)을 통해 정보를 주고 받는다.
파이프를 기준으로 왼쪽 프로세스 man cat의 결과값이 오른쪽 프로세스 grep POSIX의 input 값으로 들어간다.
'Computer Theory > Os' 카테고리의 다른 글
리눅스와 자주사용하는 쉘 명령어 (2) | 2024.06.13 |
---|