부팅 절차
1. 전원 버튼 누름
- 컴퓨터 전원 버튼 누르기
- 전원공급기는(Power Supply)는 외부 전압을 낮고 안정적인 전압으로 변환하여 공급
- 메인보드의 클록 발생기는 전압이 전달되면 주기적으로 클록* 발생 → 클록 주기에 따라 컴퓨터 시스템 동작
* 클록 신호: 디지털 회로에서 0(Low)과 1(High) 상태가 일정한 주기로 반복되는 구형파(Sqaure Wave) 형태의 전기 신호
2. ROM BIOS* 로드
- 클록 CPU로 전달
- CPU는 메인보드의 ROM BIOS를 메모리에 로드 후, ROM BIOS 실행
* ROM BIOS: 운영 체제 및 프로그램에 런타임 서비스를 제공하고 부팅 프로세스 중에 하드웨어 초기화를 수행하는 데 사용되는 펌웨어 유형
3. POST 작업 전 기본 테스트
- ROM BIOS의 부트 프로그램 실행
- 테스트 결과가 ROM BIOS에 저장된 값과 일치하면 POST 작업 수행
4. POST 단계 (Cont'd)
- 시스템 버스 테스트
- 시스템 버스가 정상적으로 동작하는지 확인하기 위해 시스템 버스에 특정 시그널 보냄
- 테스트가 이상 없다면 다음 단계
- RTC(Real-Time Clock)/NVRAM* 테스트
- RTC는 시스템의 전기적 신호를 동기화하기 위한 클럭
- 시스템 비디오 구성 요소(비디오 메모리 등) 테스트
- 과정이 완료되면 표준 출력을 이용해 부팅 과정 출력 확인 가능
- RAM 테스트
- 키보드 테스트
- 드라이브 테스트
- 시스템에 연결된 모든 드라이브(플로피, CD, 하드디스크 등)에 신호를 보내 정상적인지 테스트
- POST 결과 검사
- POST 결과가 RTC/NVRAM에 저장된 구성 값과 일치하는지 검사
- 추가적인 BIOS(SCSI**, VGA*** 등) 로드
- 추가적인 BIOS가 있을 경우, 해당 BIOS를 RAM으로 로드
* RTC(Real-Time Clock)/NVRAM(Non-Volatile RAM): 전자 기기에서 전원이 꺼져도 시간 정보와 설정 데이터를 유지하기 위해 사용되는 핵심 부품
** SCSI(Small Computer System Interface): 컴퓨터와 주변기기를 연결하고 데이터를 빠르게 전송하기 위한 고속 직렬/병렬 표준 인터페이스
*** VGA(Video Graphics Array): 1987년 IBM이 도입한 아날로그 방식의 영상 표시 규격, 컴퓨터와 모니터/프로젝터를 연결해 화면을 출력하는 인터페이스(D-Sub)를 뜻함
5. MBR(Master Boot Record) 로드
- 컴퓨터 하드 디스크나 SSD의 맨 앞부분에 위치한 특수 시동 섹터
- BIOS가 가장 먼저 찾아 읽는 영역으로 OS가 어디에 있고, 어떻게 부팅해야 하는지에 대한 정보를 담고 있음
- MBR 역할
- 파티션 테이블에서 부팅 가능한 파티션 검색
- 부팅 가능한 파티션 O, 해당 파티션의 VBR(Volume Boot Record)로 점프
- 부팅 가능한 파티션 X, 오류 메시지 출력

6. VBR(Volume Boot Record) 로드
- 하드 디스크나 USB 등의 파티션 맨 앞부분에 위치하여, 해당 볼륨의 파일 시스템 정보와 OS 부팅에 필요한 부트 코드(부트 섹터)를 담고 있는 핵심 영역
- MBR을 통해 부팅 가능한 볼륨 찾으면 해당 볼륨의 첫 번째 섹터 로드
- VBR의 역할
- 부트 로더를 메모리에 로드 (윈도우의 경우 NTLDR*)
- 부트 로더는 커널(NTOSKRNL**)과 관련 컴포넌트를 로드
- 운영체제 부팅
* NTLDR(NT 로더): 윈도우 NT 계열 운영 체제를 위한 시동 로더
** NTOSKRNL: 윈도우 NT 운영 체제 커널, karnel image라고도 알려져 있으며 하드웨어 가상화나 프로세스 그리고 메모리 관리 같은 다양한 시스템 서비스 관리함으로써 시스템의 기본적인 부분이 됨

MBR이 컴퓨터를 켤 때 하드 디스크 전체를 인식한다면, VBR은 특정 파티션 안으로 진입하여 OS를 시동하는 역할을 함
데이터 저장
자기 디스크
- 자기장의 자화 반전을 이용해 기록
- S → N (또는 N → S) : 0
- N → S (또는 S → N) : 1

플래시 메모리
- 플로팅 게이트 트랜지스터로 구성된 각 셀에 데이터 저장
→ 플로팅 게이트가 전자를 가지고 있을 때는 전류 흐르지 X (반대의 경우 흐름)
광학디스크
- 폴리카보네이트* 색소층에 레이저 이용해 기록
* 폴리카보네이트(PolyCarbonate, PC): 탄산염을 중합하여 만든 열가소성 플라스틱 중합체, 렉산이라고도 불리며 IT 제품의 외장재나 미디어 광저장매체 소재의 원료에 폭넓게 사용되는 고기능성 플라스틱

데이터 전송
유선
- 송신자 A가 수신자 B에게 이메일을 보내면 이 데이터가 이진수 형태로 만들어짐
- 데이터를 패킷으로 나누고 NIC(네트워크 카드)가 이를 디지털 신호(펄스 형태)로 변환
- 디지털 신호를 아날로그 신호(파형)로 바꾸는 모뎀 변환을 통해 전송 가능하게 함
- 아날로그 신호가 LAN → WAN → LAN을 거쳐 목적지로 이동
- 모뎀 변환을 통해 아날로그 → 디지털로 바꾸고, NIC가 데이터 재조합
- 쪼개졌던 패킷들이 합쳐져 원래의 데이터(이메일 등)로 복원됨

무선
- 무선 신호(주파수)를 이용한다는 것 제외, 유선 방식과 동일

- 주파수 확보, 대역폭 중
- AM vs FM
- AM 방송
- 530 ~ 1,600 KHz 주파수 대역을 채널 간격 10 KHz의 108개 채널로 분할한 방송
- 사용 주파수: 중파(MF)
- 대역폭: 9 KHz - FM 방송
- 88 ~ 108 MHz 주파수 대역을 20
- 사용 주파수: 초단파
- 대역폭: 200 KHz
- AM 방송
[부팅 절차]
공통된 부팅 절차 - 위에 언급된 부팅 절차와 동일

DOS 부팅 절차
- VBR 로드 이후 (VBR 부트 프로그램부터)

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

Window NT/2000/XP 부팅 절차
- VBR 로드 이후

1. NTLDR
- VBR 2번째 섹터의 NTLDR (NT Loader)의 위치 정보를 읽어 NTLDR 로드
- 파일 시스템 초기화하고 BOOT.INI 파일 읽어 부트 초기화 설정 및 부트 메뉴(F8) 설정
- 듀얼 부팅일 경우 BOOTSECT.DOS 수행
- SCSI 드라이버에 추가 파일 (NTBOOTDD.SYS) 있다면 수행
2. NTDETECT
- NTLDR은 하드웨어 탐지를 위해 NTDETECT.COM 로드
- NTDETECT.COM은 현재 설치된 하드웨어 구성요소들 정보 수집하여 HEKY_LOCAL_MACHIN\HARDWARE(메모리)에 저장
- (하나 이상의 프로필이 존재할 경우) 현재 하드웨어와 프로필이 동일한지 확인 후 수행
3. NTOSKRNL
- 하드웨어 구성 선택 완료되면 NTLDR에 의해 NTOSKRNL.EXE (NT OS Karnel) 로드
- 커널, Hardware Abstraction Layer(HAL.DLL), 시스템 레지스트리, 드라이버, TCP/IP 등 로드
- Phase 0 : 커널 (Microkarnel, Executive subsystem) 자체 초기화
- Phase 1 : 메모리 관리자, 프로세스 관리자, I/O 관리자 등 초기화
- 이 단계에서 그래픽 모드로 전환, 로딩 상태바 표시
4. SMSS
- 기본적인 초기화 완료되면 Session Manager (SMSS.EXE) 로드
- Win32 subsystem(WIN32K.SYS) 환경 준비, 추가 레지스트리 및 시스템 설정 적용
5. WINLOGON
- WINLOGON.EXE 파일 로드 → Local Security Authority (LSASS.EXE) → 로그인 화면
- 성공적으로 로그인할 경우 현재 상태를 HEKY_LOCAL_MACHINE\SYSTEM\LastKnownGoodRecovery로 갱신
- 로그인을 수행하면 Plug and Play에 의해 새로운 하드웨어 검사, DRIVER.CAB 에서 드라이버 마운트
Windows VIsta/7 부팅 절차
- VBR 로드 이후

1. BOOT MANAGER
- NT Boot Sector의 BOOTMGR.EXE 위치 정보(system32, system32/boot)를 기반으로 로드
- 자신의 체크섬 계산 후 0x400000에 매핑, 32비트 BmMain() 함수 수행
- 하이버네이션(Hibernation) 시, WINRESUME.EXE 실행
- BCD(Boot Configuration Data, boot.ini를 대신)로부터 기본 부팅 정보 읽음
- 64비트 시스템이라면 CPU를 64비트 모드로 전환
2. WINLOAD
- Boot Manager에 의해 부트 로더인 WINLOAD.EXE 로드 (NTLDR과 유사)
- 부트 로더에 의해 NTOSKRNL.EXE, HAL.DLL, 부트 드라이버, 시스템 레지스트리 등이 로드
3. NTOSKRNL
- OslArchTransferToKernel을 사용하여 커널로 제어 전환
- NTOSKRNL.EXE를 2단계의 시스템 초기화
- Phase 0 : 커널 자체를 초기화 → HallInitializeBios 호출 → 디스플레이 드라이버 초기화 → 디버거 시작 → KillInitializeKernel 호출
- Phase 1 : Phase1InitializationDiscard → HallInitSystem → ObInitSystem → ASLR set → PsInitialiSystemProcess 호출 → StartFirstUserProcess
- 이 단계에서 그래픽 모드로 전환, 로딩 상태바 표시
4. SMSS
- 기본적인 초기화가 완료되면 Session Manager (SMSS.EXE) 로드
- 추가적인 레지스트리, Win32 subsystem(WIN32K.SYS)를 수행하기 위한 환경 구성 정보 로드
5. WINLOGON
- SMSS.EXE에 의해 WINLOGON.EXE 실행
- 사용자 세션 프로세스 생성, 서비스 및 장치 드라이버 로드
- Local Security Authority Subsystem(LSASS.EXE) 로드
리눅스 부팅 절차
- VBR 로드 이후 (VBR 부트 로더부터)
1. BOOT LOADER
- Linux Loader(LILO)와 Grand Unified Bootloader(GRUB) 부트 로더 존재 ← 현재는 GRUB이 대세
- /etc/grub.conf 또는 /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 > Inflearn' 카테고리의 다른 글
| [인프런 스터디] 5주차 - 레지스트리 포렌식과 보안 (0) | 2026.05.12 |
|---|---|
| [인프런 스터디] 4주차 - 디지털 증거 획득 & 증거 수집 방안 (0) | 2026.05.05 |
| [인프런 스터디] 3주차 - 섹션 2, 3 (0) | 2026.04.29 |
| [인프런 스터디] 3주차 - 메모리 포렌식 (0) | 2026.04.28 |
| [인프런 스터디] 1주차 - 섹션 1. 디지털 포렌식 소개 (0) | 2026.03.24 |