2026. 5. 1. 10:58ㆍ운영체제(OS)
UNIX · Windows · MS-DOS — 운영체제 핵심 정리
시험에 자주 등장하는 운영체제 3종(UNIX, Windows, MS-DOS)의 구조, 특징, 핵심 명령어를 정리한다.
1. UNIX
UNIX는 1969년 원형이 완성되고 1973년에 대부분 C언어로 재작성된 운영체제다. 미국 벨(Bell) 연구소에서 개발했으며, C언어로 작성됐기 때문에 이식성이 높고 다중 사용자·다중 태스킹을 지원하는 대화형 OS다. 현재는 주로 서버용으로 사용된다.
UNIX의 가장 큰 설계 철학은 "모든 것은 파일이다"에 가깝다. 디바이스, 소켓, 파이프 모두 파일 인터페이스로 추상화되어 있고, 이 덕분에 프로그램 간의 조합과 자동화가 매우 쉽다. Unity에서 빌드 파이프라인을 셸 스크립트로 자동화하거나 CI 환경에서 Linux 서버를 다루다 보면 이 철학이 피부에 와닿는다.
시분할(Time Sharing) 시스템용 대화식 OS · 개방형 시스템(소스 공개) · 이식성·호환성 높음 · 다중 사용자/다중 태스킹 · 파일 시스템 트리 구조 · 네트워킹 기능 강력
1-1. UNIX 구조: 커널 · 셸 · 유틸리티
UNIX의 구조는 하드웨어를 중심으로 바깥쪽으로 커널 → 셸 → 응용 프로그램 순서로 감싸는 계층 형태다. 사용자는 셸을 통해 커널에 접근하고, 커널은 시스템 콜1 인터페이스를 통해서만 노출된다.
사용자(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)을 생성할 수 있고, 백그라운드 처리도 지원한다.
유틸리티 프로그램(Utility Program)은 일반 사용자가 작성한 응용 프로그램을 처리할 때 사용된다. MS-DOS의 외부 명령어에 해당하며, 에디터(vi, emacs), 컴파일러(gcc), 인터프리터, 디버거(gdb) 등이 여기에 해당한다.
1-2. 프로세스 간 통신(IPC)
UNIX에서 프로세스들은 시스템 콜을 통해 커널에 접근하고, 커널이 제공하는 IPC(Inter Process Communication) 메커니즘으로 서로 통신한다. IPC 방식은 크게 세 가지다.
| 방식 | 설명 | 특징 |
|---|---|---|
| 시그널(Signal) | 간단한 메시지를 이용한 통신 | 초기에 주로 사용, 단순 |
| 파이프(Pipe) | 한 프로세스의 출력 → 다른 프로세스의 입력 | 단방향 통신 |
| 소켓(Socket) | 프로세스 간 대화를 가능하게 하는 양방향 통신 | 네트워크 통신에도 사용 |
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 리스트라 불리는 디스크 시작부분의 특수저장장소에 저장된다.
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 32 | 32Bit 체계의 File Allocation Table. 클러스터3 단위를 더 작게 해 디스크 공간 낭비를 줄임 (2TByte까지 한 드라이브) |
| 가상기억장치 | 가상기억장치 기능을 지원 |
그 외 강화된 네트워크 기능, 멀티미디어 지원, CD-ROM 자동 실행(Autorun.inf), 설치 마법사, IPP(Internet Printing Protocol)를 통한 인터넷 프린터 사용 등을 지원한다.
2-2. Windows 10의 특징
Windows 10은 데스크탑과 모바일(스마트폰·태블릿)을 통합하려는 전략의 연장선에 있다. 시작 버튼과 시작 메뉴를 원하는 사용자와 모던 UI를 원하는 사용자를 동시에 만족시키는 방향으로 설계됐다.
- 가상 데스크탑 기능 추가, 강력한 보안, 화면 분할
- Continuum 기능을 통해 노트북이면서 동시에 태블릿/PC로 전환 가능
- 스마트폰 앱을 사용할 수 있어, PC와 스마트폰에서 같은 앱 구동
- 지능형 음성비서 코타나(Cortana) 탑재 — 음성 명령으로 동작하며 사용자 맞춤형 비서 서비스 제공
3. MS-DOS
MS-DOS는 1970년대 마이크로소프트가 개발한 운영체제로, 16Bit와 32Bit PC용으로 가장 많이 보급됐다. GUI가 없는 CUI(Character User Interface) 방식으로, 프롬프트에서 명령을 직접 입력해 실행한다. 단일 사용자·단일 태스킹 시스템으로, 한 번에 하나의 프로그램만 수행한다. 파일 시스템의 디렉터리 구조는 트리(Tree) 구조를 지원한다.
3-1. MS-DOS 파일 구조
MS-DOS의 파일 구조는 세 종류로 나뉜다.
MS-DOS의 핵심 파일로 주변장치의 I/O와 시스템 전체를 통제한다.
MSDOS.SYS — 프로세스, 기억장치, 주변장치, 파일 관리 및 입출력 시스템 호출 기능 수행
COMMAND.COM — 명령 해독 및 실행 파일. 사용자와 MSDOS.SYS를 연결하며, 부팅 시 필요하고 부팅 후엔 주기억장치에 상주한다.
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의 핵심 차이를 한눈에 정리하면 아래와 같다.
| 항목 | UNIX | Windows | MS-DOS |
|---|---|---|---|
| 인터페이스 | CUI (대화형) | GUI | CUI |
| 사용자 수 | 다중 사용자 | 단일 사용자 | 단일 사용자 |
| 태스킹 | 다중 태스킹 | 다중 태스킹 (선점형) | 단일 태스킹 |
| 주요 용도 | 서버, 개발 환경 | 개인 PC, 게임, 업무 | 구형 PC, 임베디드 |
| 파일 시스템 | 트리 구조, I-node 기반 | FAT32 / NTFS | 트리 구조, FAT |
| 이식성 | 높음 (C언어 기반) | 낮음 (Windows 전용) | 낮음 |
📎 용어 설명
- 시스템 콜(System Call) — 사용자 프로그램이 커널의 기능(I/O, 프로세스 관리 등)에 접근하기 위해 사용하는 인터페이스. 커널 내의 서브루틴 형태로 존재한다.
- 보조기억장치 — HDD, SSD, USB 등 주기억장치(RAM)를 보조하는 영구 저장장치. 전원이 꺼져도 데이터가 유지된다.
- 클러스터(Cluster) — 파일 시스템에서 디스크의 기본 입출력 단위. 섹터(512Byte) 여러 개를 묶은 것으로, FAT32에서는 4~32KByte 단위를 사용한다.
'운영체제(OS)' 카테고리의 다른 글
| [OS]다중처리 시스템 분류 — 어떻게 나뉘는가 - 21 (1) | 2026.04.30 |
|---|---|
| [OS] 분산 처리 시스템과 클라우드 컴퓨팅 - 20 (1) | 2026.04.23 |
| [OS] 다중 처리 시스템과 플린(Flynn) 분류 - 19 (0) | 2026.04.20 |
| [OS] 보호와 보안 -18 (0) | 2026.04.13 |
| [OS] 디스크 사용 가능한 공간 관리와 디스크 공간 할당 방법 - 17 (0) | 2026.04.11 |