문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.

os | |
정의 | OS는 여러 뜻을 가진 동음이의어입니다. |
주요 의미 | 운영 체제 (Operating System)의 약자 |
기타 의미 | 순서통계량 (Order statistic) 오세트어의 ISO 639 부호 os 오스뮴의 원소 기호 Os 오스트리아 항공 (Austrian Airlines)의 IATA 부호 OS 시리아 (Syria)의 ICAO 국가 코드 OS (O: 중동, S: 시리아) 열린집합 (Open set) 오리지널 스타벅스 (Original Starbucks) 오픈 소스 (Open source) 유기 합성 (Organic synthesis) |
문서 유형 | 동음이의어 문서 |
상세 정보 | |

OS는 여러 분야에서 사용되는 약어 및 기호로, 다양한 의미를 지닌 동음이의어이다. 가장 널리 알려진 의미는 컴퓨터 시스템의 핵심 소프트웨어인 운영 체제(Operating System)의 약자이다. 운영 체제는 컴퓨터의 하드웨어 자원을 관리하고 응용 프로그램에 서비스를 제공하여 사용자가 컴퓨터를 효율적으로 사용할 수 있게 한다.
이 외에도 통계학에서 순서통계량(Order statistic)을 의미하며, 언어 코드로는 오세트어의 ISO 639 부호 'os'가 있다. 화학에서는 오스뮴의 원소 기호로 'Os'를 사용한다. 항공 분야에서는 오스트리아 항공의 IATA 부호가 'OS'이며, ICAO 국가 코드에서 'OS'는 시리아를 가리킨다.
수학에서는 열린집합(Open set)을, 상표명으로는 스타벅스의 초기 매장을 의미하는 오리지널 스타벅스(Original Starbucks)가 있다. 기술 및 과학 분야에서는 오픈 소스(Open source)와 유기 합성(Organic synthesis)의 약어로도 사용된다. 따라서 문맥에 따라 정확한 의미를 확인하는 것이 필요하다.

운영 체제의 역사는 컴퓨팅의 발전과 밀접하게 연결되어 있다. 초기 컴퓨터에는 운영 체제라는 개념이 존재하지 않았다. 사용자는 기계어로 직접 프로그램을 작성하고 하드웨어를 제어해야 했다. 1950년대에 이르러 메인프레임 컴퓨터가 등장하면서, 반복되는 작업을 자동화하고 시스템 자원을 효율적으로 관리할 필요성이 대두되었다. 이 시기에 등장한 초기 시스템 관리 프로그램이 현대적 운영 체제의 시초가 된다.
1960년대에는 일괄 처리 시스템이 발전하여 펀치 카드에 기록된 작업을 순차적으로 처리하는 방식이 보편화되었다. 이어서 시분할 시스템과 다중 프로그래밍 개념이 도입되면서, 단일 컴퓨터를 여러 사용자가 동시에 사용하거나 여러 프로그램이 교대로 실행될 수 있는 환경이 조성되었다. 이 시기의 대표적인 운영 체제로는 IBM의 OS/360과 벨 연구소에서 개발된 유닉스의 초기 버전이 있다.
1970년대와 1980년대에는 마이크로프로세서의 발전으로 개인용 컴퓨터가 등장하면서 운영 체제의 역사에 새로운 전환점이 찾아왔다. MS-DOS와 같은 CP/M 호환 운영 체제가 개인용 컴퓨터 시장을 주도했으며, 애플의 매킨토시 시스템은 최초로 상업적으로 성공한 그래픽 사용자 인터페이스를 탑재했다. 1990년대에는 마이크로소프트의 윈도우 운영 체제가 대중화되며 데스크톱 시장을 장악하게 된다.
21세기에 들어서는 인터넷의 보급과 스마트폰의 등장으로 운영 체제의 범위가 크게 확장되었다. 리눅스 커널은 서버와 임베디드 시스템 분야에서 강력한 입지를 다졌으며, 구글의 안드로이드와 애플의 iOS는 모바일 운영 체제의 양대 산맥으로 자리 잡았다. 최근에는 클라우드 컴퓨팅과 가상화 기술의 발전에 따라 운영 체제의 역할과 형태가 계속해서 진화하고 있다.

운영 체제의 핵심 기능 중 하나인 프로세스 관리는 컴퓨터 시스템에서 실행 중인 프로그램, 즉 프로세스의 생성, 실행, 종료, 그리고 이들 간의 자원 공유와 통신을 총괄하는 역할을 한다. 운영 체제는 중앙 처리 장치의 시간을 각 프로세스에 효율적으로 할당하여 여러 작업이 동시에 실행되는 것처럼 보이게 하는 멀티태스킹을 가능하게 한다. 이 과정에서 스케줄링 알고리즘이 사용되어 프로세스의 우선순위를 결정하고 자원을 배분한다.
또한 프로세스 관리에는 프로세스 동기화와 교착 상태 방지가 포함된다. 여러 프로세스가 동일한 메모리 영역이나 입출력 장치와 같은 자원에 접근하려 할 때 발생할 수 있는 충돌을 방지하고, 프로세스 간의 통신을 조정하는 것이 중요하다. 운영 체제는 세마포어나 뮤텍스와 같은 동기화 도구를 제공하여 시스템의 안정성과 데이터의 일관성을 보장한다.
운영 체제의 메모리 관리는 컴퓨터의 주기억장치인 램(RAM)을 효율적으로 할당하고 관리하는 핵심 기능이다. 이는 여러 프로그램이 동시에 실행되는 멀티태스킹 환경에서 각 프로그램과 데이터에 필요한 메모리 공간을 안정적으로 제공하고, 제한된 물리적 메모리 자원을 최대한 활용하기 위해 필수적이다.
주요 역할은 가상 메모리 시스템을 통해 구현된다. 이 시스템은 각 프로세스에게 독립적인 큰 주소 공간을 제공하는 동시에, 실제 물리 메모리보다 큰 프로그램을 실행할 수 있게 한다. 사용 빈도가 낮은 데이터는 하드 디스크나 SSD 같은 보조기억장치로 옮겨 저장(스왑 아웃)하고 필요할 때 다시 불러온다(스왑 인). 또한, 메모리 보호 기능을 통해 한 프로세스가 다른 프로세스의 메모리 영역을 침범하지 못하도록 제어하여 시스템의 안정성을 보장한다.
메모리 관리의 구체적인 기법으로는 메모리를 고정 크기 블록으로 나누어 할당하는 페이징과 가변 크기 세그먼트로 관리하는 세그먼테이션이 널리 사용된다. 현대 운영 체제는 이 둘을 결합한 세그먼트 페이징 방식을 주로 채택한다. 이러한 관리 하에서 메모리 할당과 메모리 해제가 지속적으로 이루어지며, 사용이 끝난 메모리 공간을 회수하여 재활용하는 가비지 컬렉션 기능을 내장한 운영 체제도 있다.
효율적인 메모리 관리는 시스템 전체의 성능과 반응 속도에 직접적인 영향을 미친다. 메모리 단편화를 최소화하고, 자주 접근하는 데이터를 캐시에 유지하며, 페이지 교체 알고리즘을 통해 스왑 동작을 최적화하는 것은 운영 체제 설계의 중요한 과제이다.
파일 시스템 관리는 운영 체제가 컴퓨터의 보조 기억 장치에 저장된 데이터를 체계적으로 조직하고, 접근하며, 보호하는 핵심 기능이다. 이는 사용자와 응용 소프트웨어에게 데이터를 파일과 디렉토리(폴더)의 형태로 논리적으로 구조화하여 제공하는 추상화 계층을 만든다. 운영 체제는 하드 디스크 드라이브, SSD, USB 메모리와 같은 다양한 저장 매체에 대해 파일 시스템을 생성하고 관리하며, 데이터의 효율적인 저장, 검색, 업데이트 및 삭제를 보장한다.
주요 관리 작업에는 파일의 생성과 삭제, 디렉토리 구조 관리, 메타데이터(파일명, 크기, 생성 시간, 접근 권한 등) 유지, 그리고 디스크 공간의 할당이 포함된다. 또한, 접근 제어를 통해 다중 사용자 환경에서 파일에 대한 읽기, 쓰기, 실행 권한을 관리하여 보안을 유지한다. 파일 시스템은 FAT, NTFS, ext4, APFS 등 다양한 형식으로 존재하며, 각각의 특성과 호환성을 가진다.
이 관리 기능은 사용자에게 복잡한 물리적 저장 장치의 세부 사항을 숨기고, 직관적인 경로를 통해 파일을 찾고 조작할 수 있는 인터페이스를 제공한다. 따라서 파일 시스템 관리는 데이터의 무결성과 시스템의 전반적인 안정성을 유지하는 데 필수적인 역할을 한다.
[정보 테이블 확정 사실]에 따라 이 문서는 동음이의어 문서이며, 작성할 '장치 관리' 섹션은 '운영 체제'의 하위 기능에 해당한다. 따라서 이 섹션은 운영 체제의 기능 중 하나인 장치 관리에 대한 설명으로 작성한다.
운영 체제의 장치 관리(Device Management)는 컴퓨터 시스템에 연결된 다양한 하드웨어 자원을 효율적으로 제어하고 조정하는 핵심 기능이다. 이는 중앙 처리 장치(CPU), 주기억장치(RAM), 입출력 장치(I/O Device) 등 모든 물리적 장치와 가상 장치를 포함한다. 운영 체제는 이러한 장치들에 대한 추상화 계층을 제공하여, 응용 프로그램이 복잡한 하드웨어의 세부 사항을 직접 알지 못해도 표준화된 방식으로 장치를 이용할 수 있게 한다.
주요 관리 대상은 키보드, 마우스, 모니터, 프린터와 같은 기본 입출력 장치부터, 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD) 같은 저장 장치, 그리고 네트워크 인터페이스 카드(NIC), 그래픽 처리 장치(GPU) 등이 있다. 운영 체제는 각 장치를 제어하는 전용 소프트웨어인 장치 드라이버(Device Driver)를 통해 하드웨어와 통신한다. 사용자가 새로운 주변기기를 연결하면, 운영 체제는 적절한 드라이버를 로드하여 장치를 인식하고 사용 가능한 상태로 만든다.
장치 관리의 핵심 과제는 자원 할당(Resource Allocation)과 충돌 방지이다. 여러 프로세스가 동시에 하나의 장치(예: 프린터)를 요구할 경우, 운영 체제는 스케줄링 알고리즘을 통해 요청 순서를 조정하고 공정하게 접근할 수 있도록 한다. 또한, 직접 메모리 접근(DMA)과 같은 기술을 활용하여 CPU의 부담을 줄이면서 고속의 데이터 전송을 관리하기도 한다. 이를 통해 시스템 전체의 성능과 안정성을 유지한다.
사용자 인터페이스는 운영 체제가 사용자와 컴퓨터 간의 상호작용을 가능하게 하는 핵심적인 부분이다. 이는 사용자가 하드웨어와 소프트웨어 자원을 쉽게 제어하고 명령을 내릴 수 있도록 하는 접점 역할을 한다. 사용자 인터페이스의 발전은 컴퓨터의 대중화에 결정적인 영향을 미쳤다.
초기의 운영 체제는 텍스트 사용자 인터페이스(TUI) 또는 명령 줄 인터페이스(CLI)를 주로 사용했다. 사용자는 키보드로 정해진 형식의 텍스트 명령어를 입력하여 시스템을 조작해야 했다. 이후 등장한 그래픽 사용자 인터페이스(GUI)는 아이콘, 창, 메뉴를 마우스로 클릭하는 방식을 도입하여 컴퓨터 사용을 훨씬 직관적이고 쉽게 만들었다. 애플의 매킨토시와 마이크로소프트의 윈도우는 GUI의 대중화를 이끈 대표적인 운영 체제이다.
최근의 사용자 인터페이스는 터치스크린, 음성 인식, 제스처 인식 등 다양한 입력 방식을 통합하는 방향으로 진화하고 있다. 스마트폰과 태블릿 컴퓨터의 운영 체제인 안드로이드와 iOS는 멀티터치 기반의 인터페이스를 표준으로 채택했다. 또한, 가상 현실과 증강 현실 환경을 위한 새로운 형태의 인터페이스도 활발히 연구 개발 중이다.

데스크톱 운영 체제는 개인용 컴퓨터나 워크스테이션에서 사용자를 위해 설계된 운영 체제이다. 주로 개인이 문서 작성, 인터넷 검색, 멀티미디어 재생, 게임 등 다양한 응용 프로그램을 실행하는 데 사용된다. 이러한 시스템은 일반적으로 그래픽 사용자 인터페이스를 제공하여 마우스와 키보드를 통해 직관적으로 조작할 수 있도록 한다. 대표적인 예로는 마이크로소프트의 윈도우, 애플의 macOS, 그리고 다양한 배포판을 가진 리눅스가 있다.
데스크톱 운영 체제는 사용자 친화성을 최우선으로 설계된다. 파일 관리자, 웹 브라우저, 메일 클라이언트, 미디어 플레이어와 같은 기본 응용 프로그램을 포함하며, 서드파티 소프트웨어를 쉽게 설치하고 실행할 수 있는 환경을 제공한다. 하드웨어 드라이버 지원이 광범위하여 다양한 프린터, 스캐너, 그래픽 카드, 사운드 카드 등 주변기기와의 호환성을 보장하는 것도 중요한 특징이다.
이러한 운영 체제는 일반적으로 멀티태스킹을 지원하여 여러 프로그램을 동시에 실행할 수 있으며, 멀티유저 환경도 제공한다. 최근에는 클라우드 서비스와의 통합, 가상 데스크톱 기능, 향상된 보안 체계 등이 강화되는 추세이다. 윈도우는 가장 널리 사용되는 데스크톱 운영 체제이며, macOS는 애플 하드웨어와의 긴밀한 통합과 사용자 경험에 중점을 둔다. 리눅스는 오픈 소스 기반으로 높은 사용자 정의가 가능하고 여러 배포판을 통해 다양한 선택지를 제공한다.
서버 운영 체제는 네트워크를 통해 다른 컴퓨터인 클라이언트에게 자원과 서비스를 제공하는 서버 컴퓨터를 구동하기 위해 설계된 운영 체제이다. 데스크톱 운영 체제나 모바일 운영 체제와 달리, 안정성, 보안, 네트워크 처리 능력, 그리고 다중 사용자 및 다중 애플리케이션 지원에 중점을 둔다. 이러한 시스템은 웹 서버, 데이터베이스 서버, 메일 서버, 파일 서버 등 다양한 서버 역할을 수행하는 데 사용된다.
주요 서버 운영 체제로는 리눅스 배포판(우분투 서버, 센트OS, 레드햇 엔터프라이즈 리눅스), 유닉스 계열(FreeBSD), 그리고 마이크로소프트의 윈도우 서버 시리즈가 있다. 이들은 일반적으로 명령 줄 인터페이스(CLI)를 중심으로 관리되며, 원격 관리 도구를 통해 물리적으로 접근하지 않고도 시스템을 제어하고 모니터링할 수 있다.
서버 운영 체제의 핵심 기능에는 고급 메모리 관리, 강력한 파일 시스템(예: EXT4, ZFS, NTFS), 가상화 지원, 그리고 포괄적인 네트워크 보안 및 방화벽 도구가 포함된다. 또한 클라우드 컴퓨팅 인프라와 컨테이너 기술(예: 도커, 쿠버네티스)의 기반 플랫폼으로서도 핵심적인 역할을 한다.
모바일 운영 체제는 스마트폰, 태블릿 컴퓨터, 스마트워치 등 휴대용 기기에 탑재되어 하드웨어를 관리하고 응용 소프트웨어를 실행하기 위한 플랫폼을 제공하는 운영 체제이다. 데스크톱 운영 체제와 비교하여 전력 효율성, 터치 기반 사용자 인터페이스, 모바일 통신 기능(예: 셀룰러 네트워크, Wi-Fi, 블루투스)에 대한 최적화가 두드러진 특징이다. 또한 앱 스토어를 통한 중앙 집중식 소프트웨어 배포 모델이 일반적이다.
주요 모바일 운영 체제로는 구글이 개발한 안드로이드와 애플이 개발한 iOS가 시장을 양분하고 있다. 안드로이드는 리눅스 커널을 기반으로 한 오픈 소스 운영 체제로, 삼성, LG, 화웨이 등 다양한 제조사의 기기에 탑재된다. 반면 iOS는 애플의 아이폰과 아이패드에만 탑재되는 폐쇄형 시스템이다. 이 외에도 과거에는 마이크로소프트의 윈도우 폰, 블랙베리의 블랙베리 OS 등이 경쟁했으나 현재는 시장 점유율이 미미하다.
모바일 운영 체제의 구조는 일반적으로 커널, 미들웨어, 사용자 인터페이스 프레임워크, 핵심 애플리케이션으로 구성된다. 커널은 메모리 관리, 프로세스 스케줄링, 장치 드라이버와 같은 핵심 서비스를 제공한다. 사용자와의 상호작용은 주로 그래픽 사용자 인터페이스와 제스처 인식을 통해 이루어진다. 보안 측면에서는 샌드박싱 기술을 통해 애플리케이션을 격리하고, 권한 시스템을 통해 사용자 데이터에 대한 접근을 통제한다.
이러한 운영 체제의 발전은 모바일 인공지능 비서, 증강 현실, 모바일 게임, 모바일 뱅킹 등 다양한 고급 서비스의 기반이 되었다. 또한 사물인터넷과의 연동을 통해 스마트 홈 기기나 웨어러블 기기를 제어하는 허브 역할도 수행하고 있다.
임베디드 운영 체제는 특정 기능을 수행하는 전용 컴퓨터 시스템인 임베디드 시스템에 최적화된 운영 체제이다. 일반적인 데스크톱 컴퓨터나 서버용 운영 체제와 달리, 제한된 하드웨어 자원(예: 메모리, CPU 성능) 내에서 특정 작업을 안정적이고 효율적으로 처리하는 데 중점을 둔다. 이러한 시스템은 사용자와의 직접적인 상호작용보다는 장치 내부에서 자동화된 제어를 수행하는 경우가 많다.
주로 가전제품, 산업용 로봇, 의료 기기, 자동차의 전자 제어 장치(ECU), 스마트폰 및 스마트워치와 같은 모바일 장치 등에 널리 사용된다. 임베디드 운영 체제는 실시간 처리가 필요한지 여부에 따라 실시간 운영 체제(RTOS)와 비실시간 운영 체제로 구분될 수 있다.
대표적인 임베디드 운영 체제로는 리눅스의 경량화 버전인 임베디드 리눅스, 윈도우 임베디드, VxWorks, FreeRTOS, QNX, 임베디드 안드로이드 등이 있다. 이들은 장치의 요구 사항에 맞춰 커널 크기와 시스템 서비스를 최소화하거나, 특정 마이크로컨트롤러 아키텍처를 지원하도록 포팅된다.
임베디드 운영 체제의 주요 설계 목표는 신뢰성, 낮은 전력 소비, 빠른 시작 시간, 그리고 제한된 자원 환경에서의 효율적인 동작이다. 이는 복잡한 사용자 인터페이스나 다양한 응용 프로그램을 동시에 실행하는 일반 목적의 운영 체제와는 상당히 다른 특징이다.
실시간 운영 체제는 작업 처리에 엄격한 시간 제약이 있는 시스템에서 사용되는 특수한 운영 체제이다. 이는 작업이 정해진 데드라인 내에 반드시 완료되어야 하는 환경, 즉 실시간 시스템에 적합하도록 설계되었다. 이러한 시스템은 단순히 빠른 처리 속도보다는 예측 가능하고 결정적인 응답 시간을 보장하는 것이 핵심 목표이다. 실시간 운영 체제는 일반적으로 커널이 매우 간결하며, 인터럽트 처리와 문맥 교환에 소요되는 시간이 엄격하게 제어된다.
실시간 운영 체제는 데드라인의 엄격성에 따라 경성 실시간 시스템과 연성 실시간 시스템으로 구분된다. 경성 실시간 시스템에서는 데드라인을 초과하는 것이 시스템 전체의 실패로 이어질 수 있어 절대 허용되지 않는다. 반면, 연성 실시간 시스템에서는 데드라인을 간헐적으로 초과하더라도 시스템의 전체적인 유용성이 크게 저하되지 않는다. 이러한 특성 때문에 실시간 운영 체제는 자동차의 엔진 제어 장치, 항공 전자 장비, 산업용 로봇, 의료 장비 등과 같이 시간에 민감한 임베디드 시스템에 널리 적용된다.
실시간 운영 체제의 주요 기능으로는 선점형 스케줄링, 낮은 대기 시간, 높은 신뢰성 등을 들 수 있다. 대표적인 실시간 운영 체제로는 VxWorks, QNX, FreeRTOS, RTOS-UCOS/III 등이 있다. 또한, 일반적인 리눅스나 마이크로소프트 윈도우에 실시간 확장 패치를 적용하여 실시간 성능을 부여하는 경우도 있다.

마이크로소프트가 개발한 운영 체제인 윈도우는 개인용 컴퓨터 시장에서 가장 널리 사용되는 데스크톱 운영 체제 계열이다. 초기 버전은 MS-DOS 기반의 그래픽 사용자 인터페이스 환경으로 출발했으며, 이후 독립적인 운영 체제로 발전했다. 윈도우 95와 윈도우 XP는 대중적인 성공을 거두며 컴퓨팅 환경을 크게 변화시켰다.
현재의 주요 버전인 윈도우 10과 윈도우 11은 터치스크린 입력을 적극 지원하고, 마이크로소프트 스토어를 통한 앱 배포, 클라우드 컴퓨팅 서비스와의 긴밀한 통합 등의 특징을 가진다. 또한 가상화 기술과 보안 기능이 내장되어 기업 환경에서도 광범위하게 활용된다.
이 운영 체제는 호환성과 광범위한 하드웨어 지원으로 유명하며, 수많은 소프트웨어와 주변기기가 윈도우를 우선적으로 지원한다. 서버 시장을 위한 윈도우 서버 계열도 별도로 제공되어, 네트워크 관리와 데이터베이스 호스팅 등 다양한 서버 역할을 수행한다.
macOS는 애플이 개발하고 매킨토시 컴퓨터에 탑재하는 운영 체제이다. 초기에는 매킨토시 운영 체제라는 명칭으로 불렸으며, 이후 OS X이라는 이름을 거쳐 현재의 macOS로 명명되었다. 이 운영 체제는 유닉스 기반의 BSD와 넥스트스텝의 기술을 토대로 만들어져 높은 안정성과 보안성을 특징으로 한다. GUI와 사용자 경험에 중점을 둔 디자인 철학을 바탕으로, 아쿠아 인터페이스와 같은 시각적 요소로도 유명하다.
macOS의 주요 기능으로는 프로세스 관리, 메모리 관리, 파일 시스템 관리, 장치 관리 등 전통적인 운영 체제의 역할을 수행한다. 특히 자체 개발한 APFS 파일 시스템을 사용하며, 시에라 버전부터 기본 파일 시스템으로 채택했다. 사용자 인터페이스 측면에서는 독, 메뉴 막대, 파인더와 같은 요소를 통해 직관적인 조작 환경을 제공한다.
이 운영 체제는 애플의 하드웨어와 긴밀하게 통합되어 최적의 성능을 발휘하도록 설계되었다. 인텔 마이크로프로세서를 사용하는 시기를 거쳐, 현재는 애플 자체 설계 ARM 기반의 애플 실리콘 칩으로 전환되었다. 소프트웨어 생태계는 맥 앱 스토어를 중심으로 구성되어 있으며, iOS 및 iPadOS와의 연동 기능도 점차 강화되고 있다.
주요 버전은 매년 큰 업데이트 형태로 출시되며, 출시명은 주로 캘리포니아의 지명을 따서 명명된다. 시에라, 하이 시에라, 모하비, 카탈리나, 빅서, 몬터레이, 벤투라, 소노마 등이 대표적이다. 각 버전은 성능 개선, 보안 강화, 새로운 기능 추가를 통해 지속적으로 발전해 왔다.
리눅스(Linux)는 리누스 토르발스가 1991년 처음 공개한 유닉스 계열의 커널로 시작하여, 현재는 완전한 운영 체제를 의미하는 널리 사용되는 용어가 되었다. 엄밀히 말하면 리눅스는 운영 체제의 핵심 부분인 커널 자체를 가리키지만, 일반적으로는 이 커널과 GNU 프로젝트의 시스템 소프트웨어 및 다양한 응용 프로그램이 결합된 배포판을 총칭한다. 이러한 배포판은 리눅스 배포판이라고 불리며, 우분투, 페도라, 데비안 등이 대표적이다.
리눅스의 가장 큰 특징은 오픈 소스 소프트웨어라는 점이다. GNU 일반 공중 사용 허가서(GPL)와 같은 자유 소프트웨어 라이선스 하에 배포되어, 누구나 소스 코드를 자유롭게 보고, 수정하고, 재배포할 수 있다. 이러한 개방성과 자유도는 전 세계 수많은 개발자와 기업이 자발적으로 참여하는 생태계를 만들어냈으며, 이는 리눅스의 빠른 발전과 높은 안정성의 기반이 되었다.
리눅스는 그 유연성으로 인해 다양한 환경에서 사용된다. 초기에는 주로 서버와 워크스테이션 분야에서 강세를 보였으며, 현재도 전 세계 웹 서버, 클라우드 컴퓨팅 인프라, 슈퍼컴퓨터의 대다수가 리눅스를 기반으로 구동된다. 또한 스마트폰의 모바일 운영 체제인 안드로이드도 리눅스 커널을 기반으로 하며, 라즈베리 파이 같은 임베디드 시스템과 사물인터넷 기기, 그리고 자율 주행 자동차 등에도 광범위하게 적용되고 있다.
유닉스(UNIX)는 1960년대 말 벨 연구소(Bell Labs)에서 개발된 다중 사용자, 다중 작업 운영 체제이다. 켄 톰슨(Ken Thompson)과 데니스 리치(Dennis Ritchie)가 주도한 이 시스템은 C 언어로 재작성되어 높은 이식성을 가지게 되었으며, 이후 현대 운영 체제 설계에 지대한 영향을 미쳤다.
유닉스의 핵심 철학은 "모든 것을 파일로 취급한다"는 개념과, 각 프로그램이 한 가지 일을 잘 수행하도록 하는 모듈식 설계에 있다. 이러한 철학은 강력한 명령줄 인터페이스(CLI)와 파이프(pipe) 및 필터(filter) 같은 기능을 통해 구현되어, 작은 유틸리티들을 조합하여 복잡한 작업을 수행할 수 있게 한다.
유닉스는 상업적 버전과 연구/학술 기관에서 자유롭게 사용할 수 있는 버전으로 양분되며 발전했다. 이로 인해 여러 파생 시스템이 생겨났는데, BSD(Berkeley Software Distribution) 계열과 시스템 V(System V) 계열이 대표적이다. 이러한 분화와 표준화 노력은 결국 POSIX와 같은 공통 표준을 낳았다.
유닉스의 설계와 개념은 오늘날 수많은 운영 체제의 기반이 되었다. 대표적인 오픈 소스 운영 체제인 리눅스는 유닉스와 호환되는 시스템으로, 그 정신과 인터페이스를 계승하고 있다. 또한 애플의 macOS와 다양한 서버 운영 체제들도 유닉스의 직접적이거나 간접적인 후예에 해당한다.
안드로이드는 구글이 주도적으로 개발하는 모바일 운영 체제이다. 리눅스 커널을 기반으로 하며, 주로 스마트폰과 태블릿 컴퓨터 같은 터치스크린 모바일 장치를 위해 설계되었다. 또한 스마트워치, 스마트 TV, 자동차의 인포테인먼트 시스템 등 다양한 임베디드 시스템으로 그 적용 범위를 확장하고 있다.
안드로이드는 오픈 소스 소프트웨어로, 핵심 운영 체제는 아파치 라이선스 하에 공개되어 있다. 이를 통해 하드웨어 제조사와 통신사는 자유롭게 소스 코드를 수정하고 배포할 수 있다. 그러나 구글의 모바일 서비스와 주요 애플리케이션은 독점 라이선스로 제공되어, 대부분의 장치 제조사는 이 서비스 번들을 포함시키기 위해 구글과의 라이선스 계약을 체결한다.
이 운영 체제는 사용자 인터페이스를 터치 제스처와 직접적인 조작에 맞춰 설계했으며, 가상 키보드를 통한 입력을 주로 사용한다. 내부적으로는 자바 언어로 작성된 애플리케이션이 안드로이드 런타임 환경에서 실행된다. 안드로이드는 전 세계 모바일 운영 체제 시장에서 가장 높은 점유율을 차지하는 플랫폼으로 자리 잡았다.
iOS는 애플이 개발한 모바일 운영 체제이다. 원래 아이폰의 운영 체제로 출시되었으며, 이후 아이패드, 아이팟 터치로 그 지원 범위를 확장했다. 애플의 폐쇄적인 생태계를 기반으로 하여 하드웨어와 소프트웨어의 긴밀한 통합을 특징으로 하며, 이는 높은 보안성과 사용자 경험의 일관성으로 이어진다.
iOS의 사용자 인터페이스는 멀티터치 제스처에 기반을 두고 있으며, 앱 아이콘이 그리드 형태로 배열된 스프링보드가 핵심이다. 운영 체제의 코어는 Darwin을 기반으로 하며, macOS와 많은 기술적 토대를 공유한다. 애플의 철저한 관리 하에 운영되는 앱 스토어는 iOS용 애플리케이션의 유일한 공식 배포 채널로 기능한다.
주요 경쟁 체제로는 구글의 안드로이드가 있으며, 이는 개방성과 다양성을 강조하는 반면, iOS는 통제된 환경에서의 최적화와 프리미엄 사용자 경험에 초점을 맞추고 있다. 이 운영 체제는 정기적인 주요 버전 업데이트를 통해 새로운 기능과 보안 강화를 지속적으로 제공하고 있다.

운영 체제의 핵심 구성 요소인 커널은 하드웨어와 응용 소프트웨어 사이에서 중재자 역할을 한다. 시스템의 모든 자원을 관리하는 가장 기본적이고 중심적인 부분으로, 메모리, 프로세서, 입출력 장치 등의 하드웨어를 직접 제어한다. 커널은 사용자나 응용 프로그램이 직접 하드웨어에 접근하는 것을 제한하며, 이를 통해 시스템의 안정성과 보안을 유지한다.
커널의 주요 유형으로는 단일형 커널, 마이크로커널, 혼합형 커널이 있다. 단일형 커널은 모든 운영 체제 서비스가 커널 공간에서 실행되는 반면, 마이크로커널은 최소한의 기능만 커널에 두고 대부분의 서비스를 사용자 공간에서 실행한다. 혼합형 커널은 이 두 방식의 특징을 결합한 형태이다. 대표적인 운영 체제인 리눅스는 단일형 커널을, macOS는 혼합형 커널을 채용하고 있다.
커널은 시스템 호출을 통해 응용 프로그램의 서비스 요청을 처리한다. 또한 프로세스 관리, 메모리 관리, 파일 시스템, 장치 드라이버 관리 등 핵심 기능을 수행한다. 이러한 구조와 설계 방식은 운영 체제의 성능, 확장성, 신뢰성에 직접적인 영향을 미친다.
쉘은 운영 체제의 커널과 사용자 사이에서 명령을 해석하고 실행하는 인터페이스 프로그램이다. 사용자가 입력한 명령어를 받아 커널이 이해할 수 있는 형태로 변환하여 전달하고, 그 결과를 다시 사용자에게 표시하는 역할을 한다. 이는 사용자가 하드웨어와 소프트웨어 자원을 직접 제어하지 않고도 시스템을 편리하게 운영할 수 있게 해주는 핵심 구성 요소이다.
쉘의 주요 유형으로는 명령 줄 인터페이스(CLI)와 그래픽 사용자 인터페이스(GUI)가 있다. 명령 줄 인터페이스는 텍스트 기반으로, 사용자가 키보드로 명령을 입력하여 시스템을 제어하는 방식을 사용한다. 반면 그래픽 사용자 인터페이스는 마우스 클릭과 같은 그래픽 요소를 통해 상호작용하는 방식이다. 유닉스나 리눅스 시스템에서는 bash, zsh, csh 등의 다양한 명령 줄 인터페이스 쉘이 널리 사용된다.
쉘은 단순한 명령 해석기를 넘어 스크립트 언어로서의 기능도 제공한다. 사용자는 반복적인 작업을 자동화하거나 복잡한 작업 흐름을 정의하기 위해 쉘 스크립트를 작성할 수 있다. 이는 시스템 관리와 소프트웨어 개발 과정에서 효율성을 크게 높여준다. 또한, 환경 변수 관리, 프로세스 제어, 입출력 재지향 같은 고급 기능을 지원하여 강력한 시스템 제어 도구로 활용된다.
시스템 호출은 응용 프로그램이 운영 체제의 커널이 제공하는 서비스를 요청할 때 사용하는 인터페이스이다. 응용 프로그램이 하드웨어 자원에 직접 접근하는 것은 제한되며, 대신 파일 읽기 쓰기, 네트워크 통신, 메모리 할당과 같은 모든 권한이 필요한 작업은 시스템 호출을 통해 운영 체제에 요청해야 한다. 이는 시스템의 보안과 안정성을 유지하는 핵심 메커니즘이다.
시스템 호출은 일반적으로 특정한 번호나 이름으로 식별되며, 응용 프로그램은 이를 호출하면 사용자 모드에서 커널 모드로 전환이 발생한다. 이 과정에서 프로세서의 권한 수준이 상승하여 커널이 요청된 작업을 안전하게 수행할 수 있게 된다. 작업이 완료되면 결과와 함께 다시 사용자 모드로 복귀하여 응용 프로그램의 실행이 계속된다.
주요 시스템 호출의 종류로는 프로세스 제어(생성/종료), 파일 조작(열기/닫기/읽기/쓰기), 장치 관리, 정보 유지, 그리고 통신 관련 호출이 있다. 예를 들어, 유닉스 계열 시스템에서는 fork(), exec(), open(), read(), write(), socket() 등의 함수가 대표적인 시스템 호출에 해당한다.
이러한 인터페이스는 응용 프로그램과 커널 사이의 중요한 추상화 계층을 형성하여, 프로그래머가 복잡한 하드웨어 세부 사항을 알지 못해도 일관된 방식으로 시스템 서비스를 이용할 수 있게 한다. 또한, 운영 체제가 자원 사용을 통제하고 여러 프로그램이 동시에 실행되는 다중 프로그래밍 환경에서 서로 간섭하지 않도록 보호하는 역할도 수행한다.

클라우드 컴퓨팅은 인터넷을 통해 컴퓨팅 자원, 소프트웨어, 데이터 저장소 등을 서비스 형태로 제공하는 정보 기술 패러다임이다. 사용자는 물리적인 하드웨어나 서버를 직접 구축하거나 관리할 필요 없이, 필요한 만큼의 자원을 온디맨드 방식으로 이용하고 사용량에 따라 비용을 지불한다. 이는 데이터 센터를 운영하는 클라우드 서비스 공급자가 인프라를 집중적으로 관리함으로써 가능해진다.
클라우드 컴퓨팅의 주요 서비스 모델은 인프라스트럭처를 서비스로 제공하는 IaaS, 플랫폼을 서비스로 제공하는 PaaS, 그리고 애플리케이션 소프트웨어를 서비스로 제공하는 SaaS로 구분된다. 배포 모델에 따라 일반 공중에게 서비스를 제공하는 퍼블릭 클라우드, 단일 조직이 독점적으로 사용하는 프라이빗 클라우드, 그리고 두 가지를 결합한 하이브리드 클라우드 등이 있다.
이 기술은 기업과 개인에게 확장성과 유연성을 제공하며, 초기 투자 비용을 크게 절감할 수 있다는 장점이 있다. 또한 빅데이터 분석, 인공지능, 사물인터넷과 같은 현대 디지털 기술의 핵심 기반이 되고 있다. 클라우드 환경에서는 가상화 기술과 컨테이너 기술이 광범위하게 활용되어 자원의 효율적인 분할과 관리를 가능하게 한다.
컨테이너는 운영 체제 수준의 가상화 기술이다. 애플리케이션과 그 실행에 필요한 모든 요소, 즉 런타임, 시스템 도구, 시스템 라이브러리, 설정값 등을 하나의 패키지로 묶어 격리된 환경에서 실행할 수 있게 한다. 이는 가상 머신과 달리 게스트 운영 체제를 포함하지 않으며, 호스트 운영 체제의 커널을 공유하여 오버헤드가 적고 효율적이다. 컨테이너는 마이크로서비스 아키텍처와 클라우드 컴퓨팅 환경에서 애플리케이션의 배포와 관리를 단순화하는 핵심 기술로 자리 잡았다.
컨테이너 기술의 대표적인 구현체는 도커이다. 도커는 컨테이너 이미지를 생성하고 실행하기 위한 플랫폼을 제공하며, 이를 통해 개발 환경과 운영 환경의 일관성을 보장한다. 또 다른 핵심 기술은 쿠버네티스로, 다수의 컨테이너를 오케스트레이션하여 배포, 스케일링, 관리를 자동화한다. 이는 대규모 분산 시스템과 데브옵스 워크플로우에 필수적이다.
컨테이너의 주요 장점은 다음과 같다. 첫째, 애플리케이션의 이식성이 뛰어나다. 컨테이너 이미지는 어떤 환경에서도 동일하게 실행될 수 있다. 둘째, 리소스 효율성이 높다. 여러 컨테이너가 하나의 운영 체제 위에서 실행되므로 가상화 오버헤드가 적고 시작 속도가 빠르다. 셋째, 마이크로서비스 구조에 적합하여 각 서비스를 독립된 컨테이너로 개발 및 배포할 수 있다.
컨테이너 기술은 클라우드 네이티브 애플리케이션 개발의 기반이 되며, CI/CD 파이프라인과 통합되어 소프트웨어 제공 속도를 가속화한다. 또한 하이브리드 클라우드 및 멀티 클라우드 환경에서 애플리케이션의 유연한 배치를 가능하게 한다.

이 문서는 'OS'라는 명칭을 공유하는 다양한 대상을 설명하는 동음이의어 문서이다. 가장 널리 알려진 의미는 컴퓨터의 하드웨어를 관리하고 응용 프로그램을 실행하기 위한 플랫폼을 제공하는 운영 체제이다. 이는 마이크로소프트 윈도우, 리눅스, 안드로이드와 같은 소프트웨어를 가리킨다.
그러나 이 약어는 다른 여러 분야에서도 사용된다. 통계학에서는 순서통계량을 의미하며, 화학에서는 오스뮴이라는 원소의 기호로 쓰인다. 언어 코드로는 오세트어의 ISO 639 코드가 'os'이다. 항공 분야에서는 오스트리아 항공의 IATA 코드가 'OS'이며, 국제민간항공기구 코드에서는 시리아를 나타낸다.
또한, 수학의 위상수학에서 열린집합을 지칭하기도 하며, 일반 명사로는 오픈 소스나 유기 합성의 약어로 사용될 수 있다. 상표명으로는 스타벅스의 초기 매장을 의미하는 '오리지널 스타벅스'를 줄여 부르는 경우도 있다.
