본문 바로가기

Theory/OS

운영체제 이론 (1)

운영체제의 기본 개념

  • 운영체제(OS)란 컴퓨터 하드웨어와 소프트웨어 자원을 관리하고, 사용자와 시스템 간의 인터페이스 역할을 하는 핵심 시스템 소프트웨어이다.
  • 현재 IT 기기의 대부분(PC, 스마트폰, 서버 등)은 운영체제 기반으로 동작하며, 클라우드, 가상화 환경에서도 필수적이다.
  • 대표적인 운영체제: 윈도우(Windows), 리눅스(Linux), 유닉스(UNIX), 맥 OS(Mac OS), 안드로이드(Android), iOS, 타이젠(Tizen), 바다(Bada) 등.

대표 운영체제 역사 및 특징

  • 유닉스(UNIX): 최초의 상용 멀티유저 운영체제 (AT&T 벨 연구소 개발).
  • 리눅스(Linux): 유닉스를 오픈소스 형태로 발전시킨 운영체제. (리누스 토발즈 개발)
  • 윈도우(Windows): 마이크로소프트가 GUI 환경 기반으로 대중화.
  • iOS / Mac OS: 애플이 개발한 유닉스 계열의 폐쇄형 시스템.
  • 안드로이드(Android): 리눅스 기반으로, 구글이 개발한 오픈소스 모바일 OS.
  • 타이젠/바다: 삼성에서 개발한 임베디드/스마트 디바이스용 OS (스마트TV 등).

운영체제의 주요 기능 (5대 관리 기능)

파일 관리 (File Management) : 파일 생성, 삭제, 복사, 이동, 저장 등 파일과 디렉토리 관리.

입출력 장치 관리 (I/O Management) : 하드디스크(HDD), SSD, ODD, USB 등 저장장치와 외부 장치 관리.

메모리 관리 (Memory Management) : 프로그램 실행 시 필요한 메모리 공간 할당 및 관리, 가상 메모리(Virtual Memory) 기능 포함.

프로세스/프로그램 관리 (Process Management) : 사용자 프로그램 및 프로세스 생성, 실행, 종료 관리, 프로세스 간 자원 배분, 스케줄링.

네트워크 관리 (Network Management) : 네트워크 연결, 데이터 통신 제어.

운영체제의 핵심 요소: 스케줄링 (Scheduling)

  • 여러 사용자와 여러 프로그램동시에 자원(CPU, 메모리, 장치 등)을 사용할 수 있도록 자원 할당 계획을 수립.
  • 멀티유저, 멀티태스킹 환경을 가능하게 하는 기본 메커니즘.
  • 운영체제의 발전 이유: 과거 비싼 컴퓨터를 여러 사용자가 함께 쓰기 위한 시스템에서 출발. 이후, 사용자들의 작업을 효율적으로 배분하기 위한 장치.

리눅스(Linux)의 탄생과 발전

  • 개발자: 리누스 토발즈 (Linus Torvalds), 핀란드 출신.
  • 목표: 누구나 자유롭게 사용할 수 있는 오픈소스 운영체제 개발.
  • 배포 및 커뮤니티: 커널 소스 코드 공개 (kernel.org) / 커널 소스를 다운로드 받아 커스텀 OS 제작 가능.
  • 임베디드, 서버, 클라우드, 슈퍼컴퓨터 등 광범위 사용.

커널과 컴파일 (Kernel & Compile)

커널(Kernel): 운영체제의 핵심, 하드웨어 자원 직접 관리.

커널 컴파일: 리눅스 커널 소스를 받아서 직접 수정/컴파일 가능, 필요 없는 기능을 제거해 임베디드 시스템 등 경량화 가능.

운영체제 학습의 필요성

  • 클라우드, 가상화, 네트워크, 보안 등 모든 IT 시스템의 근간.
  • 시스템 개발, 서버 관리, 클라우드 인프라 구축 시 운영체제 이해 필수.
  • 리눅스, 유닉스 명령어 습득 → 시스템 엔지니어, 클라우드 엔지니어로 필수 역량.