특히 임베디드 관련 환경에서 시작 시간을 줄이는 방법을 찾는 데 관심이 있습니다.
커널이 특정 드라이버나 모듈을 로드하는 것을 방지하는 방법에 대해 어디선가 읽었지만 완전히 잊어버렸고 인터넷에서 찾은 모든 정보는 매우 복잡하고 밀도가 높습니다.
이를 달성하는 데 필요한 일반적인 단계를 제안할 수 있는 사람이 있습니까? 어쩌면 내가 틀렸을 수도 있고 이것은 커널과 아무 관련이 없습니다.
답변1
아치 리눅스 문서성능/시작 프로세스 개선시작 성능을 향상시키는 방법을 이해하는 데 도움이 될 수 있습니다.
systemd-analyze blame
서비스 시작 시점을 확인하거나, systemd-analyze critical-chain
핵심 내용을 확인한 후 불필요한 서비스를 종료 systemctl disable service_name.
하거나 불필요한 프로그램을 삭제하는 데 사용됩니다 apt
.
답변2
부팅 시간을 단축하려면 사용자 정의 커널을 구축하십시오.
"기본" 커널 또는 원래 커널에서 컴퓨터에 필요하지 않은 모든 장치를 제거하여 사용자 정의 커널을 구축할 수 있습니다.
이것은 생각보다 쉽습니다.
커널 파일을 가져와 컴퓨터에 필요하지 않은 내용을 편집합니다. 예를 들어, 컴퓨터에 Wi-Fi가 없으면 커널에서 Wi-Fi 드라이버를 모두 제거하세요. 그런 다음 커널을 다시 컴파일하십시오.
새 커널은 이전 커널보다 더 컴팩트하고 부팅 속도가 빠릅니다.
커널 구성에 대한 FreeBSD 매뉴얼 섹션을 읽어볼 것을 권장합니다.
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
다시 말하지만, 이것은 생각보다 훨씬 쉽습니다.
답변3
부팅 시간 최적화(임베디드 Linux용)에 대해 제가 알고 있는 가장 광범위한 문서는 부팅 시간 최적화 전용 교육 과정에서 Bootlin(이전의 Free Electrons)이 제공한 프레젠테이션 슬라이드입니다.https://bootlin.com/doc/training/boot-time/
교육을 받지 않아도 시작 시간을 측정하는 도구에 대한 풍부한 정보(시간을 절약할 수 있는 여러 지점)를 제공합니다.
하지만 한 가지 주의할 점은 설명된 옵션 중 일부에는 커널/루트 파일 시스템의 일부 낮은 수준 측면을 조정해야 한다는 것입니다.