Linux 커널 이미지를 압축하는 이유와 방법은 무엇입니까?

Linux 커널 이미지를 압축하는 이유와 방법은 무엇입니까?

Linux 커널 이미지를 압축하는 이유와 방법은 무엇입니까? RAM에 있는 이미지를 압축하고 (내가 아는 한) 압축을 해제해야 하는 것은 의미가 없는 것 아닌가요? 어떻게 압축할 수 있나요? 메모리에 바이너리 기계 명령어가 아니라 압축된 혼란이 있을 때 CPU는 이를 어떻게 실행합니까?

또 다른 문제는 압축된 이미지가 압축되지 않은 이미지보다 빠른 이유는 무엇입니까? 나는 이와 같은 내용을 읽었거나 이해했습니다. 이것이 사실입니까, 거짓입니까?

답변1

커널 이미지는 일부 아키텍처(예: i386)의 제한 사항을 해결하기 위해 압축되었습니다.

특히 초기 부팅 중에 사용 가능한 메모리 양에 커널을 맞추는 것입니다.

요즘에는 UEFI 및 64비트 주소 지정으로 인해 이러한 기능이 더 이상 "필수"가 아니지만 예, 맞습니다. 부팅 속도를 향상시킬 수 있습니다. 내 압축된 커널 이미지는 약 11MB이고, 압축하지 않으면 더 커지고(아마도 20MB 이상) 로드하는 데 더 오랜 시간이 걸립니다. 일반적으로 감압 속도는 드라이브 속도보다 빠릅니다. 그러나 PCIe 4.0 NVME 드라이브에서는 더 이상 그렇지 않습니다.

귀하의 질문에 답변할 수 있는 추가 세부정보를 제공할 수 있습니다.여기

사용 방법에 관해서는 커널은 다양한 압축 알고리즘을 사용할 수 있으며 고대 gzip이 그중 하나이지만 XZ, LZ4 및 Zstd도 지원합니다. 아마 더 있을 것 같지만, 생각나는 목록은 이 정도입니다.

관련 정보