Articulo de referencia

suma (Unix)

sum es una utilidad heredada disponible en algunos sistemas operativos Unix y similares a Unix . Esta utilidad genera una suma de comprobación de 16 bits de cada argumento file ...

sum es una utilidad heredada disponible en algunos sistemas operativos Unix y similares a Unix . Esta utilidad genera una suma de comprobación de 16 bitsde cada argumento file , así como la cantidad de bloques que ocupan en el disco. [1] Se utilizan dos algoritmos de suma de comprobación diferentes. POSIX se abandonóen favor de cksum . sum

Descripción general

El programa suma generalmente sólo es útil para interés histórico. No es parte de POSIX. Normalmente hay dos algoritmos disponibles: una suma de comprobación BSD y una suma de comprobación SYSV . Ambos son más débiles que el ya débil CRC de 32 bits utilizado por cksum . [2]

El algoritmo predeterminado en las implementaciones de FreeBSD y GNU es la suma de comprobación BSD. El cambio entre los dos algoritmos se realiza mediante opciones de línea de comandos. [2] [1]

Los dos algoritmos comúnmente utilizados son los siguientes.

La suma BSD, -r en GNU sum y -o1 en FreeBSD cksum:

  • Inicializar la suma de comprobación a 0
  • Para cada byte del flujo de entrada
    • Realizar una rotación a la derecha de 16 bits bit a bit en la suma de comprobación
    • Agregue el byte a la suma de comprobación y aplique el módulo 2 ^ 16 al resultado, manteniéndolo así dentro de los 16 bits.
  • El resultado es una suma de comprobación de 16 bits.

El algoritmo anterior apareció en la séptima edición de Unix .

La suma del Sistema V, -s en GNU sum y -o2 en FreeBSD cksum:

  • checksum0 = suma de todos los bytes del flujo de entrada módulo 2 ^ 32
  • suma de comprobación1 = suma de comprobación0 módulo 2 ^ 16 + suma de comprobación0 / 2 ^ 16
  • suma de comprobación = suma de comprobación1 módulo 2 ^ 16 + suma de comprobación1 / 2 ^ 16
  • El resultado es una suma de comprobación de 16 bits calculada a partir de la suma inicial de bytes simples de 32 bits.

Sintaxis

La utilidad suma se invoca desde la línea de comandos de acuerdo con la siguiente sintaxis:

suma [OPCION]... [ARCHIVO]...

con los posibles parámetros de opción siendo:

  • -r
  • -s , --sysv
  • --ayuda
    • Mostrar la pantalla de ayuda y salir
  • --versión
    • Información de la versión de salida y salida

Cuando no se proporciona ningún parámetro de archivo, o cuando FILE es - , se utiliza la entrada estándar como archivo de entrada.

Ejemplo de uso:

$ echo  Hola  >  archivo de prueba
 $ suma  archivo de prueba
 36978 1

Ejemplo del uso de -s en GNU sum:

$ echo  Hola  >  archivo de prueba
 $ sum  -s  archivo de prueba
 510 1 archivo de prueba

Ejemplo de uso de entrada estándar, -r y printf para evitar nuevas líneas:

$ printf  Hola | suma -r
 08401 1   

Véase también

Referencias

  1. ^ ab sum(1)— páginas del manual de GNU coreutils
  2. ^ ab sum(1) –  Manual de comandos generales de FreeBSD
  • suma en The Single UNIX ® Specification, versión 2, 1997, opengroup.org – no especifica el algoritmo de suma de comprobación
  • C.4 Utilidades en las Especificaciones básicas de The Open Group, edición 7, 2018, opengroup.org – indica que se eliminó la suma
  • sum(1) –  Manual del programador de Unix versión 7
  • sum(1)– páginas del manual de GNU coreutils
  • sum(1) –  Manual de comandos generales de FreeBSD : indica los algoritmos de suma en las opciones -o1 y -o2 para cksum
  • sum(1) –  Manual de usuario de Linux – Comandos de usuario
  • sum(1) –  Manual de referencia de comandos de usuario de Solaris 11.4
  • El árbol Unix, tuhs.org – el código fuente de versiones antiguas de Unix
Obtenido de "https://es.wikipedia.org/w/index.php?title=Suma_(Unix)&oldid=1132116168"