stringtranslate.com

EBCDIC

El código de intercambio decimal codificado en binario extendido [1] [2] ( EBCDIC ; [1] / ˈ ɛ b s ɪ d ɪ k / ) es una codificación de caracteres de ocho bits que se utiliza principalmente en sistemas operativos de computadoras centrales IBM y de rango medio de IBM . Desciende del código utilizado con las tarjetas perforadas y el correspondiente código decimal codificado en binario de seis bits utilizado con la mayoría de los periféricos informáticos de IBM de finales de los años cincuenta y principios de los sesenta. [3] Es compatible con varias plataformas que no son de IBM, como BS2000/OSD , OS-IV, MSP y MSP-EX de Fujitsu-Siemens , la serie SDS Sigma , Unisys VS/9 , Unisys MCP e ICL VME .

Historia

Tarjeta perforada con la codificación Hollerith del juego de caracteres EBCDIC de 1964. Se ha mejorado el contraste en la parte superior para mostrar los caracteres impresos. Los "números" (0-9) se traducen directamente a los 4 bits inferiores de EBCDIC, aunque los 4 bits superiores de EBCDIC son más complejos.

EBCDIC fue ideado en 1963 y 1964 por IBM y se anunció con el lanzamiento de la línea IBM System/360 de computadoras centrales . Es una codificación de caracteres de ocho bits, desarrollada por separado del esquema de codificación ASCII de siete bits. Fue creado para ampliar el código de intercambio decimal codificado en binario (BCD) existente, o BCDIC , que a su vez fue ideado como un medio eficiente para codificar las dos zonas y números en tarjetas perforadas en seis bits. La codificación distinta de 's' y 'S' (usando la posición 2 en lugar de 1) se mantuvo en las tarjetas perforadas donde era deseable no tener perforaciones demasiado cerca entre sí para garantizar la integridad de la tarjeta física. [4] [ verificación fallida ]

Si bien IBM fue uno de los principales defensores del comité de estandarización ASCII, [5] la empresa no tuvo tiempo de preparar periféricos ASCII (como máquinas perforadoras de tarjetas) para enviarlos con sus computadoras System/360, por lo que se decidió por EBCDIC. [3] El System/360 tuvo un gran éxito, junto con clones como RCA Spectra 70 , ICL System 4 y Fujitsu FACOM, al igual que EBCDIC.

Todos los sistemas operativos mainframe de IBM , y su sistema operativo IBM i para computadoras de rango medio , utilizan EBCDIC como codificación inherente [6] (con tolerancia para ASCII, por ejemplo, ISPF en z/OS puede explorar y editar archivos codificados tanto en EBCDIC como en ASCII). . El software puede traducir hacia y desde codificaciones, y los mainframes modernos (como IBM Z ) incluyen instrucciones del procesador, a nivel de hardware, para acelerar la traducción entre conjuntos de caracteres.

Existe un formato de transformación Unicode orientado a EBCDIC llamado UTF-EBCDIC propuesto por Unicode Consortium , diseñado para permitir una fácil actualización del software EBCDIC para manejar Unicode , pero no destinado a ser utilizado en entornos de intercambio abierto. Incluso en sistemas con amplio soporte EBCDIC, no ha sido popular. Por ejemplo, z/OS admite Unicode (prefiriendo específicamente UTF-16 ), pero z/OS solo tiene soporte limitado para UTF-EBCDIC.

No todos los sistemas operativos que se ejecutan en hardware de IBM utilizan EBCDIC; IBM AIX , Linux en IBM Z y Linux en Power utilizan ASCII, al igual que todos los sistemas operativos de IBM Personal Computer y sus sucesores.

Compatibilidad con ASCII

Hubo numerosas dificultades para escribir software que funcionara tanto en ASCII como en EBCDIC.

Diseño de página de códigos

Hay cientos de páginas de códigos EBCDIC basadas en la codificación de caracteres EBCDIC original; Hay una variedad de páginas de códigos EBCDIC destinadas a su uso en diferentes partes del mundo, incluidas páginas de códigos para escrituras no latinas como chino, japonés (por ejemplo, EBCDIC 930, JEF y KEIS), coreano y griego (EBCDIC 875). ). También hay una gran cantidad de variaciones con las letras intercambiadas sin motivo aparente. [ cita necesaria ]

La siguiente tabla muestra el "subconjunto invariante" [9] de EBCDIC, que son caracteres que deben tener las mismas asignaciones en todas las páginas de códigos EBCDIC que utilizan el alfabeto latino. (Esto incluye la mayor parte del repertorio invariante ISO/IEC 646 , excepto el signo de exclamación ). También muestra (en gris) la puntuación ASCII y EBCDIC que falta, ubicada donde están en la página de códigos 37 (una de las variantes de la página de códigos de EBCDIC) . Las celdas en blanco están llenas de caracteres específicos de la región en las variantes, pero los caracteres en gris a menudo también se intercambian o reemplazan. Al igual que ASCII, el subconjunto invariante funciona solo para idiomas que utilizan el alfabeto latino básico ISO , como el inglés (excluyendo préstamos y algunas variaciones ortográficas poco comunes) y el holandés (si las ligaduras "ij" y "IJ" se escriben como dos caracteres).

Definiciones de controles EBCDIC no ASCII

A continuación se presentan las definiciones de los caracteres de control EBCDIC que no se corresponden con los caracteres de control ASCII o tienen usos adicionales. Cuando se asignan a Unicode, estos se asignan principalmente a puntos de código de caracteres de control C1 de una manera especificada por la Arquitectura de representación de datos de caracteres (CDRA) de IBM. [10] [11]

Aunque la asignación predeterminada de Nueva línea (NL) corresponde al carácter ISO/IEC 6429 Siguiente línea (NEL) (cuyo comportamiento también se especifica, pero no es obligatorio, en el Anexo 14 de Unicode), [12] la mayoría de estos C1- Los controles mapeados no coinciden con los del conjunto ISO/IEC 6429 C1 , ni con los de otros conjuntos de controles C1 registrados, como ISO 6630 . [13] Aunque esto efectivamente convierte a los controles EBCDIC no ASCII en un conjunto de control C1 único, no se encuentran entre los conjuntos de control C1 registrados en el registro ISO-IR , [14] lo que significa que no tienen una secuencia de designación de conjunto de control asignada. (según lo especificado por ISO/IEC 2022 y opcionalmente permitido en ISO/IEC 10646 (Unicode)). [15]

Además de U+0085 (siguiente línea), el estándar Unicode no prescribe una interpretación de los caracteres de control C1, dejando su interpretación a protocolos de nivel superior (sugiere, pero no exige, sus interpretaciones ISO/IEC 6429 en ausencia de uso para otros fines), [16] por lo que esta asignación está permitida en Unicode, pero no especificada por él.

Páginas de códigos con juegos de caracteres Latin-1

Las siguientes páginas de códigos tienen el juego completo de caracteres Latin-1 (ISO/IEC 8859-1). La primera columna proporciona el número de página de códigos original. La segunda columna proporciona el número de la página de códigos actualizada con el signo del euro (€) reemplazando el signo de moneda universal (¤) (o en el caso de EBCDIC 924, con el conjunto modificado para que coincida con ISO 8859-15 ).

Los diferentes países tienen diferentes páginas de códigos porque estas páginas de códigos se originaron como páginas de códigos con repertorios de caracteres específicos de cada país y luego se ampliaron para contener todo el repertorio ISO 8859-1, lo que significa que un carácter ISO 8859-1 determinado puede tener diferentes valores de puntos de código. en diferentes páginas de códigos. Se conocen como páginas de códigos extendidos de países ( CECP ). [20]

Crítica y humor

Eric S. Raymond, defensor del software de código abierto y desarrollador de software , escribe en su Jargon File que los hackers detestaban a EBCDIC, con lo que se refería a [21] miembros de una subcultura de programadores entusiastas. El archivo Jargon 4.4.7 da la siguiente definición: [22]

EBCDIC: /eb´s@·dik/, /eb´see`dik/, /eb´k@·dik/, n. [abreviatura, Código de intercambio decimal codificado en binario extendido] Un supuesto conjunto de caracteres utilizado en los dinosaurios de IBM. Existe en al menos seis versiones mutuamente incompatibles, todas ellas con delicias tales como secuencias de letras no contiguas y la ausencia de varios caracteres de puntuación ASCII bastante importantes para los lenguajes informáticos modernos (exactamente qué caracteres están ausentes varía según la versión de EBCDIC que estés usando). mirando a). IBM adaptó EBCDIC a partir del código de tarjeta perforada a principios de la década de 1960 y lo promulgó como una táctica de control del cliente (ver conspiración de conectores ), desdeñando el estándar ASCII ya establecido. Hoy en día, IBM afirma ser una empresa de sistemas abiertos , pero la propia descripción de IBM de las variantes EBCDIC y cómo convertirlas entre ellas todavía está clasificada internamente como ultrasecreta y se debe grabar antes de leer. Los piratas informáticos palidecen ante el solo nombre de EBCDIC y lo consideran una manifestación del mal más puro.

—  El archivo Jergon 4.4.7

El diseño de EBCDIC también fue motivo de muchas bromas. Uno de esos chistes, encontrado en el archivo Unix Fortune de 4.3BSD Reno (1990) [23] decía:

Profesor: "Así que el gobierno estadounidense acudió a IBM para idear un estándar de cifrado , y se les ocurrió..."
Estudiante: "¡EBCDIC!"

Se hacen referencias al conjunto de caracteres EBCDIC en la serie de juegos de ordenador Zork de 1979 . En la "Sala de Máquinas" de Zork II , EBCDIC se utiliza para dar a entender un lenguaje incomprensible:

Esta es una gran sala llena de maquinaria pesada variada, que zumba ruidosamente. La habitación huele a resistencias quemadas. A lo largo de una pared hay tres botones que son, respectivamente, redondos, triangulares y cuadrados. Naturalmente, encima de estos botones hay instrucciones escritas en EBCDIC...

En 2021, se hizo público que un banco belga todavía usaba EBCDIC internamente en 2019. Esto llamó la atención porque un cliente insistió en que la ortografía correcta de su apellido incluía una diéresis , que el banco omitió. El cliente presentó una reclamación citando la garantía en el Reglamento General de Protección de Datos del derecho a la oportuna "rectificación de datos personales inexactos". El banco argumentó en parte que no podía cumplir porque su sistema informático sólo era compatible con EBCDIC, que no admite letras con diéresis. El tribunal de apelaciones falló a favor del cliente. [24] [25]

Ver también

Referencias

  1. ^ ab Mackenzie, Charles E. (1980). Conjuntos de caracteres codificados, historia y desarrollo (PDF) . La serie de programación de sistemas (1 ed.). Addison-Wesley Publishing Company, Inc. ISBN 0-201-14460-3. LCCN  77-90165 . Consultado el 6 de abril de 2022 .
  2. ^ Donovan, John J. (1972). Programación de Sistemas . pag. 65.ISBN _ 0-07-085175-1.
  3. ^ ab Bemer, Bob . "EBCDIC y P-Bit (el mayor error informático jamás realizado): viñetas de la historia de la informática". Archivado desde el original el 13 de mayo de 2018 . Consultado el 2 de julio de 2013 . ...pero sus impresoras y perforadoras no estaban preparadas para manejar ASCII, e IBM simplemente TENÍA que anunciarlo.
  4. ^ "Códigos de tarjetas perforadas de Doug Jones". página de inicio.cs.uiowa.edu . Consultado el 14 de enero de 2023 .
  5. ^ "X3.4-1963". 1963. pág. 4.(NB. IBM tenía cuatro miembros del personal en el subcomité ASA X3.2 final de 21 miembros).
  6. ^ IBMnt (2008). "IBM confirma el uso de EBCDIC en sus mainframes como práctica predeterminada". Archivado desde el original el 3 de enero de 2013 . Consultado el 16 de junio de 2008 .
  7. ^ "Justificación del estándar internacional - Lenguajes de programación - C" (PDF) . Revisión 5.10. Abril de 2003. § MSE.4: Soporte para ISO/IEC 646 invariante. Archivado (PDF) desde el original el 6 de junio de 2016 . Consultado el 24 de noviembre de 2022 .
  8. ^ Manual de referencia de PDP-10, Libro 2: Montaje del programa fuente (PDF) . Corporación de equipos digitales . pag. 221.
  9. ^ "Conjunto de caracteres invariantes". Centro de conocimiento de IBM . 2018-08-14.
  10. ^ abc Umamaheswaran, VS (8 de noviembre de 1999). "3.3 Paso 2: Conversión de bytes". UTF-EBCDIC . Consorcio Unicode . Informe técnico Unicode n.º 16. Los 64 caracteres de control... el carácter DELETE ASCII (U+007F)... se asignan respetando las convenciones EBCDIC, tal como se define en IBM Character Data Representation Architecture, CDRA, con una excepción: el emparejamiento de avance de línea EBCDIC y nueva línea. Los caracteres de control se intercambian desde sus emparejamientos predeterminados de CDRA a caracteres de control de avance de línea ISO/IEC 6429 (U+000A) y siguiente línea (U+0085).
  11. ^ ab Steele, Shawn (24 de abril de 1996). "cp037_IBMUSCadana a tabla Unicode". Consorcio Microsoft / Unicode .
  12. ^ Heninger, Andy (15 de febrero de 2019). "NL: Siguiente línea (A) (no adaptable)". Algoritmo de ruptura de línea Unicode . Revisión 43. Consorcio Unicode . Anexo #14 del estándar Unicode.
  13. ^ ISO/TC 46 (1 de febrero de 1986). Funciones de Control Adicionales para Uso Bibliográfico según Norma Internacional ISO 6630 (PDF) . ITSCJ/ IPSJ . ISO-IR -124.{{citation}}: CS1 maint: numeric names: authors list (link)
  14. ^ Registro internacional ISO/IEC de juegos de caracteres codificados para utilizar con secuencias de escape (PDF) , ITSCJ/ IPSJ , ISO-IR
  15. ^ ISO/IEC JTC 1/SC 2 (2017). "12.4: Identificación del conjunto de funciones de control". Tecnología de la información: conjunto de caracteres codificados universales (UCS) (5ª ed.). YO ASI . págs. 19-20. ISO/IEC 10646. Para otros conjuntos C0 o C1, el octeto final F se obtendrá del Registro Internacional de Conjuntos de Caracteres Codificados... Si dicha secuencia de escape aparece dentro de una secuencia de unidades de código conforme a esta Norma Internacional, deberá ser acolchado de acuerdo con la Cláusula 11.{{citation}}: CS1 maint: numeric names: authors list (link)
  16. ^ Consorcio Unicode (2019). "23.1: Códigos de control". El estándar Unicode (PDF) (12.0.0 ed.). págs. 868–870. ISBN 978-1-936213-22-1.
  17. ^ abcd "Apéndice G-1. Definiciones de caracteres de control EBCDIC". Arquitectura de representación de datos de caracteres . Corporación IBM . Archivado desde el original el 11 de septiembre de 2018.
  18. ^ abcdefghij GOST (1993). "Информационная технология. Наборы 8-битных кодированных символов. Двоичный код обработки информации" [Tecnología de la información. Juegos de caracteres codificados de 8 bits. Código binario para procesamiento de información] (en ruso). GOST 19768-93.
  19. ^ IBM . "Arquitectura de representación de datos de caracteres (CDRA)". IBM . pag. 327. El mnemotécnico para el carácter de control de Inicio de importancia en EBCDIC se ha modificado para incluir un punto (.) al final (SOS.). Esto se ha hecho para distinguirlo del mnemotécnico SOS utilizado en ISO-8 para el carácter de control Inicio de cadena. El punto no altera la propiedad del control de ninguna manera.
  20. ^ "iso8859.txt". Proyecto Kermit / Universidad de Columbia .
  21. ^ Raymond, Eric S. (1997). "El diccionario del nuevo hacker". pag. 310.
  22. ^ "EBCDIC". Archivo de jerga . Archivado desde el original el 13 de mayo de 2018 . Consultado el 13 de mayo de 2018 .
  23. ^ 4.3BSD-Reno/share/juegos/fortuna/fortunas
  24. ^ "Tribunal de Apelación de Bruselas - 2019/AR/1006 - GDPRhub".
  25. ^ Edén, Terence (25 de octubre de 2021). "EBCDIC es incompatible con el RGPD: blog de Terence Eden".

enlaces externos