리눅스 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 loader 를 vendors 가 알아서 제작한다.
- 가장 일반적인 안드로이드 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
Reference
- Operating System Concepts 10th edition
댓글 없음:
댓글 쓰기