BSD가 Linux 바이너리를 실행할 수 있도록 허용하지만 그 반대는 실행할 수 없는 이유는 무엇입니까?

BSD가 Linux 바이너리를 실행할 수 있도록 허용하지만 그 반대는 실행할 수 없는 이유는 무엇입니까?

BSD가 Linux(및 기타 Unix 계열) 바이너리를 실행하도록 허용하지만 Linux(및 대부분의 다른 Unix 계열) 바이너리는 BSD 바이너리를 실행하지 못하게 하는 것은 무엇입니까?

답변1

시장 세력.

*BSD용 프로그램보다 특별히 Linux용 프로그램이 더 많이 있습니다. 많은 소프트웨어소스 코드두 가지 모두에서 컴파일할 수 있을 만큼 이식성은 충분하지만 Linux 바이너리를 제공하는 많은 소프트웨어 제작자는 너무 게으른 나머지 BSD에 대해 그렇게 하지 않습니다.전반적으로 시장 점유율은 Linux보다 작습니다.^

소프트웨어의 일부가 다양한 운영 체제에서 바이너리 형식으로만 사용 가능한 경우 ABI 에뮬레이션은 이를 작동시키는 한 가지 방법이며 BSD가 수행하는 것과 같습니다.

옛날 옛적에 x86 Unix가 Linux에 비해 시장의 대부분을 차지했을 때,iBCS이 기능은 SCO Unix 등을 위해 구축된 바이너리를 실행할 수 있도록 Linux에 추가되었습니다. Linux의 시장 점유율이 증가함에 따라 이 기능에 대한 관심이 줄어들었고, 이로 인해 Linux는 망가지게 되었습니다.Linux 2.3 개발 시리즈 중.³의SCO 소송이 기능을 Linux에 가져오는 데 도움이 되었지만 이 기능을 탄생시킨 시장 지배력의 상실에 따른 부차적인 문제라고 생각합니다.

Linux가 언젠가 BSD 바이너리를 실행하기 위한 iBCS와 같은 기능을 얻지 못할 기술적인 이유는 없지만, 어떤 이유로든 BSD와 Linux의 시장 위치가 바뀌지 않는 한 그럴 가능성은 없습니다.

오늘날에는 그러한 일이 요구되는 경우가 거의 없습니다. Linux용으로 제작되지 않은 BSD 순수 바이너리 프로그램이 몇 개나 있습니까? 분명히 일부가 있지만 대부분은 임베디드 BSD용인 것 같습니다.주노스. 중요한 프로그램 세트가 Linux에서 실행되도록 허용되지 않은 경우(그렇지 않으면 실행할 수 없음) 이러한 기능은 생성되지 않습니다. ⁴


각주:

  1. 여기서는 OS X를 BSD로 간주하지 않습니다. 이는 별도의 바이너리 호환성 문제이기 때문입니다. FreeBSD, OpenBSD 및 NetBSD 사용매우 낮은 주파수x86에서는 OS X가 사용하는 동안완전히 다른 실행 파일 형식. 동적 연결도완전히 다른기존 x86 BSD보다 OS X에서.

    바라보다이 문제Linux ⇔ OS X 바이너리 호환성 이야기에 대해 자세히 알아보세요.

  2. FreeBSD;오픈BSD;네트워크BSD

  3. 그리고특정 종의 상어, 앞으로 나아가는 것을 멈추는 소프트웨어는 죽을 것입니다. 우리는 이런 현상을비트 썩음소프트웨어 질식 현상이 발생하는 것이 아니라 원인과 결과는 동일합니다.

  4. 비교됨NDIS 래퍼, 이를 통해 Linux는 Windows XP용으로 작성된 순수 바이너리 네트워크 카드 드라이버를 실행할 수 있습니다. 요구사항이 식별되고 요구사항이 충족됩니다. BSD 전용 바이너리를 어디에서 실행해야 합니까?

관련 정보