Menu
Coddy logo textTech

운영체제란 무엇인가요?

운영체제(OS)는 컴퓨터의 하드웨어를 관리하고 다른 모든 프로그램을 실행하는 소프트웨어입니다. 프로세서, 메모리, 저장 장치를 프로그램들 사이에 나눠 주고, 파일, 네트워크, 입출력을 제공해요. 윈도우, macOS, 리눅스, 안드로이드, iOS가 운영체제예요.

글쓴이: Kevin Spektor, 공동 창업자, CTO

업데이트: 2026년 9월 24일

텍스트 에디터를 열어 둔 채로 키를 하나 눌러 보세요. 키보드가 전기 신호를 보내고, 운영체제 안의 드라이버가 그 신호를 읽어요. 운영체제는 어느 창이 맨 앞에 있는지 파악해 그 프로그램에 키를 전달하고, 에디터가 글자를 그려요. 에디터는 키보드와 한 번도 직접 대화하지 않아요. 파일 저장, 소리 재생, 웹 페이지 불러오기도 똑같이 동작해요. 프로그램이 요청하고, 운영체제가 하드웨어와 함께 일을 해요.

운영체제가 하는 일

운영체제에는 몇 가지 일이 있고, 컴퓨터의 모든 프로그램은 그 일 모두에 기대요.

  • 프로그램 실행(프로세스 관리). CPU 코어가 8개인 노트북에서도 프로그램과 백그라운드 서비스 수백 개가 돌아갈 수 있어요. 운영체제의 스케줄러는 각 프로그램에 코어를 짧게 번갈아 쓰게 하고 1초에 여러 번 전환해서, 모두 동시에 실행되는 것처럼 보이게 해요.
  • 메모리 관리. 프로그램마다 자기만의 주소 공간을 받아요. 프로그램이 자기 것이 아닌 메모리를 읽으면 운영체제가 그 프로그램을 멈춰요. C에서는 이것이 유명한 세그멘테이션 오류예요.
  • 파일 저장. 디스크는 번호가 붙은 바이트 블록만 저장하는데, 운영체제가 이것을 폴더와 이름 있는 파일로 바꿔 줘요. 추상화의 교과서적인 예예요. 이 형식을 파일 시스템이라고 하며, 윈도우에서는 NTFS, macOS에서는 APFS, 대부분의 리눅스에서는 ext4를 써요.
  • 하드웨어와의 통신. 드라이버가 운영체제와 그래픽 카드, Wi-Fi 칩, 프린터, 웹캠 같은 각 장치 사이를 통역해요.
  • 네트워크. 운영체제가 TCP/IP를 구현하기 때문에, 프로그램은 네트워크 카드에 대해 아무것도 몰라도 서버에 연결을 열 수 있어요.
  • 보안과 사용자. 계정, 비밀번호, 파일 권한이 누가 무엇을 읽거나 바꿀 수 있는지 정해요.
  • 사용자 인터페이스. 바탕 화면, 창, 작업 표시줄, 또는 Bash나 PowerShell 같은 텍스트 셸이에요.

커널과 시스템 콜

운영체제의 핵심은 커널이에요. 커널은 하드웨어를 완전히 제어하며 실행되고, 일반 프로그램은 제한된 모드에서 실행되어 장치를 직접 건드릴 수 없어요. 프로그램에 무언가 필요하면 시스템 콜을 해요. "이 파일을 열어 줘", "이 바이트를 보내 줘", "새 프로세스를 시작해 줘" 같은 커널에 대한 요청이에요.

대부분의 경우 언어가 시스템 콜을 감싸고 있어서 눈에 보이지 않아요. 파이썬의 open()과 print()도 결국 커널 호출로 끝나요. os 모듈을 쓰면 거의 직접 호출할 수 있어요.

프로세스 ID와 코어 수는 컴퓨터마다 달라요. 마지막 줄은 항상 File size: 23 bytes를 출력해요. os.open은 커널이 열린 파일을 추적하는 데 쓰는 작은 숫자인 파일 디스크립터를 돌려주고, os.write는 거기에 23바이트를 보내요. C에서도 같은 요청이 거의 똑같이 생겼어요. 이 함수들이 시스템 콜을 얇게 감싼 것이기 때문이에요.

int fd = open("note.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644);
write(fd, "saved by a system call\n", 23);
close(fd);

리눅스에서는 strace python3 script.py로 프로그램이 하는 모든 시스템 콜을 지켜볼 수 있어요.

운영체제의 예와 종류

운영체제실행되는 곳커널
Windows 11대부분의 데스크톱과 노트북 PCWindows NT
macOS애플 Mac 컴퓨터XNU (Darwin)
Linux (Ubuntu, Fedora, Debian 등)대부분의 서버와 클라우드 머신, 일부 데스크톱Linux
Android전 세계 스마트폰 대부분Linux
iOSiPhoneXNU (Darwin)
ChromeOS크롬북Linux

이런 범용 시스템 외에도 FreeRTOS와 Zephyr 같은 실시간 운영체제가 있어요. 가전제품, 센서, 산업 기계의 마이크로컨트롤러에서 돌아가며 정해진 시간 안에 응답하는 것을 보장해요. 작은 기기 상당수는 한 가지 목적을 위해 만든 임베디드 시스템으로 돌아가요.

표를 보면 커널 하나가 아주 다른 제품들을 움직일 수 있다는 걸 알 수 있어요. 안드로이드와 크롬OS는 둘 다 리눅스 커널 위에 각자의 소프트웨어를 얹었고, iOS는 macOS와 커널을 공유해요.

프로그래밍할 때 운영체제가 중요한 이유

컴파일된 프로그램은 한 운영체제용으로 만들어져요. 윈도우의 .exe는 같은 컴퓨터라도 리눅스에서 그대로 실행되지 않아요. 파일 형식과 시스템 콜이 다르기 때문이에요. 다운로드 페이지가 버전을 따로 제공하는 이유이자, JVM, Node.js, CPython 같은 런타임 환경이 존재하는 이유예요. 런타임 환경은 운영체제마다 한 번씩 만들어지기 때문에 여러분의 코드는 그럴 필요가 없어요. 런타임 환경을 참고하세요.

그래도 작은 차이는 새어 나와요. 이 코드를 실행하고 다른 운영체제를 쓰는 친구와 비교해 보세요.

리눅스와 macOS에서는 이렇게 출력돼요.

Path separator: '/'
Line ending: '\n'
projects/notes/todo.txt

윈도우에서는 구분자가 '\\'(백슬래시 하나), 줄 끝이 '\r\n'이고, 경로는 projects\notes\todo.txt가 돼요. /를 직접 입력하지 않고 os.path.join(또는 pathlib)을 쓰면 스크립트가 세 운영체제 모두에서 동작해요.

흔한 오해

  • "리눅스는 운영체제다." 엄밀히 말하면 리눅스는 커널이에요. 우분투 같은 리눅스 배포판이 셸, 시스템 도구, 패키지 관리자, 그리고 보통 데스크톱을 더해 완전한 운영체제를 만들어요. 일상에서는 둘 다 리눅스라고 불러요.
  • "BIOS는 운영체제의 일부다." BIOS나 UEFI 펌웨어는 메인보드에 있어요. 하드웨어를 점검한 뒤 디스크에서 운영체제를 불러오고, 그러고 나면 주된 일은 끝나요.
  • "바탕 화면이 운영체제다." 바탕 화면은 커널 위에서 도는 프로그램 하나예요. 서버는 보통 바탕 화면 없이 텍스트 셸로만 제어해요.
  • "앱이 하드웨어와 대화한다." 일반 프로그램은 그렇게 할 수 없어요. 파일 읽기, 네트워크 패킷, 화면의 픽셀 하나하나가 모두 운영체제를 거쳐요. 그래서 앱 하나가 멈춰도 보통 컴퓨터 전체가 함께 멈추지는 않아요.

다음으로 읽을 내용

운영체제는 가장 아래 계층이고, 런타임 환경은 운영체제와 여러분의 코드 사이에 있어요. 메모리 보호가 세그멘테이션 오류를 만들어 내고, 바이트 페이지는 운영체제가 파일과 메모리에 쓰는 단위를 설명해요. 텍스트 셸로 운영체제를 다뤄 보려면 터미널 강의를 해 보세요.

자주 묻는 질문

운영체제 없이도 컴퓨터가 동작할 수 있나요?
네, 하지만 단순하고 한 가지 목적만 가진 장치에서만 가능해요. 아두이노 보드에 있는 것 같은 마이크로컨트롤러는 운영체제 없이 하드웨어 위에서 프로그램 하나를 바로 실행해요. 범용 컴퓨터가 여러 프로그램을 실행하고, 파일을 관리하고, 하드웨어 드라이버를 쓰려면 운영체제가 필요해요.
가장 많이 쓰이는 운영체제 5가지는 무엇인가요?
컴퓨터에서는 윈도우, macOS, 리눅스이고, 휴대폰과 태블릿에서는 안드로이드와 iOS예요. 전 세계 기기 수로는 안드로이드가 가장 많고, 데스크톱과 노트북 PC에서는 윈도우가 앞서며, 서버와 클라우드 머신 대부분은 리눅스로 돌아가요.
운영체제의 주요 종류에는 무엇이 있나요?
교과서마다 분류 방식이 여러 가지예요. 흔한 분류는 데스크톱, 모바일, 서버, 실시간(FreeRTOS처럼 정해진 시간 안에 응답을 보장하는 것), 임베디드(기기에 내장된 것), 그리고 여러 컴퓨터에 작업을 나누는 분산 시스템이에요. 오래된 목록에는 일괄 처리 시스템과 시분할 시스템도 들어가요.
내 컴퓨터의 운영체제는 어떻게 확인하나요?
윈도우에서는 설정, 시스템, 정보 순서로 열거나 winver를 실행하세요. Mac에서는 애플 메뉴에서 이 Mac에 관하여를 선택하세요. 리눅스에서는 터미널에서 cat /etc/os-release를 실행하고, uname -r로 커널 버전을 볼 수 있어요.
운영체제를 쉬운 말로 설명하면 무엇인가요?
다른 모든 프로그램을 위해 컴퓨터를 운영하는 프로그램이에요. 앱은 운영체제에 파일 저장, 창 표시, 인터넷 연결을 요청하고, 운영체제가 하드웨어와 함께 그 일을 해요. 운영체제도 소프트웨어이고, 컴퓨터가 켜질 때 디스크에서 불러와져요.
Coddy programming languages illustration

Coddy로 코딩 배우기

시작하기