¿Hay un sistema de archivos tipo git?

27

Git almacena contenido únicamente en su repositorio basado en el hash calculado de cualquier archivo. Si mi directorio tiene dos copias del mismo archivo en algún lugar dentro de él, git solo lo almacenará una vez.

Me pregunto si este mismo concepto se ha implementado a nivel del sistema operativo como algún tipo de sistema de archivos.

Si un sistema de archivos actuara de esta manera por defecto, sería de gran ayuda con los problemas de dll hell . Esencialmente, sería un enlace simbólico automáticamente en su nombre. Cualquier aplicación podría estar empaquetada (como un jar) en un directorio con todas sus dependencias y sin costo de almacenamiento adicional.

Los entusiastas de Ruby comparten bibliotecas publicándolas como rubygems. Aún así, este esfuerzo por compartir gemas resultó en pesadillas de implementación que condujeron al concepto Vendor Everything de copiar todas las dependencias en carpetas locales para evitar tales pesadillas.

Mario
fuente
2
No soy un experto, pero echa un vistazo a ZFS .
ForeverWintr

Respuestas:

3

Network Appliance, Inc. ha tenido una capacidad de almacenamiento como esta durante muchos años, de hecho, presentaron quejas ante Sun Microsystems por su sistema de archivos ZFS, y hace lo que Aaron Miller menciona en su respuesta aceptada. Por lo que vale, las quejas se resolvieron con Oracle después de aproximadamente 3 años.

He usado esto como una solución corporativa desde 2000, y funciona bien. El costo de almacenamiento después de la primera 'copia' se produce una vez que hay un cambio en el archivo. De lo contrario, con muchas 'copias' solo se produce un ligero aumento para el espacio de nombres.

No creo que esto responda la pregunta sobre el "nivel del sistema operativo" sino más bien en un "nivel del sistema de archivos".

vgoff
fuente
0

El nuevo Sistema de archivos de Apple (APFS, llamado así porque ya había un AFS que era otra cosa) hace esta magia de "autoenlace" / "deduplicación". macOS 10.13 lo admite de forma nativa (en la mayoría de las Mac) al igual que iOS 11.

Dicho esto, no creo que sea suficiente para hacerlo "git like", ya que si fuera "git like", también tendría una suma de comprobación criptográfica del estado de la estructura de mi directorio en determinados momentos para que Puedo estar seguro de que nadie ha pirateado mi computadora o modificado los directorios de mi sistema. De hecho, uso repositorios git para rastrear ciertos directorios críticos del sistema en mis Mac, como archivos de configuración de Apache, LaunchDaemons, LaunchAgents y algunos otros, de esa manera cuando instalo software o ejecuto mi servidor por un tiempo puedo ver si algo tiene jodido.

APFS también tiene un soporte ingenioso para descargar cosas del sistema de archivos a la nube cuando no se han utilizado durante un tiempo, pero aún así parecen estar allí, y se poblarán desde la nube a pedido.

Siempre puedes construir un Hackintosh y jugar con él. BSD es divertido.

Tostada Coma
fuente