Không gian trao đổi có một hệ thống tập tin?


26

Để làm việc với các thiết bị lưu trữ, chúng ta cần một hệ thống tệp, còn không gian hoán đổi thì sao?

Nếu nó không có hệ thống tập tin thì hệ điều hành hoạt động như thế nào? Dữ liệu (từ RAM) được ghi vào đĩa như thế nào và làm thế nào để truy cập lại?


6
Hoán đổi không cần một hệ thống tập tin. Nó không lưu trữ các tập tin.
Pilot6

3
Nó lưu trữ các trang RAM.
Pilot6

2
Bạn có thể vui lòng giải thích chính xác những gì bạn đang cố gắng làm? Bạn đang nói rằng tất cả những gì bạn cần là một nơi để lưu trữ dữ liệu tạm thời?
Jake

6
"Tôi muốn biết làm thế nào có thể viết trong một không gian lưu trữ mà không có hệ thống tập tin?" - Bạn chỉ cần viết vào không gian lưu trữ. Hãy nghĩ về điều này: nếu một hệ thống tệp được yêu cầu ghi vào không gian lưu trữ, thì hệ thống tệp không thể tồn tại, vì hệ thống tệp cần có khả năng ghi vào lưu trữ quyết định mà không cần hệ thống tệp. "theo câu trả lời của bạn, tôi có thể nói RAM có một hệ thống tệp nhỏ và tệp hoán đổi sử dụng hệ thống tệp này để làm việc với các trang không?" - Không. Một hệ thống tệp để lưu trữ tệp. Hoán đổi không lưu trữ tập tin.
Jörg W Mittag

4
Việc ghi một tệp đơn (ala tar và dd) vào bộ lưu trữ không được định dạng là khá phổ biến và thậm chí phổ biến hơn là có các hệ thống tệp lồng nhau (đĩa ảo, .iso, squashfs). Các trò chơi trên đĩa mềm đôi khi sẽ ghi điểm cao đến một vị trí (cố định) tuyệt đối và một số ứng dụng dựa trên Xi lanh, Đầu, Ngành. Các phân vùng hoán đổi vẫn là các phân vùng, nhưng không, không có hệ thống tập tin, hay "ánh xạ" nào ngoài offset và chạy?
mckenzm

Câu trả lời:


28

Hoán đổi về mặt kỹ thuật không có hệ thống tập tin cụ thể. Toàn bộ mục đích của hệ thống tập tin là cấu trúc dữ liệu theo cách nhất định. Phân vùng hoán đổi nói riêng không có cấu trúc, nhưng nó có một tiêu đề cụ thể, được tạo bởi mkswapchương trình. Cụ thể, cái này (lấy từ kernel.org ):

 25 union swap_header {
 26     struct 
 27     {
 28         char reserved[PAGE_SIZE - 10];
 29         char magic[10];
 30     } magic;
 31     struct 
 32     {
 33         char     bootbits[1024];
 34         unsigned int version;
 35         unsigned int last_page;
 36         unsigned int nr_badpages;
 37         unsigned int padding[125];
 38         unsigned int badpages[1];
 39     } info;
 40 };

Mỗi phân vùng có mã cụ thể được liên kết với nó và theo TLDP :

mã cho ext2 là 0x83 và trao đổi linux là 0x82

Khi tập tin hoán đổi có liên quan, đó là một câu chuyện hơi khác. Nhân phải tôn trọng thực tế là hệ thống tập tin có thể có cách cấu trúc dữ liệu riêng. Từ cùng một liên kết kernel.org:

Hãy nhớ rằng các hệ thống tệp có thể có phương pháp lưu trữ tệp và đĩa riêng và nó không đơn giản như phân vùng trao đổi nơi thông tin có thể được ghi trực tiếp vào đĩa. Nếu bộ lưu trữ dự phòng là một phân vùng, thì chỉ có một khối có kích thước trang yêu cầu IO và vì không có hệ thống tệp nào liên quan, bmap () là không cần thiết.

Tóm lại, về mặt kỹ thuật, bạn có thể gọi không gian hoán đổi là một hệ thống tệp thuộc loại riêng của mình, nhưng nó không hoàn toàn có thể so sánh với các hệ thống tệp như NTFS hoặc ext4

Bạn cũng đã hỏi

Tôi muốn biết làm thế nào có thể viết trong một không gian lưu trữ mà không cần hệ thống tập tin

Nói đúng ra, không cần cấu trúc RAM. Tuy nhiên, các phần của RAM có thể được cấu trúc như các tmpfs trong các hệ điều hành giống như Unix. Ngoài ra còn có ramfs và initramfs, đó là những gì được tải trong quá trình khởi động. Nhưng dữ liệu RAM về mặt kỹ thuật được cho là chỉ là 1 và 0 thô, vì vậy dù sao cũng không cần phải cấu trúc chúng.


1
Tốt chỉ ra rằng, mặc dù không có một hệ thống tập tin, nhưng nó có một cấu trúc cơ bản cho phép nhận ra nó là gì. Ngăn chặn ghi đè phân vùng khác do nhầm lẫn.
quang phổ

Tôi nghĩ chúng có nghĩa là không gian đĩa ở đây "Tôi muốn biết làm thế nào có thể ghi vào một không gian lưu trữ mà không có hệ thống tệp" thay vì RAM có thể?
Anwar

@ Anwar, Có nhưng tôi hiểu rồi
Sinoosh 6/11/2016

tar có thể được sử dụng để ghi nhiều tệp dưới dạng luồng RAW vào một thiết bị không được định dạng, chẳng hạn như ổ đĩa flash. Nếu không, một tập tin duy nhất có thể được viết (nhưng không được đặt tên) và bạn sẽ cần phải đảo ngược quá trình để viết lại. Điều này thường được thực hiện với ISO cho phương tiện quang học, nhưng kết quả là một hệ thống tập tin tại chỗ.
mckenzm

1
Đã đồng ý. Về cơ bản nó có thể được mô tả như là một khu vực được ánh xạ sau đó. Nó không phải là một phần mở rộng của bộ nhớ thực, mà là một không gian làm việc để lưu trữ các khối có thể được trả lại theo yêu cầu.
mckenzm

14

Không gian hoán đổi được nhân sử dụng để lưu trữ tạm thời các trang của bộ nhớ hệ thống (RAM) khi nó đầy. Nhân sử dụng các bảng bên trong của chính nó để "nhớ" chính xác vị trí trong đĩa trao đổi mà nó đặt trang. Kết quả là, các đĩa trao đổi không chứa một hệ thống tập tin thích hợp và thường chỉ là các phân vùng trống trên đĩa.

Những gì bạn có thể quan tâm, là một đĩa RAM, là một hệ thống tệp nhỏ được lưu trữ trong bộ nhớ của hệ thống. Nếu cần thêm bộ nhớ, kernel sẽ đẩy nó (và các nội dung khác) ra không gian trao đổi. Xem ở đây để được hướng dẫn thiết lập một.


13

Không gian hoán đổi được chia thành các khối có cùng kích thước với các trang bộ nhớ (thường là 4kB) và một bản ghi ánh xạ các trang này vào bộ nhớ ứng dụng tạo thành một phần mở rộng của hệ thống con bộ nhớ ảo trong CPU và HĐH.

Đó là, đã có một hệ thống ánh xạ giữa các không gian bộ nhớ ứng dụng và địa chỉ bộ nhớ vật lý thực tế. Một ứng dụng được cung cấp một không gian địa chỉ bộ nhớ lớn mà chúng có thể sử dụng nhiều hoặc ít nhất có thể. Khi nhiều không gian địa chỉ bộ nhớ này thực sự được sử dụng, bộ nhớ vật lý được ánh xạ tới ứng dụng đó để làm phương tiện lưu trữ.

Khi bộ nhớ được hoán đổi vào đĩa, một hệ thống liên quan sẽ duy trì ánh xạ không gian bộ nhớ của ứng dụng vào khối trên đĩa.

Bản đồ bảng ánh xạ không được lưu trữ trên đĩa và dữ liệu còn lại trên đĩa là vô dụng sau khi khởi động lại.

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.