• Komolytalan
    #81
    Azért kicsit kerüljünk már képbe a mi hány bites ügyben. 8088-as processor, DOS:
    16 bites regiszterek
    8 bites adatbusz
    20 bites címzés
    32 bites fájlrendszer
    10 bites HDD track szám
    6 bites HDD sector/track szám.
    9 bites sector/byte szám.
    Oszt mégis működött, frankón. Az hogy az oprendszer hány bites semmi mást se határoz meg, minthogy a memóriát hány bites címzéssel éri el. Ezt persze a processzornak is tudnia kell, de ennyi. A processzor regiszterei, adatbusz, fájlrendszer, minden-minden hány bitessége ettől teljesen független. Nem kell összeszarni magunkat attól pl ha csak 16 bites regisztereink vannak, és 32 bitet kell címezni, mivel kb 3 db assembly műveletből össze lehet állítani a címet. Nem ettől lesz lassú a Crysis, hanem attól, hogy a winfos kiswapeli az agyát, hogy a játék 2G-s fájlos 1x betöltött adatfájlát cachelni tudja.

    Lehetett a 16 bites oprendszer (DOS) alatt com fileokat írni, amik 64Kbyte memóriát láttak. Meg lehetett exe-t, amik már 640Kbyte memóriát láttak (holott 1024-et kellett volna a 20 bites címzéssel, de hát ilyen az élet, ahhoz már kellett XMS/EMS, ami meg csak 286-on jött be).

    De lehetne arról is beszélni, hogy 32 bites linuxon mit is csinál a PAE kernel. Merthogy ez biztosítja azt, hogy a 4G feletti memória tartományt is ki lehessen használni. Igaz, 1 program továbbra is csak 32 bittel indexelhető memóriát ér el, de ha van 16 gigád akkor mondjuk 4x3.5G belefér (kernelnek meg egyebeknek is kell azért memória). Mindezt 32 bites oprendszeren ugyebár.

    Az hogy 1 fájl mekkora lehet az abszolúte nem függ attól, hogy az oprendszer hány bites. A DOS 20 bites volt, a file pointerek meg 32 bitesek, alapból, már akkor amikor 360KByteos-s floppy volt a menő. Fat32 filerendszerben a file pointerek 32 bitesek, tehát rakhatod 128 bites oprendszer alá is, akkor se fogsz benne 4G-nál nagyobb fájlt csinálni. NTFS filerendszerbe meg XP alatt is csinálhatsz 4Gnál nagyobb fájlt. Persze ha egy fos böngésző ezt úgy akarja, hogy beolvassa az egészet memóriába, és utána egyben kimenti, akkor ott out of memory lesz. De ez programkód gyengeség - 4G memóriát nem foglalunk le buffernek. Aki ilyet tesz el kéne tiltani a programozástól egy életre.