컴퓨터는 어떻게 부팅될까?
컴퓨터는 어떻게 부팅될까?
Summary 컴퓨터 부팅 과정에서 CPU는 전원이 켜지면 ROM에서 ‘최초의 지침서’를 읽어 RAM에 OS를 불러오는 부트 로더를 실행합니다. ROM은 비휘발성 메모리로, OS의 위치 정보를 제공하는 것이 아니라 부트 로더를 찾아 실행하는 지침을 담고 있습니다. 현대의 ROM은 NOR Flash로 대체되어 데이터 보존력과 내구성이 뛰어나며, 제한적으로 데이터를 쓸 수 있는 특징이 있습니다.
https://www.perplexity.ai/search/ige-mweonddeusinji-swibgejom-p-2zJGHuMxTxqp6BU7n1cKWA
의문 배경…
클클에서 ROM에대해 설명하다가, 왜 CPU는 ROM을 통해서 RAM에 OS를 탑제하는거지? 배웠던걸 복기하고싶었음… 3-1 주차 [마이크로프로세서]
내 질문
그래서 ROM에는 무엇이 들어있길래 OS 부팅에 꼭 필요한 걸까?
내가 추론해보면, ROM은 비휘발성 메모리다 → ROM에는 OS가 어디에 위치하는지 알고 있다 (SSD나 OS의 특정 번지) → 컴퓨터가 켜질 때 ROM이 CPU에게 OS의 위치를 알려준다 → CPU는 ROM이 알려준 OS의 주소를 RAM에 탑재한다 → RAM에 OS가 탑재되어 OS가 부팅된다.
내 이해가 맞을까? 엄격하게 판단하고 쉽게 설명하라.
Gemini 2.5 Pro
핵심 요약:
컴퓨터를 켜면 CPU는 가장 먼저 일을 시작해야 하는데, 어디서부터 시작해야 할지 모릅니다. RAM(램)은 전기가 없으면 내용이 지워져서 텅 빈 상태이고요. 이때, ROM은 전원이 꺼져도 내용이 지워지지 않는 특별한 메모리라서, CPU가 맨 처음 읽어야 할 ‘시동 지침서’를 담고 있습니다. 이 지침서 덕분에 컴퓨터는 깨어나서 운영체제(OS)를 불러올 준비를 할 수 있습니다.
쉽게 풀어쓴 부팅 과정:
- 전원 ON! CPU 깨어나다: 컴퓨터 전원을 켜면 CPU가 가장 먼저 깨어납니다. 하지만 CPU는 아직 뭘 해야 할지 모르는 상태입니다. 마치 잠에서 막 깬 사람처럼요. RAM(작업대)은 아직 텅 비어 있습니다.
- ROM 찾아가기: CPU는 설계될 때부터 전원이 켜지면 무조건 ROM의 특정 주소로 찾아가도록 약속되어 있습니다. ROM에는 전원이 꺼져도 지워지지 않는 **‘최초의 지침’(보통 BIOS 또는 UEFI 펌웨어라고 부릅니다)**이 저장되어 있습니다.
- ROM의 지침 실행 (BIOS/UEFI 시작): CPU는 ROM에 적힌 지침을 읽고 실행하기 시작합니다. 이 지침에는 다음과 같은 내용이 들어있습니다.
- 자가 진단 (POST): “내 몸(하드웨어)에 이상은 없나?” 컴퓨터에 연결된 키보드, 마우스, 메모리 등이 제대로 작동하는지 기본적인 검사를 합니다.
- 부팅 장치 찾기: “운영체제(OS)는 어디에 있지?” 하드디스크(HDD), SSD 등 저장 장치 중에서 OS가 설치된 곳을 찾아냅니다.
- 부트 로더(Boot Loader) 깨우기: OS가 있는 저장 장치를 찾으면, 그곳에 있는 **‘OS를 깨우는 작은 프로그램(부트 로더)’**을 찾아서 RAM으로 복사(로드)하라고 명령합니다. ROM 자체가 OS를 직접 RAM에 올리는 것이 아닙니다. ROM은 ‘부트 로더’를 RAM으로 불러오는 역할까지만 주로 담당합니다.
- 부트 로더 실행: 이제 CPU는 ROM이 아닌, RAM에 올라온 ‘부트 로더’의 지침을 따릅니다. 부트 로더는 OS의 핵심 파일(커널 등)을 저장 장치에서 찾아서 RAM으로 본격적으로 불러옵니다.
- OS 부팅 완료: OS의 핵심 파일이 RAM에 모두 올라오면, 드디어 OS가 시스템 제어권을 넘겨받아 우리에게 익숙한 윈도우나 macOS 화면을 보여주게 됩니다. 사용자님의 추론 검토:
- “ROM은 비휘발성 메모리다” -> 맞습니다. 전원이 꺼져도 내용이 유지됩니다.
- “ROM에는 OS가 어디 번지에 위치하는지 알 고 있다” -> 절반만 맞습니다. 정확히는 OS 전체의 위치보다는, OS를 불러올 수 있는 ‘부트 로더’가 저장된 장치(SSD 등)를 찾는 방법과 부트 로더를 실행시키는 방법을 알고 있습니다.
- “ROM은 CPU에게 OS의 위치를 알려준다” -> 조금 다릅니다. ROM은 CPU에게 ‘부트 로더’를 찾아서 RAM에 올리라는 *지침(코드)*을 제공합니다. 위치 정보만 덜렁 주는 게 아니라, ‘이렇게 저렇게 해서 부트 로더를 찾아 실행해!’ 라는 명령을 내리는 셈입니다.
- “CPU는 ROM이 알려준 OS의 주소 번지를 RAM에 탑제한다” -> 틀렸습니다. CPU는 ROM에 있는 지침을 실행해서, 저장 장치에 있는 부트 로더를 RAM에 올립니다. 그 후 부트 로더가 OS를 RAM에 올립니다. ROM이 직접 OS를 올리지 않습니다.
- “RAM에 OS가 탑제되어, OS가 부팅된다” -> 맞습니다. 이것이 최종 목표입니다. 결론:
사용자님의 이해는 ROM의 비휘발성 특성과 최종 목표(OS를 RAM에 올리는 것)는 맞지만, 중간 과정에서 ROM의 역할을 약간 다르게 이해하고 계셨습니다. ROM은 OS의 위치 정보만 가진 지도 같은 것이 아니라, 컴퓨터가 깨어나서 OS를 찾아 로딩하는 과정을 시작하게 만드는 ‘최초의 지침서(코드)‘를 담고 있는 중요한 부품입니다. 이 지침서가 없으면 CPU는 아무것도 할 수 없기 때문에 ROM은 OS 부팅에 반드시 필요합니다.
제공해주신 텍스트의 설명도 ROM이 OS를 직접 RAM에 올린다는 식으로 표현되어 약간의 오해가 있을 수 있습니다. 정확히는 ROM(BIOS/UEFI) -> 부트 로더 -> OS 순서로 제어권과 역할이 넘어간다고 이해하시면 좋습니다.
다만, 현대의 ROM은 NOR Flash로 대체되었다.
현대에는 ROM이 Flash Memory, 특히 NOR Flash로 대체되었습니다. NOR Flash는 ROM을 대체하기 때문에 매우 높은 신뢰성이 요구됩니다.
NOR Flash의 주요 특징은:
- 데이터 보존력이 매우 뛰어나 한번 데이터를 쓰면 100년 정도 유지됩니다
- 내구성이 좋아 약 10만 번의 쓰기가 가능합니다
- 저전력으로 작동합니다 ROM이 NOR Flash로 대체된 중요한 이유는, 기존 ROM은 읽기만 가능했던 반면, NOR Flash는 제한적이지만 데이터를 새로 쓸 수도 있기 때문입니다. 다만 쓰기/삭제 속도가 상대적으로 느린데, 이는 ROM을 대체하는 용도로 설계되어 자주 데이터를 수정할 필요가 없기 때문입니다.
💬 댓글
GitHub 계정으로 로그인하여 댓글을 남겨보세요. GitHub 로그인
🔧 댓글 시스템 설정이 필요합니다
GitHub Discussions 기반 댓글 시스템을 활성화하려면:
GISCUS_SETUP_GUIDE.md
파일의 안내를 따라 설정 완료Repository 관리자만 설정할 수 있습니다. 설정이 완료되면 모든 방문자가 댓글을 남길 수 있습니다.