Perché i sistemi operativi hanno limiti di dimensione del file?


10

Cosa limita un file ad avere una dimensione massima a seconda del sistema operativo?

Da questa pagina :

testo alternativo

Non lo capisco esattamente. Se hai lo spazio di archiviazione, cos'altro può essere la limitazione? Dovresti essere in grado di archiviare tutti i dati che desideri nel modo desiderato (anche in un singolo file) a meno che tu non esaurisca lo spazio di archiviazione.

Risposte:


19

I filesystem devono memorizzare le dimensioni dei file (in byte o in alcune unità dipendenti dal filesystem come settori o blocchi). Il numero di bit allocati alla dimensione è di solito fissato in pietra quando viene progettato il filesystem.

Se si consentono troppi bit per la dimensione, si rende ogni file occupare un po 'più spazio e ogni operazione un po' più lenta. D'altra parte, se si consentono troppi bit per la dimensione, un giorno le persone si lamenteranno perché stanno cercando di archiviare un file da 20EB e il tuo filesystem di merda non glielo permetterà.

All'epoca i filesystem che menzionavi erano progettati, con un disco abbastanza grande da raggiungere il limite sembrava fantascienza. (Tranne FAT32, ma la società che lo ha promosso lo intendeva come una misura intermedia prima che tutti adottassero il loro nuovo brillante NTFS, inoltre non erano mai molto bravi ad anticipare i crescenti requisiti.)

Un'altra cosa è che fino alla fine del secolo scorso, la maggior parte dell'hardware dei consumatori (e persino dei server) poteva accettare solo calcoli veloci con valori a 32 bit, e i sistemi operativi tendevano a usare valori a 32 bit per la maggior parte delle cose, comprese le dimensioni dei file. 32 bit significa 4 GB, quindi i sistemi operativi tendevano ad essere limitati a file da 4 GB indipendentemente dal file system, spesso anche 2 GB perché utilizzavano numeri interi con segno. Al giorno d'oggi qualsiasi serio sistema operativo desktop o server utilizza 64 bit per dimensioni e offset dei file, il che pone il limite a 8EB.


2
+1. Chiarimento ai non iniziati - EB come in exabyte, come in un milione di terabyte.
Shinrai,

8

Le strutture di dati su disco sono generalmente il limite. Scopri come questi sistemi operativi formattano i loro dischi e come tengono traccia delle porzioni di file sul disco e capirai perché hanno queste limitazioni. Il file system FAT è abbastanza ben documentato online (vedi Wikipedia , ad esempio) e puoi vedere che la loro scelta di dimensioni intere per alcuni campi della struttura del disco finisce per limitare la dimensione complessiva del file che puoi archiviare con questo formato del disco.


1

La limitazione è semplicemente dovuta al fatto che quando le specifiche dei sistemi di archiviazione sono state scritte, non si è mai pensato che i dischi rigidi sarebbero stati molto più grandi .... o altre limitazioni tecniche durante la progettazione delle specifiche.

Penso che al giorno d'oggi, le limitazioni nei nuovi sistemi di archiviazione vadano tipicamente verso l'uso previsto.

... Sarebbe difficile per qualsiasi team tecnico rilasciare un sistema di archiviazione e dire che supporta 500 dischi rigidi Petabyte senza mai eseguire i test su di esso.

Il mio primo laptop era un 286 con un disco rigido da 40 MB ... Non avrei mai immaginato di aver mai bisogno (o di aver raggiunto il limite) di FAT al momento!

Penso che l'attuale limitazione NTFS sia di circa 16 TB per volume, 2 TB per file ... francamente, questo è (e dovrebbe essere) buono per un po 'di tempo - qualsiasi cosa in grado (o necessitante) di scrivere file più grandi di 2 TB di solito ha la capacità di file divisi e / o funzioni amministrative simili (ad es. server SQL).


1

Risposta semplice: devi essere in grado di leggere il file, quindi devi essere in grado di indirizzare il file. Questo accesso avverrà attraverso strutture dati che hanno limiti. Sarai bloccato con il minimo comune denominatore di; limiti fisici (disco, scheda SD, ecc.), limiti del file system e limiti del sistema operativo.


È possibile indirizzare un file in più fasi, ad esempio segmento, banco di memoria, blocco, offset byte, ecc.
yyny

0

Conoscere le dimensioni di ogni file è solo una semplificazione a cui ci siamo abituati. Non deve essere così e non è sempre stato così.

I vecchi mainframe non sono mai stati nuovi di quanto fosse grande un file su nastro fino a quando non fosse stato letto fino alla fine (e anche allora potrebbe non aver tenuto traccia delle dimensioni). Anche i file su disco erano spesso accessibili in sequenza e crescevano man mano che venivano estesi. Le loro dimensioni (in byte) non sono state registrate e, in generale, non possono essere calcolate senza leggerle completamente a causa delle dimensioni variabili del settore e di altre caratteristiche dispari.

Non sarebbe difficile progettare un file system che non tenesse traccia delle dimensioni del file e permettesse loro di crescere senza limiti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.