‘proc’및 ‘sys’폴더의 크기가 100TB를 초과하는 이유는 무엇입니까? [닫은] 논쟁, 여론 조사 또는 광범위한 토론을 요구할

내가 아는 사람은 다음과 같이 진술했습니다.

“시스템에 140.7TB의 파일이 있습니다”

“어떻게?” 응답은 다음과 같습니다.

“가상 RAM, 우분투에는 단점이 있습니다. /proc/core파일”

나는 리눅스에 대해 잘 모르고 누군가 위의 내용을 설명 할 수 있을지 궁금했다. 매우 많은 수의 하드 디스크를 가지고 있지 않으면 140.7TB의 가치가있는 사람이있을 수 없습니다.



답변

이 위치는 가상 파일 시스템 에 속합니다 . 폴더, 파일, 내용 등 모든 항목은 액세스하려고 할 때마다 즉시 구성됩니다. 실제 크기는 파일을 읽은 후에야 알 수 없습니다 (다른 독자가 다른 내용을 볼 수 있으므로 캐시 할 수없는 경우가 많습니다).

파일 시스템 자체는 전혀 아무것도 차지하지 않습니다. 그들은 단지 커널에 대한 견해입니다.

때로는 크기 알려져 있지만 크기 나타내는 데이터 는 방대합니다. 예를 들어, core파일은 프로세스의 가상 주소 공간을 나타냅니다.이 주소 공간은 CPU가 주소를 지정할 수있는 최대 크기입니다. 실제 RAM / 스왑 크기에 제한이 없습니다. 따라서 파일은 “64 비트”시스템 에서 약 2 48 ~ 2 64 바이트입니다.

따라서 가상 파일 시스템에서 디스크 사용 유틸리티를 실행하는 경우, 특히 실제 디스크 사용이 아닌 “명확한”(희소 한) 크기로 계산되는 경우 실제로 이상한 숫자가 표시되는 것이 일반적입니다.


답변

아니요, 그 이유가 아닙니다. 스파 스 파일이 나타납니다 파일 헤더 목록이 있지만,이 때문에 특정 크기를 포함 훨씬 적은 데이터를.


답변

한 가지 방법은 그들은 압축 파일의 큰 숫자를 가지고 있고이 될 것이다 크기 계산되어있을 압축을 .

일부 파일은 다른 파일 (예 : 텍스트 파일)보다 압축률이 높고 다른 파일은 데이터를 잃지 않고 더 이상 압축 할 수 없으므로 (예 : jpg, mp3) 파일 형식에 따라 달라 지지만 이론적으로 는 친구가 인용 한 숫자를 제공 할 수 있습니다.