Į pradžią > programavimas > 128 bitų Operacinė juda į priekį (128bit OS developer blog #1)

128 bitų Operacinė juda į priekį (128bit OS developer blog #1)

Intel AVX, IA-128(Intel Iatanium), Intel x32-64 developer manuals, bei C#, C#, C# … Tūkstančiai eilučių C# kodo(tiksliau – jau turbūt ir dešimtimis tūkstančių eilučių galima būtų skaičiuot :D ).

v0.99 pre alpha versiją jau turim :D :

1. v 0.99 pre-alpha versijos galimybės:

Tvarkingai veikia neveikia nei vienas režimas :D .

+/- daugmaž veikia IA-32ee, bei IA-32e režimai, ‘legacy mode’ bloke.

8 lygių puslapiavimo lentelėje(PML8…PML4, PDPT, PDT, PT) 80 proc. atveju adresai nepasiklysta :D

aprašyta ~600 cpu komandų ir jų variantų, iš jų +/- ~30 tvarkingai realizuotos (570 left :D )

Galutinėje versijoje turėtų būti realizuota ~200 komandų ir jų variantų, beta versijai pilnai turėtų pakakti ir ~50 veikiančių komandų :D .

Kalbų palaikymas – angliška versija dar labai smarkiai buksuoja, tad kol kas tik mono-language support (sorry, englishman :D ).

————

Final release date ????-??-?? ;D. O šiaip tai – Summer, 2010 :D . (I guess??? :D ).

  1. Bill
    2010.04.20 0:17 | #1

    Neteko girdėti apie IA-128 :? Galbūt turėjai omenyje IA-64..? jei ne prašau apšviesti…

  2. Xamas
    2010.04.20 12:43 | #2

    Teko pasirašinėti laiškai su MS darbuotojais dėl kelių dalykų, tai vienas iš jų buvo 128 bitų generation.

    128 bit generation yra IA-128 ir x86-128(aka x32-128, dalinai aka kaip IA-32ee).

    standartiniai Pentium 4 CPU buvo x86-32 (IA-32)
    Core 2 Duo ir pan. yra x86-64(IA-32e, bet NE IA-64).

    IA-128 pakeis IA-64, o x86-128(aka IA-32ee) – x86-64(aka IA-32e)

    32e šifruojasi kaip extented 32, o 32ee, “extra extended 32″.

    32e ir 32ee pavadinimas likęs tas pats, kadangi tai iš tiesų tas pats x8086 16 bitų cpu.
    IA-32 turi daugiklį 2, IA-32e – daugiklį 4, IA-32ee – daugiklį 8.

    Taip pat 32, 32e ir 32ee naudoja tą patį atminties(ram’ui ir stekui) plotį 32 bitus.

    O visa adresacija vyksta tiesiog imant atitinkamai vieną, dvi arba keturias fizines eilutes iš ram.

    Patys registrai – čia jau kitas reikalas, jie yra tokio dydžio kokis ir pavadinimas(EAX prefix – 32 bitų, REX prefix/MMX – 64 bitų, VEX prefix/XMM – 128 bitų, AVX/YMM – 256 bitų).

    Visai kitas dalykas su IA-64 etc.

    Nors iš pradžių ir turėjo varganą 32 bitų supportą, vėliau IA-64 jo atsisakė.

    Esmė ta, kad šitie procesoriai yra daug brangesnė technologija su visa architektūra, kadangi ji dirba be daugiklio.
    Tai leidžia pasiekti didesnį greitį dirbant su tos architektūros operacijomis(x86-128 architektūroje nusiskaityti 128bitus iš ram reikia kažkas tai 9 operacijų(kreiptis, 4 sumavimai, 4 skaitymai), o IA-64 ir IA-128 tai padaro vienos operacijos metu.

    Tačiau IA-64 ir IA-128 neturi compatibility darbo režimų.
    Na bet iš esmės tai yra logiška, nes tokie CPU naudojami tik serveriuose.

    Iš 128 bitų x86-128 paminėčiau AMD Buldozzer ir Intel Sandy Bridge technologija paremtus antros kartos procesorius.

    Iš IA-128 paminėčiau Intel Kittson procesorius (2014m).


    Kadangi tai future-gen technologija, tai informacijos ieškant tenka labai daug laiko gaišti, ypač laukiant atsakymų emailais. Anyway,
    Visas tas 128bit generation, iš MS pusės 2009 rugsėjo mėn buvo pasakytas taip:
    “we’ll definitely have 128 bits in Windows 9, and probably will have a version of 128bits in Windows 8″.

    Kas pagal MS prognozes metuose būtų – 2014-2017.

    O bet tačiau, kadangi viskas technologijų pasaulyje sensta taip greit, tai 128 bitų apps’us/OS’us rašyti nė nepastebėsim kaip pradėsim :D .

    Tiesa, apple’as ar kas ten toks, jau sukūrė 128 bitų failų sistemą, su pavadinimu ZFS(ZettaByte File System), kuri teoriškai galėtų operuoti ir iki 2^128 erdvėje.

    O šiaip plačiau parašysiu/parodysiu su šituo 128 bitų OS emuliatoriumi, kurį vasarą relyzinsiu viešai(bent jau planuoju).

    Tiesa, prie 128 bitų atitinkamai turi ir įranga atpigti, nes vien ram’o waste’as ties 128 bitais yra kažkas tai 64 gibibaitai(čia irgi nepadariau klaidos žodyje), vadinasi tai aktuolu tuose kompiuteriuose, kuriuose yra 512GiB-1TiB ram’o.
    Šiuo metu tiek yra superkompiuteriuose.

    Tiesa, nemažai informacijos ir steal’inau būtent iš ’supercomputers’, nes ’supercomputers leaving generation’ yra ‘current desktops generation’.

    —-
    Tikiuosi atsakiau į klausimą.

  3. Joe
    2010.04.20 16:12 | #3

    kam tiek dirbt (“tiksliau – jau turbūt ir dešimtimis tūkstančių eilučių galima būtų skaičiuot”) ir kurt virtualia masina? :D

  4. Xamas
    2010.04.20 17:49 | #4

    1.Įvaldyti C# (n00b -> g33k). C#’o yra ir darbe, tai veiklos sritis bus platesnė.
    2.Tokį dalyką padaryti yra ir hobis – ketinu ‘as a freeware software’ šį emuliatorių padaryti. O kadangi, tokių programų poreikis YRA, tai nebus vien tik vėjais viskas.
    3.Perprati ‘nowadays’ ir ‘next-gen’ CPU, RAM, M/B etc. architektūras iš fizikinės pusės, iš primityvų pusės.
    4.Mokėti programuoti ne tik 16 bitų assembleriu, bet ir 32, 64 ir 128 bitų MASM.
    5.Suprasti vektorines technologijas(Intel AVX).
    6.Be abejonės tai ir darbas universitete kurį ‘prastumsiu’(:D) dviejuose dalykuose.
    7.Turiu dar nemažai planų kur visą tai panaudosiu per ateinančius pora metų, taigi toks kūrimas turi prasmę.
    —-
    Ir anyway:
    Php, C++, Java SE, Zend+Smarty, C#, ASP.NET, Python, Django.
    Tai eilutė kalbų/technologijų/frameworkų kuris mano nuomone yra ‘full pack’ to, ką reikėtų puikiai mokėti(ne tik suprasti) norint save laikyti ‘very advanced developer’.

    Iš ne programavimo dalykų – CISCO CNNP taip pat turėtų turėti kiekvienas ‘very advanced engineer’.


    Asmeninis ‘Weak point’as po C#’o beliks tik Python.

    Neskaičiuoju visų kitų techologijų kurias reikia bent jau padoriai suprasti.

  1. Atsekčių dar nėra.
*