EBCDIC

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Î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