SWUFORCE/인프런 강의

부팅과 데이터 저장/전송 & 부팅 절차

amy06s 2026. 3. 28. 21:24

부팅과 데이터 저장/전송

부팅 절차

(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 의 환경 설정 파일의 부팅 레벨에 따라 사용자 환경 구성