부팅과 데이터 저장/전송
부팅 절차
(1) 전원 버튼 누름
- 컴퓨터 전원 버튼 누름
- 전원 공급기는 외부 전압을 낮은 전압을 통해 안정적으로 변환 공급
- 메인 보드의 클록 발생기는 전압이 전달될 시 주기적으로 클록 발생
- 클록의 주기에 따라 컴퓨터 시스템 동작
*클록: 컴퓨터의 연산을 조절하는 타이밍 신호
(2) ROM BIOS 로드
- 클록을 CPU로 전달
- CPU가 메인 보드 ROM BIOS를 메모리에 로드 후 ROM BIOS 실행
*BIOS: Basic Input/Output System 약자로, 기기 사이의 정보전송을 관장하는 프로그램
(3) POST 작업 전 기본 테스트
- ROM BIOS 부팅 프로그램 실행
- POST 작업 수행을 위한 기본 테스트
- 테스트 결과가 ROM BIOS에 저장된 값과 일치하면 POST 작업 수행
*POST: Power On Self-Test
(4) POST 단계(Con't'd)
- 1단계: 시스템 버스에 특정 시그널을 보내 이상 유무 확인
- 2단계: RTC(Real-Time Clock)/NVRAM 테스트
- 3단계: 비디오 구성 요소 테스트/ 표준 출력을 통해 부팅 과정 확인 가능
- 4단계: RAM 테스트
- 5단계: 키보드 정상 연결 테스트
- 6단계: 시스템에 연결된 모든 드라이브 테스트
- 7단계: POST 결과가 RTC/NVRAM에 저장된 값과 동일한지 확인
- 8단계: 추가적인 BIOS(SCSI, VGA 등) 로드
*RTC: 컴퓨터의 시계 기능
*NVRAM: 전원이 꺼져도 저장된 정보가 유지되는 일종의 컴퓨터 메모리
(5-1) MBR 로드

:저장매체의 첫 번째 섹터인 MBR(Master Bost Record) 로드
MVR: 컴퓨터의 디스크 구조와 파티션 위치에 대한 중요한 정보를 저장해 데이터 복구에서 중요한 역할 수행
MBR 역할
- 파티션 테이블에서 부팅 가능한 파티션 검색
- 부팅 가능한 파티션이 있을 경우, 해당 파티션의 VBR(Volum Bost Record)로 점프
- 부팅 가능한 파티션이 없을 경우, 오류 메시지 출력
(5-2) VBR 로드

VBR: MBR을 통해 부팅 가능한 볼륨을 찾을 때 해당 볼륨의 첫 번째 섹터 로드
VBR 역할
- 부트 로더를 메모리에 로드(윈도우의 경우 NTLDR)
- 부트 로더는 커널(NTOSKRNL)과 관련된 컴포넌트를 로드
- 운영체제 부팅
데이터 저장
자기디스크
- 자기장의 자화 반전을 이용해 기록
- S => N(or N => S) : 0
- N => S(or S => N) : 1
플래시 메모리
- 폴로팅 게이트 트랜지스터로 구성된 각 셀에 데이터 저장
- 플로팅 게이터가 전자를 가지고 있을 때는 전류가 흐르지 않고 반대의 경우는 전류가 흐름
*낸드 플래시 메모리: 반도체의 셀이 직렬로 배열되어 있는 플래시 메모리
*플로팅게이트: 낸드 플래스 메모리의 핵심 구조물로, 전자 저장
광학디스크
- 폴리카보네이트 색소층에 레이저를 이용해 기록
*폴리카보네이트: 열가소성 플라스틱 종류로, 유연성 및 가공성 우수(PC라고도 불림)
데이터 전송
유선

이진수 => 6자리씩 끊어놓기 => NIC(Network Interface Controller)가 데이터를 받아 컴퓨터에 전달 => MODEM이 디지털 신호를 아날로그 신호로 변환
무선
- 무선 신호(주파수) 이용을 제외하면 유선과 방식 동일

- 무선 통신에서 주파수 확보와 함께 대역폭이 중요
AM vs FM
AM 방송
- 530~1600 kHz 주파수 대역을 채널 간격 10 kHz의 108개 채널로 분할한 방송
- 사용 주파수: 중파(MF)
- 대역폭: 9 kHz
FM 방송
- 88~108 MHz 주파수 대역을 20
- 사용 주파수: 초단파
- 대역폭: 200 KHz
부팅 절차
(1) 공통된 부팅 절차(Common Boot Process)

1. ROM BIOS 부트 프로그램(boot program, bootstrap) 로드
2. POST(Poser On Self-Test) 작업 수행을 위한 기본 테스트
3. POST-1단계: 시스템 버스 테스트
4. POST-2단계: RTC(Real-Time Clock) 테스트
5. POST-3단계: 시스템 비디오 구성 요소(비디오, 메모리 등) 테스트
6. POST-4단계: RAM 테스트
7. POST-5단계: 키보드 테스트
8. POST-6단계: 드라이브 테스트
9. POST-7단계: POST 검사 결과
10. POST-8단계: 추가적인 BIOS 로드
11. MBR 로드 후 부팅 가능한 파티션 검색
12. VBR 로드
(2) DOS 부팅 절차(DOS Boot Process)

VBR 로드 이후(VBR 부트 프로그램부터)
1. IO.SYS 실행
- 루트 디렉토리에 존재하는 IO.SYS를 메모리에 로드한 후 실행됨
- IO.SYS의 서브 루틴인 SYSINIT는 MSDOS.SYS 파일을 읽어 자신과 읽은 내용을 메모리에 복사
2. MSDOS.SYS 실행
- SYSINIT는 MSDOS.SYS 를 실행시킴
- MSDOS.SYS가 기본 장치 드라이버를 초기화시키고 시스템 장치들의 상태 점검
- 기본적인 DOS 실행 환경을 설정 및 DOS 파일시스템 수행
3. COMMAND.COM 실행
- SYSINIT는 COMMAND.COM 을 읽어 관련 내용 수행(하드웨어 장치 드라이버/확장 메모리 관리자를 메모리에 로딩)
- SHELL 상태가 이미 존재한다면 수행, 존재하지 않는대면 기본 매개변수를 가지는 기본 쉘 실행
- COMMAND.COM가 기존 SYSINIT 메모리 영역에 덮어씌워지고 SYSINIT는 종료
4. AUTOEXEC.BAT 실행
- AUTOEXEC.BAT(배치 파일)가 존재한다면 COMMAND.COM에 의해 수행
- 부가적인 설정(경로, 사운드카드, 기타 환경변수 설정 등)
- AUTOEXEC.BAT가 없다면 COMMAND.COM은 DATE, TIME 명령어 실행 후 카피라이트 메시지 출력
5. 이후 깜빡이는 DOS 프롬프트 확인 가능
*DOS: 텍스트 기반 운영체제
*IO.SYS: 리얼 모드 운영체제 파일
(3) 윈도우 NT/2000/XP 부팅 절차(Windows NT/2000/XP Boot Process)

VBR 로드 이후(VBR 부트 프로그램부터)
1. NTLDR
- VBR 두 번째 섹터의 NTDLR의 위치 정보를 읽고 로드
- 파일 시스템 초기화
- BOOT.INL 파일을 읽고 부트 초기화 설정 및 부트 메뉴(F8) 설정
- 듀얼 부팅일 경우 BOOTSECT.DOS 수행
- SCSI 드라이버에 추가적인 파일이 있다면 수행
2. NTDETECT
- 하드웨어 탐지를 위해 NTDETECT.COM 로드
- NTDETECT.COM는 현재 설치된 하드웨어 구성요소 정보 수집
- 수집된 정보를 HEKY_LOCAL_MACHINE\HARDWARE에 유지
- 하나 이상의 하드웨어 프로필이 존재할 경우 현재 하드웨어와 프로필이 동일한지 확인 후 수행
3. NTOSKRNL
- 하드웨어 구성 선택이 완료되면 NTDLR에 의해 NTOSKRNL.EXE 로드
- 커널, Hardware Abstraction Layer, 시스템 레지스트리, 드리아버, TCP/IP 등 로드
- 이 단계에서 그래픽 모드로 전환
- 로딩 상태바 표시
4. SMSS
- 기본적인 초기화가 완료되면 Session Manager(SMSS.EXE) 로드
- 추가적인 레지스트리, Win 32 subsystem(WIN32K.SYS)를 수행하기 위한 환경 구성 정보 로드
5. WINLOGON
- WINLOGON.EXE 파일 로드 => Local Security Authority(LSASS.EXE) 로드 => 로그인 화면
- 성공적으로 로그인 시 현재 상태를 HEXY_LOCAL_MACHIN\SYSTEM\LastKnownGoodRecovery 에 갱신
- 로그인을 수행하면 Plug and Play에 의해 새로운 장치 검사, DRIVER.CAB에서 드라이버 마운트
(4) 윈도우 Vista/7 부팅 절차(Windows Vista/7 Boot Process)

VBR 로드 이후(VBR 부트 프로그램부터)
1. BOOT MANAGER
- NT Boot Sector의 BOOTMGR.EXE 위치 정보(system32, system32/boot)를 기반으로 로드
- 자신의 체크섬 계산 후 0x400000에 매핑
- 32비트 BmMmain() 함수 수행
- 하이버네이션 상태일 경우 WINRESUME.EXE 로드
- BCD(Boot Configuration Data)로부터 기본적인 부팅 정보 획득
- 64비트 시스템이라면 CPU를 64비트 모드로 전환
2. WINLOAD
- Boot Manager에 의해 WINRESUME.EX 로드(NTLDR과 비슷한 기능)
- 부트 로더에 의해 NTOSKRNL.EXE, HAL.DLL, 부트 드라이버, 시스템 레지스트리 등 로드
3. NTOSKRNL
- OslArchTransferToKernel 를 이용해 커널로 제어 전환
- NTOSKRNL.EXE 2단계 시스템 초기화
- 이 단계에서 그래픽 모드로 전환
- 로딩 상태바 표시
4. SMSS
- 기본적인 초기화가 완료되면 Session Manager(SMSS.EXE) 로드
- 추가적인 레지스트리, Win 32 subsystem(WIN32K.SYS)를 수행하기 위한 환경 구성 정보 로드
5. WINLOGON
- SMSS.EXE에 의해 WINLOGON.EXE 로드
- 사용자 세션 프로세스 생성, 서비스 시작, 장치 드라이버 로드, Local, System Authority Subsystem(LSASS.EXE)
(5) 리눅스 부팅 절차(Linux Boot Process)
VBR 로드 이후(VBR 부트 로드부터)
1. BOOT LOADER
- Linux Loader(LILO)와 Grand Unified Bootloader(GRUB) 가 존재하지만 주로 GRUB 사용
- /etc/grub.conf or /boot/grub/grub.conf 에서 부트 메뉴와 로드 과정 설정
- 초기 부트 메뉴를 보여준 후 리눅스 커널 로드와 초기 RAM 디스크 로드
- 커널을 로드하는 역할이 주 목적이어서 커널 로드라고 함
2. kernel & initrd LOAD
- 부트 로더에 의해 커널 이미지와 initrd 이미지가 로드
3. BSS(Block Started by Symbol) & Decompress
- 커널 이미지 앞부분의 간단한 하드웨어 검사 루틴 실행
- 기본 환경 설정 후 BSS 초기화
- 실제 커널 데이터 압축 해제
4. PID 0 swapper process
- 프로세스 ID 0번인 swapper 프로세스가 실행되고 페이지 테이블을 초기화하여 메모리 페이징 수행
- CPU 유형과 FPU(Floating-Point Unit) 검사
5. PID 1 init process
- 사용자 공간 프로세스로 기본적인 사용자 환경 구성
- /etc/inittab 의 환경 설정 파일의 부팅 레벨에 따라 사용자 환경 구성
'SWUFORCE > 인프런 강의' 카테고리의 다른 글
| section3 ~ 바로가기(.LNK) 개념 및 실습 & 바로가기 파일 포렌식(LNK Forensics) (0) | 2026.05.16 |
|---|---|
| section 3 ~ Windows Registry 실습 (0) | 2026.05.10 |
| 디지털 증거 획득 & 디지털 증거 수집 방안 (0) | 2026.05.05 |
| [인프런 강의] section2 ~CTF-D, GrrCon2015 정리 & 추가 분석 & 메모리 포렌식 (0) | 2026.04.07 |
| [인프런 강의] section 0, 1 & 디저털 포렌식 개요 (0) | 2026.03.21 |