Ugrás a tartalomhoz

EBCDIC

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából

EBCDIC(ejtsd: "ebszidik" ) azIBMnagyszámítógépeinésoperációs rendszerein,mint az/OS,azOS/390,aVMés aVSE,valamint a minikomputerein, mintOS/400ési5/OShasznált8 biteskarakter kódolási,vagykódlaprendszer. Több más, nem IBM platformon is használják, mint aFujitsu-SiemensBS2000/OSD,aHPMPE/iX,és azUnisysMCP.Az EBCDIC elnevezés az angol Extended Binary Coded Decimal Interchange Code, azaz abővített,binárisan kódolt decimális(adat)cserekódrövidítése. Alyukkártyarendszerből származik, és szoros kapcsolatban van a 6 bitesbinárisan kódolt decimáliskóddal, amit az IBM mindenszámítógépeésperifériájahasznált a késői1950-esés a korai1960-as évekközött.

Története

[szerkesztés]
Holeritlyukkártya1964-ben szabványosított EBCDIC karakter készlettel. A lyukkombinációknak megfeleltette karakterek a kártya tetején láthatók nyomtatva.

Az EBCDIC rendszert azIBMalakította ki1963és1964között, és azIBM System/360rendszerekkel együttesen került bejelentésre. Az akkor már létező,binárisan kódolt decimáliskódrendszer bővítése volt. A tervezése azASCII-tól teljesen függetlenül történt. Az EBCDIC 8 bites kódolású kód, szemben a 7 bites ASCII-vel.

Érdekes, hogy az IBM volt az egyik fő támogatója az ASCII szabványosítási bizottságának. Ugyanakkor, az IBM-nek nem volt ideje elkészítenie az ASCII perifériáit (mint például kártyalyukasztó), ezért a System/360 számítógép rendszereit EBCDIC kódolással szállította, mivel a cég időre csak az EBCDIC perifériáit tudta használni. A System/360 széles körben sikeres lett, vele együtt az EBCDIC is.

Minden IBMnagyszámítógépperifériaésoperációs rendszer(kivéve aLinux-ot azSeries-en) egységes EBCDIC kódolást használ, és szoftver kódolja azt át más kódrendszerekre. Sok periféria hardvere nyújt hasonló "fordítási" szolgáltatást a modern nagyszámítógépeknél (mint az IBM zSeries) ideértve azokat a hardver szintű processzor utasításokat, amelyek jelentősen meggyorsítják a különböző kódtáblák közötti konverziókat.

A tervezése idején az EBCDIC alyukkártyákonkeresztül viszonylag egyszerű adatbeviteli lehetőséget nyújtott a nagyszámítógépeken. Mivel a nagyszámítógépeken kívül máig sem használ más lyukkártyákat, az EBCDIC biztosítja a nagyszámítógépes világban a visszafelé kompatibilitás egy fontos részét. A kódolásnak különösebb technikai előnye az ASCII alapú kódokkal, mint azISO-8859sorozat vagy aUnicode,nincsen. Mint az egy byte-osbővített ASCIIkódtábla, a legtöbb EBCDIC kódtábla is csak 2 nyelvet enged meg (angol és egy másik nyelv) azadatbázisokés szöveges (text)fileokhasználatánál.

Amikor a soknyelvű szövegek támogatása valódi igényként jelentkezett, a rendszernek sokféle karaktert kellett támogatnia. Ezt általában a Unicode valamilyen formájának a támogatásával oldották meg. Létezik egy EBCDICUnicode Transzformációs FormátumamitUTF-EBCDIC-nek neveznek, és a Unicode konzorcium javasolta a használatát, de a nyílt adatcsere környezetben, illetve az EBCDIC alapú rendszerekben szinte soha sem használták. Az IBM nagyszámítógépek támogatják azUTF-16-ot, de natív módon nem támogatják az UTF-EBCDIC-et.

Technikai részletek

[szerkesztés]

Az EBCDIC és az ASCII-alapú kódlapok semmilyen szinten nem kompatibilisek egymással. Mivel a számítógépek "számokból" értenek, a kódlapok valójában nem mások, mint számokhoz karakterek rendelése. Azonos értékek különböző karaktereket jelentenek, kódtáblától függően. EBCDIC formában tárolt értékeket konvertálni kell, mielőtt ASCII alapú gépekre, mintszemélyi számítógépátkerülhet.

Egy egyedülálló EBCDIC byte 8 bitet foglal el, amelyeket két félre, kétnibblereoszthatunk. Az első négy bit azóna– zone és a karakter kategóriáját jeleníti meg, a második négy bit, aszám– digit, ami az adott karaktert azonosítja.

Teljesen összhangban vannak a karakterekhexadecimáliskódjai és a lyukkártya kódok az EBCDIC-ben. Ennek az az oka, hogy az IBM a lyukkártyán 12 lyukasztható sort definiált oszloponként, és oszloponként legfeljebb két lyukasztás engedélyezett, az első lyukasztásnak valahol az első 3 sorban kell lennie (ezt nevezték zónának), a második lyukasztás pedig fennmaradó 9 sorban (ezt nevezték számnak) lehet. Így a zónához a 0-3 értékek, míg a számhoz a 0-9 értékek köthetők. Az EBCDIC kezdeti változata csak a (0xf-zone)<<4+szám alapján működött, és csak az alsó-bal 10x4-es részhez (a következő táblán látható) voltak karakterek rendelve.

Az első 64 kódhelyen (00-3F) avezérlő karakterekvannak, amelyek közül 33 megegyezik azASCII-val. Meg kell ugyanakkor jegyezni, hogy a 33 karakter azért különböző: míg az ASCII akocsi vissza– carriage return (CR) és azsoremelés– line feed (LF) kódokat használja, amelyek általában sorvég jelölők az ASCII szöveg fájlokban, addig az IBM még pluszban bevezette azúj sor– newline (NL) ls avissza újsor– reverse newline (RNL) kódokat. A többi 31 vezérlő karaktert terminál- és eszköz vezérléshez használják, többnyire az IBM valamilyen saját hardverére jellemző funkcionalitással ruházta fel.

Az EBCDIC kódolásnak számtalan változata létezik, különböző országokra testre szabva. Néhány Kelet-Ázsiai ország az EBCDIC két byte-os bővített változatát használja, ami megengedi a kínai, japán és koreai karakterek megjelenítést a nagyszámítógépeiken. A két byte-os EBCDIC bővítésnél vannak ún. "shift vagy váltó kódok", a [0x0E,0x0F] amelyekkel a két- és egy byte-os mód között lehet váltani.

Az IBM a sokféle kódtáblát egy speciális névvel azonosítja, ami egy szám, ez aCCSID(Coded Character Set IDentifier – kódolt karakterkészlet azonosító). Sajnálatos módon, azonos CCSID érték mellett is lehetségesek különböző karakterkiosztások. Például, az "új sor" karakter más értékű az/OSUNIX System Services-nél, szemben más EBCDIC alapú operációs rendszerekkel. Ez egy állandó problémát jelent a gépek közötti EBCDIC kódú szövegek átvitelénél.

A kódtábla felépítése

[szerkesztés]

A következő kódtábla, a CCSID 500-as, az EBCDIC egyik változata. A 00–3F között, és FF-en vannak avezérlő karakterek,40 aszóköz,41 anem törhető szóköz,és CA asoft hyphen.A karaktereket azISO/IEC 8859-1-nek megfelelő kódokkal ábrázoljuk:

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0- NUL
00
SOH
01
STX
02
ETX
03
SEL
HT
09
RNL
DEL
7F
GE
SPS
RPT
VT
0B
FF
0C
CR
0D
SO
0E
SI
0F
1- DLE
10
DC1
11
DC2
12
DC3
13
RES
ENP
NL
BS
08
POC
CAN
18
EM
19
UBS
CU1
IFS
1C
IGS
1D
IRS
1E
IUS
ITB
1F
2- DS
SOS
FS
WUS
BYP
INP
LF
0A
ETB
17
ESC
1B
SA
SFE
SM
SW
CSP
MFA
ENQ
05
ACK
06
BEL
07
3-

SYN
16
IR
PP
TRN
NBS
EOT
04
SBS
IT
RFF
CU3
DC4
14
NAK
15

SUB
1A
4- SP
20
RSP
A0
â
E2
ä
E4
à
E0
á
E1
ã
E3
å
E5
ç
E7
ñ
F1
[
5B
.
2E
<
3C
(
28
+
2B
!
21
5- &
26
é
E9
ê
EA
ë
EB
è
E8
í
E0
î
EE
ï
EF
ì
ED
ß
DF
]
5D
$
24
*
2A
)
29
;
3B
^
5E
6- -
2D
/
2F
Â
C2
Ä
C4
À
C0
Á
C1
Ã
C3
Å
C5
Ç
C7
Ñ
D1
¦
A6
,
2C
%
25
_
5F
>
3E
?
3F
7- ø
F8
É
C9
Ê
CA
Ë
CB
È
C8
Í
CD
Î
CE
Ï
CF
Ì
CC
`
60
:
3A
#
23
@
40
'
27
=
3D
"
22
8- Ø
D8
a
61
b
62
c
63
d
64
e
65
f
66
g
67
h
68
i
69
«
AB
»
BB
ð
F0
ý
FD
þ
FE
±
B1
9- °
B0
j
6A
k
6B
l
6C
m
6D
n
6E
o
6F
p
70
q
71
r
72
ª
AA
º
BA
æ
E6
¸
B8
Æ
C6
¤
A4
A- µ
B5
~
7E
s
73
t
74
u
75
v
76
w
76
x
77
y
78
z
79
¡
A1
¿
BF
Ð
D0
Ý
DD
Þ
DE
®
AE
B- ¢
A2
£
A3
¥
A5
·
B7
©
A9
§
A7

B6
¼
BC
½
BD
¾
BE
¬
AC
|
7C
¯
AF
¨
A8
´
B4
×
D7
C- {
7B
A
41
B
42
C
43
D
44
E
45
F
46
G
47
H
48
I
49
SHY
AD
ô
F4
ö
F6
ò
F2
ó
F3
õ
F5
D- }
7D
J
4A
K
4B
L
4C
M
4D
N
4E
O
4F
P
50
Q
51
R
52
¹
B9
û
FB
ü
FC
ù
F9
ú
FA
ÿ
FF
E- \
5C
÷
F7
S
53
T
54
U
55
V
56
W
57
X
58
Y
59
Z
5A
²
82
Ô
D4
Ö
D6
Ò
D2
Ó
D3
Õ
D5
F- 0
30
1
31
2
32
3
33
4
34
5
35
6
36
7
37
8
38
9
39
³
83
Û
D8
Ü
DC
Ù
D9
Ú
DA
EO

Apróságok

[szerkesztés]

A híresnyílt forráskódú szoftverektámogatója és ismert hacker, Eric S. Raymond írtaJargon File-jában, hogy az EBCDIC volt az, amit korai programozók és hackerek általánosan utáltak, mivel rendkívül sok, egymással nem kompatibilis változata volt, ami miatt még programokat is kellett módosítani, és az IBM versenyt támasztott a már általánosan bevezetésre kész ASCII-vel.

Egy másik állandó kifogás volt az EBCDIC-el szemben, hogy mivel követte a lyukkártya kódolást, nem volt zárt a karakterkódok sorozata, szemben az ASCII-vel. A kódtábla alapján látható, hogy az "I" és a "J", valamint az "R" és az "S" karakterek kódjai nem folyamatosan követik egymást, ezért a programokban külön ciklussal lehet csak vizsgálni, hogy egy karakter valóban "betű-e".

Ennek az ellentmondásnak köszönhető, hogy az EBCDIC sok vicc forrása lett. Egy a legismertebbek közül:

Tanár: Így az amerikai kormányzat az IBM-hez fordult egy adattitkosítási szabványért, és ezért elkészült –
Diák: Az EBCDIC!

Egyéb, angol nyelvű hivatkozások

[szerkesztés]