← Blog로 돌아가기

2026년 4월 23일

CS / Theory / OS

[OS] 2. 운영체제의 역사

개발 공부를 시작하면 운영체제(OS)라는 단어를 자주 마주치게 된다. 프로세스, 메모리, 파일 시스템… 이 개념들이 왜 지금처럼 설계되었는지 이해하려면, OS가 어떤 문제를 해결하며 발전해왔는지를 아는 것이 도움이 된다.



목차


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



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


초기 컴퓨터에는 운영체제가 없었다. 프로그래머가 직접 기계어로 하드웨어를 조작했고, ENIAC 같은 컴퓨터는 한 번에 한 사람만 사용할 수 있었다. 프로그램을 바꾸려면 케이블을 다시 연결하거나 천공카드를 교체해야 했다.

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



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


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

그 첫 번째 답이 배치 처리(Batch Processing) 였다. 작업을 미리 묶어두면 컴퓨터가 사람 개입 없이 순서대로 처리하는 방식이다.

  • 1956년 IBM의 GM-NAA I/O 등장 — 역사상 최초의 OS로 불린다.
  • 작업 전환을 자동화해 운영 효율이 크게 향상되었다.

한계: 한 작업이 완전히 끝나야 다음 작업이 시작되었다. 한 프로그램이 입출력을 기다리는 동안 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는 점점 복잡한 소프트웨어 계층으로 발전하기 시작했다.



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


마이크로프로세서의 등장으로 컴퓨터가 연구실 밖으로 나오기 시작했다.

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 Torvalds가 공개한 Linux 커널은 오픈소스 생태계의 폭발적인 성장을 이끌었다. 개발자들이 자발적으로 기여하는 방식으로 빠르게 성장한 Linux는, 오늘날 서버 시장과 모바일(Android)의 근간이 되었다.

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는 데스크탑을 넘어 주머니 속으로 들어왔고, 터치 인터페이스라는 새로운 패러다임이 만들어졌다.



흐름 요약


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

OS의 역사는 결국 "어떤 문제가 생겼고, 어떻게 해결했는가" 의 반복이다. 지금 우리가 당연하게 쓰는 멀티태스킹, 파일 시스템, GUI 모두 각 시대의 절실한 문제를 풀어낸 결과물이다.

댓글

댓글을 불러오는 중...