[컴][OS] 리눅스 부팅과정

linux boot process / 리눅스 부팅 절차 / 부팅 순서 / 부팅 되는 법 /


리눅스 boot process

  • 리눅스 커널 이미지 (Linux kernel image) 는 압축된 file 이다. 그래서 이것은 memory 로 load 된 이후에 압축을 풀게 된다.
  • boot process 동안에, boot loader 는 일반적으로 initramfs 라 불리는 임시 RAM file system 을 만든다.
  • 이 파일시스템에는 "실제 root file system"(이것은 main memory 에 없다.) 을 지원하기 위해 설치되어야만 하는 드라이버들커널모듈들을 포함하고 있다.
  • 커널이 시작되고, 필요한 드라이버들이 설치되자마자, 커널은 root file system 의 위치를 임시 RAM 에서 적절한 root file system 위치로 옮긴다.
  • 마지막으로 리눅스는 systemd process 를 생성한다. systemd process 가 system 에서 최초의 process 이다.
  • 그리고 나서 다른 서비스들을 시작한다.(웹서버, db 같은..)
  • 최종적으로 system 은 login prompt 를 보여준다.

Android

  • linux 에서 일반적으로 쓰이는 boot loader 인 GRUB 대신에 boot loadervendors 가 알아서 제작한다.
  • 가장 일반적인 안드로이드 boot loader 는 LK(little kernel) 이다.
  • 안드로이드에서도 압축된 kernel image 를 이용하고, initramfs 를 이용한다.
  • 안드로이드는 initramfs 를 device 의 root file system 으로 이용한다. 하지만, Linux 에서는 모든 필요한 driver 들이 loaded 되고 나서 initramfs 를 버린다.
  • kernel 이 load 되고, root file system 이 mounted 되면,
  • Android 는 init process 를 시작하고, 여러개의 service 들을 실행한다.

대부분의 boot loader 들은 recovery mode, 또는 single-user mode 등으로 booting 을 제공해준다.(windows 안전모드 같은)

See Also

  1. [컴][폰] 안드로이드 부팅과정
  2. [컴] BIOS 동작

Reference

  1. Operating System Concepts 10th edition


댓글 없음:

댓글 쓰기