IT 로드맵 › 하드웨어 & OS의 켜면 일어나는 일이다. 실제 이름과 이 PC에서 잰 값으로 본다.

전원 버튼을 누르고 바탕화면이 뜨기까지, 부품이 하나씩 깨어나고 펌웨어가 커널을 RAM에 올린다. 펌웨어는 메인보드의 칩에 들어 있는, 운영체제보다 먼저 돌아 하드웨어를 깨우는 프로그램이다. 「RAM에 올린다」는 SSD에 있는 프로그램 파일을 RAM으로 읽어 들여 실행할 수 있게 한다는 뜻이다. 하드웨어 & OS의 커널 분야(계정 · 파일 · 프로세스 · 메모리 · 네트워크)는 전부 이 일이 끝난 뒤에 시작된다.

이 페이지는 내 노트북(ThinkPad E14 Gen 6 · AMD Ryzen 7 7735HS · Windows 11)에서 실제로 일어나는 순서를 따라간다. 줄기는 처음부터 부팅이다. 그런데 재 보니 이 PC는 대부분 처음부터 켜지지 않는다. 그 갈림길도 같이 본다.


이 PC의 부팅 — 마지막으로 잰 값

표의 말(Secure Boot · 빠른 시작 · ExitBootServices 등)은 아래 단계에서 하나씩 풀린다. 처음 읽을 때는 건너뛰고 단계부터 읽어도 된다.

펌웨어
UEFI · R2KET34W (1.17 )
Secure Boot
꺼짐
빠른 시작
켜짐
부팅 항목
1개
디스크 0 파티션
EFI 시스템 100 MB · 예약(MSR) 16 MB · C: 930.5 GB · 복구 915 MB
켜진 방식 (로그에 남은 것)
처음부터 43번 · 빠른 시작 82번 · 최대 절전에서 88번 (2026-01-22 부터)
마지막으로 처음부터 부팅
2026-10-07 20:08
잠자기 방식
S0 저전력 대기 (모던 스탠바이)
펌웨어 단계 (가운데 값)
처음부터 9.4초 · 빠른 시작 9.1초 · 최대 절전에서 8.9초 — 부트 매니저를 읽기 시작할 때까지
ExitBootServices 까지 (가운데 값)
처음부터 10.8초 · 빠른 시작 13.5초 · 최대 절전에서 13.4초

LENOVO ThinkPad E14 Gen 6 · 2026-10-11 11:04에 잰 값 · 다시 재려면 pwsh tools/hardware-snapshot.ps1

  • 파티션은 디스크 하나를 나눈 칸이다. EFI 시스템은 펌웨어가 읽는 칸(4단계), 예약(MSR)은 윈도우가 디스크 관리용으로 비워 두는 칸, C:는 윈도우와 프로그램이 든 칸, 복구는 윈도우가 고장 났을 때 띄울 복구 환경이다
  • 켜진 방식은 윈도우가 켤 때마다 시스템 로그(번호 붙은 기록)에 남기는 부팅 유형을 센 것이다. Kernel-Boot 27번 기록의 값이 0이면 처음부터, 1이면 빠른 시작, 2면 최대 절전에서 깨어남이다(Microsoft Q&A). 시스템 로그는 크기가 차면 오래된 것부터 지워져서, 표의 날짜보다 앞은 세지 못한다
  • 펌웨어 단계와 ExitBootServices 까지는 펌웨어가 윈도우에 넘겨준 30번 기록에서 읽었다. 전원을 넣은 순간부터 그 단계에 닿을 때까지 걸린 시간이고, 단위를 밀리초로 읽었다 — 공식 문서에서 단위를 확인하지는 않았다. 가운데 값은 기록이 남은 켜기마다 잰 값을 줄 세웠을 때 가운데 것(중앙값)이다
  • 재는 스크립트는 관리자 권한 없이 돌게 만들었다. 누구나 같은 명령으로 다시 잴 수 있게 하려고서다. 그래서 EFI 파티션 속 파일, 부팅 설정(BCD), 전체 부팅 시간처럼 관리자 권한이 있어야 보이는 것은 재지 않았다

처음부터 부팅하면 일곱 단계를 거친다

「다시 시작」을 누르면 늘 이 길로 간다. 앞의 셋은 하드웨어와 펌웨어의 일이고, 넷째부터 운영체제가 들어온다.

일곱 단계를 이 노트북 보드 위에서 차례로 따라가고, 마지막 장면에서 최대 절전에서 깨어나는 갈림길을 본다. 부품 모양은 실물과 비슷하게, 배치는 연결이 보이게 단순화했다. 화면 속 시간과 로고 자리는 예시다.

1. 전원 버튼을 관리 칩(EC)이 받고, 전원 회로를 차례로 켠다

  • 노트북은 전원 버튼을 메인보드의 작은 관리 칩(EC, embedded controller)이 받는다. 배터리 · 어댑터 · 키보드도 이 칩이 맡는다
  • EC가 전원 회로를 순서대로 켜고, 부품마다 전압이 안정되면 CPU 칩에 「전원이 다 들어왔다」는 신호를 준다. 그 신호를 받아야 멈춰 있던 칩이 돌기 시작한다(리셋이 풀린다)
  • 이때 RAM은 비어 있다. RAM은 전하를 주기적으로 다시 채워 줘야(리프레시) 값을 지키는데, 전원이 꺼진 동안 그 일이 멈춰서 내용이 다 사라졌다 — RAM 페이지 1장

2. CPU 칩 안의 보안 프로세서(PSP)가 x86 코어보다 먼저 깬다

  • 이 PC의 CPU(AMD)에는 프로그램을 실행하는 x86 코어 말고, 작은 ARM 코어 하나(PSP, Platform Security Processor)가 따로 들어 있다. x86은 PC용 CPU의 명령 체계이고, ARM은 휴대폰 등에 쓰이는 다른 명령 체계다
  • 칩이 돌기 시작하면 PSP가 먼저 깬다. x86 코어는 PSP가 풀어 줄 때까지 멈춘 채로 기다린다
  • PSP는 메인보드의 플래시 칩(전원 없이도 내용이 남는 작은 저장 칩)에서 펌웨어를 읽는다. 이 칩 하나에 PSP가 쓰는 펌웨어와 x86 코어가 쓰는 UEFI 펌웨어(3단계)가 같이 들어 있다. PSP는 읽은 펌웨어의 서명 — 만든 회사가 비밀 키로 찍은 확인 도장 — 이 맞는지 검사한다
  • 그다음 메모리 학습을 한다. DDR5는 막대와 보드마다 전기 신호가 조금씩 달라서, 쓰기 전에 신호를 언제 읽어야 정확한지 맞춰 봐야 한다. 그게 끝나야 RAM을 쓸 수 있고, 그 뒤에야 x86 코어를 풀어 준다
  • 알려진 AMD 구조다. 이 PC에서 이 단계를 따로 떼어 재 보지는 못했다

3. UEFI 펌웨어가 하드웨어를 깨우고, 무엇으로 부팅할지 고른다

  • UEFI는 요즘 PC 펌웨어의 표준이다. x86 코어 하나가 첫 명령을 플래시 칩의 UEFI 펌웨어에서 가져온다. 이 PC의 펌웨어 판은 위 표의 「펌웨어」 줄(Lenovo가 붙인 판 번호)이다
  • 펌웨어는 부품이 이어진 길(PCIe)을 훑어 SSD · Wi-Fi · 유선 랜을 찾고, USB · 키보드 · 화면을 켠다. Lenovo 로고가 뜨는 것이 이때다
  • 그다음 펌웨어 설정에 저장된 부팅 순서를 읽는다. 위 표의 「부팅 항목」이 그 개수다 — 2026-10-11에는 하나(Windows Boot Manager)였다
  • Secure Boot가 켜져 있으면 다음에 실행할 프로그램의 서명을 펌웨어에 등록된 키로 확인하고, 맞지 않으면 멈춘다. 이 PC가 어느 쪽인지는 위 표의 Secure Boot 줄에 있다 — 2026-10-11에는 꺼져 있어서 그 확인을 하지 않았다
  • 위 표의 「펌웨어 단계」가 전원을 넣은 뒤 여기까지 걸린 시간이다. 처음부터든 깨어나기든 가운데 값이 거의 같다 — 펌웨어는 어느 길이든 똑같이 거치기 때문이다

4. 부트 매니저가 SSD의 EFI 파티션에서 실행되어, 무엇을 띄울지 고른다

  • SSD 맨 앞에는 펌웨어가 읽는 작은 파티션(EFI 시스템 파티션)이 있다. 펌웨어도 읽을 수 있는 단순한 파일 시스템(FAT32)으로 되어 있다
  • 펌웨어가 거기서 부트 매니저(\EFI\Microsoft\Boot\bootmgfw.efi)를 RAM에 올려 실행한다 — 윈도우의 표준 경로이고, 이 PC의 EFI 파티션은 관리자 권한이 없어 열어 보지 않았다
  • 부트 매니저는 같은 파티션의 부팅 설정(BCD)을 읽고 무엇을 띄울지 고른다. 운영체제가 하나라 메뉴 없이 바로 넘어간다
  • 길이 갈리는 곳이 여기다. SSD에 저장해 둔 깨어날 상태(hiberfil.sys)가 있으면 winresume.efi를, 없으면 부트 로더 winload.efi를 실행한다. 부트 매니저는 「무엇을 띄울지 고르는 프로그램」이고, 부트 로더는 「커널을 RAM에 올리는 프로그램」이다 — 아래 「부트 매니저에서 길이 갈린다」

5. 부트 로더가 커널과 부팅용 드라이버를 RAM에 올리고, 펌웨어에서 손을 뗀다

  • 부트 로더(winload.efi)가 C: 드라이브에서 커널(ntoskrnl.exe), CPU · 칩셋마다 다른 부분을 커널에게서 감추는 층(hal.dll), 윈도우의 설정 저장소(레지스트리)의 SYSTEM 부분을 RAM에 올린다
  • 부팅에 꼭 필요한 드라이버(장치를 다루는 커널 쪽 프로그램)도 같이 올린다. SSD를 읽는 드라이버와 파일 시스템 드라이버가 그렇다. 4 · 5단계에서 SSD를 읽은 건 펌웨어가 빌려준 디스크 읽기 기능이라, 다음 줄의 ExitBootServices 뒤에는 쓸 수 없다. 그래서 윈도우는 자기 드라이버로 다시 읽어야 한다
  • 커널이 쓸 첫 페이지 테이블도 만들어 둔다
  • 그다음 펌웨어 함수 ExitBootServices를 부른다. 「부팅하는 동안 빌려주던 기능(디스크 읽기 · 화면 · 키보드 같은 부트 서비스)을 이제 끝내라」는 요청이다. 이 순간부터 하드웨어는 운영체제 차지다. 위 표의 「ExitBootServices 까지」가 전원을 넣은 뒤 여기까지 걸린 시간이다
  • 그리고 커널 프로그램의 첫 명령으로 실행을 넘긴다

6. 커널이 메모리 · 인터럽트 · 코어를 넘겨받고, 첫 프로그램을 띄운다

  • 커널의 메모리 관리자가 부트 로더가 만들어 둔 페이지 테이블을 넘겨받아 가상 메모리를 관리하기 시작한다(RAM 페이지 4장에서 다룰 예정이다)
  • 인터럽트가 오면 어느 코드로 갈지 적은 표를 깐다
  • 지금까지는 코어 하나만 돌고 있었다. 이제 나머지 코어를 깨운다 — CPU 페이지의 논리 프로세서가 다 일어나는 게 이때다
  • 드라이버를 마저 올리고, 첫 사용자 모드 프로그램(커널이 아닌 일반 권한으로 도는 프로그램)인 smss.exe(세션 관리자)를 띄운다

7. 로그인 화면이 뜨고, 로그인하면 바탕화면이 뜬다

  • smss.exe가 서비스 쪽과 화면 쪽을 띄운다. 서비스 쪽은 wininit.exe → 서비스들(로그인 전부터 뒤에서 도는 프로그램) · 로그인 확인을 맡는 lsass.exe이고, 화면 쪽은 winlogon.exe → 로그인 화면이다
  • 로그인하면 explorer.exe가 바탕화면과 작업 표시줄을 띄우고, 시작 프로그램이 뒤따른다

부트 매니저에서 길이 갈린다 — 빠른 시작과 최대 절전

4단계의 부트 매니저가 hiberfil.sys를 찾으면 winresume.efi를 실행한다. winresume.efi는 저장해 둔 상태를 SSD에서 읽어 RAM에 되돌려 놓고, 다 되면 부트 로더처럼 ExitBootServices를 부른 뒤 되살린 커널로 넘어간다. 그래서 5단계의 「커널 · 드라이버를 새로 올리기」와 6단계의 「커널이 판을 처음부터 깔기」를 건너뛴다. 1~4단계(전원 · PSP · 펌웨어 · 부트 매니저)는 어느 길이든 똑같이 거친다.

켜진 방식 끌 때 SSD에 써 둔 것 켤 때 하는 일
처음부터 부팅 없음 1~7 전부
빠른 시작 커널과 드라이버의 상태 (사용자는 로그아웃) 커널 상태를 RAM에 되돌리고 로그인 화면(7)으로 간다
최대 절전에서 깨어남 RAM 전체 (열어 둔 프로그램까지) RAM 전체를 되돌려, 끄기 전 화면으로 돌아간다
  • 빠른 시작이 켜져 있으면(위 표, 2026-10-11에는 켜짐) 「시스템 종료」 뒤에 켜도 실제로는 반쯤 깨어나는 것이다. 「다시 시작」은 커널부터 새로 띄우라는 뜻이라 빠른 시작을 쓰지 않는다 — 업데이트 뒤에 「다시 시작」하라고 하는 것도 그래서다
  • 작업 관리자의 「작동 시간」이나 systeminfo의 「시스템 부트 시간」이 오래전에 멈춰 있는 이유가 이것이다(위 표의 「마지막으로 처음부터 부팅」). 빠른 시작과 최대 절전은 커널이 계속 이어지는 것이라 그 시각을 새로 적지 않는다
  • 위 표에서 깨어나기 쪽이 ExitBootServices까지 몇 초 더 걸린다. winresume.efi가 저장해 둔 상태를 SSD에서 읽어 RAM에 올리는 일을 ExitBootServices 전에 하기 때문이다. 대신 그 뒤의 커널 초기화와 로그인 단계를 건너뛴다. 처음부터 켜는 것보다 전체가 빠른지는 전체 부팅 시간을 재야 알 수 있는데, 그 기록은 관리자 권한이 있어야 보인다

잠자기는 부팅이 아니다. 이 PC의 잠자기(위 표의 「잠자기 방식」)는 S0 저전력 대기다. 시스템을 끄지 않고 CPU와 장치를 아주 깊이 쉬게 할 뿐이고, RAM은 칩이 스스로 리프레시를 이어 가며(셀프 리프레시) 내용을 지킨다. 아무것도 꺼지지 않으니 깰 때 펌웨어가 다시 돌 일이 없고, 그래서 부팅 기록(켜진 방식)에도 남지 않는다. 이 PC는 잠자기가 길어지면 SSD에 RAM을 써 두고 최대 절전으로 넘어간다 — 표의 「최대 절전에서」 횟수가 많은 까닭이다. 결국 어느 방식이든, 전기를 끊는 순간 RAM이 지워진다는 사실(RAM 페이지 1장)이 이 갈림길 전체를 정한다.


리눅스는 4단계부터 길이 다르다

1~3단계(전원 · PSP · 펌웨어)는 하드웨어의 일이라 운영체제가 무엇이든 같다. 4단계부터 바뀐다.

  • 부트 매니저 · 부트 로더 — GRUB나 systemd-boot가 EFI 파티션에서 실행되어 둘 다 맡는다. 무엇을 띄울지 고르고, 커널을 RAM에 올린다
  • 커널 올리기 — 커널 파일(vmlinuz)과 초기 램디스크(initramfs)를 RAM에 올린다. 리눅스 커널도 ExitBootServices 뒤에는 펌웨어의 디스크 읽기를 못 쓰고 자기 드라이버로 디스크를 읽어야 하는데, 그 드라이버가 들어 있는 곳이 initramfs다. RAM에 통째로 올려 쓰는 작은 파일 시스템이다
  • 첫 프로그램 — 커널이 초기화를 마치면 첫 프로세스 systemd를 띄운다. 프로세스 번호(PID)가 1번이고, 이것이 서비스와 로그인 화면을 띄운다

Study · 운영체제가 보는 리눅스 커널은 이 PC의 윈도우 안에서 도는 가상 머신(도커가 쓰는 WSL2)의 것이다. 그래서 이 PC의 전원을 켤 때 일어나는 부팅과는 다른 길로 시작된다.


이 페이지를 정하기까지

처음 정한 건 줄기였다. 「켜면」이라는 말이 이 PC에서는 세 가지 다른 일을 가리킨다는 걸 재 보고서야 알았다. 2026-10-11에 로그를 세어 보니 처음부터 부팅은 다섯 번에 한 번꼴이고, 나머지는 빠른 시작이나 최대 절전에서 깨어나는 것이었다. 가장 자주 일어나는 「최대 절전에서 깨어남」을 줄기로 세우는 안도 있었다. 하지만 그 길은 5 · 6단계를 건너뛰어서, 커널이 무엇을 깔고 시작하는지가 보이지 않는다. 그래서 줄기는 일곱 단계를 다 거치는 처음부터 부팅으로 하고, 나머지는 4단계에서 갈라지는 갈림길로 붙였다.

운영체제는 이 PC의 윈도우로 했다. 「하드웨어 & OS」의 커널 분야는 리눅스 소스와 도커로 재서, 부팅도 리눅스로 쓰는 안이 있었다. 버린 이유는 이 PC에서 전원을 켤 때 실제로 부팅되는 운영체제가 윈도우뿐이고(도커의 리눅스는 그 위의 가상 머신이다), 1~3단계의 펌웨어도 이 PC의 것이라서다. 리눅스는 4단계부터 다른 곳만 한 절로 적었다.

자리는 부품과 커널 분야 사이로 했다. 「하드웨어 & OS」 페이지의 커널 분야 카드 묶음(계정 · 파일 · 프로세스 · 메모리 · 네트워크)에 여섯째로 넣는 안은 버렸다. 그 카드들은 Study 단계(리눅스)를 세는 틀이고, 그 페이지에 「분야끼리는 순서가 없다」고 적어 두었는데, 부팅은 모든 분야보다 먼저 오는 순서 그 자체다. 메인보드 페이지에 넣는 안은, 부팅이 PSP · 펌웨어 · SSD · 커널 · 로그인까지 걸쳐 한 부품의 일보다 커서 버렸다. 메인보드 페이지의 부팅 절은 줄이고 이 페이지로 잇는다.


켜면 일어나는 일에서 아직 안 본 것

  • 관리자 권한이 있어야 보이는 것 — EFI 파티션 속 파일, 부팅 설정(BCD), 단계마다 걸린 전체 부팅 시간, TPM(키를 보관하는 보안 칩) · BitLocker(디스크 암호화)
  • PSP 단계 — 이 PC에서 따로 떼어 재 보지 못했다
  • Secure Boot가 왜 꺼져 있는지 — 처음부터 꺼져 나왔는지, 누가 껐는지 모른다

← 하드웨어 & OS로

최상단으로 이동했습니다!
확대 이미지

조회수: - · -

업데이트: