EBCDIC
În informatică , acronimul EBCDIC (din limba engleză Extended Binary Coded Decimal Interchange Code ) indică un sistem de codificare a informațiilor pe 8 biți utilizat în numeroase sisteme de operare de producție IBM , atât pentru computere din clasa mainframe (de exemplu, z / OS , OS / 390 , VM și VSE ) și pentru minicomputere (de exemplu, OS / 400 și i5 / OS ). De asemenea, este utilizat de diferite platforme terțe, cum ar fi BS2000 / OSD Fujitsu Siemens Computers , MPE / iX de la Hewlett Packard și Programul de control master (MCP) al Unisys . Acesta derivă din zecimalul codat binar pe 6 biți, utilizat în cartele perforate și în majoritatea perifericelor IBM de la sfârșitul anilor 1950 și începutul anilor 1960 .
Istorie
Codificarea EBCDIC, concepută de IBM între 1963 și 1964 , a fost dezvăluită publicului la lansarea liniei sale mainframe System / 360 . A fost o codificare pe 8 biți capabilă să extindă semnificativ sistemul BCD pe 6 biți atunci utilizat; dezvoltarea sa a fost independentă de ASCII , care este o codificare pe 7 biți.
În mod curios, IBM a fost, de asemenea, un susținător major al comitetului de standardizare pentru codificarea ASCII. Cu toate acestea, compania nu a reușit să pregătească perifericele ASCII (de exemplu, pumnii cardului) la timp pentru lansarea System / 360, ceea ce a determinat-o să utilizeze sistemul EBCDIC ca alternativă. Pe de altă parte, System / 360 a avut un mare succes comercial și acest lucru a favorizat o largă răspândire a EBCDIC.
Toate perifericele și sistemele de operare din clasa mainframe IBM, cu excepția Linux pe zSeries , utilizează în mod nativ codare EBCDIC și au software pentru traducere către și de la alte sisteme. Multe periferice hardware sunt, de asemenea, capabile să gestioneze traducerea între mai multe codificări; mainframe mai noi, cum ar fi zSeries menționate anterior, sunt echipate cu instrucțiuni hardware, la nivel de procesor, pentru a accelera conversia între seturile de caractere.
La momentul realizării sale, EBCDIC a oferit avantajul unei ușurințe relative de introducere a datelor prin intermediul cardurilor perforate; deoarece acest suport este acum complet depășit, în computerele moderne sistemul EBCDIC este utilizat doar pentru compatibilitate descendentă. De fapt, nu are avantaje tehnice în comparație cu paginile de cod bazate pe codare ASCII, cum ar fi diferitele ISO-8859 și Unicode . Similar cu paginile de cod bazate pe seturi de caractere ASCII extinse cu un singur octet, majoritatea paginilor de cod EBCDIC nu permit utilizarea simultană a mai mult de două limbi (engleză și a doua limbă) în fiecare bază de date sau fișier.
Dacă este necesar un suport complet pentru textele multilingve, sunt necesare sisteme capabile să gestioneze un număr mult mai mare de caractere. De obicei, acest lucru se realizează prin implementări adecvate ale specificației Unicode. Consorțiul care gestionează specificația a propus un format de transformare Unicode ( format de transformare Unicode ) pentru EBCDIC numit UTF-EBCDIC, dar nu este destinat să fie utilizat în medii de schimb deschis; cu toate acestea, acest format este utilizat foarte rar, chiar și în sisteme bazate în întregime pe EBCDIC. Mainframe-urile IBM acceptă formatul UTF-16 , dar nu UTF-EBCDIC în mod nativ.
Caracteristici tehnice
Paginile de cod EBCDIC și ASCII nu sunt compatibile între ele. Deoarece computerele pot procesa doar date numerice, ambele convenții atribuie caractere specifice acelor numere. Prin urmare, valorile numerice identice sunt interpretate ca caractere diferite, în funcție de pagina de cod utilizată. Pentru a utiliza datele stocate în EBCDIC, este necesară o conversie între paginile de cod pentru a afișa corect informații pe computere pe baza codificării ASCII, cum ar fi computerele personale obișnuite.
Fiecare caracter al codificării EBCDIC ocupă 8 biți (1 octet ), împărțiți în două jumătăți numite nibble . Cei mai semnificativi 4 biți, numiți zonare , reprezintă categoria căreia îi aparține caracterul, în timp ce cei 4 biți cei mai puțin semnificativi care identifică caracterul specific sunt numiți cifre .
În codificarea EBCDIC există o corespondență adecvată între codurile hexazecimale care reprezintă caracterele și codurile de perforare pe cărți pentru aceleași; această caracteristică era importantă la momentul dezvoltării codului. Un puncher IBM ar putea de fapt codifica un card de 12 linii cu maximum 2 perforații pe coloană, prima într-o poziție inclusă în primele trei linii (liniile de zonare ) și a doua în restul de nouă ( liniile numerice ). . Prin urmare, zonarea ar putea fi interpretată ca o valoare zecimală între 0 și 3 și partea numerică ca o cifră între 0 (fără perforație) și 9 (perforație în linia corespunzătoare). Prima versiune a codificării EBCDIC a răspuns la formula simplă:
- (0xf-zonare) "4 + număr
și a definit doar celulele 10 x 4 din colțul din stânga jos în tabelul de mai jos. Zonarea a fost aparent inversată pentru a permite ordonarea alfabetică a literelor.
Primele 64 de simboluri (00 la 3F) sunt caractere de control , dintre care 33 au un cod corespunzător în codificarea ASCII. O diferență relevantă între cele două scheme este prezența simbolurilor separate pentru returul de transport (CR) și avansul de linie (LF) numai în codificarea ASCII, unde sunt utilizate în general ca terminatori de linie în fișierele text; invers, codificarea EBCDIC mai are două caractere în acest scop: linie nouă (linie nouă, NL) și linie inversă nouă (linie nouă inversă, VNB). Celelalte 31 de coduri de control sunt utilizate pentru diferite funcții de control ale terminalelor și dispozitivelor, legate în mare parte de particularitățile hardware IBM.
Există mai multe versiuni ale EBCDIC, personalizate în funcție de nevoile diferitelor țări. Unele țări asiatice utilizează o extensie cu doi octeți care permite mainframe-urilor să afișeze caractere chinezești, japoneze și coreene. Această extensie conține, de asemenea, coduri adecvate pentru trecerea de la modul "single-octet" la modul "dublu octet" [0x0E, 0x0F].
IBM atribuie de obicei fiecare pagină de cod pe care o definește un cod numeric numit Coded Character Set IDentifier ( CCSID ). Trebuie remarcat faptul că un CCSID identic poate prezice diferite poziții de caractere într-o pagină de cod. De exemplu, caracterul de linie nouă în Serviciile de sistem UNIX pe z / OS poate corespunde unor valori numerice diferite decât în alte sisteme de operare bazate pe EBCDIC. Această variabilitate trebuie luată în considerare pentru a evita problemele legate de transferul de date textuale în codificarea EBCDIC între diferite platforme.
Aranjamentul paginii de cod
Tabelul de mai jos prezintă CCSID 500, una dintre variantele codificării EBCDIC. Într-un astfel de aranjament, simbolurile 00 la 3F și FF sunt caractere de control, 40 reprezintă spațiul, 41 spațiul insecabile ( spațiu care nu se rupe) și cratima CA opțională (cratimă moale). Codul ISO 8859-1 corespunzător este afișat pentru fiecare caracter:
-0 | -1 | -2 | -3 | -4 | -5 | -6 | -7 | -8 | -9 | -LA | -B | -C | -D | -ȘI | -F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0- | NUL 00 | DECI H 01 | STX 02 | ETX 03 | SEL | HT 09 | VNB | AL 7F | GE | SPS | RPT | VT 0B | FF 0C | CR 0D | ASA DE 0E | DA 0F |
1- | DLE 10 | DC1 11 | DC2 12 | DC3 13 | RES ENP | NL | BS 08 | POC | POATE SA 18 | EM 19 | UBS | CU1 | IFS 1C | IGS 1D | IRS 1E | IUS ITB 1F |
2- | DS | SOS | FS | WUS | BYP ÎN P | LF 0A | ETB 17 | ESC 1B | SA | SFE | SM SW | CSP | MAE | ENQ 05 | ACK 06 | GROZAV 07 |
3- | SYN 16 | IR | PP | TRN | BNS | EOT 04 | SBS | ACEASTA | RFF | CU3 | DC4 14 | NAK 15 | SUB 1A | |||
4- | SP 20 | RSP A0 | la E2 | la E4 | la E0 | la E1 | la E3 | la E5 | ç E7 | ñ F1 | [ 5B | . 2E | < 3C | ( 28 | + 2B | ! 21 |
5- | & 26 | Și E9 | Și ESTE LA | Și EB | Și E8 | the E0 | the SI SI | the EF | the ȘI | ß DF | ] 5D | $ 24 | * 2A | ) 29 | ; 3B | ^ 5E |
6- | - 2D | / 2F | LA C2 | LA C4 | LA C0 | LA C1 | LA C3 | LA C5 | Ç C7 | Ñ D1 | ¦ A6 | , 2C | % 25 | _ 5F | > 3E | ? 3F |
7- | sau F8 | ȘI C9 | ȘI CA | ȘI CB | ȘI C8 | THE CD | THE EXISTĂ | THE CF | THE CC | ` 60 | : 3A | # 23 | @ 40 | ' 27 | = 3D | " 22 |
8- | SAU D8 | la 61 | b 62 | c 63 | d 64 | Și 65 | f 66 | g 67 | h 68 | the 69 | " AB | " BB | ð F0 | ý FD | þ FE | ± B1 |
9- | ° B0 | j 6A | k 6B | L 6C | m 6D | n 6E | sau 6F | p 70 | q 71 | r 72 | ª AA | º BA | æ E6 | ¸ B8 | Æ C6 | ¤ A4 |
LA- | µ B5 | ~ 7E | s 73 | t 74 | tu 75 | v 76 | w 77 | X 78 | y 79 | z 7A | ¡ A1 | ¿ BF | Ð D0 | Ý DD | Þ DE | ® AE |
B- | ¢ A2 | £ A3 | ¥ A5 | · B7 | © A9 | § A7 | ¶ B6 | ¼ Î.Hr. | ½ BD | ¾ FI | ¬ B.C | | 7C | ¯ AF | ¨ A8 | ´ B4 | × D7 |
C- | { 7B | LA 41 | B. 42 | C. 43 | D. 44 | ȘI 45 | F. 46 | G. 47 | H. 48 | THE 49 | TIMID LA | sau F4 | sau F6 | sau F2 | sau F3 | sau F5 |
D- | } 7D | J 4A | K. 4B | L 4C | M. 4D | Nu. 4E | SAU 4F | P. 50 | Î 51 | R. 52 | ¹ B9 | û FB | ü FC | ù F9 | ú FACE | ÿ FF |
ȘI- | \ 5C | ÷ F7 | S. 53 | T. 54 | U 55 | V. 56 | W 57 | X 58 | Da 59 | Z 5A | ² 82 | SAU D4 | SAU D6 | SAU D2 | SAU D3 | SAU D5 |
F- | 0 30 | 1 31 | 2 32 | 3 33 | 4 34 | 5 35 | 6 36 | 7 37 | 8 38 | 9 39 | ³ 83 | Û D8 | Ü ANUNȚ | Ù D9 | Ú DIN | EO |
Elemente conexe
linkuri externe
- ( EN ) EBCDIC , în Encyclopedia Britannica , Encyclopædia Britannica, Inc.