[운영체제] 운영체제 란?

꾸준히·2023년 3월 13일
0
post-thumbnail

👀 운영체제란 무엇일까?

운영체제라는 단어는 IT기기가 널리 보급된 우리들에게는 친숙한 단어이다. 윈도우, 맥, 리눅스, 안드로이드... 이런것들을 운영체제 라고 한다. 앞의 예시에서 알 수 있듯 운영체제는 어떠한 하드웨어 위에 기본 바탕으로 설치되는 소프트웨어이다. 사용자는 설치된 운영체제 위에서 원하는 어플리케이션을 설치하고, 사용하게 된다.

즉, 운영체제는 어떤 하드웨어를 제어하기 위한 기능을 제공해 주는 역할을 한다.

📌 운영체제의 구성

✏️ 커널

운영체제는 핵심 코어인 커널과 기타 라이브러리/API로 이루어져 있다.
커널은 하드웨어에 직접 접근을 할 수 있고, 데이터를 읽고 쓰는 작업등을 직접 수행한다.

✏️ 쉘

그리고 커널 외에 커널의 동작을 도와주는 기능들을 가진 라이브러리들이 있다. 그 중 하나는 쉘이다.

쉘은 사용자가 커널을 조작할 수 있도록 기능을 제공한다. 종류는 CLI와 GUI 방식이 있고, CLI는 명령어를 입력하여 조작하는 방식, GUI는 화면에 마우스로 조작하는 방식이다. 유명한 쉘로는 리눅스 bash가 있다.

✏️ 시스템 콜

그렇다면 쉘은 어떻게 커널을 조작할 수 있을까? 바로 커널이 외부에 조작당할 수 있도록 인터페이스를 제공해 주기 때문이다. 이 인터페이스를 시스템 콜이라고 부른다.
쉘이든 기타 다른 응용프로그램이든, 이 시스템콜을 구현하여 원하는 기능을 구현한다.
만약 자바에서 파일시스템에 데이터를 저장할 경우 JDK에서 시스템 저정과 관련된 시스템 콜을 호출하는 것이다. 하지만 이 시스템 콜은 운영체제 마다 다르다. 그렇기 때문에 여러 응용 프로그램들은 운영체제 별로 다른 설치파일을 제공하는 것이다.

✏️ 사용자 모드, 커널 모드

시스템은 위와 같은 두가지 모드를 가진다. 바로 접근 권한 때문이다. 커널은 하드웨어를 직접 접근할 수 있기 때문에 모든 유저가 접근을 할 수 있으면 안된다. 그렇기 때문에 커널 모드를 따로 만들어 두어 해당 모드일 때만 커널에 접근할 수 있도록 하는 것이다.

시스템 콜을 구현한 API를 접근할 때는 커널모드로 전환되어 실행된다. 예를 들어 프로그램이 실행되면 사용자 모드로 실행이 되다가 해당 기능을 사용할 때 잠시 커널모드로 전환되었다가 다시 사용자 모드로 돌아간다.

✏️ CPU Protection Ring

이런 모드에 따른 접근 권한 범위는 누가 관리를 하는 걸까? 바로 CPU가 관리한다. CPU는 level에 따라 접근 범위를 정해 두고, 해당 level에 따라 접근을 통제하는 기능을 한다.

📌 운영체제의 역할

운영체제는 아래와 같은 역할을 한다.
1. 시스템 자원 관리
2. 사용자와 하드웨어 간의 커뮤니케이션
3. 응용 프로그램 제어

하드웨어(cpu, memory, I/O) 등의 자원(resource)들을 관리한다.
인터페이스를 제공하여 사용자가 하드웨어를 제어할 수 있도록 한다.
응용 프로그램을 효율적으로 제어할 수 있도록 한다(App 실행, 접근 권한 관리, 프로세스 관리 등)

0개의 댓글