chroot no OSX como um sistema operacional diferente

3

Eu queria saber se alguém foi capaz de usar o chroot no OSX para rodar outro SO (ubuntu, centos). Eu sei que eles são muito diferentes, mas quase tudo que eu quero usar isso não iria se importar com nada no nível do kernel, então eu esperava que houvesse uma maneira de fazer isso sem usar uma VM.

Com base nas minhas pesquisas no Google, vejo que esta pergunta foi feita, mas nenhuma resposta real além de "experimentar uma VM". Realmente gostaria de fazer isso sem uma VM embora.

    
por ekaqu 27.10.2013 / 03:20

2 respostas

6

Infelizmente, a maioria dos programas do se preocupam com o kernel, tanto diretamente quanto não.

Diferentes sistemas operacionais têm diferenças significativas até mesmo nos recursos mais comuns (epoll vs inotify vs kqueue, clone vs vfork vs rfork ...).

Mesmo se o programa adotar recursos mínimos que pareçam iguais ao userspace (por exemplo, stdio, acesso básico a arquivos), ele (ou melhor, a libc) ainda precisa saber como chamar essas funções no kernel, que é < em> completamente diferente entre o Linux (plain old syscalls) e o OS X (uma mistura de syscalls e Mach IPC).

E supondo que você possa fazer o kernel começar a executar o programa - o kernel do OS X não entende o formato ELF, apenas o Mach-O (mais todos os tipos de coisas do Mac OS legados).

Existem vários emuladores - por exemplo, o FreeBSD tem emulação de Linux, e o Wine roda programas do Windows em Unixes, e parece haver um emulador do OS X para Linux - mas não consegui encontrar nenhum que rodasse programas do Linux no OS X.

Aqui está uma descrição de como as funções básicas do Linux são emuladas no FreeBSD .

    
por 27.10.2013 / 03:38
4

o chroot muda o diretório raiz; ele não altera o formato de arquivo executável, a interface binária do aplicativo, etc., todos diferentes entre o OS X e o Linux. A execução de outro SO leva muito mais do que o chroot; é preciso uma VM.

    
por 27.10.2013 / 03:38