2025. 4. 13. 17:40ㆍComputer Science/OS
OS의 주요 역할과 무엇을 다루는지 살펴 보았다면 이제는
OS자체가 어떻게 구성되어 있고, 내부적으로 어떻게 동작하는가 살펴보자.
운영체제는 사용자로 하여금 복잡하고 직접 다루기 어려운 하드웨어 자원에 대한 사용과 관리를 용이하게 해준다.
운영체제가 사용자에게 제공하는 서비스에는 많은 것들이 존재한다. 간략하게 보면
1. 사용자 인터페이스 제공
2. 프로그램 실행
3. 입출력 작업
4. 파일 시스템 연산(관리)
5. 통신
6. 오류 탐지
7. 자원 할당
8. 회계
9. 보호
이 정도의 서비스를 제공한다. 이 하나하나의 서비스를 사용자에게 어떻게 제공하고, 시스템 내부에서 무슨일이 일어나는지 알아보자.
사용자 인터페이스
인터페이스라 함은, 표면이라는 의미와 걸맞게 가장 외부와 맞닿아 있음을 의미한다. 이는 사용자에게 닿기도 하고 다른 프로그램에게 닿기도 한다.
인터페이스는 OS외 에도 많은 곳에서 등장하는 용어이고 대게 큰 뜻은 동일하다.
'내가 내부에서 어떤 원리로 돌아가는 지는 모르겠지만, 일단 인터페이스를 사용해 조작하면 원하는 동작이 이루어지더라~' 이런 느낌이다. 사용자나 다른 프로그램은 그 원리에 대해 전혀 알지 못해도, 인터페이스를 통해 제공되는 여러 기능들을 사용할 수 있게 된다.
UI는 user interface 로 사용자에게 닿아 있는 인터페이스다. 우리가 보는 window화면도 UI다.
UI는 크게 GUI(Graphic UI)와 CLI(Command Line)로 구분할 수 있다.
GUI는 흔히 아이콘을 클릭하고 드래그 앤 드랍, 버튼 클릭과 같이 우리가 그림을 보고 조작하는 방식이다.
CLI는 윈도우만 사용하는 사람이나 컴퓨터를 깊게 다루지 않으면 생소할 수 있다. Mac/OS에서는 여전히 CLI로 많은 작업을 할 수 있다. 명령어를 직접 입력하여 OS에 명령하여 동작한다.
GUI는 사용하기 쉬운대신 많은 기능들이 생략되어 있다. 딱 우리가 눈으로 보고 할 수 있는 것들 만 사용가능하다고 이해하면 된다. CLI는 명령어와 관련 지식이 없으면 사용하기 어렵다. 하지만 아는게 많아 질 수록 다양한 작업들을 자유롭게 사용가능 하다.
응용 프로그래밍 인터페이스(API)
UI인 경우는 모든 사용자를 위해 제공되는 반면 API는 응용프로그램 개발자에게 제공되는 기능이다. OS 에서 제공되는 API 외에도 Google API, Naver API 등 여러 개발상의 편의를 제공하는 서비스 들에서도 사용되는 용어이고, 의미는 같다.
Application Promgramming Interface의 약자로, 사용 가능한 함수의 집합을 지정해서 제공된다.
프로그래머는 API를 사용하여 다양한 기능들을 구현한다.
System Call
운영체제는 System Call이라는 일종의 API와 비슷한 기능을 제공한다. 하지만 API보다는 더 OS에 직접적인 동작을 요구한다는 점과, 우리가 System Call를 직접 사용하지 않아도 이루어 진다는 점에 조금 다르다.
API와 비교하면 더 작고 필수적인 단위라고 생각하면 된다. API도 결국 사용자가 프로그래밍하게 되는 언어이고, API나 그냥 사용자가 작성한 코드 대부분은 system call을 거쳐서 OS에서 이를 바탕으로 동작한다고 이해하자.
운영체제 구조
운영체제는 실제로 어떤 구조로 이루어져 있는지에 대한 이야기이다.
운영체제를 구성시 가장 중요한 부분은 커널(Kernel)이다. 사용자와 하드웨어 간의 연결을 위해 존재하는 OS의 존재 이유 자체라고 할 수 있을 것 같다.
이 커널을 어떻게 구성하고, 사용자에겐 커널에 대해 어느 정도 수준까지 허용해야 할 것인지, 등에 대한 것이 OS의 구성이다.
이제까지 많은 OS들이 존재했고, 여러 버전들이 있었다. MS-DOS 부터 ~ Linux/UNIX. Windows 등 전부 살펴보기는 시간도 없고 의미도 없을 것 같다. 그냥 핵심은
유저에게 어떤 기능을 어느정도 수준을 적용할 것인가로 시작해 커널을 어디까지 분리할 것인가. 많은 고민을 했고 나온게 현대의 OS구나~ 생각하면 될 것 같다.
여러 시행 착오를 거쳐서 장점은 살리고 단점을 축소하는 방향으로 구조도 발전해 비교적 복잡한 형태를 가지게 되었다...
시스템 부트
운영체제도 프로그램이다. 컴퓨터의 전원을 켜면 실행되어야 하는 것이다. OS는 어디에 있고 언제 어떻게 실행되는 것일까.
'Computer Science > OS' 카테고리의 다른 글
2. Storage 구조와 I/O구조 (0) | 2025.03.12 |
---|---|
1. OS가 뭔데 (0) | 2025.03.10 |