OS에서 Boot Time은 최적화를 위해서 중요하며, 보다 빠른 실행을 봐야할 부분이 아닐까 싶다. 이전부터 Linux 기반으로 Boot Time을 줄이기 위해서
기본적으로 Kernel 의 불필요한 기능제거 부터 시작하여 File System의 구성을 최적화하고 정리하고 필요한 부분을 Ramdisk도 이용하기도 했다.
Serial로 Booting 을 보면 시간이 다 기록이 되기때문에 이것으로도 도움이 되지만, Boot TIme을 줄이기 위해서는 본인이 원하는 Service(Program) 실행되어지는 순서변경과
Boot Time의 정확한 측정방법이 파악이 아닐 까 싶다.
- BootTime 에 관련부분 설명 문서
https://elixir.bootlin.com/linux/latest/ident/
http://www.bootchart.org/samples.html
https://www.raspberrypi.org/forums/viewtopic.php?t=76606
- TI Fast Boot Example
http://www.makelinux.com/emb/fastboot/omap
http://www.makelinux.com/emb/fastboot/dm365
http://e2e.ti.com/support/embedded/linux/f/354/t/51158
http://www.makelinux.com/emb/fastboot/dm6467
http://processors.wiki.ti.com/index.php/Sitara_Linux_Training:_Boot_Time_Reduction
- General Boot Time 관련내용
- Kernel Speed up 하는 법
- Boot up Time 측정하는 법
http://tree.celinuxforum.org/CelfPubWiki/KoreaTechJamboree3?action=AttachFile&do=get&target=The_Fast_Booting_of_Embedded_Linux.pdf
1.1 Snapshot Booting
Memory의 정보를 Snapshot 형태로 보관해서 이 부분을 Booting 하는 방식이며, DMA까지 이용한다고 한다.
- FA linux의 zeroboot
http://forum.falinux.com/zbxe/index.php?document_srl=561345&mid=falinux
http://djji.tistory.com/entry/ZEROBOOT%EC%A0%9C%EB%A1%9C%EB%B6%80%ED%8A%B8
- Snapshot boot
http://elinux.org/images/3/37/Snapshot-boot-final.pdf
2. Boot Time 분석
Boo Time에 관련된 기본정보들이 있음
https://elinux.org/Boot_Time
2.1 Kernel Log 및 Kernel Serial 로 시간분석
dmesg 및 kernel log로 이부분을 확인이 가능
https://ahyuo79.blogspot.com/2016/02/kernel-message.html
https://ahyuo79.blogspot.com/2014/09/kernel-debug.html
https://elinux.org/Printk_Times
2.2 systemd-analyze 이용
Linux file system init의 구조가 sysvinit 에서 systemd로 변경이 되어지고 있으며, 혹은 혼합하여 사용중이다. (현재 TI는 혼합해서 사용하고 있기에 이를 적용하기 무리가 있다)
systemd의 분석기능을 제공하고 있으며, dmesg로 boot time을 체크하는 것과는 별도로 진행을 해야 할 것 같다. .
https://ahyuo79.blogspot.com/2017/04/systemd-analyze.html
https://wiki.archlinux.org/index.php/Improving_performance/Boot_process
2.3 bootchart/bootchart2 이용
기본적으로 busybox에서 제공을 해주고 있으며, Kernel parameter에서 init=/sbin/bootchartd 를 설정을 해주어야 동작이 가능
https://ahyuo79.blogspot.com/2017/03/bootchart.html