Computer >> 컴퓨터 >  >> 시스템 >> Linux

운영 체제(OS)란? 컴퓨터를 구동하는 핵심 소프트웨어 완벽 가이드

운영 체제(Operating System, OS)는 부트 프로그램에 의해 처음 컴퓨터에 로드된 후, 컴퓨터 내 모든 응용 프로그램을 관리하는 프로그램입니다. 응용 프로그램은 정의된 애플리케이션 프로그래밍 인터페이스(API)를 통해 서비스를 요청함으로써 운영 체제를 활용합니다. 또한 사용자는 명령줄 인터페이스(CLI)나 그래픽 사용자 인터페이스(GUI)와 같은 사용자 인터페이스(UI)를 통해 운영 체제와 직접 상호작용할 수 있습니다.

운영 체제는 컴퓨터 소프트웨어와 소프트웨어 개발에 강력한 이점을 제공합니다. 컴퓨터 구동을 위해 특별히 설계된 시스템 소프트웨어인 운영 체제가 없다면, 모든 응용 프로그램이 자체 UI는 물론 디스크 저장소나 네트워크 인터페이스 같은 하위 수준 기능을 처리하는 방대한 코드까지 포함해야 합니다. 다양한 하드웨어 환경과 시스템 소프트웨어 수준에서 실행되어야 할 수많은 소프트웨어 루틴을 고려하면, 이는 모든 애플리케이션의 크기를 비대하게 만들고 소프트웨어 개발을 비현실적으로 만들 것입니다.

대신 운영 체제가 네트워크 패킷 전송이나 디스플레이 같은 표준 출력 장치에 텍스트 표시 등 많은 시스템 수준의 작업을 대신 처리합니다. 시스템 소프트웨어는 응용 프로그램과 하부 컴퓨터 및 하드웨어 기능 사이의 중개자 역할을 하며, 애플리케이션이 세부 사항을 몰라도 하드웨어 및 기타 시스템 수준 기능과 일관되고 반복 가능한 방식으로 상호작용할 수 있게 해줍니다.

모든 응용 프로그램이 동일한 리소스와 서비스에 동일한 방식으로 접근한다면, 운영 체제와 그것이 연동하는 하부 시스템 소프트웨어는 거의 무제한에 가까운 애플리케이션을 지원할 수 있습니다. 이는 애플리케이션 개발 및 디버깅에 필요한 시간과 코딩량을 크게 줄여주며, 사용자가 공통적이고 잘 알려진 OS 인터페이스를 통해 시스템 소프트웨어와 하드웨어를 제어·구성·관리할 수 있도록 보장합니다.

운영 체제는 어떻게 작동할까?

설치된 운영 체제는 방대한 장치 드라이버 라이브러리에 의존하여 특정 하드웨어 환경에 맞게 서비스를 조정합니다. 예를 들어, 모든 애플리케이션이 저장 장치에 공통 호출을 요청하면, 운영 체제는 해당 호출을 받아 적절한 드라이버를 통해 그 컴퓨터의 실제 하드웨어에 필요한 동작이나 명령으로 변환합니다. 운영 체제는 다음 항목들을 식별, 구성, 관리하는 포괄적인 플랫폼을 제공합니다.

  • 프로세서를 포함한 다양한 하드웨어
  • 메모리 장치 및 컴퓨터 메모리 관리
  • 칩셋
  • 저장소
  • 네트워킹
  • VGA(비디오 그래픽 배열), HDMI(고선명 멀티미디어 인터페이스), USB(범용 직렬 버스) 등 포트 통신 인터페이스
  • PCIe(Peripheral Component Interconnect Express) 등 서브시스템 인터페이스

운영 체제의 주요 기능

모든 주요 컴퓨터 플랫폼—하드웨어와 소프트웨어 모두—은 일반적으로 운영 체제를 필요로 하며 포함하고 있고, 각기 다른 폼 팩터(form factor)의 특성에 맞춰 다양한 기능으로 개발됩니다.

최종 사용자 관점에서 운영 체제는 다음 세 가지 필수 기능을 제공합니다.

  1. CLI 또는 GUI를 통한 사용자 인터페이스 제공
  2. 애플리케이션 실행 및 실행 관리
  3. 표준화된 API를 통해 프린터, 백업 디스크 드라이브 등 시스템 하드웨어 자원을 식별하고 애플리케이션에 할당

사용자 인터페이스(UI)

사용자는 아이콘을 클릭하여 시스템 기능을 실행하고 애플리케이션을 시작하는 시각적 화면인 GUI, 데이터 입력을 위한 단일 명령줄로 구성된 CLI, 혹은 두 방식을 모두 통해 컴퓨터와 상호작용하며 업무를 수행할 수 있습니다.

애플리케이션 관리

운영 체제는 모든 애플리케이션의 실행과 관리를 담당하며, 다음 기능을 지원합니다.

  • 다중 프로세스 또는 스레드의 시분할(time-sharing) 처리로 다양한 작업이 프로세서 자원을 공유
  • 애플리케이션이 발생시키는 인터럽트를 관리하여 프로세서의 즉각적인 주의를 확보하고, 다른 프로세스를 방해하지 않으면서 애플리케이션과 해당 데이터를 실행할 충분한 메모리 확보
  • 애플리케이션의 프로세스를 제거할 수 있는 오류 처리 수행
  • 다른 애플리케이션이나 운영 체제 자체를 방해하지 않는 메모리 관리

하드웨어 제공 및 실행

운영 체제는 애플리케이션이 하위 수준의 OS나 하드웨어 상태를 알 필요 없이 OS 및 하드웨어 기능을 사용할 수 있게 해주는 API를 지원합니다. 예를 들어 Windows API는 프로그램이 키보드나 마우스 입력을 받고, 대화상자와 버튼 같은 GUI 요소를 생성하며, 저장 장치에 파일을 읽고 쓸 수 있게 해줍니다. 애플리케이션은 거의 항상 실행될 대상 운영 체제에 맞춰 개발됩니다.

프로세스 스케줄링 및 우선순위 지정

여러 프로그램이 동시에 실행될 수 있는 멀티태스킹 운영 체제에서, OS는 애플리케이션이 실행될 순서와 다른 애플리케이션에 차례를 넘겨주기 전까지 각 애플리케이션에 허용할 시간을 결정합니다. 예를 들어, 대량 인쇄 작업 같은 배치 작업은 리소스가 여유로울 때 나중에 실행되도록 예약할 수 있습니다.

병렬 처리

병렬 처리를 지원하는 컴퓨터에서 운영 체제는 하나의 프로그램을 여러 프로세서에서 동시에 실행되도록 분배하는 방식을 관리합니다.

파일 관리

운영 체제는 사용자 요청, IT 규칙 집합 또는 기본 설정에 따라 파일과 디렉터리의 생성, 접근, 수정, 삭제를 관리합니다.

네트워킹

사용자에게 투명하게, 운영 체제는 네트워크 프로토콜을 해석하고 네트워크에 연결함으로써 워크스테이션을 네트워크 전역의 리소스에 자동으로 연결합니다. 이를 통해 단일 사용자가 네트워크에 호스팅된 네트워크 프린터와 서버에 접근할 수 있습니다.

보안

운영 체제는 IT가 정의하고 승인한 정책에 따라 사용자, 애플리케이션, 데이터에 대한 보안 접근 제어와 암호화를 강제합니다.

성능 모니터링 및 오류 감지

운영 체제는 컴퓨터 성능을 지속적으로 모니터링하고 시스템 로그를 생성하여 최적 성능을 위한 미세 조정과 리소스 활용, 성능 저하, 병목 현상, 오류 해결에 도움을 줍니다.

백업 및 복구

데이터는 하루 중 주기적으로, 매일 밤, 매주 또는 정의된 어떤 빈도로든 백업될 수 있습니다. 운영 체제는 사용자나 IT의 도움 없이 이러한 백업을 자동으로 수행할 수 있습니다. 데이터 유실이나 시스템 장애가 발생하면 최신 백업에서 손쉽게 데이터를 복구할 수 있습니다.

가상화

대부분의 운영 체제는 소프트웨어로 생성된 파티션을 사용해 하나의 물리적 워크스테이션에서 여러 운영 체제가 서로 독립적으로 실행되도록 지원합니다. 이를 통해 사용자는 단일 워크스테이션에서 각자 전용 OS를 가진 여러 애플리케이션을 동시에 실행하여 성능을 최적화할 수 있습니다.

장치 관리

운영 체제는 프린터, 키보드 등 입출력 장치 및 기타 컴퓨터 하드웨어를 식별, 구성하고 애플리케이션에 공통 접근 경로를 제공합니다. OS가 하드웨어를 인식하면 해당 장치 드라이버와 인터페이스를 설치하여 OS와 그 위에서 실행되는 애플리케이션이 장치를 사용할 수 있게 합니다.

예를 들어 운영 체제는 올바른 프린터를 식별하고 적절한 프린터 드라이버를 설치하여, 애플리케이션이 해당 프린터 고유의 코드나 명령 없이 프린터 호출만으로 인쇄할 수 있게 합니다. 이 과정은 다음과 같은 다른 장치에서도 유사하게 진행됩니다.

  • USB 포트
  • 네트워크 포트
  • GPU(그래픽 처리 장치) 등 그래픽 장치
  • 메인보드 칩셋
  • SAS(Serial-Attached SCSI) 디스크 어댑터와 적절한 파일 시스템으로 포맷된 디스크 등 저장 장치

운영 체제는 물리적·논리적 장치를 식별하고 서비스 가능하도록 구성하며, 일반적으로 Windows 레지스트리 같은 표준화된 구조에 기록합니다. 장치 제조업체는 주기적으로 드라이버를 패치하고 업데이트하며, 최적의 장치 성능과 보안을 위해 OS가 이를 갱신해야 합니다. 장치가 교체되면 OS는 새 드라이버를 설치하고 구성합니다.

운영 체제의 종류와 예시

운영 체제의 근본적인 역할은 어디서나 동일하지만, 실제로는 다양한 하드웨어와 사용자 요구를 충족하는 셀 수 없이 많은 운영 체제가 존재합니다.

범용 운영 체제

범용 운영 체제는 폭넓은 하드웨어에서 다양한 애플리케이션을 실행할 수 있으며, 사용자가 하나 이상의 애플리케이션이나 작업을 동시에 수행할 수 있게 합니다. 범용 OS는 여러 데스크톱과 노트북 모델에 설치되어 회계 시스템부터 데이터베이스, 웹 브라우저, 게임에 이르는 애플리케이션을 실행합니다. 범용 OS는 일반적으로 프로세스(스레드)와 하드웨어 관리에 중점을 두어 애플리케이션이 다양한 컴퓨팅 하드웨어를 안정적으로 공유하도록 보장합니다.

대표적인 데스크톱 운영 체제는 다음과 같습니다.

  • Windows: 마이크로소프트의 대표 운영 체제로, 가정용 및 비즈니스용 컴퓨터의 사실상 표준입니다. 1985년에 처음 선보인 GUI 기반 OS로, 이후 수많은 버전이 출시되었습니다. 특히 사용자 친화적인 Windows 95는 개인 컴퓨팅의 급속한 발전에 크게 기여했습니다.
  • macOS(Mac OS): 애플의 PC 및 워크스테이션 라인업을 위한 운영 체제입니다.
  • Unix: 유연성과 적응성을 위해 설계된 다중 사용자 운영 체제입니다. 1970년대에 개발된 Unix는 C 언어로 작성된 최초의 운영 체제 중 하나입니다.
  • Linux: 오픈소스 커뮤니티에서 만든 Unix 계열 운영 체제로, PC 사용자에게 무료 또는 저비용 OS 대안을 제공하기 위해 설계되었습니다. Linux는 효율적이고 빠른 성능으로 좋은 평판을 얻고 있습니다.

모바일 운영 체제

모바일 운영 체제는 스마트폰과 태블릿 같은 모바일 컴퓨팅 및 통신 중심 기기를 위해 설계되었습니다. 모바일 기기는 전통적인 PC에 비해 컴퓨팅 자원이 제한적이므로, OS는 자체 리소스 사용을 최소화하도록 크기와 복잡성이 축소되면서도 기기에서 실행되는 애플리케이션에 충분한 자원을 보장해야 합니다. 모바일 OS는 효율적인 성능, 빠른 사용자 반응성, 미디어 스트리밍 지원 같은 데이터 처리 작업에 대한 세심한 관리를 강조합니다. Apple iOS와 Android가 대표적인 모바일 운영 체제입니다.

임베디드 운영 체제

모든 컴퓨팅 기기가 범용적인 것은 아닙니다. 홈 디지털 어시스턴트, ATM(자동입출금기), 항공기 시스템, 매장 POS 단말기, IoT(사물인터넷) 기기 등 방대한 종류의 전용 기기들은 더 맞춤화되고 '경량화된' 운영 체제를 사용합니다. 임베디드 OS와 범용 OS의 주된 차이는 임베디드 OS가 탑재된 기기는 한 가지 주요 기능만 수행하기 때문에 OS가 고도로 축소되고 성능과 안정성에 전념한다는 점입니다. 임베디드 OS는 빠르게 실행되고, 충돌하지 않으며, 모든 오류를 우아하게 처리하여 어떤 상황에서도 작동을 지속해야 합니다. 대부분의 경우 OS는 실제 기기에 통합된 칩에 제공됩니다. 예를 들어 환자 생명 유지 장비에 사용되는 의료 기기는 환자의 생명을 유지하기 위해 반드시 안정적으로 작동해야 하는 임베디드 OS를 사용합니다. Embedded Linux가 임베디드 OS의 한 예입니다.

네트워크 운영 체제(NOS)

네트워크 운영 체제(NOS)는 로컬 영역 네트워크(LAN)에서 작동하는 기기 간의 통신을 원활하게 하기 위한 또 다른 특수 운영 체제입니다. NOS는 네트워크 프로토콜을 이해하여 네트워크 패킷을 생성, 교환, 분해하는 데 필요한 통신 스택을 제공합니다. 오늘날에는 다른 OS들이 네트워크 통신을 처리하기 때문에 특수 NOS라는 개념은 상당히 쓸모없어졌습니다. 예를 들어 Windows 10과 Windows Server 2019는 포괄적인 네트워킹 기능을 포함하고 있습니다. 그럼에도 NOS 개념은 라우터, 스위치, 방화벽 같은 일부 네트워킹 장비에는 여전히 사용되며, 제조업체들은 Cisco IOS(Internetwork Operating System)나 MikroTik의 오픈소스 RouterOS 같은 독점 NOS를 채택하고 있습니다.

실시간 운영 체제(RTOS)

컴퓨팅 기기가 일정하고 반복 가능한 시간 제약 내에서 실제 세계와 상호작용해야 할 때, 기기 제조업체는 실시간 운영 체제(RTOS)를 선택할 수 있습니다. 예를 들어 산업 제어 시스템은 광대한 공장이나 발전소의 운영을 지시할 수 있습니다. 이러한 시설은 무수한 센서로부터 신호를 받아 밸브, 액추에이터, 모터 등 수많은 장치를 작동시키는 신호를 보냅니다. 이런 상황에서 산업 제어 시스템은 변화하는 실제 조건에 빠르고 예측 가능하게 대응해야 하며, 그렇지 못하면 재앙이 발생할 수 있습니다. RTOS는 다른 유형의 운영 체제에서는 용납될 수 있는 버퍼링, 처리 지연 등의 딜레이 없이 작동해야 합니다. FreeRTOS와 Wind River VxWorks가 RTOS의 예입니다.

운영 체제 유형 간의 차이는 절대적이지 않으며, 일부 OS는 다른 유형의 특성을 공유합니다. 예를 들어 범용 OS는 전통적인 NOS의 네트워킹 기능을 당연하게 포함합니다. 마찬가지로 임베디드 운영 체제는 흔히 RTOS의 속성을 포함하고, 모바일 운영 체제는 다른 범용 OS처럼 다수의 앱을 동시에 실행할 수 있습니다.

분산 운영 체제

네트워크에 설치된 분산 운영 체제는 수많은 워크스테이션, 특히 상주 애플리케이션이나 데이터가 거의 없거나 전혀 없는 씬 클라이언트(thin client) 컴퓨터에 서비스를 제공할 수 있습니다. 여러 사용자가 더 큰 분산 네트워크 서버에 호스팅된 애플리케이션과 리소스에 접근·공유하며, 이러한 서버의 OS는 다수 사용자 워크스테이션의 접근 요청과 리소스 소비를 관리합니다. Microsoft Windows Server와 서버용 오픈소스 Linux의 다양한 배포판이 분산 OS의 예입니다.

클러스터 운영 체제

클러스터 운영 체제는 하나의 시스템처럼 함께 작동하는 컴퓨터 클러스터를 구동하도록 설계된 OS입니다. AI(인공지능) 처리는 빠르고 동시적인 병렬 데이터 처리가 필요하므로 클러스터 컴퓨팅의 대표적인 사례입니다. 증권 중개 시스템처럼 수천 건의 거래를 실시간으로 동시에 처리해야 하는 고성능 컴퓨팅 시스템 역시 클러스터 컴퓨팅의 활용 사례입니다. Rocks Cluster Distribution과 오픈소스 Open MPI가 클러스터 컴퓨팅 OS의 두 가지 예입니다.

운영 체제(OS)에 대해 더 읽기

  • 운영 체제 변경을 고민하는 데이터센터를 위한 조언
  • Windows 11, 드디어 출격 준비를 마쳤을까?
  • 메인프레임 인력난, 내부자 vs 외부자 관점
  • Windows 11 업그레이드 프로젝트 계획 방법
  • Windows 10 지원 종료 시기와 연장 방법