EBCDIC

I informatikk indikerer akronymet EBCDIC (fra den engelske Extended Binary Coded Decimal Interchange Code ) et 8-bits informasjonskodingssystem som brukes i en rekke IBM - produksjonsoperativsystemer , både for datamaskiner i stormaskinklassen (f.eks. z/OS , OS/390 , VM ) og VSE ) og for minidatamaskiner (f.eks. OS / 400 og i5 / OS ). Den brukes også av forskjellige tredjepartsplattformer, som Fujitsu Siemens Computers ' BS2000/OSD , Hewlett-Packards MPE/iX og Unisys ' Master Control Program (MCP) . Den stammer fra den 6-bits binærkodede desimalen , brukt i hullkort og de fleste IBM-tilbehør på slutten av 1950 -tallet og begynnelsen av 1960 -tallet .

Historie

EBCDIC-kodingen, utviklet av IBM mellom 1963 og 1964 , ble avduket for publikum ved lanseringen av System / 360 mainframe-linjen . Det var en 8-bits koding som var i stand til å utvide 6-bits BCD -systemet som da var i bruk betydelig; utviklingen var uavhengig av ASCII , som er en 7-bits koding.

Merkelig nok var IBM også en stor talsmann for standardiseringskomiteen for ASCII-koding. Imidlertid klarte ikke selskapet å klargjøre ASCII-periferiutstyr (f.eks. kortstanser) i tide til System / 360-lanseringen, noe som fikk det til å bruke EBCDIC-systemet som en reserve. På den annen side var System / 360 en stor kommersiell suksess og dette favoriserte en bred spredning av EBCDIC.

Alle periferiutstyr og operativsystemer i IBM-stormaskinklassen, med unntak av Linux på zSeries , bruker EBCDIC-koding og har programvare for oversettelse til og fra andre systemer. Mange maskinvareenheter er også i stand til å håndtere oversettelse mellom flere kodinger; nyere stormaskiner som den nevnte zSeries er utstyrt med maskinvareinstruksjoner, på prosessornivå, for å øke hastigheten på konverteringen mellom tegnsett.

På tidspunktet for realiseringen tilbød EBCDIC fordelen av en relativ enkel datainntasting ved hjelp av hullkort; Siden denne støtten nå er fullstendig foreldet, brukes EBCDIC-systemet i moderne datamaskiner kun for nedadgående kompatibilitet. Faktisk gir det ingen tekniske fordeler i forhold til kodetabeller basert på ASCII-koding som de forskjellige ISO-8859 og Unicode . I likhet med kodesett basert på utvidede ASCII -tegnsett med én byte , tillater ikke de fleste EBCDIC-kodetabeller samtidig bruk av mer enn to språk (engelsk og et andrespråk) i hver database eller tekstfil.

Hvis det kreves full støtte for flerspråklige tekster, kreves det systemer som kan håndtere et mye høyere antall tegn. Vanligvis oppnås dette gjennom passende implementeringer av Unicode-spesifikasjonen. Konsortiet som administrerer spesifikasjonen har foreslått et Unicode Transformation Format ( Unicode Transformation Format ) for EBCDIC kalt UTF-EBCDIC, men det er ikke ment å brukes i åpne utvekslingsmiljøer; Dette formatet brukes imidlertid svært sjelden selv i systemer som er helt basert på EBCDIC. IBM stormaskiner støtter UTF-16- format, men ikke UTF-EBCDIC naturlig.

Tekniske egenskaper

EBCDIC- og ASCII-baserte kodetabeller er ikke kompatible med hverandre. Siden datamaskiner bare kan behandle numeriske data, tildeler begge konvensjonene spesifikke tegn til disse tallene. Derfor tolkes identiske numeriske verdier som forskjellige tegn avhengig av kodesett som brukes. For å bruke data som er lagret i EBCDIC, kreves en konvertering mellom kodesett for å vise informasjonen på datamaskiner basert på ASCII-koding, for eksempel vanlige personlige datamaskiner .

Hvert tegn i EBCDIC-kodingen opptar 8 bits (1 byte ), delt inn i to halvdeler kalt nibble . De 4 mest signifikante bitene, kalt sonering , representerer kategorien som tegnet tilhører, mens de 4 minst signifikante bitene som identifiserer det spesifikke tegnet kalles sifre .

I EBCDIC-kodingen er det en passende samsvar mellom de heksadesimale kodene som representerer tegnene og stansekodene på kortene for disse; denne funksjonen var viktig på det tidspunktet koden ble utviklet. En IBM-puncher kan faktisk kode et 12-linjers kort med maksimalt 2 perforeringer per kolonne, den første i en posisjon inkludert i de tre første linjene ( sonelinjene ) og den andre innenfor de resterende ni (de numeriske linjene ). . Soneinndelingen kan derfor tolkes som en desimalverdi mellom 0 og 3 og den numeriske delen som et siffer mellom 0 (ingen perforering) og 9 (perforering i tilsvarende linje). Den første versjonen av EBCDIC-kodingen svarte på den enkle formelen:

(0xf-soning) "4 + nummer

og definerte bare de 10 x 4 cellene i nedre venstre hjørne i tabellen nedenfor. Soneinndelingen ble tilsynelatende reversert for å tillate alfabetisk rekkefølge av bokstavene.

De første 64 symbolene (00 til 3F) er kontrolltegn , hvorav 33 har tilsvarende i ASCII-kodingen. En relevant forskjell mellom de to skjemaene er tilstedeværelsen av separate symboler for vognretur (CR) og linjeskift ( LF) kun i ASCII-koding, der de vanligvis brukes som linjeavslutninger i tekstfiler; omvendt har EBCDIC-koding to tilleggstegn for dette formålet: ny linje ( NL ) og omvendt ny linje (RNL). De resterende 31 kontrollkodene brukes til forskjellige terminal- og enhetskontrollfunksjoner, hovedsakelig relatert til særegenheter ved IBM-maskinvare.

Det finnes flere versjoner av EBCDIC, tilpasset etter behovene til de ulike landene. Noen asiatiske land bruker en dobbelbyte-utvidelse som lar stormaskiner vise kinesiske, japanske og koreanske tegn. Denne utvidelsen inneholder også passende koder for overgang fra "single-byte" til "double-byte"-modus [0x0E, 0x0F].

IBM tildeler vanligvis hver kodetall den definerer en numerisk kode kalt Coded Character Set IDentifier ( CCSID ). Det skal bemerkes at en identisk CCSID kan forutsi forskjellige tegnposisjoner innenfor en kodetabell. For eksempel kan nylinjetegnet i UNIX System Services på z / OS tilsvare andre numeriske verdier enn i andre EBCDIC-baserte operativsystemer. Denne variasjonen må tas i betraktning for å unngå problemer med overføring av tekstdata i EBCDIC-koding mellom ulike plattformer.

Kodesideoppsett

Tabellen nedenfor viser CCSID 500, en av variantene av EBCDIC-kodingen. I dette arrangementet er symbolene 00 til 3F og FF kontrolltegn, 40 representerer mellomrommet, 41 det ikke-brytende mellomrommet og CA den valgfrie bindestreken ( myk bindestrek ) . Den tilsvarende ISO 8859-1 -koden vises for hvert tegn :

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -TIL -B -C -D -OG -F
0- NUL
00
SOH
01
STX
02
ETX
03
SEL
 
HT
09
BNI
 
AV
7F
GE
 
SPS
 
RPT
 
VT
0B
FF
0C
CR
0D

0E
JA
0F
1- DLE
10
DC1
11
DC2
12
DC3
13
RES
ENP
 
NL
 
BS
08
POC
 
KAN
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
HYGGELIG
07
3-  
 
 
 
SYN
16
IR
 
PP
 
TRN
 
NBS
 
EOT
04
SBS
 
DEN
 
RFF
 
CU3
 
DC4
14
NAK
15
 
 
UNDER
1A
4- SP
20
RSP
A0
til
E2
til
E4
til
E0
til
E1
til
E3
til
E5
ç
E7
ñ
F1
[
5B
.
2E
<
3C
(
28
+
2B
!
21
5- &
26
Og
E9
Og
EA
Og
EB
er
E8
de
E0
de
EE
de
EF
de
ED
ß
DF
]
5D
$
24
*
2A
)
29
;
3B
^
5E
6- -
2D
/
2F
TIL
C2
TIL
C4
TIL
C0
TIL
C1
TIL
C3
TIL
C5
Ç
C7
Ñ
D1
¦
A6
,
2C
%
25
_
5F
>
3E
?
3F
7- eller
F8
OG
C9
OG
CA
OG
CB
ER
C8
DE
CD
DE
CE
DE
CF
DE
CC
`
60
:
3A
#
23
@
40
'
27
=
3D
"
22
8- ELLER
D8
til
61
b
62
c
63
d
64
Og
65
f
66
g
67
h
68
de
69
"
AB
"
BB
ð
F0
ý
FD
þ
FE
±
B1
9- °
B0
j
6A
k
6B
L
6C
m
6D
n
6E
eller
6F
s
70
q
71
r
72
ª
AA
º
BA
æ
E6
¸
B8
Æ
C6
¤
A4
TIL- µ
B5
~
7E
s
73
t
74
u
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
¼
BC
½
BD
¾
BE
¬
AC
|
7C
¯
AF
¨
A8
´
B4
×
D7
C- {
7B
TIL
41
B.
42
C.
43
D.
44
Og
45
F.
46
G.
47
H.
48
DE
49
SJENERT
AD
eller
F4
eller
F6
eller
F2
eller
F3
eller
F5
D- }
7D
J
4A
K.
4B
L
4C
M.
4D
Nei.
4E
ELLER
4F
P.
50
Q
51
R.
52
¹
B9
û
FB
ü
FC
ù
F9
ú
FA
ÿ
FF
OG- \
5C
÷
F7
S.
53
T.
54
U
55
V.
56
W
57
X
58
Y
59
Z
5A
²
82
ELLER
D4
ELLER
D6
ELLER
D2
ELLER
D3
ELLER
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
 

Relaterte elementer

Eksterne lenker