POSIX
TL;DR
POSIX는 서로 다른 UNIX OS의 공통 API를 정리한 IEEE 애플리케이션 인터페이스 규격이다. 목적은 이식성이 높은 유닉스 응용 프로그램 개발하는 것이다.
POSIX의 내용
POSIX엔 아래 외에 다양한 분야의 규격이 존재한다.
- 커널로의 C 언어 인터페이스 시스템 콜
- 프로세스 환경
- 파일과 디렉토리
- 시스템 데이터베이스
- tar 압축 포맷
리눅스와 포직스
리눅스는 포직스 호환 운영 체제 커널을 목표로 개발되었다.
POSIX 인증 운영 체제들
위키백과에 따르면 AIX, HP-UX, macOS, Solaris 등이 POSIX 표준을 따르는 운영 체제로 알려져있다. 대부분의 리눅스 배포판은 POSIX 호환성 인증은 없지만, 대부분 준수하는 것으로 알려져있다.
MS Windows를 위한 POSIX
- Cygwin: MS Windows를 위한 가능한 큰 POSIX 호환 개발환경과 런타임 환경을 제공한다. Linux 호환 Layer를 구성하기 때문에, MinGW에 비해 Unix 호환성이 높고 안정적으로 작동한다.
- MinGW: 쵝소한의 POSIX 환경을 제공한다. Windows Native로 동작하기 때문에 Cygwin에 비해 성능이 좋다.
- Windows Subsystem for Linux: Ubuntu 이미지를 통해 리눅스 실행환경을 제공한다. Windows 10부터 지원
Signal (IPC, Inter-Process Communication)
Signal, 유닉스 신호는 POSIX 호환 운영 체제에서 쓰이는 프로세스 간의 통신이다.
신호 보내기
Ctrl-C
(SIGINT): 기본적으로 프로세스를 종료Ctrl-Z
(SIGTSTP): 프로세스가 실행을 유예Ctrl-\
(SIGQUIT): 프로세스를 종료시킨 뒤 코어를 덤프Ctrl-T
(SIGINFO): (모든 유닉스에서 지원하진 않음) 명령에서 지원하는 경우 운영 체제가 실행 중인 명령에 대한 정보를 표시