공유 라이브러리를 임베디드 Linux 장치에 복사하는 것이 안전합니까?

공유 라이브러리를 임베디드 Linux 장치에 복사하는 것이 안전합니까?

다음은 제공하는 하드웨어 보드의 임베디드 Linux 배포판에 대한 공급업체의 사용자 매뉴얼에 포함되어 있습니다.

개발자는 FTP 또는 NFS를 통해 X-Linux 장치에 프로그램을 넣을 수 있습니다. 실행하기 전에 개발 워크스테이션에서 ldd 명령을 사용하여 종속성 파일을 확인하세요. 동시에 관련 파일을 X-Linux에 넣어 프로그램이 정상적으로 실행될 수 있도록 하세요. 다음은 X-Linux에 "syslinux"를 배치하는 예입니다:

  [root@X-Linux]:/sbin # ldd syslinux 
          linux-gate.so.1 => (0xb80a0000)
          libc.so.6 => /lib/libc.so.6 (0xb7f60000) 
          /lib/ld-linux.so.2 (0xb80a1000) 
  [root@X-Linux]:/sbin # 

위의 소식을 통해,/lib/libc.so.6그리고/lib/ld-linux.so.2syslinux가 필요합니다. syslinux가 제대로 작동할 수 있도록 X-Linux에 이 두 파일을 넣으십시오.

나는 이 장치에서 실행될 소프트웨어를 작성해야 할 것이며 스택 교환에서 받은 많은 조언은 이 조언과 모순되는 방향을 지적했습니다(특정 임베디드 개발 환경 설정, 이전 버전의 libc에 연결에 대한 제안). , 정적 링크 등). 공급자가 제공한 위 정보는 안전하고 신뢰할 수 있습니까?

답변1

할 수 있는장치가 동일한 프로세서 아키텍처 제품군에서 동일한 운영 체제를 실행하는 경우 라이브러리를 임베디드 장치에 복사합니다. 귀하의 장치에는x8632비트 PC와 동일한 제품군의 프로세서입니다. 따라서 데스크톱 컴퓨터에 32비트 Linux 시스템이 있는 경우 데스크톱 컴퓨터의 라이브러리와 실행 파일을 장치로 복사할 수 있습니다.

반면에 나는 이것을 권장하지 않습니다. 알 수 없는 출처의 파일이 잔뜩 남아 있고 종속성을 관리하거나 소프트웨어를 업그레이드하거나 제거할 방법이 없습니다. 잠깐 살펴본 후 모아본 것 중에서수동,X-Linux는 확장 가능하도록 설계된 작은 Linux 시스템입니다. 내 제안은 X-Linux와 함께 또는 X-Linux 대신 다른 Linux 배포판을 설치하는 것입니다. X-Linux와 다른 배포판이 공존하는 경우chroot(여전히 X-Linux 커널에 의해 제한됩니다).

답변2

"개발 워크스테이션"은 "임베디드 개발 환경"을 의미하기를 바랍니다. 그렇지 않으면 아키텍처 차이(잘못된 명령 오류)로 인해 애플리케이션이 전혀 실행되지 않을 수 있습니다.

이것장비32비트 x86 프로세서가 있는 것 같으니 설정이 어렵지는 않겠지만 (아마도) 64비트 시스템에서 라이브러리를 복사하면 재앙이 될 것입니다.

관련 정보