Existe um sistema de arquivos semelhante ao git?


27

O Git armazena conteúdo exclusivamente em seu repositório, com base no hash calculado de qualquer arquivo. Se meu diretório tiver duas cópias do mesmo arquivo em algum lugar dentro dele, o git só o armazenará uma vez.

Gostaria de saber se esse mesmo conceito foi implementado no nível do sistema operacional como algum tipo de sistema de arquivos?

Se um sistema de arquivos agisse dessa maneira por padrão, ajudaria muito com problemas de dll hell . Essencialmente, ele faria o link simbólico automaticamente em seu nome. Qualquer aplicativo pode ser empacotado (como um jar) em um diretório com todas as suas dependências e sem custo extra de armazenamento.

Os entusiastas de Ruby compartilham bibliotecas publicando-as como rubygems. Ainda assim, esse esforço para compartilhar gemas resultou em pesadelos de implantação que levaram ao conceito Vendor Everything de copiar todas as dependências em pastas locais para evitar esses pesadelos.


2
Não sou especialista, mas confira o ZFS .
ForeverWintr

Respostas:



3

A Network Appliance, Inc. possui capacidade de armazenamento como essa há muitos anos; na verdade, eles tiveram queixas apresentadas à Sun Microsystems por seu sistema de arquivos ZFS e faz o que Aaron Miller está mencionando em sua resposta aceita. Pelo que vale, as reclamações foram resolvidas com a Oracle após cerca de 3 anos.

Eu tenho usado isso como uma solução corporativa desde 2000 e funciona bem. O custo do armazenamento após a primeira 'cópia' ocorre quando há uma alteração no arquivo. Caso contrário, com muitas 'cópias' ocorre apenas um pequeno aumento no espaço para nome.

Eu não acho que isso responda à pergunta sobre "nível de sistema operacional", mas sim em "nível de sistema de arquivos".


0

O novo Apple File System (APFS, assim chamado porque já havia um AFS que era outra coisa) faz essa mágica de "ligação automática automática" / "desduplicação". O macOS 10.13 oferece suporte nativo (na maioria dos Macs), assim como o iOS 11.

Dito isto, não acho que isso seja suficiente para torná-lo "git like", pois se fosse "git like", também haveria uma soma de verificação criptográfica do estado da estrutura do meu diretório em determinados momentos no tempo, para que Eu podia ter certeza de que ninguém havia invadido meu computador ou modificado os diretórios do sistema. Na verdade, eu uso o git repos para rastrear certos diretórios críticos do sistema nos meus Macs, como arquivos de configuração do Apache, LaunchDaemons, LaunchAgents e alguns outros - assim, quando instalo o software ou executo o servidor por algum tempo, para ver se há alguma coisa. foi ferrado.

O APFS também possui um suporte bacana para descarregar coisas do sistema de arquivos para a nuvem quando elas não são usadas há algum tempo, mas ainda parecem estar lá, e serão preenchidas novamente a partir da nuvem sob demanda.

Você sempre pode construir um Hackintosh e brincar com ele. BSD é divertido.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.