Search

[운영체제] 운영체제 사례

제목
Tag
작성일

Linux

오픈 소스 기반의 대표적인 유닉스 계열 운영체제
기본 개요
리눅스는 Linus Torvalds가 처음 개발한 오픈소스 커널 기반 운영체제
GNU 프로젝트의 유틸리티들과 결합되어 하나의 완전한 시스템을 구성
다양한 배포판(Distro) 존재: Ubuntu, CentOS, Debian 등
장점
오픈소스: 무료로 사용 가능, 커스터마이징 유연
안정성/신뢰성: 서버 운영에 적합, 장시간 실행 가능
풍부한 개발 생태계: 커널 및 도구에 대한 활발한 커뮤니티 지원
보안성: 사용자/그룹 권한 관리, 빠른 보안 패치 적용
단점
일반 사용자에게는 GUI 기반 사용성 낮음
상용 소프트웨어 호환성 부족 (MS Office, Adobe 등)
드라이버/하드웨어 호환성에서 이슈가 발생할 수 있음

리눅스 커널

리눅스는 일체형 커널(Monolithic Kernel) 구조를 사용
일체형 커널 (Monolithic Kernel)
운영체제의 핵심 기능(프로세스 관리, 메모리 관리, 파일 시스템, 네트워크, 드라이버 등)이 하나의 커널 공간 내에서 함께 동작
모든 커널 컴포넌트는 동일한 주소 공간에서 실행되어 빠른 성능을 제공
특징
성능이 뛰어남 (시스템 콜과 커널 모듈 간의 전환이 빠름)
모듈화(modularization) 가능 → 필요 시 커널 기능을 동적으로 로드/언로드
단점
커널에 버그가 생기면 시스템 전체에 영향
구조가 커질수록 유지보수가 어려움

임베디드 시스템

특정 기능만 수행하도록 설계된 전용 컴퓨터 시스템
예: 세탁기, 스마트TV, 자동차 ECU, 라우터 등
범용 PC와 달리 입력과 출력이 제한적이며, 소형화되고 저전력
경우에 따라 운영체제 없이 구동되거나, 경량화된 OS 사용

실시간 시스템

정해진 시간 안에 반드시 결과를 제공해야 하는 시스템
정확성뿐 아니라 응답 시간 보장이 중요
주로 제어, 자동화, 통신, 의료 등 분야에서 사용
경성 실시간 시스템 (Hard Real-Time System)
마감 시간을 절대 초과해서는 안 됨
시간 위반 시 시스템 실패로 간주
예: 항공기 제어, 인공심장박동기
연성 실시간 시스템 (Soft Real-Time System)
시간 제한을 최대한 지키는 것이 좋지만 약간의 초과는 허용
예: 영상 스트리밍, 실시간 게임

임베디드 리눅스

임베디드 시스템에 최적화된 경량화된 리눅스 배포판
임베디드 리눅스는 일반 리눅스에서 불필요한 기능을 제거하고, 특정 하드웨어에 맞춰 최소한의 리소스로 동작할 수 있도록 커스터마이징된 운영체제
OpenWrt, Yocto, Buildroot, Raspbian 등 다양한 형태 존재
장점
오픈소스 기반으로 비용 절감 가능
다양한 아키텍처(ARM, MIPS 등) 지원
모듈화와 커스터마이징이 용이
단점
하드웨어 자원이 제한되므로 성능 제약
드라이버/하드웨어 호환 이슈가 있을 수 있음
커널이나 디바이스 트리 설정 등 초기 개발 난이도 존재

Windows

Microsoft에서 개발한 대표적인 상용 운영체제
사용자 친화적인 GUI 환경높은 호환성을 갖춘 데스크탑 중심 OS
초기 버전: 1985년 Windows 1.0 출시 (MS-DOS 위에서 동작)
본격적인 운영체제화: Windows NT 계열부터 자체 커널 기반 OS로 발전
Windows XP, 7, 10, 11 등으로 이어짐
데스크탑, 노트북, 태블릿, 서버 등 광범위한 플랫폼에서 사용됨

윈도우 커널

Windows NT 기반의 커널은 마이크로 커널 구조를 확장한 하이브리드 커널 구조
마이크로커널 + 모놀리식 커널의 장점을 결합한 구조
핵심 기능은 커널 모드에서 수행되며, 유연성과 성능을 모두 고려
I/O 관리자 (I/O Manager)
파일 시스템, 장치 드라이버, 네트워크 요청 등을 일관된 방식으로 처리
다양한 I/O 방식 지원 (동기/비동기, 캐시 등)
GDI (Graphics Device Interface)
윈도우의 그래픽 출력 처리 담당
텍스트, 도형, 이미지 등 사용자 인터페이스 요소를 화면에 렌더링
LPC (Local Procedure Call)
프로세스 간 통신(IPC) 기능 제공
커널 모드와 사용자 모드 간 안전한 데이터 전달 가능
가상 메모리 관리자 (Virtual Memory Manager)
프로세스마다 고유한 가상 주소 공간 제공
페이징, 스왑, 메모리 보호 등 지원
객체 관리자 (Object Manager)
윈도우에서 모든 자원(파일, 프로세스, 쓰레드 등)을 객체로 추상화하여 관리
보안 및 접근 제어 일관성 유지
프로세스 관리자 (Process Manager)
프로세스와 쓰레드의 생성, 종료, 스케줄링 등 전반적인 실행 흐름 관리
보안 관리자 (Security Reference Monitor)
사용자 인증, 접근 제어, 보안 감사 등의 기능 수행
레지스트리 (Registry)
시스템과 응용 프로그램의 설정 정보를 중앙집중적으로 관리하는 DB 구조

Android

모바일 운영체제

스마트폰, 태블릿 등 모바일 기기에 최적화된 운영체제
모바일 운영체제의 특징
터치 인터페이스 중심의 사용자 환경 제공
저전력 설계 및 배터리 효율 고려
무선 네트워크 기반 통신 기능 강화 (Wi-Fi, LTE, Bluetooth 등)
앱 중심 구조: 응용 프로그램을 앱 스토어에서 설치하여 기능 확장
센서 및 하드웨어 통합: GPS, 가속도계, 카메라, 마이크 등 다양한 센서 연동
대표적인 모바일 운영체제
Android
iOS
Apple의 모바일 운영체제로, iPhone, iPad 등에 탑재

안드로이드 특징

ARM, x86 등 다양한 CPU 아키텍처 지원
스마트폰, 태블릿, TV, 웨어러블 등 다양한 디바이스에서 동작 가능
리눅스 기반의 일체형 커널 구조
운영체제는 C, C++로 작성, 응용 프로그램은 Java(Kotlin) 기반
다양한 하드웨어 제조사 지원 → 파편화 문제 존재
다양한 해상도, API 버전, 제조사 커스터마이징 등으로 인해
앱이 일부 기기에서만 동작하거나 호환성 이슈 발생

안드로이드 런타임 (ART: Android Runtime)

Dalvik(기존 가상머신)을 대체한 실행 환경
Dalvik 대비 주요 차이점
Dalvik은 Just-In-Time (JIT) 컴파일 방식 사용 → 앱 실행 시 매번 바이트코드를 해석하며 기계어로 변환
ART는 Ahead-Of-Time (AOT) 컴파일 방식 사용 → 앱 설치 시점에 바이트코드를 미리 기계어로 변환
AOT 컴파일 방식의 특징
초기 설치 시간은 길어질 수 있음
하지만 실행 시점에는 이미 기계어로 변환되어 있어 앱 실행 속도가 빠름
장점
앱 실행 속도 향상
실행 중에 코드를 해석하지 않기 때문에 앱 응답성과 부팅 속도가 개선됨
배터리 효율 개선
실행 중 CPU 연산 부담이 줄어들어 전력 소모가 감소함
메모리 사용량 감소
공유 가능한 기계어 코드 덕분에 중복 로딩이 방지됨
JIT과 AOT 병행 지원 가능 (최신 버전에서는 Hybrid)
실행 중 자주 사용되는 코드만 다시 최적화하여 성능을 유지함
단점
앱 설치 시간이 증가
설치 시 AOT 컴파일을 수행하므로 시간이 더 걸릴 수 있음
앱 저장공간 사용량 증가
바이트코드와 컴파일된 기계어 코드가 함께 저장되기 때문에 저장공간을 더 많이 사용함