Tại sao các hệ điều hành có giới hạn kích thước tập tin?


10

Điều gì giới hạn một tệp có kích thước tối đa tùy thuộc vào Hệ điều hành?

Từ trang này :

văn bản thay thế

Tôi không hiểu chính xác điều này. Nếu bạn có không gian lưu trữ, những gì khác có thể là hạn chế? Bạn sẽ có thể lưu trữ nhiều dữ liệu như bạn muốn theo cách bạn muốn (ngay cả trong một tệp) trừ khi bạn hết dung lượng lưu trữ.

Câu trả lời:


19

Các hệ thống tệp cần lưu trữ kích thước tệp (theo byte hoặc trong một số đơn vị phụ thuộc hệ thống tệp như các cung hoặc khối). Số lượng bit được phân bổ cho kích thước thường được cố định trong đá khi hệ thống tập tin được thiết kế.

Nếu bạn cho phép quá nhiều bit cho kích thước, bạn làm cho mọi tệp có dung lượng lớn hơn một chút và mọi thao tác chậm hơn một chút. Mặt khác, nếu bạn cho phép quá ít bit cho kích thước, thì một ngày nào đó mọi người sẽ phàn nàn vì họ đang cố lưu trữ tệp 20EB và hệ thống tệp crap của bạn sẽ không cho phép họ.

Tại thời điểm các hệ thống tập tin mà bạn đề cập được thiết kế, có một đĩa đủ lớn để chạy vào giới hạn nghe có vẻ giống như khoa học viễn tưởng. (Ngoại trừ FAT32, nhưng công ty đã quảng cáo nó dự định nó là một biện pháp trung gian trước khi mọi người chấp nhận NTFS mới sáng bóng của họ, cộng với họ không bao giờ rất giỏi trong việc dự đoán các yêu cầu ngày càng tăng.)

Một điều nữa là cho đến cuối thế kỷ trước, hầu hết phần cứng của người tiêu dùng (và thậm chí cả máy chủ) chỉ có thể điều chỉnh tính toán nhanh với các giá trị 32 bit và các hệ điều hành có xu hướng sử dụng giá trị 32 bit cho hầu hết mọi thứ, bao gồm cả kích thước tệp. 32 bit có nghĩa là 4GB, vì vậy các hệ điều hành có xu hướng bị giới hạn ở các tệp 4GB bất kể hệ thống tệp, thường là 2GB vì chúng sử dụng các số nguyên có chữ ký. Bất kỳ hệ điều hành máy tính để bàn hoặc máy chủ nghiêm trọng nào hiện nay đều sử dụng 64 bit cho kích thước tệp và độ lệch, đặt giới hạn ở mức 8EB.


2
+1. Làm rõ cho người không quen biết - EB như exabyte, như trong một triệu terabyte.
Shinrai

8

Các cấu trúc dữ liệu trên đĩa thường là giới hạn. Nghiên cứu cách các hệ điều hành này định dạng đĩa của chúng và cách chúng theo dõi các phần của tệp trên đĩa và bạn sẽ hiểu tại sao chúng có những hạn chế này. Hệ thống tệp FAT được ghi lại khá tốt trên mạng ( ví dụ như Wikipedia ) và bạn có thể thấy rằng sự lựa chọn kích thước số nguyên của chúng cho một số trường cấu trúc đĩa kết thúc giới hạn kích thước tổng thể của tệp mà bạn có thể lưu trữ với định dạng đĩa này.


1

Hạn chế đơn giản là do khi thông số kỹ thuật của các hệ thống lưu trữ được viết, người ta không bao giờ nghĩ rằng ổ cứng sẽ lớn hơn nhiều .... hoặc các hạn chế kỹ thuật khác trong khi thiết kế các thông số kỹ thuật.

Tôi nghĩ rằng ngày nay, những hạn chế trong các hệ thống nộp đơn mới thường đi theo hướng sử dụng dự kiến.

... Sẽ khó có đội ngũ kỹ thuật nào phát hành một hệ thống lưu trữ và nói rằng nó hỗ trợ 500 ổ cứng Petabyte mà không bao giờ thực hiện thử nghiệm trên nó.

Máy tính xách tay đầu tiên của tôi là một chiếc 286 với ổ cứng 40 MB ... Tôi sẽ không bao giờ tưởng tượng được là mình cần (hoặc đạt đến giới hạn) của FAT vào thời điểm đó!

Tôi nghĩ rằng giới hạn NTFS hiện tại là khoảng 16TB cho mỗi ổ đĩa, 2TB mỗi tệp ... khá thẳng thắn, đó là (và nên) tốt trong một thời gian - mọi thứ có khả năng (hoặc cần) của việc ghi các tệp lớn hơn 2TB thường có khả năng chia tệp và / hoặc các tính năng quản trị tương tự (ví dụ: máy chủ SQL).


1

Câu trả lời đơn giản: bạn cần có khả năng đọc tệp, vì vậy bạn cần có khả năng giải quyết tệp. Truy cập này sẽ thông qua các cơ sở dữ liệu có giới hạn. Bạn sẽ bị mắc kẹt với mẫu số chung thấp nhất của; giới hạn vật lý (đĩa, thẻ SD, v.v.), giới hạn hệ thống tệp và giới hạn hệ điều hành.


Bạn có thể giải quyết một tệp theo nhiều giai đoạn, ví dụ như phân đoạn, ngân hàng bộ nhớ, khối, bù byte, v.v.
yyny

0

Biết kích thước của mỗi tệp chỉ là một sự đơn giản hóa mà chúng ta đã quen. Nó không phải như vậy và không phải luôn luôn như vậy.

Các máy tính lớn cũ không bao giờ mới làm thế nào lớn một tập tin băng cho đến khi nó đọc đến cuối của nó (và thậm chí sau đó nó có thể không theo dõi kích thước). Ngay cả các tệp đĩa thường được truy cập tuần tự và sẽ chỉ phát triển khi chúng được mở rộng. Kích thước của chúng (tính bằng byte) không được ghi lại và nói chung, không thể được tính mà không đọc chúng đầy đủ do kích thước cung thay đổi và các tính năng kỳ lạ khác.

Sẽ không khó để thiết kế một hệ thống tệp không theo dõi kích thước tệp và cho phép chúng phát triển không giới hạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.