파티션의 구조
- 파티션의 개념
하드디스크 또는 SSD 같은 저장장치를 논리적으로 분할한 영역
→ 운영체제가 각 파티션을 독립적인 드라이브처럼 인식하게 해줌
- 구성 요소 (MBR기준)
+--------------------+
| MBR (Master Boot Record) - 512B |
+--------------------+
| 파티션 테이블 (Partition Table) |
+--------------------+
| 부트 코드 (Boot Code) |
+--------------------+
| 각 파티션의 시작 오프셋, 크기 정보 |
+--------------------+
| 논리 파티션 영역들 |
+--------------------+
- 디스크, 파티션, 볼륨
구성 요소 | 설명 | 예시 |
---|---|---|
디스크 (Disk) | 물리적인 저장 장치 전체 (HDD, SSD 등) | 디스크 0, 디스크 1 (Windows에서 보이는 이름) |
파티션 (Partition) | 디스크를 논리적으로 나눈 영역. 각 파티션마다 파일 시스템 설정 가능 | 기본 파티션, 확장 파티션, 논리 파티션 등 |
볼륨 (Volume) | 파티션 위에 파일 시스템이 설정되어 드라이브처럼 사용할 수 있는 단위 | C:, D:, E: 드라이브 |
파일 시스템 | 볼륨 안에서 데이터를 구조적으로 저장·관리하는 방식 | FAT32, NTFS, exFAT, ext4 등 |
- 디스크를 물리적으로 구분한 것이 파티션, 논리적으로 묶은 것이 볼륨
- 여러 개의 파티션을 하나의 볼륨으로 사용가능하지만 일반적으로 1파티션 = 1볼륨
- MBR, VBR, GPT
구분 | MBR (Master Boot Record) |
VBR (Volume Boot Record) |
GPT (GUID Partition Table) |
---|---|---|---|
위치 | 디스크 맨 앞 (LBA 0, Sector 0) |
각 파티션의 시작 부분 | LBA 1부터 시작 (LBA 0은 보호용 MBR) |
기능 | 부팅 코드 + 파티션 정보 포함 | OS 로더 실행, OS 부팅 시작 | 파티션 정보 저장 (UEFI 기반), 복구용 백업 포함 |
구성 | 446B 부트 코드 + 64B 파티션 테이블 + 2B 시그니처(0x55AA) |
부트 코드 + 파일시스템 식별 코드 등 |
GPT 헤더 + 파티션 엔트리 테이블 (128개 이상 지원) |
부팅 방식 | BIOS 기반 | MBR이 제어를 넘긴 다음 OS 로더 실행 |
UEFI 기반 (보다 현대적인 방식) |
파티션 수 | 기본 4개 (확장 파티션으로 늘릴 수 있음) |
N/A (파티션 내부 구조이므로) | 128개 이상 가능 |
디스크 용량 지원 | 최대 2TB | N/A | 최대 18EB (엑사바이트) |
백업 존재 여부 | 없음 | 없음 | GPT 헤더와 테이블은 디스크 끝에 백업 저장 |
호환성 | 구형 시스템과 호환 우수 | 모든 OS에서 사용됨 | 신형 시스템 전용, 일부 구형 OS는 지원 안됨 |
LBA (Logical Block Addressing): 디스크 주소를 논리적으로 표현 (ex. LBA 0 = MBR)
0x55AA 시그니처: MBR의 끝을 나타내는 16진수 서명 → 부트 가능한 디스크 식별
부트 코드: 시스템 부팅 시 가장 먼저 실행되는 명령어 집합
파티션 테이블: 각 파티션의 시작 위치, 크기, 부팅 여부 저장
저널링: 변경 내역 기록 → 시스템 오류 발생 시 데이터 복구에 활용
파일시스템
- 개념
저장장치(HDD, SSD 등)에 데이터를 저장하고 관리하는 구조적 체계
운영체제가 파일을 저장/읽기/삭제할 수 있도록 데이터의 저장 위치와 메타데이터를 체계적으로 관리하는 역할을 함
[ 부트 섹터 ] ---> 해당 파티션의 부트 정보 저장
[ FAT 또는 MFT 등 메타영역 ] ---> 파일 위치 정보/연결 정보 관리 (ex. FAT, NTFS)
[ 데이터 영역 (파일 저장) ] ---> 실제 파일 내용이 저장되는 공간
- 파일시스템의 주요 기능
기능 | 설명 |
파일 저장/삭제 | 파일을 저장하고 필요 시 삭제 처리 |
디렉토리 관리 | 파일들을 폴더 구조로 분류하고 접근 가능하게 함 |
메타데이터 저장 | 파일의 이름, 생성/수정일, 크기, 속성 등 기록 |
공간 할당 | 파일을 저장할 섹터/클러스터를 결정하고 관리 |
접근 제어 | 사용자의 접근 권한, 암호화 등 보안 기능 제공 (NTFS 등) |
- 파일시스템의 종류
파일 시스템 | 지원 OS | 단일 파일 최대 크기 | 특징 |
FAT32 | Windows, Linux 등 | 4GB | 호환성 높음, 저널링 X |
NTFS | Windows 전용 | 이론상 16TB 이상 | ACL, 암호화, 저널링 |
exFAT | Windows, macOS, Linux | 매우 큼 (16EB 이론) | 대용량 USB/SD 카드용 |
ext4 | Linux 전용 | 16TB | 저널링, 성능↑, 대용량 지원 |
HFS+ / APFS | macOS 전용 | 수 TB | macOS 전용 고속 파일 시스템 |
- FAT 파일시스템 종류
파일 시스템 | 최대 파일 크기 | 최대 볼륨 크기 | 지원 환경 | 주요 특징 |
---|---|---|---|---|
FAT12 | 32MB 이하 | 32MB | MS-DOS, 플로피 디스크 | 초기형, 12비트 구조 |
FAT16 | 2GB | 2GB | DOS, 초기 Windows | 16비트 FAT, 기본 FAT 구조 개선 |
FAT32 | 4GB | 8TB (이론상) | Windows, Linux, macOS 등 | 가장 널리 사용된 FAT, 호환성 ↑, 저널링 X |
exFAT | 16EB | 128PB 이상 | Windows, macOS, Android 등 | FAT32 단점 보완, 대용량 USB/SD 카드용 |
- EXT 파일시스템 종류
파일 시스템 | 최대 파일 크기 | 저널링 | 지원 OS | 주요 특징 |
---|---|---|---|---|
ext | 2GB | X | Linux (구버전) | 최초의 리눅스 파일 시스템 |
ext2 | 2TB | X | Linux | 안정성↑, 저널링 없음 |
ext3 | 2TB | O | Linux | ext2 기반 + 저널링 추가 |
ext4 | 16TB (이론상 1EB) | O | Linux | 대용량 지원, 성능↑, 가장 널리 사용 |
NTFS 파일 시스템
- 개념
New Technology File System의 약자로, 마이크로소프트가 개발한 고급 기능의 파일 시스템
Windows NT 계열 이후 기본 파일 시스템
FAT32의 한계를 극복하고 보안, 안정성, 대용량, 복구 기능을 지원
- NTFS 핵심 요소
구성 요소 | 설명 |
MFT (Master File Table) | NTFS의 핵심! 모든 파일과 디렉토리의 정보를 담고 있는 메타데이터 테이블 |
파일 레코드 | MFT의 각 항목, 파일 하나당 1레코드 이상 |
속성(Attribute) | 파일 이름, 크기, 생성 시간, 데이터 위치 등 세부 항목 |
저널링 (Journal) | 변경 사항을 기록하여 데이터 복구 기능 강화 |
보안 정보 | 사용자 권한 정보(ACL 등) 포함 |
$LogFile | 트랜잭션 로그 → 시스템 복구 가능 |
- 제공 기능
기능 | 설명 | 목적/장점 | 시험 포인트 |
---|---|---|---|
MFT (Master File Table) |
파일과 디렉토리 정보를 저장하는 메타데이터 테이블 | 빠른 파일 접근, 전체 파일 관리 | NTFS의 핵심 구조, FAT의 FAT 테이블과 대응 |
저널링 (Journal) | 변경 내용을 기록하여 오류 발생 시 복구 지원 | 데이터 무결성 향상, 복구 가능 | ext3/ext4와 유사, FAT32에는 없음 |
파일 암호화 (EFS) | 파일 또는 폴더 단위로 암호화 가능 | 보안 강화, 데이터 보호 | NTFS만의 기능, exFAT/FAT에는 없음 |
접근 제어 목록 (ACL) | 사용자 및 그룹별 파일 접근 권한 설정 |
보안성 강화, 다중 사용자 환경 대응 | NTFS만 지원, 윈도우 서버에서 중요 |
압축 기능 | 파일 및 폴더 단위 압축 저장 가능 | 저장공간 절약 | 속도는 다소 저하될 수 있음 |
디스크 쿼터 (Quota) | 사용자 별 디스크 사용량 제한 가능 | 공유 시스템 자원 관리 | Windows 서버 환경에서 자주 사용 |
하드 링크 / 심볼릭 링크 |
하나의 파일을 여러 이름으로 접근 가능 |
파일 복사 없이 공유 가능 | 유닉스 유사 기능, NTFS도 지원 |
트랜잭션 파일 처리 (TxF) |
파일 작업을 트랜잭션 단위로 처리 | 일관성 보장, 원자성 처리 | 응용 프로그램에 따라 활용 |
- 파일 삭제 시 동작 방식
① MFT 레코드 상태 변경 - 해당 파일의 **파일 속성(Attribute)**에서 “삭제됨” 표시 (in-use → not in use)
② $Bitmap 업데이트 - 파일이 점유하던 클러스터의 사용 상태를 “비어 있음”으로 표시
③ 데이터 영역은 그대로 - 실제 파일 내용은 데이터 영역에 그대로 존재
④ $LogFile 기록 - 삭제 동작이 저널링 시스템에 기록됨 → 복구 추적 가능
⑤ $MFTMirror 및 복구 정보는 유지 - 일부 정보는 복구 시 사용될 수 있음
- 실제 파일 데이터는 삭제되지 않고 남아 있음
- 복구 도구(예: Recuva, FTK, Autopsy 등)로 복원 가능
- 보안 삭제(영구 삭제)를 위해선 덮어쓰기 또는 Wipe 작업 필요
- $Bitmap과 MFT의 상태 변경만으로도 파일은 “삭제된 것처럼” 동작
- NTFS는 삭제 시 논리적 삭제만 수행
- MFT의 파일 상태만 변경되고 데이터는 그대로 존재
- $Bitmap은 클러스터 해제 정보 갱신
- $LogFile은 트랜잭션(삭제 동작) 기록
- 복구는 삭제 직후가 가장 유리, 덮어쓰기되면 어려워짐
운영체제
- 개념
사용자와 하드웨어 사이의 중재자 역할을 하며 컴퓨터 자원을 효율적으로 관리하고 제어하는 시스템 소프트웨어
구성요소
커널 (Kernel) : 운영체제의 핵심! 자원 관리와 시스템 호출 처리
쉘 (Shell) : 사용자 명령어 해석 후 커널에 전달 (CLI/GUI)
파일 시스템 : 파일과 디렉토리 관리 기능 담당
드라이버 : 하드웨어 장치 제어를 위한 소프트웨어 모듈
시스템 콜 : 응용프로그램이 OS의 기능을 요청하는 방법 (ex. open, read 등)
- 운영체제의 분류
분류 기준 | 유형 | 정의 및 설명 | 대표 예시 |
---|---|---|---|
사용자 수 | 단일 사용자 OS | 한 번에 한 명의 사용자만 사용할 수 있는 운영체제, 다중 사용자 환경 미지원 | MS-DOS, Windows 95 |
다중 사용자 OS | 여러 사용자가 동시에 시스템에 접속하여 자원을 공유할 수 있는 운영체제 | UNIX, Linux, Windows Server |
|
동시 작업 수 |
단일 작업 OS | 한 번에 하나의 프로그램만 실행할 수 있는 구조, 자원 활용도 낮음 | MS-DOS |
다중 작업 OS | 두 개 이상의 프로그램을 동시에 실행할 수 있는 멀티태스킹 지원 운영체제 | Windows, Linux, macOS |
|
처리 방식 | 배치 처리 OS | 사용자의 개입 없이 작업들을 모아서 한꺼번에 처리 초기 대형 컴퓨터에서 사용 |
IBM 초기 OS, COBOL 시스템 |
시분할 OS | 여러 사용자에게 CPU 시간을 할당해 빠르게 번갈아가며 처리 반응 속도 빠름 |
UNIX, Linux | |
실시간 OS (RTOS) |
정해진 시간 안에 작업을 완료해야 하는 시스템용 OS, 지연 허용 불가 | VxWorks, QNX, RTLinux |
|
사용자 인터페이스 |
CLI (명령어 인터페이스) |
텍스트 기반 명령어 입력 방식, 숙련자에게 강력하지만 사용자 친화도 낮음 | Linux Shell, CMD, PowerShell |
GUI (그래픽 인터페이스) |
아이콘, 창, 마우스를 사용하는 시각적 환경 제공, 사용자 친화도 높음 | Windows, macOS |
- 파일 할당 기법
기법 | 설명 | 장점 | 단점 | 대표 예 |
---|---|---|---|---|
연속 할당 (Contiguous) |
파일이 디스크에서 연속된 블록에 저장됨 | 빠른 접근 속도 (직접 계산 가능) |
외부 단편화 발생 파일 크기 예측 필요 |
초기 파일 시스템, CD-ROM |
연결 할당 (Linked) |
각 블록이 다음 블록 주소를 포인터로 연결 | 단편화 적고 공간 활용도 높음 |
무작위 접근 느림 포인터 저장 공간 필요 |
FAT(File Allocation Table) |
인덱스 할당 (Indexed) |
모든 블록 번호를 저장한 인덱스 블록을 통해 관리 |
무작위 접근 용이 검색 빠름 |
인덱스 블록 크기 제한 간접 인덱스 필요 |
UNIX, ext 계열 |
- 운영체제 기능
항목 | 인터럽트 (Interrupt) | 예외 (Exception) | OLE (Object Linking and Embedding) |
---|---|---|---|
정의 | 외부 또는 내부 장치의 요청으로 CPU의 흐름을 중단시키고 OS가 개입 | 프로그램 실행 중 오류나 특수 상황 발생 시 OS 개입 |
한 응용프로그램에서 다른 프로그램의 객체를 연결 또는 포함하는 기술 |
유형 | 하드웨어 인터럽트, 소프트웨어 인터럽트 | 0으로 나누기, 페이지 폴트, 권한 위반 등 |
Object Linking(연결), Object Embedding(삽입) |
발생 시점 | 외부 I/O 장치, 타이머, 시스템 콜 등 | 실행 중인 명령어 처리 도중 | 사용자가 문서 내에 다른 애플리케이션 객체 삽입 시 |
주 사용 목적 | 즉각적인 처리 필요 이벤트에 대응 | 비정상 상황 처리 및 시스템 보호 | 애플리케이션 간 데이터 연동 및 통합 |
운영체제 관여 | 중단 후 인터럽트 핸들러 호출 | 예외 핸들러 호출 또는 강제 종료 | OS보다는 사용자 환경(UI)과 애플리케이션 레벨 |
예시 | 키보드 입력, 디스크 읽기 완료 | Divide by zero, segmentation fault |
Word 문서에 Excel 그래프 삽입 |
디스크 스케쥴링
- 개념 및 목적
디스크 입출력 요청이 여러 개 있을 때, 디스크 헤드를 어떤 순서로 움직이면 가장 효율적인지 결정하는 방식
목적
평균 탐색 시간 단축 : 디스크 헤드의 총 이동 거리 ↓
처리율 향상 : 더 많은 요청을 더 빠르게 처리
공정성 유지 : 요청 간 형평성 고려 (기아 현상 방지)
- 종류
알고리즘 | 설명 | 특징 | 기아(Starvation) |
---|---|---|---|
FCFS (First Come First Served) |
요청 순서대로 처리 | 구현 쉬움, 이동 거리 비효율 | 없음 |
SSTF (Shortest Seek Time First) |
현재 헤드에서 가장 가까운 요청부터 처리 | 평균 탐색 시간 ↓, 효율 ↑ | 발생 가능 |
SCAN (엘리베이터 알고리즘) |
한 방향으로 이동하다 끝까지 가면 반대 방향으로 처리 | 이동 규칙 명확, 요청 편향 줄임 |
거의 없음 |
LOOK | SCAN과 유사하지만, 실제 요청 있는 곳까지만 이동 | 불필요한 이동 ↓ | 없음 |
C-SCAN (Circular SCAN) |
한쪽 방향으로만 이동, 끝까지 갔다가 처음으로 점프 | 요청 처리 균형↑ | 없음 |
C-LOOK | LOOK + C-SCAN: 요청 있는 구간까지만 이동 후 점프 | 가장 효율적 방식 중 하나 | 없음 |
- 예시 문제
[문제]
현재 디스크 헤드는 트랙 53에 위치해 있다.
요청된 디스크 트랙 번호는 다음과 같다:
👉 98, 183, 37, 122, 14, 124, 65, 67
SSTF(Shortest Seek Time First) 알고리즘을 사용했을 때,
디스크 헤드의 이동 순서와 총 이동 거리는?
[풀이 과정]
SSTF는 "현재 위치에서 가장 가까운 트랙"을 우선 처리하는 방식이다.
초기 위치: 53
1. 53 → 65 (거리 12)
2. 65 → 67 (2)
3. 67 → 37 (30)
4. 37 → 14 (23)
5. 14 → 98 (84)
6. 98 → 122 (24)
7. 122 → 124 (2)
8. 124 → 183 (59)
[결과]
- 디스크 헤드 이동 순서:
53 → 65 → 67 → 37 → 14 → 98 → 122 → 124 → 183
- 총 이동 거리:
12 + 2 + 30 + 23 + 84 + 24 + 2 + 59 = 236 트랙
[핵심 요약]
- SSTF는 "가장 가까운 요청부터" 처리
- 효율은 높지만, 일부 요청이 오래 기다리는 '기아 현상' 발생 가능성 있음
프로세스 스케줄링
- 프로세스와 쓰레드
구분 | 프로세스 (Process) | 스레드 (Thread) |
---|---|---|
정의 | 실행 중인 프로그램의 독립된 단위 | 프로세스 내에서 실행되는 작업의 최소 단위 |
메모리 공간 | 각 프로세스는 독립된 메모리 공간 사용 (코드, 데이터, 힙, 스택) | 코드, 데이터, 힙은 공유하고, 스택은 개별 보유 |
자원 소모 | 많음 (컨텍스트 스위칭 비용 ↑) | 적음 (스레드 간 전환 비용 ↓) |
통신 방식 | 프로세스 간 통신(IPC, 파이프, 소켓 등) 필요 | 같은 메모리 공간 공유 → 빠른 통신 가능 |
독립성 | 서로 독립적 → 하나가 죽어도 영향 없음 | 같은 프로세스 내에서는 서로 영향 가능 |
생성 비용 | 높음 (OS가 많은 정보 생성) | 낮음 (프로세스 내에서 간단히 생성) |
예시 | 크롬 창 하나, 워드 프로그램 | 크롬 탭 하나, 워드에서 맞춤법 검사 스레드 |
- 용어정의
용어 | 정의 | 공식 |
도착 시간 (Arrival Time) | 프로세스가 준비 큐에 도착한 시간 | 시스템 기준 시점 |
실행 시간 (Burst Time) | CPU가 프로세스를 실행하는 데 걸리는 시간 | 요청된 연산량 |
완료 시간 (Completion Time) | 프로세스가 CPU에서 완전히 끝나는 시간 | 스케줄링 결과 |
대기 시간 (Waiting Time) | 프로세스가 CPU를 기다린 총 시간 | 반환 시간 - 실행 시간 |
반환 시간 (Turnaround Time) | 도착부터 종료까지 걸린 총 시간 | 완료 시간 - 도착 시간 |
응답 시간 (Response Time) | 처음으로 CPU를 받기까지 걸린 시간 | 첫 실행 시작 - 도착 시간 |
- 선점형 스케줄링
현재 실행 중인 프로세스를 중간에 강제로 중단시켜 더 높은 우선순위의 프로세스나 새로운 작업을 우선 실행하도록 하는 스케줄링 방식
즉, CPU를 빼앗을 수 있는 스케줄링
실시간성과 응답성이 비선점형보다 우수
알고리즘 | 기준 | 설명 | 기아 현상 |
---|---|---|---|
SRTF (Shortest Remaining Time First) |
남은 실행 시간 | SJF의 선점형 버전. 더 짧은 작업이 도착하면 현재 작업 중단 |
가능 |
선점형 우선순위 | 우선순위 값 | 더 높은 우선순위 프로세스가 오면 CPU를 뺏음 | 가능 (Aging 필요) |
Round Robin | 시간 할당량 (Time Quantum) |
모든 프로세스가 순서대로 일정 시간씩 CPU 사용 | 없음 (공정함) |
멀티레벨 큐(선점형) | 큐 우선순위 | 상위 큐가 항상 우선. 하위 큐는 CPU를 빼앗길 수 있음 | 있음 |
- 비선점형 스케줄링
알고리즘 | 스케줄 기준 | 특징 | 장점 | 단점 | 기아 발생 |
---|---|---|---|---|---|
FCFS (First-Come, First-Served) |
도착 순서 | 가장 먼저 도착한 프로세스를 끝날 때까지 실행 | 구현 간단, 공정한 방식 |
Convoy 효과 (긴 작업으로 전체 지연) |
없음 |
SJF (Non-preemptive) (Shortest Job First) |
실행 시간 (Burst Time) |
실행 시간이 가장 짧은 프로세스를 먼저 실행 |
평균 대기 시간 최소 |
긴 작업은 계속 밀림 | 있음 |
우선순위 스케줄링 (Priority Scheduling) |
우선순위 값 | 우선순위가 가장 높은 프로세스 먼저 실행 |
중요 작업 빠르게 처리 가능 | 낮은 우선순위는 무한정 대기 가능 |
있음 (Aging 필요) |
프로세스 페이징
프로세스의 논리적 주소 공간을 고정 크기 단위(페이지)로 나누고, 물리적 메모리도 같은 크기의 프레임으로 나누어 페이지를 프레임에 매핑하는 메모리 관리 기법
프로세스 논리 주소: [Page 0][Page 1][Page 2]...
물리 메모리 프레임: [Frame 5][Frame 2][Frame 7]...
→ Page Table에 의해 매핑
논리 주소 공간 → 페이지(Page) 단위로 분할
물리 주소 공간 → 프레임(Frame) 단위로 분할
각 페이지는 아무 프레임에나 할당 가능 (순서 무관)
논리 주소 = (페이지 번호, 오프셋)
물리 주소 = 프레임 번호 × 프레임 크기 + 오프셋
1. CPU가 논리 주소 생성 → 페이지 번호 + 페이지 내 오프셋으로 나뉨
2. 페이지 번호 → 페이지 테이블에서 프레임 번호 조회
3. 프레임 번호 + 오프셋 → 물리 주소 계산
- 핵심 용어 정리
용어 | 정의 | 페이징과의 관계 | 역할 / 기능 |
---|---|---|---|
국부성 (Locality) |
프로세스가 특정 메모리 영역을 집중적으로 참조하는 성질 |
국부성이 높을수록 페이지 부재(Page Fault) 발생률 ↓ |
페이징 성능 최적화의 이론적 기반 |
워킹셋 (Working Set) |
일정 시간 구간(Δ) 동안 프로세스가 자주 사용하는 페이지 집합 |
실행 안정성 유지에 필요한 최소 프레임 수를 결정 |
프레임 할당 기준, 스레싱 방지 지표 |
스레싱 (Thrashing) |
페이지 부재가 너무 많아 CPU가 작업보다 교체에 시간 소모 |
워킹셋보다 적은 프레임 할당 시 발생 | 페이징 오버헤드 급증, 성능 급락 |
페이지 부재 (Page Fault) |
필요한 페이지가 메모리에 없는 상태 | 페이징 시스템의 주소 접근 시 발생 | 디스크에서 페이지 로딩 필요 → 느림 |
프레임(Frame) | 물리 메모리에서 페이지를 저장하는 고정 크기 블록 | 페이지는 프레임에 매핑되어 저장됨 | 페이징에서 실질적인 저장 단위 |
페이지(Page) | 논리 주소 공간을 나눈 고정 크기 단위 | 페이지는 프레임과 1:1 매핑됨 | 논리 주소에서 물리 주소로 변환 시 기본 단위 |
페이지 테이블 | 페이지 번호와 프레임 번호의 매핑 정보를 저장하는 표 |
주소 변환 시 반드시 참조됨 | 논리 → 물리 주소 매핑 핵심 |
TLB (Translation Lookaside Buffer) |
페이지 테이블을 빠르게 참조하기 위한 캐시 |
주소 변환 속도 향상 | 자주 사용하는 페이지 매핑을 빠르게 찾음 |
페이지 교체 알고리즘 | 프레임 부족 시 어떤 페이지를 제거할지 결정 |
페이징의 효율에 큰 영향을 미침 | LRU, FIFO, Optimal 등 다양한 방식 존재 |
- 관계도 요약
[국부성] → 페이지 접근이 특정 영역에 집중됨
↓
[워킹셋] = 그 집중된 "사용 중인 페이지 집합"
↓
워킹셋보다 적은 프레임 할당 시 → [스레싱] 발생
이 모든 흐름을 관리하는 기본 메커니즘 = [페이징 시스템]
→ 페이지/프레임, 페이지 테이블, TLB, 교체 알고리즘 등 포함
- 페이징 교체 알고리즘
알고리즘 | 교체 기준 | 장점 | 단점 | 기아 발생 | 특징 / 비고 |
---|---|---|---|---|---|
FIFO (First-In, First-Out) |
가장 오래된 페이지 제거 | 구현 쉬움 | 성능 비효율 (Belady's anomaly 발생) |
X | 역설적 오류 발생 가능 |
OPT (Optimal) |
가장 오래 사용되지 않을 페이지 제거 | 이론상 최적 | 실제 구현 불가 (미래 예측 필요) |
X | 비교 기준용 알고리즘 |
LRU (Least Recently Used) |
가장 오랫동안 사용되지 않은 페이지 제거 | 국부성 반영, 성능 우수 | 비용 ↑ (시간/스택 기록 필요) |
X | 자주 사용됨, TLB와 유사 |
LFU (Least Frequently Used) |
가장 적게 사용된 페이지 제거 |
이용률 기반 제거 | 초기 사용 안 한 페이지 유지 가능 |
O | 사용률 계산 필요 |
Second Chance | FIFO + 사용 비트 체크 | FIFO의 단점 보완 | 구현 복잡 | X | Clock 알고리즘과 유사 |
Clock | 원형 포인터 +사용 비트 검사 |
효율적, 구현 쉬움 |
가끔 오래된 페이지 남을 수 있음 |
X | Second Chance의 하드웨어 버전 |
입출력장치의 버퍼링, 스풀링
항목 | 버퍼링 (Buffering) | 스풀링 (Spooling) |
---|---|---|
정의 | 데이터를 일시적으로 저장하는 작은 메모리 영역(버퍼)사용 |
I/O 요청을 디스크에 먼저 저장했다가 장치가 준비되면 처리 |
목적 | 속도 차이를 완충하여 입출력 속도 향상 및 중첩 실행 지원 |
여러 I/O 작업을 순서대로 큐에 저장하여 병목 없이 처리 |
동작 방식 | 버퍼 메모리에 잠시 저장 후 입출력 장치로 전달 (또는 반대) |
디스크 큐에 요청 파일 저장 → 장치 준비 시 꺼내 처리 |
사용 위치 | 주로 메모리(RAM)에 존재 | 보조기억장치(디스크)에 저장 |
실시간성 | 실시간 반응 가능 (속도 차이 보완) | 실시간성 낮음 (일괄 처리 성격) |
주요 예시 | 키보드 입력 버퍼, 네트워크 송신 버퍼 | 프린터 출력 스풀링, 이메일 전송 대기 큐 |
중첩 실행 가능 여부 | 가능 (입출력과 처리 병행) | 가능 (디스크에 저장되므로 CPU 독립적 실행) |
주로 사용되는 장치 | 빠르거나 실시간 반응이 필요한 장치 (키보드, 모니터 등) |
느리고 공유가 필요한 장치 (프린터, 디스크 등) |
WINDOWS 운영체제
Microsoft에서 개발한 그래픽 사용자 인터페이스(GUI) 기반의 운영체제로, 데스크탑, 노트북, 태블릿, 서버 등 다양한 환경에서 사용 됨
- 최초 버전: Windows 1.0 (1985)
- 대표 버전: Windows XP, 7, 10, 11, Windows Server 시리즈
- 현재는 Windows NT 커널 기반 운영체제로 통합됨
- 핵심 구성 요소
구성 요소 | 설명 |
커널(Kernel) | 하드웨어와 직접 상호작용, 프로세스·메모리·장치·파일 시스템 관리 |
HAL (Hardware Abstraction Layer) | 하드웨어의 세부 사항을 추상화하여 OS가 일관되게 작동하도록 함 |
서비스 (Services) | 백그라운드에서 자동 실행되는 기능들 (예: 인쇄, 보안, 업데이트 등) |
레지스트리 (Registry) | 시스템 및 사용자 설정을 저장하는 계층적 데이터베이스 |
드라이버 (Driver) | 하드웨어 장치와 OS를 연결해주는 소프트웨어 |
GUI (사용자 인터페이스) | 아이콘/창 기반의 사용 환경 제공 (탐색기, 시작 메뉴 등) |
- MFT(Master File Table)
MFT는 NTFS 파일 시스템에서 모든 파일과 디렉터리에 대한 메타데이터를 저장하는 중앙 테이블이다.
- NTFS의 파일 관리의 핵심
- NTFS에서는 모든 것(파일, 폴더, 심지어 MFT 자신까지) 을 파일로 관리
- 파일 시스템의 “전화번호부” 혹은 인덱스” 역할
항목 | 설명 |
파일 이름 | 짧은 이름/긴 이름 등 포함 가능 |
타임스탬프 | 생성, 수정, 접근 시간 (4가지 이상) |
파일 속성 | 읽기 전용, 숨김, 시스템 파일 등 |
파일 크기 및 실제 데이터 위치 | 클러스터 단위로 저장 위치 표시 |
보안 정보 | ACL(Access Control List) 기반 보안 권한 |
하드 링크 정보 | 동일 파일을 참조하는 링크 목록 |
파일이 디렉터리인지 여부 | 디렉터리 플래그 포함 |
해당 파일의 MFT 항목 번호 | 파일마다 고유 번호 (예: $MFT 항목 0은 자기 자신) |
- MFT Entry 내 주요 속성
속성 이름 (Tag) | 설명 | 포렌식 활용 |
$STANDARD_INFORMATION | 파일의 기본 정보: 생성/수정/접근 시간, 권한, 속성 등 |
타임라인 분석의 핵심 MAC 시간 확인 |
$FILE_NAME | 파일 이름, 이름 변경 시간, 부모 디렉터리 정보 등 | 이름 변경 여부, 실제 이름 확인 |
$DATA | 실제 파일 내용(데이터)을 저장 작은 경우 레코드 내 저장 (resident) / 크면 외부 저장 (non-resident) |
파일 내용 일부 추출 가능 |
$OBJECT_ID | UUID 같은 고유 식별자 (특수 파일에만 존재) | 링크 추적 시 유용 |
$SECURITY_DESCRIPTOR | ACL 등 접근 제어 정보 포함 | 사용자 권한 분석 |
$ATTRIBUTE_LIST | 속성이 여러 개일 경우 연결 리스트 형태로 연결 | 파일이 여러 MFT Entry에 걸칠 때 구조 확인 |
$INDEX_ROOT $INDEX_ALLOCATION |
디렉터리 구조, 서브 디렉터리/파일 목록 관리용 속성 | 폴더 내부 분석 삭제 디렉터리 추적 |
$BITMAP | 할당된 클러스터 여부 추적 | 파일 확장/축소 여부 확인 |
$LOGGED_UTILITY_STREAM | 일부 시스템 특화 스트림용 | 보안 또는 NTFS 복구 대상 |
- 레지스트리 키
Windows 시스템, 사용자, 소프트웨어 설정 정보를 계층적으로 저장하는 데이터베이스의 항목 단위
레지스트리 키 = 폴더
레지스트리 값 = 폴더 안의 파일
HKEY_LOCAL_MACHINE
└── Software
└── Microsoft
└── Windows
└── CurrentVersion
└── Run
루트 키 | 설명 |
HKEY_LOCAL_MACHINE (HKLM) | 시스템 전체에 적용되는 설정 (드라이버, 서비스, 프로그램 등) |
HKEY_CURRENT_USER (HKCU) | 현재 로그인한 사용자 계정의 설정 |
HKEY_CLASSES_ROOT (HKCR) | 파일 확장자 연결, COM 객체 등록 등 |
HKEY_USERS (HKU) | 모든 사용자 프로파일 설정 (HKCU는 여기의 하위 항목 중 하나) |
HKEY_CURRENT_CONFIG (HKCC) | 현재 하드웨어 프로파일 정보 (부팅 시 동적 생성) |
데이터 타입 | 설명 |
REG_SZ | 일반 문자열 (string) |
REG_DWORD | 32비트 정수 값 |
REG_BINARY | 이진 값 (바이트 배열) |
REG_MULTI_SZ | 문자열 배열 (여러 줄) |
REG_EXPAND_SZ | 환경 변수 포함 문자열 |
- 하이브 파일
윈도우 레지스트리를 구성하는 실제 파일
하이브 파일 이름 | 실제 경로 | 포함 정보 | 포렌식 활용 포인트 |
---|---|---|---|
SYSTEM | C:\Windows\System32\config\SYSTEM | 부팅 정보, 드라이버, 서비스, 하드웨어 설정 |
시작 서비스, 부팅 시간, 드라이버 흔적 확인 |
SOFTWARE | C:\Windows\System32\config\SOFTWARE | 설치된 프로그램, 경로, 설정, 라이선스 정보 |
설치 프로그램 목록, 악성코드 흔적, 실행 경로 분석 |
SAM (Security Accounts Manager) |
C:\Windows\System32\config\SAM | 로컬 사용자 계정, 그룹, 암호 해시 |
사용자 목록, 관리자 계정 여부, 암호 크래킹 대상 |
SECURITY | C:\Windows\System32\config\SECURITY | 로컬 보안 정책, 감사 정책 |
감사 로그 정책, 접근 제어 권한 분석 |
DEFAULT | C:\Windows\System32\config\DEFAULT | 기본 사용자 프로필 설정 | 초기 사용자 환경 복원, 자동 실행 정보 확인 |
NTUSER.DAT | C:\Users\\[사용자명]\\NTUSER.DAT | 현재 사용자 계정의 설정, 실행 흔적 | 사용자 활동 이력, 실행 프로그램, 열어본 파일 추적 |
UsrClass.dat | C:\Users\\[사용자명]\\AppData\\Local\\Microsoft\\Windows\\UsrClass.dat | 최근 파일 목록, 윈도우 UI 설정 |
최근 사용 흔적, UI 커스터마이징 정보 |
- 시스템 백업 가능
항목 | 설명 |
레지스트리 설정 | SYSTEM, SOFTWARE, SECURITY, DEFAULT 하이브 정보 포함 |
시스템 파일 | DLL, EXE, SYS 등 핵심 운영체제 파일 (SFC로 보호되는 파일 포함) |
드라이버 및 서비스 설정 | 장치 드라이버 및 서비스 자동 시작 정보 등 |
시스템 구성 설정 | MSCONFIG, 부팅 옵션, 환경 변수 |
COM+ DB / WMI 구성 | 시스템 구성요소 상태 저장 |
애플리케이션 설치 시 생성된 복원 지점 | 프로그램 설치 시 자동 백업 지점 생성 |
Shadow Copy(볼륨 스냅샷) | 사용자가 지정한 파일/폴더의 이전 버전 저장 가능 |
.sys, .inf 파일 | 일부 커널/하드웨어 드라이버 파일 포함 |
- 시스템 백업 불가능
항목 | 설명 |
사용자 문서 | 바탕화면, 문서, 사진, 다운로드 등 사용자 데이터는 제외됨 |
e-mail, 개별 앱 데이터 | 메일 클라이언트 내부 데이터, 웹 브라우저 캐시 등 |
비운영체제 드라이브의 데이터 | 복원 지점 생성 시 C 드라이브(시스템 볼륨) 만 대상임 |
일반 실행 파일(EXE) | 사용자가 직접 복사한 프로그램, 무설치형 앱 |
암호화된 파일 (EFS) | 일부 복원 실패 가능 (인증서 문제 시) |
임시 파일, 로그 | Temp, Recent, Thumbs.db 등 캐시성 파일 |
응용 프로그램 사용자 설정 | 일부 앱의 사용자 맞춤 설정은 복원 안 됨 (예: Photoshop 설정 등) |
레지스트리 외부에서 직접 조작된 시스템 설정 | 복원 포인트가 아닌 수동 변경값은 포함 안 될 수 있음 |
UNIX, LINUX 운영체제
항목 | UNIX | LINUX |
개발 시기 | 1969년 (AT&T) | 1991년 (리누스 토르발스) |
라이선스 | 상용 (비공개가 많음) | 오픈소스 (GPL 기반) |
커널 구조 | 대부분 모놀리식 커널 | 모놀리식 커널 + 모듈화 |
플랫폼 | 서버/슈퍼컴퓨터 중심 | PC, 서버, 모바일, 임베디드 등 |
사용자층 | 기업/학술/기관 | 개발자, 일반 사용자, 교육, 서버 |
대표 배포판 | AIX, HP-UX, Solaris, BSD | Ubuntu, RedHat, Fedora, Arch 등 |
시스템 구조 | POSIX 기반 구조 | POSIX 준수, GNU 유틸리티 결합 |
지원 | 기업 기술지원 중심 | 커뮤니티 + 일부 기업 지원 |
커널 업데이트 | 제한적, 기업 유지 | 활발한 개발과 커뮤니티 패치 |
- UNIX 파일시스템 구조
구성 요소 | 설명 |
부트 블록 (Boot Block) | 부팅 시 필요한 부트스트랩 코드 포함 (파일 시스템의 시작 부분) |
슈퍼 블록 (Super Block) | 파일 시스템의 전체 정보 저장 (크기, 사용 상태, i-node 수 등) |
i-node 테이블 (Index Node) | 각 파일의 메타데이터 저장소 (권한, 소유자, 크기, 포인터 등) |
데이터 블록 (Data Block) | 실제 파일의 데이터가 저장되는 공간 |
디렉터리 블록 | 파일 이름과 해당 i-node 번호의 매핑 정보 저장 |
프리 블록/비트맵 영역 | 사용 가능한 블록과 i-node 관리 (할당 여부 표시) |
실린더 그룹 | 파일 할당의 지역성을 높이기 위한 논리적 분할 단위 |
실린더 그룹 블록 | 해당 그룹 내 메타데이터(i-node 테이블, 블록 비트맵 등) 저장 |
- UNIX,LINUX 디렉토리 구조
/
├── bin # 필수 실행 파일 (ls, cp, mv 등)
├── boot # 부트로더, 커널 관련
├── dev # 장치 파일 (하드디스크, 터미널 등)
├── etc # 시스템 설정 파일
├── home # 사용자 디렉터리 (/home/사용자명)
├── lib # 공용 라이브러리 (.so 파일 등)
├── media/mnt # 외부 장치 마운트 위치
├── proc # 가상 파일 시스템 (커널/프로세스 정보)
├── root # 루트 사용자의 홈 디렉터리
├── sbin # 시스템 관리용 실행파일
├── tmp # 임시 파일 저장 공간
├── usr # 사용자가 설치한 프로그램, 라이브러리
├── var # 로그, 메일, 캐시, 스풀 등 자주 변하는 파일
거의 동일하지만, Linux는 배포판에 따라 약간의 차이가 있을 수 있음 (예: /run, /snap 등은 Ubuntu 계열에 있음)
Linux는 FHS 표준을 좀 더 적극적으로 따름
/sys, /run, /srv 등 Linux 고유의 디렉터리도 추가됨 (대부분 시스템 관리 목적)
- UNIX,LINUX 명령어
기능 | 명령어 | 설명 | 예시 |
📁 현재 경로 확인 | pwd | 현재 작업 디렉터리 출력 | pwd |
📁 목록 보기 | ls | 파일/디렉터리 목록 출력 | ls -al |
📁 디렉터리 이동 | cd | 디렉터리 변경 | cd /etc |
📁 디렉터리 생성 | mkdir | 새 디렉터리 생성 | mkdir mydir |
📁 디렉터리 삭제 | rmdir | 빈 디렉터리 제거 | rmdir olddir |
📁 파일 복사 | cp | 파일 또는 디렉터리 복사 | cp a.txt b.txt |
📁 파일 이동/이름 변경 | mv | 파일 이동 또는 이름 바꾸기 | mv file1.txt docs/ |
📁 파일 삭제 | rm | 파일 또는 디렉터리 삭제 | rm -r tmpdir |
📁 파일 내용 출력 | cat / less / more | 텍스트 파일 보기 | cat README.md |
🔍 텍스트 검색 | grep | 문자열 포함 라인 출력 | grep 'error' log.txt |
🔍 파일 검색 | find | 조건에 맞는 파일 찾기 | find /var -name '*.log' |
🔍 파일 정보 확인 | file / stat | 파일 유형, 메타데이터 확인 | stat config.txt |
🔐 현재 사용자 | whoami | 로그인된 사용자 ID 출력 | whoami |
🔐 관리자 권한 | sudo, su | 루트 권한 실행 | sudo apt update |
🔐 권한 변경 | chmod | 파일 권한 변경 | chmod 755 script.sh |
🔐 소유자 변경 | chown | 사용자 또는 그룹 변경 | chown user1 file.txt |
🔐 권한 보기 | ls -l | 접근 권한, 소유자 확인 | ls -l /etc/passwd |
⚙️ 프로세스 확인 | ps, top, htop | 실행 중 프로세스 보기 | ps aux, top |
⚙️ 프로세스 종료 | kill, killall | PID 또는 이름으로 종료 | kill 1234, killall chrome |
⚙️ 메모리 확인 | free | 메모리 사용량 확인 | free -m |
⚙️ 디스크 공간 | df, du | 디스크 사용 현황 | df -h, du -sh * |
⚙️ 시스템 부팅 시간 | uptime | 부팅 이후 경과 시간 | uptime |
⚙️ 시스템 종료/재시작 | shutdown, reboot | 종료, 재부팅 | shutdown -h now |
📦 압축 파일 생성 | tar / zip | 디렉터리 압축 | tar -czf backup.tar.gz dir/ |
📦 압축 해제 | tar, unzip | 압축 해제 | tar -xzf file.tar.gz |
🌐 IP 정보 | ifconfig, ip | 네트워크 인터페이스 확인 | ip a, ifconfig |
🌐 연결 테스트 | ping | 네트워크 연결 확인 | ping google.com |
🌐 포트 확인 | netstat, ss | 포트 상태 확인 | ss -tuln |
🌐 원격 접속 | ssh | 원격 시스템 접속 | ssh user@192.168.0.1 |
🛠 기타 명령 | man | 명령어 설명서 | man ls |
🛠 기타 명령 | alias | 명령어 별칭 생성 | alias ll='ls -l' |
🛠 기타 명령 | history | 명령어 기록 보기 | history |
🛠 기타 명령 | clear, date, cal | 화면 지우기, 날짜 확인 | clear, date |
- UNIX/LINUX 시스템 보안 도구
도구 이름 | 주요 기능 설명 |
sudo | 일반 사용자가 일시적으로 관리자 권한 명령을 실행하도록 허용 |
passwd | 사용자의 비밀번호를 설정 또는 변경 |
chage | 사용자 계정의 비밀번호 만료 주기 및 정책 설정 |
iptables | 리눅스 방화벽, 포트·프로토콜 기반 트래픽 필터링 |
ufw | iptables를 쉽게 사용하기 위한 간단한 방화벽 설정 도구 |
fail2ban | 로그인 실패 감지 후 의심 IP 자동 차단 |
nmap | 시스템의 열린 포트와 실행 중인 서비스 탐지 |
netstat / ss | 현재 열려 있는 포트, 연결 상태 확인 |
tcpdump | 네트워크 트래픽을 CLI에서 패킷 단위로 캡처/분석 |
wireshark | GUI 기반 고급 패킷 분석 도구 |
chkrootkit | 시스템에 설치된 루트킷 존재 여부 검사 |
rkhunter | 백도어, 루트킷, 비정상 권한 설정 탐지 도구 |
clamav | 리눅스 환경에서 악성코드 탐지 가능한 안티바이러스 도구 |
lynis | 전체 시스템 보안 점검 자동화 스크립트 |
Nikto | 웹서버의 설정 오류 및 취약점 스캐너 |
OpenVAS | 포트 기반 네트워크 취약점 스캐너 (기업용 보급형) |
Volatility | 메모리 덤프에서 악성코드/프로세스 추적 분석 도구 |
sleuthkit / autopsy | 파일 시스템, 타임라인, 삭제 파일 분석용 디지털 포렌식 도구 |
- UNIX/LINUX 시스템 로그 파일
경로 | 내용 |
/var/log/syslog or /var/log/messages | 시스템 전반의 일반 로그 (Ubuntu: syslog / CentOS: messages) |
/var/log/auth.log | 로그인, 인증, sudo 명령 기록 |
/var/log/secure | (Red Hat 계열) 인증 관련 이벤트 |
/var/log/dmesg | 부팅 시 커널 메시지 출력 |
/var/log/boot.log | 부팅 서비스 관련 로그 |
/var/log/kern.log | 커널 관련 메시지 |
/var/log/faillog | 로그인 실패 정보 |
/var/log/lastlog | 각 계정의 마지막 로그인 시간 |
/var/log/btmp | 실패한 로그인 기록 (바이너리) → lastb로 확인 |
/var/log/wtmp | 로그인/로그아웃 기록 (바이너리) → last 명령으로 조회 |
/var/log/utmp | 현재 로그인 사용자 세션 정보 (명령어 who) |
/var/log/httpd/access_log | 웹서버 접속 로그 (Apache) |
/var/log/httpd/error_log | 웹서버 오류 로그 |
- I-NODE 블록 매핑 방식
구조 이해
i-node는 파일 이름을 저장하지 않는다 → 이름은 디렉터리 엔트리에서 i-node 번호와 연결됨
i-node는 직접 블록 12개 + 간접 블록(1~3차) 으로 데이터 블록을 가리킨다
1차/2차/3차 간접 블록은 포인터 블록 → 데이터 블록 방식으로 확장된다
포렌식 분석 포인트
파일 삭제 시 i-node가 먼저 해제되고, 데이터 블록은 덮어쓰기 전까지 존재할 수 있음
링크 수(link count)가 0이면 해당 파일은 삭제 대상이 될 수 있음
하드링크는 같은 i-node 번호를 공유하므로 복수 경로가 하나의 파일을 가리킬 수 있음
i-node 번호와 블록 주소는 별개이며, 삭제 복구 시 번호 추적이 중요
간접 블록 구조 덕분에 i-node는 수 GB ~ TB급 대용량 파일까지 대응 가능
기타 추가 주요 포인트
- 파일 할당 기법 (File Allocation Methods)
방식 | 설명 | 장점 | 단점 |
연속 할당 | 파일이 디스크에 연속된 블록에 저장됨 | 빠른 접근, 간단한 구현 | 단편화 발생, 파일 확장 어려움 |
연결 할당 | 각 파일이 블록 단위로 저장되고 포인터로 연결됨 | 단편화 없음, 유연한 확장 | 랜덤 접근 느림 |
인덱스 할당 | i-node 방식과 유사, 인덱스 블록이 데이터 블록 목록 저장 | 랜덤 접근 가능 | 인덱스 블록 크기 제한 존재 |
- 디렉터리 엔트리 구조
디렉터리 자체는 특수한 파일이며, 내부에 (파일 이름, i-node 번호) 쌍을 저장함
구성 항목 | 설명 |
파일 이름 | 최대 길이 제한 있음 (예: ext2는 255바이트) |
i-node 번호 | 실제 파일 메타데이터(i-node)의 위치를 가리킴 |
디렉터리 내 파일 이름 중복 X (동일 디렉터리 기준)
ls -i 명령으로 i-node 번호 확인 가능
- 프로세스 및 메모리 관리
개념 | 설명 | 예시 |
프로세스 상태 | 실행(Running), 준비(Ready), 대기(Waiting), 종료(Terminated) | 상태 전이 다이어그램 |
스케줄러 종류 | 장기/단기/중기 스케줄러 | 단기 스케줄러가 CPU 스케줄링 |
메모리 관리 | 페이징, 세그멘테이션, 가상 메모리 등 | page table, TLB |
- CPU 스케줄링 기법 요약
알고리즘 | 방식 | 특징 |
FCFS | 도착 순 | 단순하지만 Convoy 효과 발생 |
SJF | 실행 시간 짧은 순 | 평균 대기시간 최소화, 기아 가능성 |
RR | 시간 할당량 순환 | 선점형, 공정성 강조 |
Priority | 우선순위 기준 | Aging 기법 필요 (기아 방지) |
- 레지스트리 Last Write Time
레지스트리 키의 마지막 수정 시간은 포렌식 분석에 매우 중요
항목 | 설명 |
저장 위치 | 레지스트리 키 자체 메타데이터에 포함됨 (하이브 파일 내부) |
확인 방법 | FTK, Registry Explorer, KAPE 등으로 분석 |
활용 | 악성코드 등록 시간, 설정 변경 시간 확인 가능 |
- 레지스트리 데이터 유형 (Registry Value Types)
유형 | 설명 |
REG_SZ | 문자열 |
REG_DWORD | 32비트 정수 |
REG_BINARY | 바이너리 (0x...) |
REG_MULTI_SZ | 여러 줄 문자열 배열 |
REG_EXPAND_SZ | 환경 변수 포함 문자열 |
Run, RunOnce, Services 키에서 자주 사용됨
포렌식 분석 시 어떤 값이 어떤 유형인지 구분할 수 있어야 함
'디지털포렌식' 카테고리의 다른 글
디지털포렌식 2급 필기 준비 - 3과목 (1) | 2025.04.22 |
---|---|
디지털포렌식 2급 필기 준비 - 1과목 (1) | 2025.04.11 |