Pourquoi les systèmes d'exploitation ont-ils des limites de taille de fichier?


10

Qu'est-ce qui limite la taille maximale d'un fichier en fonction du système d'exploitation?

De cette page :

texte alternatif

Je ne comprends pas exactement cela. Si vous avez l'espace de stockage, quelle peut être la limitation? Vous devez pouvoir stocker autant de données que vous le souhaitez (même dans un seul fichier), sauf si vous manquez d'espace de stockage.

Réponses:


19

Les systèmes de fichiers doivent stocker la taille des fichiers (soit en octets, soit dans certaines unités dépendant du système de fichiers telles que des secteurs ou des blocs). Le nombre de bits alloués à la taille est généralement fixé dans la pierre lorsque le système de fichiers est conçu.

Si vous autorisez trop de bits pour la taille, vous faites en sorte que chaque fichier prenne un peu plus de place et que chaque opération soit un peu plus lente. D'un autre côté, si vous autorisez trop peu de bits pour la taille, alors un jour, les gens se plaindront parce qu'ils essaient de stocker un fichier 20EB et votre système de fichiers de merde ne les autorisera pas.

Au moment où les systèmes de fichiers que vous mentionnez ont été conçus, le fait d'avoir un disque suffisamment gros pour atteindre la limite ressemblait à de la science-fiction. (Sauf FAT32, mais la société qui l'a promu l'a envisagé comme une mesure intermédiaire avant que tout le monde n'adopte son nouveau NTFS brillant, et ils n'ont jamais été très bons pour anticiper les besoins croissants.)

Une autre chose est que jusqu'à la fin du siècle dernier, la plupart du matériel grand public (et même serveur) ne pouvait accueillir que des calculs rapides avec des valeurs 32 bits, et les systèmes d'exploitation avaient tendance à utiliser des valeurs 32 bits pour la plupart des choses, y compris la taille des fichiers. 32 bits signifie 4 Go, donc les systèmes d'exploitation ont tendance à être limités à 4 Go de fichiers quel que soit le système de fichiers, souvent même 2 Go car ils utilisent des entiers signés. Tout système d'exploitation ou serveur sérieux utilise de nos jours 64 bits pour les tailles de fichier et les décalages, ce qui place la limite à 8EB.


2
+1. Clarification aux non-initiés - EB comme en exaoctets, comme en million de téraoctets.
Shinrai

8

Les structures de données sur disque sont généralement la limite. Recherchez comment ces systèmes d'exploitation formatent leurs disques et comment ils suivent les portions de fichiers sur le disque, et vous comprendrez pourquoi ils ont ces limitations. Le système de fichiers FAT est assez bien documenté en ligne (voir Wikipedia , par exemple) et vous pouvez voir que leur choix de tailles entières pour certains champs de structure de disque finit par limiter la taille globale du fichier que vous pouvez stocker avec ce format de disque.


1

La limitation est simplement due au fait que lorsque les spécifications des systèmes de classement ont été écrites, on n'a jamais pensé que les disques durs seraient beaucoup plus gros ... ou d'autres limitations techniques lors de la conception des spécifications.

Je pense que de nos jours, les limitations des nouveaux systèmes de classement vont généralement vers l'utilisation prévue.

... Il serait difficile pour une équipe technique de publier un système de classement et de dire qu'il prend en charge les disques durs de 500 pétaoctets sans jamais faire de test dessus.

Mon premier ordinateur portable était un 286 avec un disque dur de 40 Mo ... Je n'imaginerais jamais avoir besoin (ou atteindre la limite) de FAT à l'époque!

Je pense que la limitation NTFS actuelle est d'environ 16 To par volume, 2 To par fichier ... très franchement, c'est (et devrait être) bon pendant un certain temps - tout ce qui est capable (ou nécessaire) d'écrire des fichiers de plus de 2 To a généralement la capacité de diviser des fichiers et / ou des fonctionnalités administratives similaires (par exemple, serveur SQL).


1

Réponse simple: vous devez être en mesure de lire le fichier, vous devez donc être en mesure d'adresser le fichier. Cet accès se fera par des infrastructures de données qui ont des limites. Vous serez coincé avec le plus petit dénominateur commun de; limites physiques (disque, carte SD, etc.), limites du système de fichiers et limites du système d'exploitation.


Vous pouvez adresser un fichier en plusieurs phases, par exemple segment, banque de mémoire, bloc, décalage d'octets, etc.
yyny

0

Connaître la taille de chaque fichier n'est qu'une simplification à laquelle nous nous sommes habitués. Il ne doit pas en être ainsi et cela n'a pas toujours été le cas.

Les anciens mainframes ne connaissaient jamais la taille d'un fichier de bande jusqu'à ce qu'il ait lu jusqu'à la fin (et même alors, il n'a peut-être pas gardé une trace de la taille). Même les fichiers sur disque étaient souvent accédés séquentiellement et ne faisaient qu'augmenter au fur et à mesure de leur extension. Leurs tailles (en octets) n'ont pas été enregistrées et ne pouvaient pas, en général, être calculées sans les lire entièrement en raison des tailles de secteur variables et d'autres caractéristiques impaires.

Il ne serait pas difficile de concevoir un système de fichiers qui ne tiendrait pas compte de la taille des fichiers et leur permettrait de croître sans limites.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.