[혼공컴운] 운영체제 시작
Chapter 9. 운영체제 시작하기
운영체제란?
운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 줍니다.
운영체제를 공부하는 이유: 운영체제를 공부함으로써, 컴퓨터 시스템의 자원 관리 방법 등 다양한 정보를 습득할 수 있습니다. 이를 통해 현실에서 발생하는 문제에 대해 다양한 해결책을 모색할 수 있으며, 운영체제의 해결 방식을 통해 문제를 접근하는 방법을 배울 수 있습니다. 이러한 과정을 통해 다양한 시각과 문제해결 능력을 기를 수 있습니다.
운영체제 구성
커널(Kernel): 운영체제의 핵심 기능을 담당하는 부분으로, 컴퓨터 자원을 관리합니다. 커널은 사용자와 직접적인 상호작용을 지원하지 않으며, 이를 위해 시스템 프로그램이 함께 제공됩니다.
시스템 프로그램: 사용자와의 상호작용을 위한 프로그램으로, 주로 쉘(Shell)이 포함됩니다. 쉘은 사용자가 컴퓨터에게 명령을 내리고 결과를 확인할 수 있도록 도와줍니다.
이중모드: CPU가 실행되는 모드를 커널모드와 사용자모드로 구분하여, 보안과 안정성을 유지합니다. 커널모드에서는 시스템 콜과 같은 중요한 작업을 수행합니다.
커널이란?
커널이란, 우리가 사용하는 컴퓨터에서 가장 중요한 부분인데요, 이는 컴퓨터의 자원들을 관리하는 역할을 합니다. 커널은 컴퓨터 내부의 메모리, CPU 등의 하드웨어 자원을 조정하고, 이들을 효율적으로 사용할 수 있도록 돕습니다.
그런데 커널은 사용자와 직접적으로 소통하지 않습니다. 사용자의 명령을 직접 받아들이는 역할은 '쉘(Shell)'이라는 프로그램이 담당합니다. 쉘은 사용자의 명령을 해석하여 커널에 전달하고, 그 결과를 사용자에게 보여줍니다.
커널은 시스템의 안정성과 성능을 유지하기 위해 컴퓨터 자원을 관리하며, 사용자가 물리적 하드웨어에 접근하고 사용할 수 있도록 중간 역할을 담당합니다. 사용자 프로그램이 커널이 관리하는 자원에 접근해야 할 때, 시스템 콜 인터페이스를 통해 커널에 요청이 전달되고, 커널은 이를 처리하여 적절한 작업을 수행합니다.
요약하자면, 커널은 사용자가 시스템 콜을 통해 컴퓨터 자원을 사용할 수 있도록 해주는 자원 관리자 역할을 합니다.
시스템 콜이란 무엇이며 왜 필요한가?
시스템 콜은 운영체제의 서비스에 접근하기 위한 인터페이스로, 응용 프로그램이 커널에 요청을 보내는 방법입니다. 시스템 콜을 통해 커널에 접근하고, 커널이 제공하는 기능을 활용할 수 있습니다.
일반적으로 우리가 컴퓨터에서 사용하는 프로그램들은 '응용 프로그램'이라고 부릅니다. 그런데 이런 응용 프로그램들은 컴퓨터의 자원을 직접 관리하거나 제어할 수 없습니다. 왜냐하면 그런 기능을 가지면, 실수나 악의적인 의도로 시스템을 손상시킬 위험성이 있기 때문입니다. 그래서 이런 중요한 기능들은 커널이라는 특별한 프로그램이 전담하게 됩니다.
그런데, 응용 프로그램도 때때로 이런 중요한 기능들을 필요로 합니다. 예를 들어, 파일을 생성하거나 네트워크 통신을 하거나, 화면에 무언가를 출력하는 것처럼요. 이런 때 필요한 것이 바로 '시스템 콜'입니다. 시스템 콜은 응용 프로그램이 커널에게 필요한 기능을 요청하도록 하는 방법입니다.
그런데 응용 프로그램이 시스템 콜을 할 때는 '커널 모드'로 전환해야 합니다. 이는 커널이 시스템을 보호하기 위한 한 가지 방법입니다. 응용 프로그램이 잘못하거나, 해커가 악의적으로 시스템을 공격하는 것을 막기 위한 방법이죠. 이런 방식으로, 시스템은 안전하게 유지되면서도, 응용 프로그램은 필요한 기능을 사용할 수 있게 됩니다.
요약하면, 시스템 콜은 응용 프로그램이 커널의 기능을 안전하게 사용할 수 있도록 도와주는 도구입니다. 이는 컴퓨터 시스템의 안전성과 효율성을 동시에 챙기는 중요한 기능입니다.