반응형

POSIX(Portable Operating System Interface)

여러 종류의 유닉스와 유닉스-유사한 운영체제 간에 이식 가능한 응용 프로그램 인터페이스를 정의하는 표준입니다. POSIX 표준은 주로 이식 가능한 소프트웨어 개발을 위해 개발되었습니다. 이 표준은 다양한 운영 체제에서 응용 프로그램이 일관된 방식으로 동작하도록 하기 위한 여러 가지 인터페이스와 규칙을 제공합니다.

POSIX의 구성요소

  • 표준 시스템 호출:POSIX 표준은 여러 운영 체제에서 사용 가능한 일련의 시스템 호출을 정의합니다. 이러한 시스템 호출은 파일 조작, 프로세스제어, 입출력 등과 같은 기본적인 작업을 수행하기 위해 사용됩니다.
  • 표준 라이브러리 함수:POSIX 표준은 C언어를 위한 라이브러리 함수도 정의합니다. 이러한 함수는 표준 시스템 호출을 추상화하여 응용 프로그램이 더 편리하게 작성될 수 있도록 돕습니다.
  • 환경 변수와 셸 인터페이스:POSIX는 환경 변수와 셸 인터페이스도 표준화합니다. 이를 통해 사용자와 시스템 간의 상호 작용을 효과적으로 관리할 수 있습니다.
  • 파일 및 디렉토리 구조 : 파일과 디렉토리 구조의 표준화는 여러 운영 체제 간의 파일 시스템 호환성을 보장합니다.
  • 프로세스 제어:POSIX는 프로세스의 생성, 제어 및 통신에 관한 표준 인터페이스도 제공합니다.
  • 스레드 지원:POSIX 스레드도 표준으로 지원하며, 멀티 스레드 응용 프로그램 개발을 위한 인터페이스를 제공합니다.
  • 시그널 처리:시그널은 프로세스 간 통신 및 제어를 위해 사용되며, POSIX 표준은 시그널 처리 및 처리 방법도 정의합니다.

POSIX 표준 스트림

  • 표준 입력 : 사용자로부터 데이터를 읽는데 사용되는 스트림입니다. 대표적 함수는 getchar, fgets가 있습니다.
  • 표준 출력 : 프로그램의 결과나 출력 데이터를 표시하는 데 사용되는 스트림입니다. 대표적 함수는 printf, puts가 있습니다.
  • 표준 오류 : 프로그램에서 발생한 오류 메시지나 디버그 정보 등을 출력하는 데 사용되는 스트림입니다. ㅈ로 프로그램 실행 중에 발생한 문제의 정보를 사용자에게 보고하는 데 사용됩니다.

[출처] stdin, stdout, stderr, and pipes · kennyyu/bootcamp-unix Wiki (github.com)

파이프

운영체제에서 프로세스 간 통신(IPC)을 위해 사용되는 메커니즘 중 하나입니다. 파이프는 한 프로세스의 출력을 다른 프로세스의 입력으로 연결하여 데이터를 주고받을 수 있도록 돕습니다.

이름이 없는 파이프

  • 단방향 : 데이터를 한 방향으로만 전달할 수 있습니다. 즉, 입력 파이프와 출력 파이프로 구분됩니다.
  • 부모-자식 프로세스 간 통신에 많이 사용됩니다. 부모 프로세스가 자식 프로세스에 데이터를 전달하거나 지식 프로세스가 결과를 부모 프로세스로 보내는 데 사용됩니다.
  • POSIX에서는 pipe 함수를 사용하여 생성하며, 유닉스와 리눅스 계열 운영 체제에서 지원됩니다.

이름이 있는 파이프

  • 양방향 : 데이터를 양방향으로 전달할 수 있습니다.
  • 파일 시스템에 특정 이름으로 생성되어 다른 프로세스 간에 사용됩니다. 다른 시스템에서도 프로세스 간 통신을 위해 사용될 수 있습니다.
  • 파일처럼 취급되며, mkfifo 명령이나 프로그래밍적으로 생성할 수 있습니다.

[출처] stdin, stdout, stderr, and pipes · kennyyu/bootcamp-unix Wiki (github.com)

728x90

'BackEnd > OS에 대한 전반적인 지식' 카테고리의 다른 글

터미널  (0) 2023.08.16
네트워크 기본 개념  (0) 2023.08.16
입출력 I/O관리  (0) 2023.08.16