우리가 컴퓨터를 사용할 때 운영체제는 뒤에서 조용히 많은 일을 하고 있습니다. 하지만 그 내부 구조는 어떤 모습일까요? 이번 글에서는 운영체제의 구조를 구성하는 핵심 요소들을 쉽게 풀어보며 설명해 보겠습니다.
운영체제는 마치 잘 짜인 회사처럼, 다양한 부서(모듈)가 협업하며 일합니다. 사용자와 소통하는 부서도 있고, 시스템 깊숙한 곳에서 자원을 조정하는 부서도 있죠. 그 각각의 구성 요소를 하나하나 살펴보겠습니다.
을 사용해야 합니다. 시스템 콜은 운영체제의 기능을 호출하는 공식적인 통로입니다.
예를 들어, 파일을 열거나 메모리를 요청하는 등의 동작은 사용자 프로그램이 직접 하지 못하고, 시스템 콜을 통해 운영체제에게 부탁합니다.
Java, C, Python 같은 언어에서 파일을 열 때 사용하는 함수들 뒤에는 시스템 콜이 숨겨져 있습니다.
같은 프로그램도 윈도우와 리눅스에서 실행 파일이 다르게 만들어지는 이유는 운영체제가 서로 다른 시스템 콜, 파일 시스템, 메모리 구조 등을 가지고 있기 때문입니다.
예를 들어 윈도우에서 만든 .exe 파일은 리눅스에서 그대로 실행되지 않습니다. 이는 운영체제가 다르면 내부 구조와 약속이 다르기 때문입니다.
이번 글에서는 운영체제가 어떻게 구성되어 있는지를 하나하나 살펴보았습니다. 사용자와의 소통 방식부터, 내부적으로 프로그램을 실행하는 방법, 운영체제의 구조와 설계 방식까지 다양한 요소들이 유기적으로 연결되어 있다는 것을 확인할 수 있었습니다.
다음 편에서는 컴퓨터에서 가장 기본적인 단위인 '프로세스'에 대해 자세히 알아보겠습니다.