← Blog로 돌아가기

2026년 4월 23일

CS / Theory / OS

[OS] 운영체제의 역사

컴퓨터는 처음부터 지금처럼 편리하지 않았다. 전원을 켜면 바탕화면이 뜨고, 앱을 열면 바로 실행되는 이 당연한 경험은 수십 년에 걸친 문제 해결의 결과물이다.

운영체제의 역사는 결국 하나의 질문을 반복해서 푸는 과정이었다. "어떻게 하면 컴퓨터를 더 잘 쓸 수 있을까?"



목차


[1] 1940년대: 초기 컴퓨터
[2] 1950년대: 배치 시스템
[3] 1960년대: 멀티프로그래밍 & 시분할
[4] 1970~80년대: 개인용 컴퓨터 OS
[5] 1990년대: 현대 OS의 완성
[6] 2000년대 이후: 현대 & 모바일
흐름 요약



[1] 1940년대: 초기 컴퓨터


초기 컴퓨터에는 운영체제가 없었다. 프로그래머가 기계어(0과 1로 이루어진 컴퓨터의 언어)로 하드웨어를 직접 조작해야 했다. ENIAC 같은 컴퓨터는 한 번에 한 사람만 사용할 수 있었고, 다른 작업을 하려면 케이블을 물리적으로 다시 연결하거나 천공카드(구멍을 뚫어 명령을 입력하는 종이 카드)를 교체해야 했다.

지금으로 치면, 유튜브를 보다가 카카오톡을 열기 위해 컴퓨터 본체를 뜯어 부품을 교체해야 하는 셈이었다.

당시 컴퓨터는 사실상 "덩치 큰 계산기"였고, 자원을 관리해줄 소프트웨어 계층 자체가 필요하지 않았다.



[2] 1950년대: 배치 시스템


트랜지스터의 등장으로 컴퓨터가 점점 작아졌고, 더 많은 사람이 컴퓨터를 쓰고 싶어졌다. 자연스럽게 "어떻게 하면 더 효율적으로 쓸 수 있을까?"라는 질문이 생겼다.

그 첫 번째 답이 배치 처리(Batch Processing) 였다. 처리할 작업을 미리 묶어두면, 컴퓨터가 사람 개입 없이 순서대로 처리하는 방식이다. 세탁기에 빨랫감을 한꺼번에 넣고 돌리는 것과 비슷하다. 1956년 IBM의 GM-NAA I/O가 이 방식을 구현한 최초의 OS로 불린다.

하지만 한계가 있었다. 한 작업이 완전히 끝나야 다음 작업이 시작됐고, 입출력(I/O)(키보드 입력, 파일 읽기, 화면 출력처럼 컴퓨터가 외부 장치와 데이터를 주고받는 작업)이 진행되는 동안 CPU는 그냥 멈춰서 기다렸다. 세탁기가 돌아가는 동안 건조기를 아예 쓰지 못하는 것처럼. 이 CPU 낭비 문제가 다음 시대의 핵심 과제가 된다.



[3] 1960년대: 멀티프로그래밍 & 시분할


OS 역사에서 가장 많은 개념이 탄생한 시기다. 1950년대의 CPU 낭비 문제를 해결하기 위해 두 가지 핵심 기술이 등장했다.

멀티프로그래밍 (Multiprogramming)

여러 프로그램을 메모리에 동시에 올려두고, 한 프로그램이 I/O를 기다리는 동안 다른 프로그램을 실행하는 방식이다. 은행 창구 직원이 서류 처리를 기다리는 동안 다른 손님을 먼저 응대하는 것과 비슷하다. CPU가 쉬는 시간을 최소화해 처리 효율을 크게 높였다.

시분할 시스템 (Time-Sharing)

CPU 시간을 아주 잘게 쪼개서 여러 사용자가 번갈아 사용하는 방식이다. 각 사용자는 자신만 컴퓨터를 쓰는 것처럼 느끼지만, 실제로는 CPU가 매우 빠르게 사용자들 사이를 전환하고 있다.

  • 1961년 MIT CTSS — 최초의 시분할 OS
  • 1964년 IBM OS/360 — 범용 OS의 시초
  • 1969년 UNIX 탄생 (Bell Labs, Ken Thompson & Dennis Ritchie)

복잡성의 시작

멀티프로그래밍이 가능해지면서 새로운 문제들이 생겨났다. 여러 프로그램이 동시에 메모리에 올라가다 보니, 한 프로그램이 다른 프로그램의 영역을 침범하거나 실행 위치가 충돌하는 일이 생겼다. 여러 사용자가 데이터를 함께 쓰게 되면서 파일을 체계적으로 관리할 구조도 필요해졌다. 편리함을 얻은 대신, OS는 점점 복잡한 소프트웨어로 발전하기 시작했다. 멀티프로그래밍이 가능해지면서 새로운 문제들이 생겨났다.

이 문제들을 해결하기 위해 베이스 레지스터, 메모리 보호 하드웨어 등이 도입되었고, OS는 점점 복잡한 소프트웨어 계층으로 발전하기 시작했다.



[4] 1970~80년대: 개인용 컴퓨터 OS


마이크로프로세서(손톱만한 크기에 CPU를 집어넣은 칩)의 등장으로 컴퓨터가 연구실 밖으로 나오기 시작했다.

1970년대

UNIX가 C언어로 재작성된 것이 이 시기 가장 중요한 사건이다. 이전의 OS는 특정 하드웨어에 종속되어 있었는데, C로 작성된 UNIX는 다른 아키텍처에도 이식할 수 있었다. OS가 처음으로 하드웨어로부터 독립한 순간이었다.

1974년에는 마이크로컴퓨터를 위한 CP/M이 등장하며 개인용 OS 시대의 문을 열었다.

1980년대

연도사건
1981MS-DOS — IBM PC와 함께 보급, CLI 기반
1983GNU 프로젝트 — Richard Stallman이 자유 소프트웨어 운동 시작
1984Apple Macintosh — GUI의 대중화
1985Windows 1.0 — MS-DOS 위에서 동작하는 GUI 환경

특히 1984년 매킨토시의 등장은 컴퓨터 사용 방식 자체를 바꿨다. 명령어를 외우지 않아도 아이콘과 마우스만으로 컴퓨터를 다룰 수 있게 된 것이다. 컴퓨터가 비로소 비전문가에게도 열렸다.



[5] 1990년대: 현대 OS의 완성


네트워킹, 안정성, 오픈소스가 이 시기의 키워드다.

1991년 핀란드 대학생 Linus TorvaldsLinux 커널(OS의 핵심 엔진에 해당하는 부분)을 공개했다. 누구나 코드를 보고 수정하고 배포할 수 있는 오픈소스 방식으로 공개된 Linux는, 전 세계 개발자들이 자발적으로 기여하며 빠르게 성장했다. 오늘날 인터넷을 지탱하는 대부분의 서버와 Android의 근간이 바로 Linux다.

한편 Microsoft는 Windows 95로 대중 시장을 장악했고, Windows NT 계열을 통해 기업용 안정성을 확보했다. 인터넷 보급이 가속화되면서 네트워크 기능이 OS의 핵심 요소로 자리잡은 것도 이 시기다.



[6] 2000년대 이후: 현대 & 모바일


연도사건
2001Mac OS X — UNIX 기반 안정성 + 세련된 GUI
2001Windows XP — 가정용·업무용 통합, 역대 최장수 OS
2003Linux 서버 시장 장악 시작
2007iOS — 스마트폰 OS 시대 개막
2008Android — 오픈소스 모바일 OS, 현재 세계 점유율 1위
2015Windows 10 — 현대 Windows의 기준
2021Windows 11 출시

2007년 iPhone의 등장은 또 하나의 전환점이었다. OS는 데스크탑을 넘어 주머니 속으로 들어왔고, 손가락으로 화면을 직접 터치하는 새로운 방식이 만들어졌다. 그전까지 컴퓨터는 책상 위에 있는 것이었지만, 이제는 언제 어디서나 켜고 끄는 존재가 됐다.



흐름 요약


TEXT
기계어 직접 조작 → 배치 처리 (자동화) → 멀티프로그래밍·시분할 (효율화) → 개인용 OS·GUI (대중화) → 네트워크·오픈소스 (개방화) → 모바일·클라우드 OS (확장)

OS의 역사는 결국 "어떤 문제가 생겼고, 어떻게 해결했는가"의 반복이다. 지금 우리가 당연하게 쓰는 멀티태스킹, 파일 시스템, GUI 모두 각 시대의 절실한 문제를 풀어낸 결과물이다. 컴퓨터를 켤 때마다 수십 년의 고민이 조용히 작동하고 있는 셈이다.



다음 글에서는 운영체제가 내부적으로 어떻게 설계되어 있는지, 운영체제의 구조를 살펴볼 예정이다.

댓글

댓글을 불러오는 중...