Do pracy z urządzeniami pamięci potrzebujemy systemu plików, a co z przestrzenią wymiany?
Jeśli nie ma systemu plików, jak działa system operacyjny? W jaki sposób dane (z pamięci RAM) są zapisywane na dysku i w jaki sposób są ponownie dostępne?
Do pracy z urządzeniami pamięci potrzebujemy systemu plików, a co z przestrzenią wymiany?
Jeśli nie ma systemu plików, jak działa system operacyjny? W jaki sposób dane (z pamięci RAM) są zapisywane na dysku i w jaki sposób są ponownie dostępne?
Odpowiedzi:
Zamień technicznie nie ma określonego systemu plików. Głównym celem systemu plików jest uporządkowanie danych w określony sposób. W szczególności partycja wymiany nie ma struktury, ale ma określony nagłówek, który jest tworzony przez mkswap
program. W szczególności (pochodzi z 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 };
Każda partycja ma określony kod powiązany z nią i zgodnie z TLDP :
kod dla ext2 to 0x83, a linux swap to 0x82
W przypadku pliku wymiany jest to nieco inna historia. Jądro musi szanować fakt, że system plików może mieć własny sposób strukturyzacji danych. Z tego samego linku kernel.org:
Pamiętaj, że systemy plików mogą mieć własną metodę przechowywania plików i dysku i nie jest tak prosta jak partycja wymiany, na której informacje mogą być zapisywane bezpośrednio na dysk. Jeśli kopia zapasowa jest partycją, tylko jeden blok wielkości strony wymaga operacji we / wy, a ponieważ nie ma w tym żadnego systemu plików, bmap () nie jest potrzebny.
Podsumowując, technicznie można nazwać przestrzeń wymiany systemem plików własnego typu, ale nie jest to całkiem porównywalne z systemami plików takimi jak NTFS lub ext4
Ty też zapytałeś
Chcę wiedzieć, jak można pisać w przestrzeni dyskowej bez systemu plików
Ściśle mówiąc, nie ma potrzeby tworzenia struktury pamięci RAM. Jednak część pamięci RAM może mieć strukturę tmpfs w systemach operacyjnych uniksopodobnych. Istnieją także ramfs i initramfs, które ładuje się podczas procesu uruchamiania. Ale technicznie dane z pamięci RAM powinny być tylko surowymi zerami i zerami, więc i tak nie trzeba ich strukturyzować.
Jądro używa przestrzeni wymiany do tymczasowego przechowywania stron pamięci systemowej (RAM), gdy się zapełni. Jądro używa własnych wewnętrznych tabel do „zapamiętywania” dokładnie tego, w którym miejscu dysku wymiany umieścił stronę. W rezultacie dyski wymiany nie zawierają odpowiedniego systemu plików i zwykle są po prostu pustymi partycjami na dysku.
To, co może Cię zainteresować, to dysk RAM, który jest małym systemem plików przechowywanym w pamięci systemu. Jeśli potrzeba więcej pamięci, jądro wypchnie ją (i inną zawartość) na przestrzeń wymiany. Zobacz tutaj instrukcje dotyczące konfiguracji.
Przestrzeń wymiany jest podzielona na bloki tego samego rozmiaru co strony pamięci (zwykle 4kB), a zapis mapowania tych stron na pamięć aplikacji stanowi rozszerzenie podsystemu pamięci wirtualnej w CPU i systemie operacyjnym.
Oznacza to, że istnieje już system mapowania między obszarami pamięci aplikacji a rzeczywistym adresem pamięci fizycznej. Aplikacja ma dużą przestrzeń adresową pamięci, z której może korzystać tyle, ile tylko może. Ponieważ w rzeczywistości wykorzystywana jest większa część tej przestrzeni adresowej pamięci, pamięć fizyczna jest mapowana na tę aplikację, aby służyła jako nośnik pamięci.
Kiedy pamięć jest zamieniana na dysk, powiązany system utrzymuje mapowanie przestrzeni pamięci aplikacji na blok na dysku.
Sama tabela mapowania nie jest przechowywana na dysku, a dane pozostałe na dysku są bezużyteczne po ponownym uruchomieniu.