우리는 독점 바이너리에 대한 시스템 라이브러리와의 하위 호환성을 유지하고 각각의 모든 FreeBSD 버전에서 빌드하는 것을 방지하기 위해 사용하는 아주 오래된 FreeBSD 빌드 시스템(6.3)을 가지고 있습니다.
질문: 새로운 FreeBSD 11.x를 설치하고 기존 시스템을 감옥에 가두는 것이 기술적으로 가능합니까? 아니면 호환되지 않는 시스템 호출로 인해 문제가 발생합니까?
크기와 관련하여 커널 인터페이스의 일부 변경(아마도 깨졌을 것으로 추정)을 기억하는 것 같습니다 time_t
. 기존 syscall에 의존하는 기존 바이너리를 손상시키는 변경 사항이 있습니까? 아니면 (해당하는) 새 syscall에 연결된 새로 빌드/링크된 바이너리에만 영향을 미치나요?
답변1
나는 bhyve가 마지막 휴양지가 아니라 첫 번째 휴양지라고 생각합니다. 빌드 환경을 감옥에 가둔다면 11.x 커널을 사용하여 6.3 세계와 라이브러리에 대해 제품을 테스트하는 것입니다. 그러나 고객은 6.3 world/libs 및 6.3 커널을 실행하게 됩니다.
6.3과 11.x 커널의 차이는 시간이 지나면서 더 커질 것으로 예상됩니다. 이로 인해 테스트 감옥의 11.x 커널은 제대로 작동하지만 고객의 6.3 커널은 제대로 작동하지 않아 고객의 문제 보고서를 재현할 수 없는 상황이 발생할 수 있습니다.
IMO, bhyve는 이 작업에 가장 적합한 도구입니다.