Alan Cox 는 Linux 커널 및 GUI ABI의 하위 호환성에 대한 논의에서 " 3.6rc 커널은 여전히 1992 년에 구축 된 Rogue 바이너리를 계속 실행합니다. X는 Linux보다 훨씬 오래된 앱과 호환됩니다. "
그렇다면 Linux Application 바이너리 인터페이스 는 이전 버전과 어떻게 호환 됩니까?
실제로 몇 년 전에 작성되고 컴파일 된 가장 오래된 바이너리 실행 파일은 현대 주식 범용 Linux 배포에서 계속 실행될 것입니까?
나는 그 모든 단어들이 해석의 대상이라고 확신합니다. 내 주요 개념은 에뮬레이터 또는 특수 가상 컴퓨터 또는 이진 번역기를 통해 실행하는 것이 공정하지 않다는 것입니다. 그러나 그러한 일부는 아마도 현대의 일부 배포판에 내장되어 있으며 여기서 배우는 것이 재미의 일부입니다.
하드웨어 아키텍처, 실행 파일 형식 , 언어 및 주요 라이브러리 동적로드 종속성에 따른 변형 도 중요합니다.
규칙이 완화되면 다시 되돌아가는 예제가 있습니다. 최신 Red Hat Linux에서 2002 웹 페이지 실행 a.out 실행 파일은 수행 및 획득 후 실제로 이전 Linux pre-ELF a.out 형식 실행 파일을 사용하는 것에 대해 이야기 하고 다시이 질문에 대한 주변 관심 분야입니다. 더 깊이 파고들 때 관여 할 수 있습니다.modprobe binfmt_aout
/lib/ld.so
libc.so.4
BSD 팬들을위한 업데이트 로, iBCS2가 이전 Xenix 앱 (1990 년의 zork / dungeon-2.5.6과 같은) 및 NetBSD 4.0.1 (2008 년부터)과 같은 SCO OpenServer 5.0.x 앱을 지원하고 있음을 알게되어 기쁩니다 : iBCS2 & NetBSD | 가상화를 통한 재미 . 그러나 NetBSD 5.0.x에서도 마찬가지입니다.
업데이트 2 : 1 년 후이 질문에 대한 "아나운서"배지를받은 후에도 여전히 답을 찾고 있습니다. 분명히 말하면, 이것은 API에 관한 것이기 때문에, 적어도 대부분 원래의 방식으로 작동하는 "실제"바이너리 (0이 아닌 길이) 여야합니다.