리눅스 표준 스트림 유닉스 및 유닉스 계열 운영 체제에서 프로그램(프로세스)과 환경(주변기기) 사이에 미리 연결된 입출력 통로 파일 디스크립터 유닉스에서는 모든 개체를 파일로 관리하며, 프로그램(프로세스)가 파일에 접근하기 위해서 특정 파일의 디스크립터를 이용해 파일에 접근합니다. 셀은 입력과 출력을 위한 세 가지 기본 파일 디스크립터 (File Descriptor - 이하 FD)를 모든 프로세스에 제공합니다. 입력(스트림), 출력(스트림) 줄여서 I/O라고 칭합니다. stdin (FD 0) - 키보드 입력 stdout (FD 1) - 화면 stderr (FD 2) - 오류 실제 /dev 디렉토리를 확인하면 다음과 같이 파일 디스크립터를 파일 형태로 가지고 있는 것을 볼 수 있습니다. 유닉스(Unix)는..
컴퓨터 프로그래밍에는 프로세스라는 개념이 있습니다. 프로세스란 실행환경이라고 생각하면 됩니다. 컴퓨터에는 메모리와 CPU가 있고 특정 프로그램이 할당한 메모리 공간과 그 외 자원들을 포함한 실행 환경을 프로세스라고 합니다. 이는 분명히 프로그램이나 애플리케이션과는 조금 다른 개념입니다. 한 개의 프로그램 또는 애플리케이션에 여러 개의 프로세스가 포함될 수 있기 때문입니다. 위에서 설명한 프로세스와 비슷한 하위 개념인 스레드가 있습니다. 스레드는 다른말로 lightweight process (경량 프로세스)라고도 합니다. 이유는 프로세스를 만드는 비용에 비해 스레드를 만드는 비용이 적게 들어가기 때문입니다. 스레드들은 어떠한 프로세스에 종속되며 프로세스에 할당된 메모리 또는 파일과 같은 자원을 스레드들끼리..