운영체제는 사용자를 위한 프로그램이 아닌 , 사용하자 실행하는 프로그램을 위한 프로그램이다.

사용자가 실행하는 응용 프로그램이 올바르게 실행되도록 도와주고 , 필요한 자원을 할당해주는 프로그램이다.

그래서 이번 절에서는 매우 중요한 개념인 커널 Kernal 에 대해 알아보고 , 응용 프로그램이 운영체제로부터 어떻게 어떤 도움을 받으면서 실행되는지를 이해하기 위해 이중 모드와 시스템 호출 이라는 개념을 알아보겠다.

운영체제의 심장 커널 Kernal

운영체제는 현존하는 프로그램 중에서 규모가 가장 큰 프로그램 중 하나이다. 대표적인 운영체제인 리눅스만 해도 구성하는 코드가 천만줄이 넘는다고 한다. ( ㅎㄷㄷ.. 10,000,000줄.. )

운영체제가 응용 프로그램에게 제공하는 기능들은 (서비스) 매우 다양하다.

핵심 서비스

스마트폰이 사용자에게 제공하는 서비스가 매우 다양하지만 , 그중에서도 전화 , 문자 , 인터넷 기능처럼 핵심적인 서비스가 있듯이 , 운영체제에서도 가장 핵심적인 서비스들이 있다.

위 두 기능이 운영체제의 핵심 서비스에 속한다고 한다. 그리고 그 핵심 서비스를 담당하는 부분이 바로 커널 Kernal 이다.

커널에 포함되지 않는 서비스

운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스도 있는데 , 대표적으로 사용자 인터페이스가 있다고 한다.

사용자 인터페이스 User Interface ( UI ) 는 윈도우의 바탕화면과 같이 사용자가 컴퓨터와 상호작용할 수 있는 통로이다.

사용자 인터페이스 UI 종류

위 두 가지가 존재한다. GUI 는 윈도우 바탕화면이나 스마트폰 화면처럼 그래픽을 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스이며 , CLI 는 명령어를 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스이다.

우리가 윈도우에서 마우스를 이용해서 다양한 프로그램을 실행할 수 있는것도 , 안드로이드 스마트폰 속 다양한 앱을 터치해서 실행할 수 있는것들 역시 운영체제에서 GUI 를 지원을 해주기 때문이다.

CLI 는 명령어 기반이기 때문에 따로 다채로운 아이콘이나 화면이 존재하지 않는다.