[OS] UNIX · Windows · MS-DOS 정리 - 완

2026. 5. 1. 10:58운영체제(OS)

UNIX · Windows · MS-DOS — 운영체제 핵심 정리

UNIX · Windows · MS-DOS — 운영체제 핵심 정리

시험에 자주 등장하는 운영체제 3종(UNIX, Windows, MS-DOS)의 구조, 특징, 핵심 명령어를 정리한다.

💡 핵심: UNIX는 다중 사용자·다중 태스킹 서버 OS, Windows는 GUI 기반 단일 사용자 OS, MS-DOS는 CUI 기반 단일 사용자·단일 태스킹 OS다.

1. UNIX

UNIX는 1969년 원형이 완성되고 1973년에 대부분 C언어로 재작성된 운영체제다. 미국 벨(Bell) 연구소에서 개발했으며, C언어로 작성됐기 때문에 이식성이 높고 다중 사용자·다중 태스킹을 지원하는 대화형 OS다. 현재는 주로 서버용으로 사용된다.

UNIX의 가장 큰 설계 철학은 "모든 것은 파일이다"에 가깝다. 디바이스, 소켓, 파이프 모두 파일 인터페이스로 추상화되어 있고, 이 덕분에 프로그램 간의 조합과 자동화가 매우 쉽다. Unity에서 빌드 파이프라인을 셸 스크립트로 자동화하거나 CI 환경에서 Linux 서버를 다루다 보면 이 철학이 피부에 와닿는다.

💡 UNIX 주요 특징 요약
시분할(Time Sharing) 시스템용 대화식 OS · 개방형 시스템(소스 공개) · 이식성·호환성 높음 · 다중 사용자/다중 태스킹 · 파일 시스템 트리 구조 · 네트워킹 기능 강력

1-1. UNIX 구조: 커널 · 셸 · 유틸리티

UNIX의 구조는 하드웨어를 중심으로 바깥쪽으로 커널 → 셸 → 응용 프로그램 순서로 감싸는 계층 형태다. 사용자는 셸을 통해 커널에 접근하고, 커널은 시스템 콜1 인터페이스를 통해서만 노출된다.

UNIX 계층 구조

사용자(User)
  ↓
응용 프로그램(Application Program) — vi, gcc, bash 스크립트 등
  ↓ 시스템 콜
셸(Shell) — 명령 해석기, 사용자↔커널 중계자
  ↓
커널(Kernel) — 프로세스 관리, 메모리 관리, I/O, 파일 시스템
  ↓
하드웨어(Hardware)

커널(Kernel)은 UNIX의 핵심 부분으로, 부팅 시 주기억장치에 상주하며 실행된다. 코드의 90%는 C언어, 10%는 어셈블리어로 작성되어 있다. 프로세스 관리, 기억장치 관리, 프로세스 간 통신, I/O 관리, 파일 관리, 데이터 전송/변환을 담당한다. 커널 내부에는 프로세스 테이블과 개방 파일 테이블이 있다.

셸(Shell)은 사용자의 명령어(또는 사용자 프로그램)를 인식해 해당 프로그램을 호출하고 실행하는 명령어 해석기다. 사용자와 시스템(커널) 사이의 중계자 역할을 하며, 명령어가 포함된 일반 파일(내장 명령어) 형태로 커널과는 달리 주기억장치에 상주하지 않고 보조기억장치2에 있다가 요청이 오면 올라와 실행된다.

셸 종류는 본 셸(Bourne Shell, sh), 콘 셸(Korn Shell, ksh), C 셸(csh)이 대표적이며, UNIX의 기본 셸은 본 셸이다. /bin/sh 명령으로 실행하고 exit로 빠져나올 수 있다. 서브 셸(Sub shell)을 생성할 수 있고, 백그라운드 처리도 지원한다.

사용자 입력
Shell (해석)
System Call
Kernel
하드웨어 실행

유틸리티 프로그램(Utility Program)은 일반 사용자가 작성한 응용 프로그램을 처리할 때 사용된다. MS-DOS의 외부 명령어에 해당하며, 에디터(vi, emacs), 컴파일러(gcc), 인터프리터, 디버거(gdb) 등이 여기에 해당한다.

1-2. 프로세스 간 통신(IPC)

UNIX에서 프로세스들은 시스템 콜을 통해 커널에 접근하고, 커널이 제공하는 IPC(Inter Process Communication) 메커니즘으로 서로 통신한다. IPC 방식은 크게 세 가지다.

방식설명특징
시그널(Signal)간단한 메시지를 이용한 통신초기에 주로 사용, 단순
파이프(Pipe)한 프로세스의 출력 → 다른 프로세스의 입력단방향 통신
소켓(Socket)프로세스 간 대화를 가능하게 하는 양방향 통신네트워크 통신에도 사용
프로세스 A
→ pipe →
프로세스 B
↔ socket ↔
프로세스 C

Unity에서도 이 개념이 그대로 나온다. 에디터 확장과 외부 프로세스(Python 스크립트, 빌드 서버) 간 통신할 때 소켓을 쓰거나, 셸 스크립트에서 ls | grep .unity처럼 파이프로 데이터를 넘기는 것이 모두 UNIX IPC의 연장선이다.

1-3. UNIX 파일 시스템 구조

UNIX 파일 시스템의 디렉터리는 트리 구조다. 디렉터리와 주변장치도 파일과 동일하게 다뤄지며, 파일 생성·삭제·보호 기능을 제공한다.

파일 형식은 세 종류다. 일반 파일*.txt, *.html 같은 정규 파일이고, 디렉터리는 파일명 목록과 각 파일의 디스크 상 위치 정보를 지닌 파일로 파일 시스템의 중심 역할을 한다. 특수 파일은 프린터, 디스크, 단말기 등 주변장치에 접근·관리하며 파이프와 소켓 같은 프로세스 간 상호통신 정보를 지닌 파일이다.

파일 시스템은 네 개의 블록으로 구성된다.

블록역할
① 부트 블록부팅 시 필요한 코드를 저장
② 슈퍼 블록전체 파일 시스템 정보 — 블록 개수, I-node 개수, 사용 중 블록 수, 자유 블록 비트맵 등
③ I-node 블록디렉터리와 각 파일에 대한 모든 정보 (120Byte 고정 블록)
④ 데이터 블록디렉터리 엔트리와 실제 파일 데이터가 저장

I-node는 각 파일에 대한 정보를 저장하는 120Byte 고정 블록이다. 파일 소유자의 UID/GID, 파일 크기, 파일 타입, 생성/수정/접근 시간, 파일 보호권한, 링크 수, 데이터 저장 블록의 시작주소 등을 담는다. I-node는 I-node 리스트라 불리는 디스크 시작부분의 특수저장장소에 저장된다.

부트 블록
슈퍼 블록
I-node 블록
데이터 블록

1-4. UNIX 주요 명령어

프로세스 명령어
fork새로운 프로세스 생성 (자식 프로세스 호출, 복제)
getpid / getppid프로세스 ID / 부모 프로세스 ID 취함
exit프로세스 종료
wait자식 프로세스를 기다림
exec프로세스의 코드·자료·스택을 대치해 새로운 프로세스 수행
kill프로세스 제거
&백그라운드 처리를 위해 명령의 끝 부분에 입력
ps현재 작업 중인 프로세스의 상태 정보 확인
파일 및 디렉터리 조작 명령어
cat파일 내용을 화면에 출력
cd, chdir현재 사용할 디렉터리 위치 변경
chmod파일 보호 모드를 설정하여 파일의 사용 허가를 지정
cp파일 복사
ls현재 디렉터리 내의 파일 목록 확인
mkdir / rmdir디렉터리 생성 / 삭제
mv파일의 이동 또는 이름 변경
rm파일 삭제
find파일 찾기
grep특정 패턴을 검색
시스템 호출 명령어
open / close파일 읽기 전용 준비 / 닫기 (close 시 I-node를 디스크에 복사)
read / write파일을 읽거나 기록
link / unlink디렉터리에 하드 링크 추가 / 해제
dup자유 파일기술자 배열엔트리 복사 및 파일 테이블 참조계수 증가
sync커널이 기록 지연 버퍼를 디스크에 저장

2. Windows

Windows는 Microsoft가 개발한 GUI 기반 운영체제다. 마우스와 아이콘, 메뉴를 통해 작업을 수행하는 방식으로 일반 사용자 접근성을 크게 높였다. 단일 사용자 시스템을 지원하며, 개인 PC 시장에서 가장 널리 사용되는 OS다.

Unity 개발자 입장에서 Windows는 에디터가 돌아가는 주 플랫폼이기도 하다. 빌드 타겟을 PC로 잡으면 바로 Windows 환경이고, DirectX API, Win32 API와 상호작용하는 플러그인을 만들 때도 Windows의 내부 구조를 이해하는 것이 도움이 된다.

2-1. Windows 주요 특징

특징설명
GUI마우스로 아이콘을 더블클릭하거나 메뉴를 통해 작업을 수행
선점 멀티태스킹사용자가 강제로 종료시킬 수 있으며, 데이터를 32Bit 단위로 처리해 DOS 대비 빠른 실행 속도 제공. 문제 발생 시 해당 프로그램만 강제 종료
PnP(Plug and Play)새 하드웨어 추가 시 자동으로 인식하고 필요한 장치 드라이버나 제어기를 설치/연결
OLE다른 프로그램에서 작성된 문서·그림·사운드 등을 현재 작성 중인 문서에 자유롭게 연결·삽입. 원본을 수정하면 삽입된 곳에도 반영
긴 파일명VFAT을 이용해 최대 255Byte까지 지정 가능 (한글 명칭, 공백도 가능)
단일 사용자한 대의 컴퓨터를 한 사람에게만 독점 사용 (Single User)
FAT 3232Bit 체계의 File Allocation Table. 클러스터3 단위를 더 작게 해 디스크 공간 낭비를 줄임 (2TByte까지 한 드라이브)
가상기억장치가상기억장치 기능을 지원

그 외 강화된 네트워크 기능, 멀티미디어 지원, CD-ROM 자동 실행(Autorun.inf), 설치 마법사, IPP(Internet Printing Protocol)를 통한 인터넷 프린터 사용 등을 지원한다.

2-2. Windows 10의 특징

Windows 10은 데스크탑과 모바일(스마트폰·태블릿)을 통합하려는 전략의 연장선에 있다. 시작 버튼과 시작 메뉴를 원하는 사용자와 모던 UI를 원하는 사용자를 동시에 만족시키는 방향으로 설계됐다.

  • 가상 데스크탑 기능 추가, 강력한 보안, 화면 분할
  • Continuum 기능을 통해 노트북이면서 동시에 태블릿/PC로 전환 가능
  • 스마트폰 앱을 사용할 수 있어, PC와 스마트폰에서 같은 앱 구동
  • 지능형 음성비서 코타나(Cortana) 탑재 — 음성 명령으로 동작하며 사용자 맞춤형 비서 서비스 제공
💡 코타나 vs 시리·구글 나우: 시리와 구글 나우는 클라우드 기반으로 동작하고 사용자 습관을 반영해 맞춤형 서비스를 제공하는 반면, 코타나는 음성 명령으로 동작하는 사용자 맞춤형 비서 서비스를 제공한다.

3. MS-DOS

MS-DOS는 1970년대 마이크로소프트가 개발한 운영체제로, 16Bit와 32Bit PC용으로 가장 많이 보급됐다. GUI가 없는 CUI(Character User Interface) 방식으로, 프롬프트에서 명령을 직접 입력해 실행한다. 단일 사용자·단일 태스킹 시스템으로, 한 번에 하나의 프로그램만 수행한다. 파일 시스템의 디렉터리 구조는 트리(Tree) 구조를 지원한다.

⚠️ MS-DOS vs Windows 핵심 차이: MS-DOS는 단일 태스킹 · CUI · 단일 사용자인 반면, Windows는 멀티태스킹 · GUI · 단일 사용자다. 시험에서 자주 혼동하는 포인트다.

3-1. MS-DOS 파일 구조

MS-DOS의 파일 구조는 세 종류로 나뉜다.

시스템 파일

MS-DOS의 핵심 파일로 주변장치의 I/O와 시스템 전체를 통제한다.
MSDOS.SYS — 프로세스, 기억장치, 주변장치, 파일 관리 및 입출력 시스템 호출 기능 수행

명령어 처리기 (Command Processor)

COMMAND.COM — 명령 해독 및 실행 파일. 사용자와 MSDOS.SYS를 연결하며, 부팅 시 필요하고 부팅 후엔 주기억장치에 상주한다.

자동 일괄 처리 파일 (Auto Batch File)

AUTOEXEC.BAT — 부팅에서 수행할 순서와 반복적인 명령을 모아둔 파일. 반드시 부팅에서 필요로 하는 파일은 아님.

환경 설정 파일

CONFIG.SYS — 작업을 수행할 때 필요한 시스템의 환경 설정 파일. 반드시 부팅에서 필요로 하는 파일은 아님.

3-2. MS-DOS 주요 명령어

명령어설명
CD, CHDIR디렉터리의 변경
CHKDSK디스크를 검사하고 상태 보고서를 표시
CLS화면을 지움
CMD윈도우즈 명령 인터프리터의 새 인스턴스를 시작
COPY하나 이상의 파일을 복사
DEL하나 이상의 파일을 삭제
DIR디렉터리의 파일과 하위 디렉터리 목록 표시
DISKCOPY디스크 단위 복사
FORMAT디스크를 포맷함
MD디렉터리 생성
MOVE파일의 이동
PATH실행 파일의 찾기 경로나 설정
RD, RMDIR디렉터리 삭제
REN, RENAME파일명의 변경
TYPE텍스트 파일의 내용 표시
UNFORMAT포맷한 디스크의 복원
VER버전을 표시

4. UNIX · Windows · MS-DOS 비교

세 OS의 핵심 차이를 한눈에 정리하면 아래와 같다.

항목UNIXWindowsMS-DOS
인터페이스CUI (대화형)GUICUI
사용자 수다중 사용자단일 사용자단일 사용자
태스킹다중 태스킹다중 태스킹 (선점형)단일 태스킹
주요 용도서버, 개발 환경개인 PC, 게임, 업무구형 PC, 임베디드
파일 시스템트리 구조, I-node 기반FAT32 / NTFS트리 구조, FAT
이식성높음 (C언어 기반)낮음 (Windows 전용)낮음

📎 용어 설명

  1. 시스템 콜(System Call) — 사용자 프로그램이 커널의 기능(I/O, 프로세스 관리 등)에 접근하기 위해 사용하는 인터페이스. 커널 내의 서브루틴 형태로 존재한다.
  2. 보조기억장치 — HDD, SSD, USB 등 주기억장치(RAM)를 보조하는 영구 저장장치. 전원이 꺼져도 데이터가 유지된다.
  3. 클러스터(Cluster) — 파일 시스템에서 디스크의 기본 입출력 단위. 섹터(512Byte) 여러 개를 묶은 것으로, FAT32에서는 4~32KByte 단위를 사용한다.
UNIX Windows MS-DOS 운영체제 커널 I-node IPC 파일시스템 정보처리기사