Developer.

1.1 What Operating Systems Do

Operating System 이 컴퓨터에서 어떤 역할을 하는지 본다. 이 글이 우리 학과 학생들에게 도움이 됐으면 한다.

📂 목차


📚 본문

어려운 내용인 만큼 영어가 많이 등장한다. 내가 대학 커리큘럼의 정리했던 내용을 다시 읊는다. 외우는게 아니라 몸으로 받아들인다.

컴퓨터 시스템을 살펴보자. 크게 4가지로 나뉠 수 있다.

  • Hardware: CPU, I/O Devices, Volatile Memory, Non-volatile Memory, System Bus, Motherboard, PSU, Interface(Socket)
  • Operating System: 하드웨어를 제어 및 하드웨어 자원의 사용을 관리(최근에는 Hardware 까지의 영역도 일부 포함된다 - 교수님께서 그러셨다)
  • Application: 운영체제(OS) 위에서 동작하며, 특정 목적을 달성하기 위해 실행 가능한(executable) 독립적인 소프트웨어.
  • User: 우리들, end point 에서 계산 가능한 기기들을 다루는 행위자

1.1.1 User View

사용자가 컴퓨터를 바라보는 관점으로 가보자. 사용자가 컴퓨터를 볼 때는 사용 중인 인터페이스에 따라 달라진다.

일반적인 개인용 컴퓨터 환경은 단일 사용자가 시스템 자원을 전부 독점적으로 사용하는 것을 전제로 설계되어 있다. 부수적으로는 성능(performance)과 보안(security)에도 일정 부분 신경을 쓰지만, 자원 활용률(resource utilization)—즉, 시스템 자원을 여러 사용자나 프로세스 간에 어떻게 효율적으로 배분할지—는 고려 대상이 아니다.

따라서 사용자는 OS에 대해 다음과 같이 인식한다:

  • 단일 사용자 환경
  • 사용자 편의성(ease of use) 최우선 ⭐️
  • 성능/보안은 부가적 고려
  • 자원 공유 최적화 중요하지 않음

사용자들은 위 사항들을 기준 삼아서 다음 OS 를 맞게 사용하게 된다:

  • Mobile Devices: UI 를 통한 직접적이고 시각적인 피드백 제공
  • Desktop/Laptop: I/O Device 를 통한 상호작용
  • Embedded Computers: 사용자 개입이 거의 없는 자동화된 장치

따라서 사용자들은 편의성에 맞는 인터페이스를 선택하여 목적과 사용자 행동 방식에 따라 OS의 인식이 완전히 달라지고, 정리하면 다음과 같다.

  • 운영체제 = 인터페이스(행동 방식과 목적)에 따른 인식 → Mobild Devices, Desktop/Laptop, Embedded Systems

1.1.2 System View

첫번째로 컴퓨터 시스템 입장에서 OS는 하드웨어와 가장 밀접하게 연결된 프로그램이며 OS는 자원할당자(Resource Allocator)의 기능을 수행한다고 이해할 수 있다. 컴퓨터 시스템은 문제를 해결하기 위해 다양한 자원이 필요한데 다음과 같다:

  • CPU Time
  • Memory Space
  • Storage Space
  • I/O Devices

운영체제는 이 자원들을 관리하고, 수많은 동시적 요청들을 알맞게 처리할 수 있는 능력을 가져야 한다. 운영체제는 어떤 자원을 어떤 프로그램과 사용자에게 어떻게 배분할 것인지 결정하는 일을 담당하게 되고, 그 목적은 효율성, 공정성을 가져야 한다.

두번째로 컴퓨터 시스템은 OS를 입출력 장치사용자 프로그램을 제어하는 제어 프로그램(Control Program)으로도 볼 수 있다. 운영체제는 사용자 프로그램의 실행을 관리하고 에러 발생이나 시스템의 오용을 방지하는 역할을 수행하며 특히 입출력 장치의 제어와 동작에 큰 비중을 둔다.

System View 에서는 다음과 같이 정리 할 수 있다.

  • 운영체제 = 자원 관리자 (Resource Allocator) → CPU, 메모리, I/O 등의 자원을 효율적이고 공정하게 할당
  • 운영체제 = 제어 프로그램 (Control Program) → 사용자 프로그램 실행을 관리하고 오류와 오용을 방지 → I/O 장치 제어에 특히 집중

1.1.3 Defining Operating Systems

운영체제는 하나로 단정할 수 없는 포괄적 개념이며, 시대와 용도에 따라 진화해 왔다.

  • 초기: 하드웨어 제어를 단순화하는 수단으로 등장
  • 발전: 문제 해결을 지원하는 응용 프로그램과의 연결 고리 역할 수행
  • 오늘날: 모바일/임베디드 환경 등 다양한 분야에 적용되며 구조 복잡도 증가

본질적인 정의

  • 컴퓨터를 사용 가능하게 만드는 공통 기능 집합
  • 입출력 제어, 자원 관리, 응용 프로그램 실행 환경을 제공

운영체제의 구성 범주

위를 총합하여 볼때, 운영체제는 다음과 같이 경계를 나눌 수 있다:

  • Kernel: 항상 실행 중이며, 자원과 프로세스를 직접 관리하는 핵심 소프트웨어
  • System Programs: 운영체제 기능을 보조하는 도구 (예: 셸, 파일 유틸리티)
  • Application Programs: 사용자 목적의 소프트웨어, OS와는 직접 관련 없음

운영체제 = 보통 커널을 중심으로 정의되며, 시스템 프로그램은 포함될 수도 있고, 애플리케이션은 별개로 취급됨


Modern OS

오늘날 모바일 기기를 위한 운영체제를 살펴보자면,

  • 모바일 OS (예: iOS, Android)는 커널 + 미들웨어 + 일부 시스템 프로그램까지 포함
  • 미들웨어(Middleware)는 DB, 멀티미디어, 그래픽 등 고급 기능을 프레임워크 형태로 제공하여 개발자 편의성을 높임

운영체제를 구성하는 기능 수가 점점 증가하고 있으며 코어 커널(Core Kernel) 뿐 아니라 미들웨어(Middleware) 까지도 포함된다. 따라서 새로운 용어까지 포함된 형태가 현대적인 시각에서 OS 를 바라보는 가장 가까운 정의가 될 것이다.

📌 현대적 정의:

운영체제 = Kernel + Middleware Frameworks + Partial System Programs


✒️ 용어

Middleware

미들웨어는 커널과 애플리케이션 사이에서 개발자를 위한 공통 기능을 제공하는 중간 계층 소프트웨어이다.


🔗 출처