Dlaczego ograniczamy się do 255 nazw plików, mimo że jesteśmy w erze Ghz?

0

Dlaczego obecne systemy plików mają ograniczenie do 255 znaków dla nazw plików, mimo że sprzęt znacznie się poprawił w ciągu ostatnich kilku dekad?

Dlaczego ograniczamy się do 255 nazw plików, mimo że jesteśmy w erze Ghz?

mahen23
źródło
Ograniczenia dotyczące nazwy pliku nie mają nic wspólnego z procesorem
Ramhound

Odpowiedzi:

2

Głównie dlatego, że nazwy plików są przechowywane w systemie plików, gdzie istnieje jeden bajt poświęcony ich długości. Zmiana tego na dwa bajty jest teoretycznie możliwa, ale tworzy nowy i niezgodny system plików. To po prostu nie jest tego warte.

Pamiętaj, że Windows miał historycznie 255 ścieżka długość. Uznano to za zbyt rygorystyczne i stopniowo się rozluźniano (w tym sensie, że łatwiej było programowi ominąć)

MSalters
źródło
1
być interesujące, jeśli dodasz dlaczego w DOS było 8.3? Bo przypuszczalnie nie byłoby to mniej niż jeden bajt.
barlop
1
@barlop: Easy: DOS nawet nie zadał sobie trudu, aby zapisać długość nazw plików. Wszystkie nazwy zostały zapisane jako 11 znaków, FAT nawet nie przechowuje .. Pamiętaj, że format 8.3 pochodzi z oryginalnego, najbardziej prymitywnego IBM PC.
MSalters
1
Ciekawy. DOS na bok ... Sądzę, że warto byłoby użyć znaku terminacji do oznaczenia końca nazwy pliku (wtedy mogłyby one być dłuższe), chociaż nie wiem - być może bajt przechowujący długość jest nieznacznie bardziej wydajny . Czy 1 bajt, o którym wspomniałeś, ogranicza ścieżkę do 255? Czy też są one oddzielone (np. 1 bajt ogranicza nazwę pliku, a coś innego ogranicza ścieżkę), ponieważ taki limit ścieżki może być trochę denerwujący, ale nazwa pliku, która długo nie jest konieczna. (I przyznany limit ścieżki jest możliwy do obejścia).
barlop
1
@barlop: Typowy system plików nie dba o długość ścieżek. Na przykład. /mnt/home/foo/bar.txt może być pełną ścieżką, ale sam system plików zawiera tylko foo katalog i a bar.txt plik. The /mnt/home częścią jest system operacyjny wierzchowce system plików. Cała ścieżka jest tworzona przez dynamiczne łączenie tych części wewnątrz uruchomionego programu.
MSalters
2

Niewiele jest wartości, aby zezwolić na więcej znaków, więc żaden z nowszych systemów plików nie chciał go wdrożyć - miałby odpowiedni rozmiar i wydajność.

Zazwyczaj wszelkie wymagania dotyczące dłuższych nazw plików pochodzą z niewłaściwego projektu i mogą zostać przekierowane do baz danych lub zawartości pliku.

Aganju
źródło
„Żaden z nowszych systemów plików” nie jest prawidłowy, Reiser używa 4K. Ale i tak był to nowy niekompatybilny format.
MSalters