Linux 커널 이미지를 압축하는 이유와 방법은 무엇입니까? RAM에 있는 이미지를 압축하고 (내가 아는 한) 압축을 해제해야 하는 것은 의미가 없는 것 아닌가요? 어떻게 압축할 수 있나요? 메모리에 바이너리 기계 명령어가 아니라 압축된 혼란이 있을 때 CPU는 이를 어떻게 실행합니까?
또 다른 문제는 압축된 이미지가 압축되지 않은 이미지보다 빠른 이유는 무엇입니까? 나는 이와 같은 내용을 읽었거나 이해했습니다. 이것이 사실입니까, 거짓입니까?
답변1
커널 이미지는 일부 아키텍처(예: i386)의 제한 사항을 해결하기 위해 압축되었습니다.
특히 초기 부팅 중에 사용 가능한 메모리 양에 커널을 맞추는 것입니다.
요즘에는 UEFI 및 64비트 주소 지정으로 인해 이러한 기능이 더 이상 "필수"가 아니지만 예, 맞습니다. 부팅 속도를 향상시킬 수 있습니다. 내 압축된 커널 이미지는 약 11MB이고, 압축하지 않으면 더 커지고(아마도 20MB 이상) 로드하는 데 더 오랜 시간이 걸립니다. 일반적으로 감압 속도는 드라이브 속도보다 빠릅니다. 그러나 PCIe 4.0 NVME 드라이브에서는 더 이상 그렇지 않습니다.
귀하의 질문에 답변할 수 있는 추가 세부정보를 제공할 수 있습니다.여기
사용 방법에 관해서는 커널은 다양한 압축 알고리즘을 사용할 수 있으며 고대 gzip이 그중 하나이지만 XZ, LZ4 및 Zstd도 지원합니다. 아마 더 있을 것 같지만, 생각나는 목록은 이 정도입니다.