• Noticias Geek
Noticias geek
Qué es la codificación EBCDIC

Qué es la codificación EBCDIC

  • 16 de septiembre de 2021

Las siglas EBCDIC (Extended Binary Coded Decimal Code) indican un sistema de codificación de información de 8 bits utilizado en muchos sistemas operativos de IBM, utilizado en los ordenadores: z/OS, OS/390, VM, VSE, OS/400 y i5/OS. También lo utilizan varios sistemas de otros fabricantes, como BS2000 / OSD de Fujitsu Siemens Computers, MPE/iX Hewlett Packard y Master Control Program (MCP) Unisys. Su origen está basado en la codificación decimal de 6 bits codificada en binario, utilizada en tarjetas perforadas y en la mayoría de los periféricos de IBM de finales de la década de 1950 y principios de la de 1960.

Historia

La codificación EBCDIC, inventada por IBM entre 1963 y 1964, se presentó al público en el lanzamiento del sistema Mainframe System/360. Era una codificación de 8 bits que ampliaba el sistema BCD de 6 bits, su desarrollo fue independiente de ASCII, que es una codificación de 7 bits.

Curiosamente, IBM también fue uno de los principales promotores del comité de estándares para la codificación ASCII. Sin embargo, la empresa no pudo preparar dispositivos ASCII a tiempo para el lanzamiento del sistema Mainframe System/360, lo que requirió que utilizara el sistema EBCDIC como respaldo. Por otro lado, el Mainframe System/360 fue un importante éxito comercial y favoreció la distribución del EBCDIC.

Todos los dispositivos y sistemas operativos de la clase mainframe de IBM, excepto Linux en zSeries, utilizan EBCDIC de forma nativa e incluyen software de traducción hacia y desde otros sistemas. Muchos dispositivos pueden manejar la traducción entre múltiples codificaciones; los últimos mainframes zSeries como se mencionó anteriormente tienen instrucciones de hardware a nivel de procesador, para realizar una conversión mucho más rápida.

En el momento de su realización, el EBCDIC ofrecía la ventaja de una relativa facilidad de inserción de los datos mediante tarjetas perforadas. Debido a que dicho soporte es actualmente obsoleto, en los ordenadores modernos el sistema EBCDIC se usa solo para compatibilidad con versiones anteriores. Carece de una ventaja técnica sobre la codificación ASCII basada en páginas de códigos, como la codificación ISO-8859 y Unicode. Como en la tabla ASCII, la mayoría de los códigos EBCDIC no permiten el uso simultáneo de más de dos idiomas (inglés y un segundo idioma) en cada archivo.

Si necesitas soporte completo para texto multilingüe, deberás tener sistemas que puedan manejar más caracteres. Por lo general, esto se realiza mediante la especificación Unicode. El consorcio que gestiona las especificaciones ha propuesto un formato de transformación Unicode para EBCDIC llamado UTF-EBCDIC, pero no está diseñado para su uso en el intercambio de entornos abiertos. Sin embargo, este formato se utiliza muy raramente, incluso en sistemas completamente EBCDIC. El mainframe de IBM admite UTF-16 pero no UTF-EBCDIC de forma nativa.

Características

Las tablas ASCII y EBCDIC no son compatibles entre sí. Debido a que los ordenadores solo pueden procesar datos numéricos, ambas convenciones asignan caracteres específicos a estos dígitos. Por tanto, los valores numéricos idénticos se interpretan como caracteres diferentes según la tabla de códigos utilizada. Para utilizar los datos almacenados en la conversión EBCDIC entre tablas es necesario mostrar correctamente la información en ordenadores basados en codificación ASCII.

Cada carácter de la codificación EBCDIC ocupa 8 bits (1 byte), divididos en dos mitades de llamadas nibble. Los 4 bits más significativos representan la categoría del carácter, mientras que los cuatro bits menos significativos identifican el carácter específico.

Existen varias versiones de EBCDIC, adaptadas a las necesidades de diferentes países. Algunos países asiáticos también utilizan la extensión de dos bytes que permite la visualización central en chino, japonés y coreano. Dicha extensión también contiene códigos para la transición de modo de "byte único" a "byte doble" [0x0E, 0x0F].