리눅스는 유저 모드와 커널 모드 두개의 실행영역을 가진다. 유저 모드는 일반 응용 프로그램이 실행되는 영역이고, 커널 모드는 커널(:12) 명령이 실행되는 영역이다. 하드웨어에 대한 모든 제어는 커널 모드에서 이루어진다. 두개의 모드로 나눈 이유는 다중 사용자 / 다중 프로세스 운영체제에서 자원에 대한 관리와 보안
을 위함이다.
응용 프로그램은 커널 모드에 진입을 할 수 없으므로 하드웨어에 대한 접근을 할 수 없다. 이는 메모리 할당, 파일
읽기/쓰기와 같은 주요한 작업을 할 수 없음을 의미한다. 하지만 이래서는 제대로 된 응용 프로그램을 만들 수 없
을 것이다.
리눅스 커널은 "간접 접근 방식"으로 이 문제를 해결 한다. 직접 하드웨어에 접근하는 대신 커널에게 자원의 사용을 요청을 하고, 커널이 자원의 사용을 허락하는 방식이다.
이때 커널이 응용 프로그램에 제공하는 함수가 시스템콜이다.
리눅스 시스템콜
Recent Posts
Archive Posts
Tags