Git 根据计算出的任何文件的哈希值将内容唯一地存储在其存储库中。如果我的目录在其中某处有同一个文件的两个副本,git 只会实际存储它一次。
我想知道这个相同的概念是否已经在操作系统级别作为某种文件系统实现了?
如果文件系统默认以这种方式运行,它将很好地帮助解决dll 地狱问题。本质上,它会代表您自动进行符号链接。任何应用程序都可以打包(如 jar)在一个目录中,包含它的所有依赖项,并且没有额外的存储成本。
Ruby 爱好者通过将库发布为 rubygems 来共享库。尽管如此,这种共享 gems 的努力导致了部署噩梦,导致Vendor Everything概念将所有依赖项复制到本地文件夹中以避免此类噩梦。
我知道 Unix 文件系统有时看起来像是文件但实际上不是文件。中的文件dev实际上指向设备。也可以创建命名管道,这些管道看起来也是文件,但实际上是各种先进先出的消息队列。该proc目录包含基于进程、内存、硬件等的文件。
我试图更好地理解这些抽象,以决定我可以使用哪些抽象。Unix 伪装文件有多少种方式,管理员可以轻松实现/使用哪些方式?(即命名管道和符号链接很容易使用。)如果我知道这些概念的正确术语,我也许可以在网上找到详细信息。