합계(Unix)

sum (Unix)
원저작자켄 톰슨
개발자AT&T 벨 연구소
초기 릴리즈1971년 11월 3일, 50년 전(1971-11-03)
운영 체제Unix, Unix 라이크, Inferno
플랫폼크로스 플랫폼
유형명령어
면허증.코어 유틸리티: GPLv3+

sum은 일부 Unix 및 Unix 유사 운영 체제에서 사용할 수 있는 레거시 유틸리티입니다.이 유틸리티는 [1]인수 파일의 16비트체크섬과 디스크에서 실행되는 블록 를 출력합니다.2개의 다른 체크섬알고리즘이 사용되고 있습니다.POSIX는 cksum을 위해 포기했습니다.

개요

합산 프로그램은 일반적으로 역사적 관심사에만 유용하다.POSIX의 일부가 아닙니다.일반적으로 BSD 체크섬과 SYSV 체크섬의 2가지 알고리즘을 사용할 수 있습니다.둘 다 [2]cksum에서 사용되는 이미 약한 32비트 CRC보다 약합니다.

FreeBSD 및 GNU 구현의 기본 알고리즘은 BSD 체크섬입니다.두 알고리즘 간의 전환은 명령줄 [2][1]옵션을 통해 수행됩니다.

일반적으로 사용되는 두 가지 알고리즘은 다음과 같습니다.

BSD 합계(GNU 합계에서는 -r, FreeB에서는 -o1)SD cksum:

  • 체크섬을 0으로 초기화합니다.
  • 입력 스트림의 각 바이트에 대해
    • 체크섬에서 16비트 오른쪽 회전을 1비트씩 수행합니다.
    • 체크섬에 바이트를 추가하고 결과에 modulo 2 ^ 16을 적용하여 16비트 이내로 유지합니다.
  • 그 결과 16비트 체크섬이 생성됩니다.

위의 알고리즘은 7번째 에디션 UNIX에서 사용되었습니다.

시스템 V의 합계, GNU의 -s와 FreeB의 -o2SD cksum:

  • checksum0 = 입력 스트림 모듈로 2 ^ 32의 모든 바이트 합계
  • checksum1 = checksum0 modulo 2 ^ 16 + checksum0 / 2 ^ 16
  • 체크섬 = checksum1 modulo 2 ^16 + checksum1 / 2 ^16
  • 그 결과는 16비트 체크 섬은 초기 32비트 평야 바이트 총액에서 계산했다.

구문

금액이 유틸리티는 명령줄에서 다음 구문에 따라:호출됩니다.

합계 [OPTION]...[FILE]... 

가능한 옵션 파라미터는 다음과 같습니다.

  • -r
    • BSD 체크섬알고리즘 사용, 1K 블록 사용(deats -s)
  • -s, --sysv
    • SYSV 체크섬알고리즘 사용, 512바이트 블록 사용
  • --도움말
    • 도움말 화면을 표시하고 종료합니다.
  • --버전
    • 출력 버전 정보 및 종료

file 파라미터가 지정되지 않은 경우 또는 FILE이 -일 경우 표준 입력이 입력 파일로 사용됩니다.

사용 예:

$ echo Hello > test file $sum test file 36978 1

GNU 합계에서의 -s 사용 예:

$ echo Hello > test file $sum - s test file 510 1 test file

줄 바꿈을 피하기 위해 표준 입력 -r 및 printf를 사용하는 예:

$printf 헬로섬 -r 08401 1

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b sum(1) - GNU coreutils 매뉴얼 페이지
  2. ^ a b sum(1)FreeBSD 일반 명령어 매뉴얼

외부 링크

  • Single UNIX ® Specification, Version 2, 1997, opengroup.org의 sum – 체크섬 알고리즘을 지정하지 않음
  • C.4 The Open Group Base Specifications 제7호, 2018년판 opengroup.org의 유틸리티는 합계가 제거되었음을 나타냅니다.
  • sum(1)버전 7 Unix 프로그래머 매뉴얼
  • sum(1) – GNU coreutils 매뉴얼 페이지
  • sum(1)FreeBSD General Commands Manual (SD 일반 명령 매뉴얼)– 옵션 -o1 및 -o2에서 cksum까지의 합계 알고리즘 설명
  • sum(1)Linux 사용자 매뉴얼– 사용자 명령어
  • sum(1)Solaris 10 사용자 명령어 레퍼런스 매뉴얼
  • Unix Tree, tuhs.org – 이전 버전의 Unix 소스 코드