Windows Bash vs Ubuntu na VM e no SSH

4

Eu tenho procurado por algum tempo, mas eu não consegui descobrir qual é a diferença entre o novo Bash For Windows 10 e um ssh em um Ubuntu rodando em uma VM (com o windows drives montado).

Ele tem mais integração com o Windows, ou o acesso e a facilidade de instalação são apenas em uma instalação do Ubuntu em execução em uma VM?

    
por Androme 17.07.2016 / 20:46

2 respostas

7

A diferença é essencialmente a que existe entre a virtualização no nível do sistema operacional e a virtualização baseada em hipervisor.

Quando você inicia o bash a partir do menu Iniciar do Windows, você obtém uma janela de texto com acesso a um ambiente de linha de comando completo do Ubuntu, a partir do qual você pode instalar qualquer pacote do Ubuntu.

Ao contrário do que você obteria com uma VM tradicional, não há kernel do Linux para inicializar ou executar, por isso é muito mais rápido de iniciar e mais leve de ser executado. Os binários nativos do Ubuntu são simplesmente executados pelo kernel do Windows (precisamente um novo subsistema). Outra diferença é que não há integração gráfica fora da caixa. Com uma VM, você tem acesso a uma janela (ou uma tela inteira) de representação do texto e do console gráfico do hardware virtual, mas com o Windows bash, é mais parecido se você se conectar remotamente a um servidor de um emulador de terminal do Windows. Você pode, no entanto, executar aplicativos gráficos do Linux se iniciar um servidor X11 no Windows. Como não há nenhum kernel Linux envolvido, você não pode usar módulos / drivers Linux para acessar seu hardware, ele será acessado pelos nativos do Windows. Isso tem muitas implicações, por exemplo, atualmente não há suporte para links simbólicos e problemas com nomes de arquivos longos e caso de nome de arquivo, sem inotify. Não há seqüência de inicialização como uma máquina real ou uma VM tradicional, o que significa que nenhum serviço é iniciado automaticamente quando você inicia bash . É um pouco semelhante ao lançamento do Docker bash .

Finalmente, este é um trabalho em progresso, portanto, há muito espaço para melhorias. Você pode ter uma ideia sobre o que os usuários mais informam sobre esse site link

Veja também as perguntas frequentes: link

Observe que a primeira solicitação do usuário "Vamos iniciar processos do Windows a partir do Bash" é algo que você não pode fazer nem de uma VM do Linux em execução no Windows.

    
por 18.07.2016 / 08:39
0

Todos os três são ferramentas que atendem a diferentes usos ou propósitos. Decidir qual é parcialmente a preferência e a seleção parcialmente correta ou adequada de uma ferramenta.

Eu não o usei, mas pelo que eu li sobre o Windows BASH, que é muito pouco, é um ambiente de shell BASH ligeiramente isolado. Ele não tem acesso a informações no nível do sistema ou APIs que o Powershell faz, por exemplo. Ele não fornece um ambiente de comando semelhante ao UNIX, nem fornece SSH. Mas ele pode executar programas e aplicativos como os arquivos BAT, mas com scripts escritos usando a sintaxe BASH.

O Cygwin é uma abstração baseada em biblioteca de um ambiente POSIX estilo UNIX (mais ou menos). Ele pode ter acesso a informações em nível de sistema e APIs se essa interface for gravada, e muitos têm. Parece muito mais com um ambiente estilo UNIX, mas há adaptações óbvias que precisam ser feitas para acomodar "janelasismos". Por exemplo. para acessar uma unidade do Windows, como D, é /cygdrive/d/ . Os separadores de diretório em um caminho são / em vez de \ e o acesso a uma unidade de rede é //host/share/path... . Eu o uso diariamente no trabalho e acho muito útil meu pensamento no estilo UNIX.

O Linux executado em uma máquina virtual é uma instalação completa e (quase) completamente isolada do sistema host, exceto em pontos definidos específicos, como rede, teclado / mouse, memória, etc ...

    
por 17.07.2016 / 21:24