df에서 1024 대신 1000의 거듭제곱을 사용하기로 선택한 이유는 무엇입니까?

df에서 1024 대신 1000의 거듭제곱을 사용하기로 선택한 이유는 무엇입니까?

궁금해서 df -H다음과 같이 df -h말해 man df보세요.

   -h, --human-readable
          print sizes in human readable format (e.g., 1K 234M 2G)

   -H, --si
          likewise, but use powers of 1000 not 1024

그렇다면 1000번째 거듭제곱을 사용하는 이유는 무엇일까요?

어쩌면 부가적인 질문(또는 관련 질문)일 수도 있습니다.

root@host:~# df
Filesystem     1K-blocks      Used Available Use% Mounted on

블록이 K1024인가요, 아니면 1000인가요?

답변1

나는 이것이 스토리지 제조업체가 거의 보편적으로 SI 소수점 접두사를 사용하기 때문이라고 추측합니다.

더 나아가맨페이지(GNU 가정 df):

   SIZE  is  an  integer and optional unit (example: 10M is 10*1024*1024).
   Units are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ...  (pow‐
   ers of 1000).

따라서 1K는 1024입니다.

다른 GNU 도구 dd에서는오류 토론몇 가지 통찰력을 제공합니다.

나는 2004년에 GNU dd에 이 진단을 추가했을 때 이것을 염두에 두고 1000의 거듭제곱으로 약어를 사용했던 것을 기억합니다. 왜냐하면 보조 저장 장치가 일반적으로 측정되는 방식이기 때문입니다. 따라서 많은 유저들이 여기서 1000승을 선호할 것으로 예상됩니다. 전송 속도의 경우 특히 그렇습니다. 실제 산문에서는 "GiB/s"를 거의 볼 수 없습니다.

제출하다이 기능이 1997년에 추가되었다는 사실은 df이유가 아니라 무엇을 말해줄 뿐입니다.

답변2

15~20년 전으로 돌아가면 2 수학의 힘은 다른 답변에서 언급된 메모리 블록과 일치하므로 의미가 있습니다. 그런 다음 관성 요인에 도달하면 "우리는 항상 그렇게 해왔습니다"가 시작됩니다. ^2와 ^10 사이의 작은 차이는 결코 큰 의미가 되지 않습니다. 소프트웨어 공급업체는 편의(및 게으름)를 위해 ^2를 사용하고, 드라이브 제조업체는 상자에 더 많은 수를 생산하기 때문에 ^10을 사용합니다.

드라이브가 수백 기가바이트, 그 다음에는 테라바이트에 도달하면 그 차이가 커져 일반 소비자가 눈에 띄게 됩니다. 30GB 이상의 차이는 "OS 오버헤드"로 간주될 수 없습니다. 프로그래밍의 몇 줄의 코드로 지원 데스크에 대한 수많은 전화를 줄일 수 있습니다. 예, 일반 Mac 사용자는 매일 df를 사용하지 않지만 df(또는 해당 기능/라이브러리/코드 베이스)는 더 높은 수준의 UI 프로그램에서 사용됩니다.

답변3

특정 저장 매체가 1024바이트 할당 단위를 사용하는 경우 파일이 디스크에서 260K를 차지한다는 것은 260개의 저장 단위를 차지한다는 의미입니다. 공간이 260k로 보고되면 253개 저장 단위(259,072, 260으로 반올림)를 의미하는지 254개 저장 단위(260,096바이트)를 의미하는지 확실하지 않습니다. 이러한 모호함을 피하는 것은 2차 단위 사용을 지지하는 좋은 논거입니다.

그러나 하드 드라이브 제조업체가 이진 접두사 대신 십진수를 사용하기 시작하고 개별 저장 장치의 크기가 드라이브 용량에서 차지하는 비율이 줄어들기 때문에 이진 접두사는 더 이상 이전과 동일한 이점을 갖지 못합니다.

관련 정보