답변:
시장 세력.
* BSD보다 Linux를 겨냥한 더 많은 프로그램이 있습니다. 많은 소프트웨어 소스 코드 는 이식성이 뛰어나 두 언어 모두에서 컴파일 할 수 있지만 Linux 바이너리를 제공하는 많은 소프트웨어 제작자는 Linux 보다 시장 점유율이 적기 때문에 BSD에 대해 그렇게 신경 쓰지 않습니다 . ¹
소프트웨어가 다른 OS에 대해 이진 형식으로 만 제공되는 경우 ABI 에뮬레이션을 실행하는 한 가지 방법입니다. 이것이 BSD가하는 일입니다 .²
옛날에 x86 Unix가 Linux보다 많은 시장을 차지했을 때 iBCS 기능이 Linux에 추가되어 SCO Unix 용으로 작성된 바이너리를 실행할 수있게되었습니다. 리눅스의 시장 점유율 증가로이 기능에 대한 관심이이 파손로 분류 하였다 그래서, 거절 리눅스 2.3 개발 시리즈 중 .³ SCO 소송은 리눅스 중이 기능을 안내 도움,하지만 난 그 시장의 손실 보조 믿습니다 기능을 탄생시킨 힘.
Linux가 언젠가 BSD 바이너리를 실행하기위한 iBCS와 같은 기능을 얻을 수 없었던 기술적 이유는 없지만 어떤 이유로 BSD와 Linux의 시장 위치가 바뀌지 않는 한 가능성이 낮습니다.
오늘날에는 그런 일이 거의 없습니다. Linux 용으로 빌드되지 않은 BSD 용 바이너리 전용 프로그램은 몇 개입니까? 몇 가지가 있어야하지만 대부분 Junos 와 같은 임베디드 BSD 용이라고 생각합니다 . 이러한 기능은 Linux에서 달리 실행되지 않는 중요한 프로그램 세트를 실행할 수없는 경우에는 작성되지 않습니다.
각주 :
여기서는 별도의 이진 호환성 문제이므로 OS X를 BSD로 간주하지 않습니다. FreeBSD, OpenBSD 및 NetBSD 는 x86에서 ELF 를 사용 하는 반면 OS X는 완전히 다른 실행 형식을 사용 합니다 . 동적 연결은 또한 기존 x86 BSD와 OS X에서 크게 다릅니다 .
Linux ⇔ OS X 바이너리 호환성 이야기에 대한 자세한 내용은 이 질문 을 참조하십시오 .
특정 종의 상어 와 마찬가지로 앞으로 나아 가지 않는 소프트웨어는 죽습니다. 우리는이 현상 을 소프트웨어에 발생할 때 질식이 아닌 비트 로트 라고 부릅니다 . 그러나 원인과 결과는 같습니다.
대비 NDISwrapper -Linux에서 Windows XP 용으로 작성된 이진 전용 네트워크 카드 드라이버를 실행할 수 있습니다. 요구가 파악되고 요구가 채워집니다. BSD 전용 바이너리를 어디에서 실행해야합니까?
binfmt_misc
모듈을 통해 비원시 바이너리를 실행할 수있는 인프라가 있으므로 임의의 바이너리 형식 핸들러를 등록 할 수 있습니다. 드물다고 생각하지만 일부 사람들은 이런 방식으로 Mono 응용 프로그램을 실행합니다. 그러나 당신이 말한 것처럼 아무도 * BSD binfmt 핸들러를 작성해야 할 이유가 없습니다.