Linux 커널에서 공유 라이브러리 연결

Linux 커널에서 공유 라이브러리 연결

Linux 커널의 보안 모듈(특히 보안/IMA)을 수정하고 싶습니다. (이 모듈은 커널로 컴파일되어야 합니다)

이 모듈에서는 공유 라이브러리(.so 파일)의 함수를 사용해야 합니다.

하지만 어떻게 컴파일하는지 모르겠습니다.

공유 라이브러리 파일을 Linux 커널에 넣는 방법이 있습니까?

방법이 없다면 이유를 알려주실 수 있나요?

답변1

실제로는 그렇게 할 수 없습니다(공유 라이브러리를 커널이나 일부 커널 모듈에 연결). 커널은 개념적으로 별도의 프로그램입니다(따라서 malloc공유 fprintf라이브러리에서 가장 많이 사용하는 것과 같은 저수준 표준 C 기능에 대한 지식이 없습니다 ). 커널 모듈( *.ko파일)은 일부 특수 커널 코드에 의해 특별히 빌드되고 로드됩니다.

또한 사용자 공간 코드(라이브러리 포함)는 다음을 기반으로 합니다.시스템 호출(에 나열됨시스템 호출(2)), 커널 코드에서는 사용할 수 없습니다(커널은 다음과 같기 때문입니다).공급시스템 호출프로세스달리다사용자 모드특정 기계에 의해).

사용자 공간 도우미 프로그램이 커널(예: 커널 모듈)과 통신하는 것을 고려할 수 있습니다.웹 링크(7). 아마도 한 번 살펴보세요체계.

당신은 아마에 대해 더 읽어야 할 것입니다운영 체제그리고 읽어보세요고급 Linux 프로그래밍사용자 도메인 측면을 이해합니다.

그런데, 경험상 시스템에 추가하는 커널 코드의 양을 제한해야 합니다(그리고 사용자 공간에서 작업하는 것을 선호합니다).

관련 정보