본문으로 이동

개인적인 사정으로 큰숲백과 관리를 무기한 중단합니다. 데이터베이스 덤프 관련 공지도 조만간 올리겠습니다.

  1. 큰숲백과:청사진에서 위키 발전의 대략적인 방향성을 제시했습니다. 의견이 있으신 분은 큰숲백과토론:청사진에서 의견을 남겨주시면 좋겠습니다.
  2. 기능상의 오류로 지원하지 않고 있는 기능에 대해서는 큰숲백과토론:이슈 트래커에 요약했습니다. 참고하시기 바랍니다.
  3. 큰숲백과 단축도메인 bigforest.wiki 열렸습니다.

부트스트래핑: 두 판 사이의 차이

1,591 바이트 추가됨 ,  2023년 8월 9일 (수)
잔글
잔글편집 요약 없음
22번째 줄: 22번째 줄:


== 부트스트래핑 예시: [[리눅스]] ==
== 부트스트래핑 예시: [[리눅스]] ==
<!-- 작성 예정 -->
# 전원이 인가되면(Power On) 1단계 부트로더가 작동한다. x86 계열 시스템에서는 BIOS/UEFI가, ARM 계열은 uboot 등이 작동한다.
# 1단계 부트 로더의 작업이 끝나면 GRUB이 작동하여 3개 Stage에 따라 움직인다.
## 먼저 BIOS 기준으로 MBR/VBR에 있는 core.img 파일의 첫 섹터 분량 코드가 실행된다. 이걸로는 보통 코드를 다 로드하지 못하므로 MBR 내 코드는 추가로 코드를 읽어 로딩을 한다.
### UEFI의 경우 GRUB 전체가 직접 실행되기에 추가 로딩은 불필요하다.
## 부팅 파티션 내 코드를 실행하기 위해 core.img 코드 내에 있는 파일 시스템 기능과 디스크 드라이버를 불러온다.
## /boot/grub 내 vmlinuz(압축된 커널 파일)을 주기억장치(이하 메모리)에 압축을 풀어 로드하고, initrd.img에 있는 모든 커널 모듈/디바이스 드라이버 등을 메모리에 가져온다.
# 그 다음 커널이 /var/log/dmesg(dmesg로 읽는 로그 파일)에 주변 장치 목록을 기록한 후 swapper 프로세스(PID 0)를 호출한다. swapper 프로세스는 장치 초기화를 한다.
## 그 이후 루트 파일 시스템을 마운트하고 init 프로세스(PID 1)을 실행한다.
# init 프로세스는 SysV와 Systemd 두 종류가 있다(전자는 정통 유닉스 방식, 후자는 우분투 리눅스 등에서 채용).
## SysV 타입은 /etc 아래에 있는 수많은 설정 파일을 읽으며 각종 OS 기능을 준비한다.
## Systemd 타입은 /lib/systemd/systemd에 정의된 섹션대로 초기화를 수행한다.