저장 장치를 사용하려면 파일 시스템이 필요합니다. 스왑 공간은 어떻습니까?
파일 시스템이없는 경우 운영 체제는 어떻게 작동합니까? RAM의 데이터는 어떻게 디스크에 기록되며 어떻게 다시 액세스됩니까?
저장 장치를 사용하려면 파일 시스템이 필요합니다. 스왑 공간은 어떻습니까?
파일 시스템이없는 경우 운영 체제는 어떻게 작동합니까? RAM의 데이터는 어떻게 디스크에 기록되며 어떻게 다시 액세스됩니까?
답변:
기술적으로 스왑에는 특정 파일 시스템이 없습니다. 파일 시스템의 전체 목적은 데이터를 특정 방식으로 구성하는 것입니다. 스왑 파티션은 구조가 없지만 mkswap
프로그램에 의해 생성되는 특정 헤더를 가지고 있습니다. 특히, 이것은 ( 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 };
각 파티션에는 관련 코드가 있으며 TLDP 에 따라 다릅니다 .
ext2의 코드는 0x83이고 리눅스 스왑은 0x82입니다.
때 스왑 파일이 포함 된, 즉 약간 다른 이야기입니다. 커널은 파일 시스템이 자체적으로 데이터를 구조화 할 수 있다는 사실을 존중해야합니다. 동일한 kernel.org 링크에서 :
파일 시스템에는 파일과 디스크를 저장하는 고유 한 방법이있을 수 있으며 정보가 디스크에 직접 기록 될 수있는 스왑 파티션만큼 간단하지는 않습니다. 백업 스토리지가 파티션 인 경우, 하나의 페이지 크기 블록에만 IO가 필요하며 파일 시스템이 없으므로 bmap ()이 필요하지 않습니다.
결론적으로 기술적으로 스왑 공간을 자체 유형의 파일 시스템이라고 할 수 있지만 NTFS 또는 ext4와 같은 파일 시스템과 비교할 수는 없습니다.
당신은 또한 물었다
파일 시스템없이 저장 공간에 쓸 수있는 방법을 알고 싶습니다
엄밀히 말하면, RAM을 구성 할 필요가 없습니다. 그러나 RAM의 일부는 유닉스 계열 OS에서 tmpfs 로 구성 될 수 있습니다 . 부팅 프로세스 중에로드되는 ramfs 및 initramfs 도 있습니다 . 그러나 RAM 데이터는 기술적으로 원시 1과 0으로 간주되므로 어쨌든 구조화 할 필요가 없습니다.
스왑 공간은 메모리 페이지와 동일한 크기 (보통 4kB)로 분할되며,이 페이지를 응용 프로그램 메모리에 매핑 한 기록은 CPU 및 OS에서 가상 메모리 하위 시스템의 확장을 형성합니다.
즉, 응용 프로그램 메모리 공간과 실제 실제 메모리 주소간에 매핑 시스템이 이미 있습니다. 응용 프로그램에는 가능한 한 많이 또는 적게 사용할 수있는 큰 메모리 주소 공간이 제공됩니다. 이 메모리 주소 공간이 실제로 사용되면 실제 메모리는 해당 응용 프로그램에 매핑되어 저장 매체로 사용됩니다.
메모리가 디스크로 교체 될 때 관련 시스템은 응용 프로그램의 메모리 공간을 디스크의 블록에 매핑하는 것을 유지합니다.
매핑 테이블 자체는 디스크에 저장되지 않으며 디스크에 남아있는 데이터는 재부팅 후 쓸모가 없습니다.