부팅과 부트로더

2025. 1. 23. 09:20·CS/OS
728x90
반응형

부팅

PC가 켜진 후에 OS가 실행되기 전까지 수행되는 일련의 작업 과정 의미

  • 프로세서 초기화 (멀티코어 관련 처리 포함)
  • 메모리와 외부 디바이스 검사 및 초기화
  • 부트로더를 메모리에 복사하기
  • OS를 시작하는 과정
  • BIOS (Basic Input / Output System) : 하드웨어와 관련된 부팅 작업
  • POST (Power On Self Test) : BIOS가 수행하는 각종 테스트나 초기화

 

BIOS

  • 메인보드에 포함된 펌웨어(Firmware)의 일종
  • 입출력을 담당하는 작은 프로그램
  • PC 메인보드에 롬(ROM)이나 플래시 메모리로 존재
  • 전원이 켜지면서 동시에 프로세서가 가장 먼저 실행하는 코드
  • 부팅 옵션 설정
  • 시스템 전반적인 설정 (Configuration) 관리
  • 설정 값으로 시스템을 초기화하여 OS 실행
  • BIOS가 제공하는 기능은 인터럽트를 통해 사용할 수 있음

 

 

부트 로더 | 부트스트랩(Bootstrap) 코드

  • BIOS에서 처음으로 제어를 넘겨받는 부분
  • 플로피 디스크 or 하드 디스크 등 저장 매체의 가장 앞부분에 존재 -> 다양한 장치로 부팅 가능
  • POST가 완료된 후 여러 장치를 검사하여 앞부분에 부트로더가 있는지 확인 
  • 부트 로더가 존재하는 경우 : 코드를 0x7C00 어드레스에 복사한 후 프로세서가 0x7C00부터 수행하도록 함
  • 부트로더를 찾을 수 없는 경우 : Operating System Not Found 출력

부트로더가 디스크에서 메모리로 복사되어 실행되는 것 : BIOS에 의해 PC가 정상적으로 구동되었다는 것

OS를 메모리에 올려 실행할 준비를 하는 것과 마찬가지이다.

 

MBR(Master Boot Record)에 있는 작은 프로그램으로 저장 매체의 가장 첫번째 섹터에 존재한다. 

* 섹터 (Sector) : 디스크를 구성하는 데이터의 단위 - 512byte

 

부트로더는 512byte여야하기 때문에 두가지의 기능만을 수행한다. 

  1. OS의 이미지를 디스크에서 메모리로 복사
  2. 제어를 넘겨줌

Q ) 첫번째 섹터가 부트로더라는 것을 어떻게 알려주는가? or 어떻게 정상 부트로더인지 확인하는가?

A ) 읽어들인 512 바이트 중에 가장 마지막 2 바이트의 값이 0x55, 0xAA인지 확인

 

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'CS > OS' 카테고리의 다른 글

운영 모드  (0) 2025.01.12
CPU Scheduling  (1) 2024.08.12
Limited Direct Execution  (0) 2024.04.28
Process  (5) 2024.04.28
Data Structures (Process Control Blocks)  (0) 2024.03.10
'CS/OS' 카테고리의 다른 글
  • 운영 모드
  • CPU Scheduling
  • Limited Direct Execution
  • Process
min_zu
min_zu
  • min_zu
    민주제도
    min_zu
  • 전체
    오늘
    어제
    • ._. (154)
      • AI (2)
        • DeepLearning (2)
        • CS231n (0)
      • Web (2)
        • ReactJS (0)
      • CS (83)
        • OS (7)
        • Data Structure (23)
        • Computer Architecture (8)
        • Computer Network (20)
        • Algorithm (25)
      • Linux (3)
        • KaliLinux (0)
        • Docker (1)
      • Hacking (63)
        • Write Up (17)
        • Pwnable (12)
        • Reversing (2)
        • Cryptography (13)
        • Web Hacking (4)
        • Window (6)
        • Network (7)
        • Web3 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ComputerArchitecture
    Tree
    WinAFL
    Search
    DeepLearning
    Graph
    Linux
    AI
    Web
    DataStructure
    OS
    Mac
    UTM
    Sort
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
min_zu
부팅과 부트로더
상단으로

티스토리툴바