
컴퓨터는 우리가 전원 버튼을 누르는 순간부터 복잡한 과정을 거쳐 동작을 시작한다. 이 글에서는 컴퓨터의 동작 과정을 단계별로 살펴보고, 부팅에서 프로그램 실행까지의 과정을 이해해본다.

위의 메인 보드 다이어그램에서 BIOS와 RAM이 컴퓨터 초기화에 어떻게 관여하는지 상상하며, 아래 단계를 읽어보자.
1단계: 전원 켜짐
컴퓨터의 전원 버튼을 누르면, 전원 공급 장치(PSU)가 메인보드와 기타 하드웨어 구성 요소에 전류를 공급한다. 이를 통해 컴퓨터의 모든 장치가 작동을 시작할 준비를 한다.
2단계: 초기 하드웨어 초기화
- 전원 공급 확인(Power-On Self Test, POST)
- CPU는 메인보드에 있는 ROM에서 초기화 프로그램을 실행하여 메모리, CPU, 그래픽 카드 등 주요 하드웨어 구성 요소를 테스트한다. 이 과정에서 하드웨어가 정상 작동하는지 확인한다. (ROM은 메인보드에 위치하며, 비휘발성 메모리로 전원이 꺼져도 데이터를 보존한다.)
- BIOS/UEFI 로드
- POST가 성공적으로 완료되면 ROM에 저장되어 있는 초기 부팅 프로그램인 BIOS(Basic Input/Output System) 또는 UEFI(Unified Extensible Firmware Interface)가 실행된다. BIOS/UEFI는 하드웨어를 초기화하고, 부팅 장치를 검색하여 다음 단계로 진행한다.
- 참고: IOS는 오래된 부팅 시스템이며, UEFI는 현대적인 시스템으로 더 빠르고 유연하다.
3단계: 부트 로더 실행
- 부트 장치 검색
- BIOS/UEFI는 하드 드라이브, SSD 등 부팅 순서에 따라 운영체제가 설치된 장치를 검색한다. 일반적으로 하드 드라이브나 SSD가 부팅 장치로 설정되어 있다.
- MBR/GPT 확인
- 부트 장치에서 MBR(마스터 부트 레코드) 또는 GPT(GUID 파티션 테이블)를 확인하여 부트 로더의 위치를 찾는다. 이는 디스크의 첫 번째 섹터에 저장되어 있다.
- MBR/GPT와 BIOS, UEFI의 부팅 프로세스의 자세한 사항은 링크를 참고하자 : https://www.easeus.co.kr/partition-manager-software/mbr-vs-gpt.html
- 부트 로더 로드
- MBR이나 GPT에서 부트 로더 프로그램을 메인 메모리(RAM)에 로드한다. 부트 로더는 운영체제를 메모리에 로드하고 실행하는 작은 프로그램이다. 부트 로더는 이 단계에서 RAM에 적재된다.
4단계: 운영체제 로드
- 커널 로드
- 부트 로더가 운영체제의 핵심 부분인 커널을 디스크에서 메인 메모리로 로드한다. (커널은 운영체제의 핵심 부분으로, 시스템 자원을 관리하고 하드웨어와 소프트웨어 간의 상호작용을 제어한다.)
- 시스템 초기화
- 커널이 로드되면, 운영체제는 시스템 초기화를 수행한다. 이 과정에서 메모리 할당, 파일 시스템 마운트, 디바이스 드라이버 로드, 시스템 프로세스 시작 등이 이루어진다.
5단계: 사용자 공간 초기화
- 로그인 화면 표시 및 사용자 계정 확인
- 운영체제는 사용자 계정을 확인하고 인증 과정을 거쳐 데스크탑 환경을 초기화한다.
- 사용자 설정 로드(데스크탑 환경 로드)
- 로그인 후 사용자 설정과 기본 프로그램들이 메모리에 로드된다.
6단계: 프로그램 실행
- 프로그램 로드 및 프로세스 생성
- 사용자가 프로그램을 실행하면 운영체제가 실행 파일을 디스크에서 메모리로 로드하고, 이를 실행할 프로세스를 생성한다. 또한, 필요 자원을 할당한다. (프로세스는 프로그램의 실행 인스턴스이다.)
- 프로그램 실행
- CPU는 프로세스의 명령어를 실행하며, 운영체제는 필요한 자원을 제공한다. (프로세스는 CPU와 메모리 자원을 사용하여 실행된다.)
- 이때, 프로그램은 운영체제의 자원을 사용하여 다양한 작업을 수행한다. 예를 들어, 파일을 열거나 저장하고, 네트워크 통신을 하며, 사용자 입력을 처리한다.
마무리
컴퓨터는 전원이 공급되는 순간부터 복잡한 초기화 과정을 거쳐 운영체제를 로드하고, 사용자가 원하는 프로그램을 실행할 준비를 한다. 이 과정에서 운영체제와 하드웨어가 긴밀히 협력하여 효율적이고 안정적인 시스템 환경을 제공한다.
다음 글에서는 운영체제의 주요 구성 요소와 커널의 역할, 프로세스 관리 방법 등을 자세히 살펴보겠다.
'CS' 카테고리의 다른 글
| [CS/OS] 프로그램, 프로세서, 프로세스, 스레드 개인 학습용 정리 (1) | 2025.01.14 |
|---|---|
| [CS/OS] 운영체제의 구성 요소와 역할 그리고 커널만 메모리에 상주하는 이유 (0) | 2025.01.14 |