Temos sistemas de compilação do FreeBSD muito antigos (6.3) que usamos para manter a compatibilidade retroativa com as bibliotecas do sistema para nossos binários proprietários e evitar compilar em cada versão do FreeBSD.
Pergunta: É tecnicamente possível instalar um FreeBSD 11.x novo e prender o sistema antigo nele? Ou haverá problemas devido a chamadas de sistema incompatíveis?
Acho que devo lembrar algumas mudanças - supostamente significativas - na interface do kernel em relação ao tamanho time_t
ou algo assim. Existem alterações que quebrariam os binários antigos que dependem do antigo syscall ou isso afetaria apenas os binários recém-construídos/vinculados que estão vinculados ao novo syscall (correspondente)?
Responder1
Acho que bhyve é seu primeiro recurso, não o último. Se você prender seu ambiente de construção, estará testando seu produto em um mundo e bibliotecas 6.3, com um kernel 11.x. Seus clientes, entretanto, estarão executando um world/libs 6.3 e um kernel 6.3.
Pode-se esperar que as diferenças entre os kernels 6.3 e 11.x aumentem com o tempo, eu imagino. Isso poderia levar a situações como aquela em que o kernel 11.x da sua jail de teste faz a coisa certa, mas o kernel 6.3 do seu cliente não e, portanto, você não pode reproduzir o relatório de problemas do seu cliente.
IMO, bhyve é a melhor ferramenta para este trabalho.