Summe (UNIX)
Originalautor (en) | Ken Thompson |
---|---|
Entwickler (en) | AT & T Bell Laboratories |
Erstveröffentlichung | 3. November 1971 |
Betriebssystem | Unix, Unix-artig, Inferno |
Plattform | Plattformübergreifend |
Typ | Befehl |
Lizenz | CoreUtils: GPLV3+ |
Summe ist ein Legacy -Dienstprogramm für einige verfügbar Unix und Unix-artig Betriebssysteme. Dieses Dienstprogramm gibt einen 16-Bit aus Überprüfung von jedem Argument Dateisowie die Anzahl der Anzahl von Blöcke Sie nehmen eine Festplatte an.[1] Zwei verschiedene Prüfsummenalgorithmen werden verwendet. Possix aufgegeben Summe zugunsten CKSUM.
Überblick
Das Summe Das Programm ist im Allgemeinen nur für historisches Interesse nützlich. Es ist nicht Teil von POSIX. Zwei Algorithmen sind normalerweise verfügbar: a BSD -Prüfsumme und ein SYSV -Prüfsumme. Beide sind schwächer als der bereits schwache 32-Bit-CRC, der von verwendet wird CKSUM.[2]
Das Ursprünglich Der Algorithmus für FreeBSD- und GNU -Implementierungen ist die BSD -Prüfsumme. Das Umschalten zwischen den beiden Algorithmen erfolgt über Befehlszeilenoptionen.[2][1]
Die beiden häufig verwendeten Algorithmen sind wie folgt.
Die BSD -Summe, -r in GNU -Summe und -O1 in FreeBSD CKSUM:
- Initialisieren Sie die Prüfsumme auf 0
- Für jedes Byte des Eingabestreams
- Führen Sie eine 16-Bit-Bitgewise-Rechte-Rotation um 1 Bit auf der Prüfsumme durch
- Fügen Sie das Byte in die Prüfsumme hinzu und wenden Sie Modulo 2 ^ 16 auf das Ergebnis an, wodurch sie innerhalb von 16 Bits beibehalten wird
- Das Ergebnis ist eine 16-Bit-Prüfsumme
Der obige Algorithmus erschien in Siebte Ausgabe Unix.
Das System v sum, -s in GNU -Summe und -O2 in FreeBSD CKSUM:
- Prüfsumme0 = Summe aller Bytes des Eingangsstrommodulo 2 ^ 32
- Prüfsumme1 = Prüfsumme0 Modulo 2 ^ 16 + Prüfsumme0 / 2 ^ 16
- Prüfsumme = Prüfsumme1 Modulo 2 ^ 16 + Prüfsumme1 / 2 ^ 16
- Das Ergebnis ist eine 16-Bit
Syntax
Das Summe Dienstprogramm wird aus dem aufgerufen Befehlszeile Nach der folgenden Syntax:
sum [Option] ... [Datei] ...
Mit den möglichen Optionsparametern::
- -r
- verwenden BSD -Prüfsumme Algorithmus, verwenden Sie 1K -Blöcke (Niederlagen -s)
- -s, -sysv
- verwenden SYSV -Prüfsumme Algorithmus, verwenden Sie 512 Bytesblöcke
- --Hilfe
- Zeigen Sie den Hilfebildschirm an und beenden Sie
- --Ausführung
- Versionsinformationen ausgeben und beenden
Wenn kein Dateiparameter angegeben ist oder wenn die Datei ist -, das Standardeingabe wird als Eingabedatei verwendet.
Beispiel der Verwendung:
$ Echo Hallo> Testdata$ Summe Testdatei36978 1
Beispiel für die Verwendung von -s in der GNU -Summe:
$ Echo Hallo> Testdata$ sum -S -Testdatei510 1 Testdatei
Beispiel für die Verwendung von Standardeingaben - -R und Printf, um Newline zu vermeiden:
$ printf Hallo | sum -r08401 1
Siehe auch
- GNU -Kern -Dienstprogramme
- Unxutils Hafen zu nativem Win32
Verweise
Externe Links
- Summe In der Single UNIX ® Spezifikation, Version 2, 1997, OpenGroup.org - gibt der Checksumalgorithmus nicht an
- C.4 Dienstprogramme In den offenen Gruppenbasisspezifikationen Ausgabe 7, 2018 Ausgabe, OpenGroup.org - zeigt die Summe wie entfernt an
- Version 7 Unix Programmierer Handbuch - -
- GNU CoreUtils - Handbuchseiten von
- Freebsd Allgemeine Befehle Handbuch -Geben die Summenalgorithmen in Optionen -o1 und -O2 nach CKSUM an - -
- Linux Benutzer Handbuch - Benutzerbefehle - -
- Solaris 10 Benutzerbefehle Referenz Handbuch - -
- Der Unixbaum, tuhs.org - Der Quellcode alter Versionen von Unix