Git przechowuje zawartość wyjątkowo w swoim repozytorium na podstawie obliczonego skrótu dowolnego pliku. Jeśli mój katalog ma gdzieś w nim dwie kopie tego samego pliku, git zapisze go tylko raz.
Zastanawiam się, czy ta sama koncepcja została wdrożona na poziomie systemu operacyjnego, jak jakiś system plików?
Jeśli system plików działałby w ten sposób domyślnie, byłoby to pomocne w rozwiązywaniu problemów z piekłem DLL . Zasadniczo byłoby to symlink automatycznie w twoim imieniu. Dowolną aplikację można spakować (np. Słoik) do katalogu z wszystkimi jej zależnościami i bez dodatkowych kosztów przechowywania.
Entuzjaści Rubiego udostępniają biblioteki, publikując je jako rubygemy. Mimo to wysiłek dzielenia się klejnotami spowodował koszmary wdrożeniowe, które doprowadziły do koncepcji kopiowania wszystkich zależności do folderów lokalnych przez dostawcę Wszystko, aby uniknąć takich koszmarów.
Odpowiedzi:
To, czego szukasz, nazywa się „deduplikacją”. Chociaż zwykle jest wdrażany przez dostawców specjalistycznych produktów pamięci masowej, system plików ZFS również go implementuje. Większość systemów operacyjnych wywodzących się z Uniksa może korzystać z ZFS, dlatego poleciłbym go jako pierwsze miejsce.
źródło
Network Appliance, Inc. ma takie możliwości przechowywania od wielu lat, w rzeczywistości złożyły skargi do Sun Microsystems dotyczące systemu plików ZFS i robi to, o czym wspomina Aaron Miller w swojej zaakceptowanej odpowiedzi. Co do wartości, skargi zostały rozwiązane z Oracle po około 3 latach.
Używam tego jako rozwiązania korporacyjnego od 2000 roku i działa dobrze. Koszt przechowywania po pierwszej „kopii” pojawia się po zmianie pliku. W przeciwnym razie z wieloma „kopiami” pojawia się tylko niewielki wzrost przestrzeni nazw.
Nie sądzę, że to odpowiada na pytanie o „poziom systemu operacyjnego”, ale raczej o „poziom systemu plików”.
źródło
Nowy system plików Apple (APFS, tak nazwany, ponieważ istniał już AFS, który był czymś innym) robi magię z „automatycznym linkowaniem” / „deduplikacją”. macOS 10.13 obsługuje go natywnie (na większości komputerów Mac), podobnie jak iOS 11.
Biorąc to pod uwagę, nie wydaje mi się, że to wystarczy, aby uczynić go „git like”, ponieważ jeśli byłby „git like”, miałby również kryptograficzną sumę kontrolną stanu mojej struktury katalogów w danych punktach w czasie, aby Mogłem być pewien, że nikt nie włamał się do mojego komputera ani nie zmodyfikował katalogów systemowych. W rzeczywistości używam repozytoriów git do śledzenia niektórych krytycznych katalogów systemowych na moich komputerach Mac, takich jak pliki konfiguracyjne Apache, LaunchDaemons, LaunchAgents i kilka innych - w ten sposób, gdy instaluję oprogramowanie lub uruchamiam serwer przez jakiś czas, widzę, czy coś ma spieprzyłeś.
APFS ma także sprytne wsparcie w przenoszeniu rzeczy z systemu plików do chmury, gdy nie były używane przez jakiś czas, a mimo to nadal wyglądają, jakby tam były i będą się ponownie pojawiać z chmury na żądanie.
Zawsze możesz zbudować Hackintosha i zrzucić go. BSD jest fajne.
źródło