Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


Bi-Endian

Iš Pipedijos - durniausios enciklopedijos.
Jump to navigation Jump to search

Bi-Endian - tai tokia architektūra, kurioje suderintos visos Big Endian ir Little Endian architektūrų problemos, susijusios su visaip besikaitaliojančia baitų tvarka. Teoriškai, jei procesoriaus architektūra yra Bi-Endian, tai reiškia, kad jis yra ir Little Endian, ir Big Endian, priklausomai pagal poreikį.

Šiais laikais nemaža dalis procesorių dirba kaip Bi-Endian procesoriai - tai reiškia, kad vienu atveju procesorius turės baitų tvarką, kaip Big Endian, o kitu atveju - kaip Little Endian. Tai tuo pačiu reiškia, kad jei procesoriui programos bus sukompiliuotos viena sistema, o paleistos kita - tai niekas nedirbs. Žodžiu, atsiranda dar vienas papildomas programų nedarbingumo variantas.

Kadangi jau ir taip su Big Endian ir Little Endian suderinamumais yra nemažų problemų, o negana to, dar dėl tų tvarkų pasireiškia dar kitos papildomos problemos Little Endian sistemose, galinčiose dirbti keliais režimais, tai padarius kelybines architektūras gaunasi išvis didelis bardakas.

Tokia problema gali pasireikšti kad ir paprasčiausiu būdu: parsisiunčiate kokį nors Linux, sukompiliuotą ARM sistemai, o jis kažkodėl nepasileidžia. O kodėl? O todėl ir nepasileidžia, kad sukompiliuotas kaip kokiam nors, pvz., Big Endian, o pas jus kompiuteris ar virtuali mašina pasileidžia kaip Little Endian. Arba atvirkščiai.

Dar prasčiau, kad daugelis tų, kas kompiliuoja sistemas, jų nelabai net ir testuoja, tai būna irgi bajerių - dalis sistemos šiaip, dalis anaip, nes kam gi čia įdomu, ar tenai tas ARM pas jus yra Little Endian, ar Big Endian. Žodžiu, tiktai dar daugiau bardako gaunasi.

Bene pirmi, kurie padarė Bi-Endian sistemas, buvo IBM, kurie kūrė PowerPC procesorių. Kadangi jiems reikėjo suderinamumo su visokiomis skirtingomis sistemomis, tai jie pamąstė, kad gali padaryti baitų parkodavimus pačiame procesoriuje. Rezultate, priklausomai nuo poreikio, procesorius gali dirbti ir su Big Endian, ir su Little Endian kodavimu.

Paskui atsirado ir daugiau procesorių, kurie leido daryti tokius pat fokusus. Čia jums nedidelis tokių sistemų sąrašas: