커널 모듈을 설치할 때 다음을 사용하여 디버깅 기호를 제거할 수 있는 옵션이 있습니다.INSTALL_MOD_STRIP=1
. 이렇게 하면 많은 디스크 공간을 절약할 수 있습니다.
메모리도 절약되나요? 커널 모듈에서 디버깅 기호를 계속 유지하는 이유는 무엇입니까?
답변1
디버그 기호는 실행 파일에 추가 정보를 추가할 뿐이며 이는 GDB와 같은 디버거를 실행할 때 도움이 됩니다. 이를 통해 디버거는 실행 파일에서 소스 코드를 다시 생성하여 런타임에서 segfault와 같은 문제가 발생한 위치를 보여줄 수 있습니다.
모듈과 상호 운용 가능한 것을 테스트/해킹/만들려면 해당 항목이 필요합니다. 정상 작동 중에는 공간만 차지하며 생산 기계에 안전 위험을 초래할 수 있습니다. 예를 들어, 누군가 사용자 권한으로 시스템에 침입하면 디버거를 사용하여 현재 실행 중인 모듈의 약점을 찾아 루트 액세스 권한을 얻을 수 있습니다.
이를 제거하면 약간의 공간도 절약됩니다.