time 및 ulimit 명령에 사용되는 킬로바이트는 1000(SI) 바이트입니까 아니면 1024(기존 학교) 바이트입니까?

time 및 ulimit 명령에 사용되는 킬로바이트는 1000(SI) 바이트입니까 아니면 1024(기존 학교) 바이트입니까?

에서 man time:

M      Maximum resident set size of the process during its lifetime, in Kilobytes.

에서 ulimit -a:

max memory size         (kbytes, -m) unlimited

하지만"킬로바이트"는 1000바이트 또는 1024바이트를 의미할 수 있습니다.. 내 생각엔 여기가 1024라운드인 것 같은데, 확실히 하고 싶다. 권위 있는 참고자료를 주시면 감사하겠습니다.

제 질문을 다음과 같이 바꿔보세요.IEC 권장 사항을 준수하거나 키비바이트 의미로 "kilobyte/kbyte"를 사용 합니다 time.ulimit.

답변1

man dir.1:

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

info ls:

‘-h’
‘--human-readable’
Append a size letter to each size, such as ‘M’ for mebibytes. Powers of 1024 are used, not 1000; ‘M’ stands for 1,048,576 bytes. This option is equivalent to --block-size=human-readable. Use the --si option if you prefer powers of 1000.

의 출력은 ls소스에 추가로 백업됩니다.여기그리고여기.

단일 문자가 1024 측정값인 것처럼 보입니다. 둘숫자문자 약어는 1000 SI 단위입니다.

bash에 내장되어 있으므로 ulimit해당 소스로 이동하는 것이 최종 소스입니다. 나는 종종 엉뚱하지만, 당신은 그것을 볼 수 있습니다여기그리고여기:

Values are in 1024-byte increments, except for -t, which is in seconds,
-p, which is in increments of 512 bytes, and -u, which is an unscaled
number of processes.

귀하의 버전은 아마도 bash-5.2-rc3보다 오래되었을 것입니다. 이는 괜찮습니다. 해당 항목의 크기는 4.0.38이 출시된 이후 적어도 지난 10년 동안 변경되지 않았습니다. 당신은 그것을 볼 수 있습니다여기그리고여기.

편집: 매뉴얼 페이지에서 units.7이에 대해 자세히 설명하지만,단위 정책.

답변2

아니요, 킬로바이트는 1000입니다. 우리는 다음을 따릅니다.국제 단위계따라서 접두사 "kilo"는 1024가 아닌 1000을 나타냅니다. 다른 참조는 잘못되었습니다.

1024는키비바이트(봐라바이나리)

ulimit -a에서:

최대 메모리 크기(KB, -m) 무제한

이것은 버그라고 생각합니다. kilo 또는 kibi를 명시적으로 명시해야 합니다. 킬로바이트가 아님

남자 시간:

M 수명 동안 프로세스의 최대 상주 세트 크기(킬로바이트)입니다.

  • 한도KIBI바이트를 사용합니다.

    limit.rlim_cur = newlimit * 512;
    limit.rlim_max = newlimit * 512;
    
  • GNU 시간소스를 보면 KIBIbytes를 사용합니다. 설명서가 잘못되었습니다.

    다음을 사용합니다:

    tmp = pages / 1024;  /* Smaller first, */
    size = tmp / 1024;    /* then smaller.  */
    

답변3

킬로바이트1000바이트(1000을 의미하는 SI 접두사)입니다. ㅏ키비바이트1024바이트(킬로 바이너리를 의미하는 IEC 접두어)입니다.

이 규칙은 1998년부터 사용되어 왔지만 이러한 접두사의 사용법이 예상만큼 알려지지 않은 것 같습니다.

이는 1TB(테라바이트) 하드 디스크가 0.91TiB(파일 시스템에서 보고된 테비바이트)에 불과한 이유이기도 합니다.

관련된 문제는 저자가 숫자가 주어진다고 명시하는 경우입니다."킬로바이트". 이는 공식적인 선언이 아니기 때문에 둘 중 하나를 의미하는지 알 수 없습니다.

도움말 페이지에 다음과 같이 ulimit나와 있습니다."값은 1024바이트 단위로 증가합니다.", 나는 그들이 실제로 의미한다고 가정하는 것이 안전하다고 믿습니다키비바이트그들이 글을 쓸 때킬로바이트.

반면에, 이후에는 man time값이 다음과 같다고 명시적으로 명시되어 있습니다.킬로바이트, 작성자가 킬로바이트가 무엇인지 알고 있으며 실제로는 1000바이트를 의미한다고 가정해야 합니다.

그러나 어떤 경우에도 작성자가 명시적으로 잘못된 내용을 작성하지 않았다는 것을 100% 확신하려면 소스 코드를 확인하거나 프로그램 작성자에게 문의해야 합니다.

참고자료:

관련 정보