Jump to content

Windows 7 - kālai zin cik bit?


Antons Burvīgais

Recommended Posts

Antons Burvīgais

Tātad vēlētos uzzināt kā, lai zin, cik bit win. mans dators spēj pavilkt. Zinu, ka man tagad ir 32, bet kam jābūt, lai varētu uzinstalēt uz 64bit?

Link to post
Share on other sites
StulbsTuVai...

Tev tur viss skaidri un gaiši uzrakstīts priekšā.

Jautājums-kā tev ar Eng valodu?Liekas,ka pačābīgi....

  • Patīk 1
Link to post
Share on other sites
Baigais Janka
3,2GHz nav 32 bit?
Emm... Tu kauču kā komatu pārnesot no Gigaherciem bitus iegūsti? :) Vārdu sakot - beidz pa tukšo pļāpāt, mierīgi liec 64-bit Windowsu virsū, ja gribi, un u-sjo.
Link to post
Share on other sites

Galvenais pamatnosacījums X64 izmantošanai tomēr ir un paliek RAMs.. ja ir 4GB un vairāk.. tad viennozīmīgi jāliek ir x64. Tava datora konfigurācija atbalsta x64, tā kā.. droši vien liec virsū.

 

btw.. aklajiem pie OS ir norādīts 32-bit :D

Link to post
Share on other sites
Baigais Janka

Nu, uz 1 GB gan nav labi, uz tā 64-bit win tas tomēr stipri līdzīgi sanāk, kā 32 bitu windowsu uzkraut uz 512 MB :) Te nu labāk 32-bitus. Tobiš, priekš 64-biti 2 GB tomēr vajag, ar minimumu tomēr šancēt patīkami nebūs.

Link to post
Share on other sites
Baigais Janka

Tas ir tuvu patiesībai, un principā, tā uz aci mājas apstākļiem, tā var arī rēķināt.

Link to post
Share on other sites
Baigais Janka

Vispār jau tiešs, kaut arī ne lineārs 2x. Bet tuvināti var uzskatīt, ka 64 bitu programma aizņems 2x vairāk vietas, kā 32. Jā, eksakti nebūs, ne visi mainīgie ir integeri, tuvu ne vienmēr alocējamie dati būš intetgeri, ne visās komandās būs konstantes. Bet, atkārtošu - tuvināti tā uzskatīt var droši.

Link to post
Share on other sites

Gibi teikt ka ttiecīgs kompilators pānem to pašu 32 bit mainīgo un 64 bit versijā nokompilē ar 64 bit mainīgo? Neizklausās ticami. Varētu bez "apmēram" un "pietuvināti". No serijas. 32 bitu versijā noteik tas un tad. 64 bit verisjā tas un tas. te liks uz avotu. Tie fīlingi maigi izsakoties iz neadekvāti. Par cik šodien pieGdiena varētu arī tā pārfrāzet: Šodien kasīju kreiso olu un man likās ka krāns ir 2x lielāks ne kā parasti. Tas novērojums laikam saistīts ar datora arhitektu...

Link to post
Share on other sites

Khmm... dīvaini ka neviens no bootā esošajiem programmētājiem negrib normāli šo lietu paskaidrot?

Es zinu tikai pāris glupības, kuras tūlīt izgvelzīšu, kazi atnāks kāds ūbercoderis un nolamās, vismaz skaidrība radīsies :D

64-bitu softā visas variables un pointeri ir 64-bitu tātad tiešām aizņem 2x vairāk.

Bet softs jau nesastāv tikai no variablēm un pointeriem, līdz ar to 64-bitu programma neaizņems x2 RAM

Edited by MārcisB
Link to post
Share on other sites

Mārci! Es rī neesmu programmētājs. Tāds pats diletants kā tu, tikai... Kāpēc programmā uzreiz visiem pinteriem jābut 64 biti platiem? Tā nav dogma uz 64-bit tačkas. Tas ir atkarīgs no kompilatora...

Link to post
Share on other sites
Inspektors Caps

Nolamātājs ir klāt! :D

 

JDat, te nav runa par kopni bet adresāciju. Un 32-bit programmā visi pointeri ir 32 bitu, bet 64-bit programmā 64 bitu. PUNKTS!

 

Defaultais integera izmērs savukārt x64 jeb x86-64 arhitektūrā vēl ar vien ir 32 biti. Tas ir vadoties no tīri reālajām dzīves vajadzībām. C un C++ valodu mainīgais ar tipu "int" arī 64-bit programmā būs 32 bitus liels. Brīnos tikai, ka Baigais Janka to nezināja... :)

Link to post
Share on other sites

Esmu programmētājs, un par 32-bit vs 64-bit atšķirību kaut ko vairāk mazliet saprotu, nekā ierindas cilvēks. :)

 

To, cik daudz vairāk RAM būs nepieciešams, nevar paredzēt. Tas ir atkarīgs no pārāk daudz faktoriem, tostarp izmantotā kompilatora, funkciju skaita programmā, utml. Ja tā ņem ar piemiegtu aci, un izvelkot vidējo aritmētisko, tad, jā - vairāk par 32-bitu softiem būs, bet ne arī 2x vairāk. Tiesa, Windows 7 pats kā tāds kopā ar mūsdienu programmām uz 1GB RAM nebūs ērti darbināms, vienalga cik bitos. Tāpēc arī es iesaku vismaz 2GB RAM, neatkarīgi no nekā cita. Mūsdienās tas arī ir gana lēti.

Link to post
Share on other sites

Nu jā. Pointeri... Tas ir kā iekalts vai tomēr mēdz būt arī citi varianti? Tādi jēdzieni kā FAR POINTER un NEAR PINTER 64 bitu sistēmās vairs neeksistē? Pēc vajadzības gan vieni gan otri piemēeram. Tādi jautājumi, jo neesmu pētījis, bet interesanti.

Link to post
Share on other sites
Inspektors Caps

Tas ir kā iekalts! Ak dies, far un near murgi... Tu no kura gadsimta? :D Segmentācija bija aktuāla 16-bit laikā, kad varēja noadresēt tikai 64 KB. x86-32 jeb IA-32 tā tehniski eksistēja, bet reāli to maz kur izmantoja, jo noadresēt jau varēja 4 GB. x86-64 "long mode" (64-bitu režīms) tādu brīnumu nav arī tehniski, ir tikai normāli "flat" pointeri, jo noadresēt var 16'777'216 TB jeb 17'179'869'184 GB.

http://en.wikipedia.org/wiki/Long_mode

 

Attiecībā par oriģinālo jautājumu par bitiem.. jomajo - Computer, labais klikšķis, Properties.

 

Par Windows versijām un RAM. Parasta lietotāja gadījumā:

* Ja ir vismaz 4 GB, tad gandrīz obligāti Win7 64-bit.

* Ja ir vismaz 2 GB, tad vēlams Win7 64-bit.

* Ja ir vismaz 1 GB, tad Win7 32-bit.

* Ja ir zem 1 GB, tad WinXP 32-bit.

Edited by Inspektors Caps
Link to post
Share on other sites

Caps. No pagājušā protams. :D A kas vainas 20. gadsimtam? Debesis bija zilākas un zāle kreptīgāka... un procesori vienkāršāki. Man ikdiena aprobežojas ar 8 bitiem...

Link to post
Share on other sites

Īstenībā, no programmēšanas skatu punkta, 64-bitu CPU ir visvienkāršāk programmēt (ja mēs ASM līmenī ņemamies). :D

Link to post
Share on other sites

Hm? Tam ar šo topiku nav īsti saistības, bet var jau pastāstīt, ja ziņkārība. :)

 

 

Patiesībā, man tas arī nav līdz smalkumiem skaidrs (gribētos kādreiz izpētīt), bet pamatdoma ir tāda - uz x86 CPU instrukcijas visas ir sadalītas 4 drošības "līmeņos", un CPU arī var strādāt 4 līmeņos. 0. līmenis ir visprivliģētākais, un var izpildīt visas iespējamās instrukcijas. 3. līmenis ir vismazāk priviliģētais, un var izpildīt visierobežotāko instrukciju skaitu. Ja kods mēģina izpildīt kādu instrukciju, uz kuru tam nav tiesību (vai ir kāda cita kļūda), tad tas tiek apstādināts, viss statuss saglabāts stekā, un izsaukts kods augstākā līmenī, kuram tālāk jādomā, ko ar to zupu iesākt. Tādējādi arī tiek realizēti funkciju izsaukumi no zemāka līmeņa uz augstāku (tam pat ir speciāla instrukcija).

 

Mūsdienu OS gan izmanto tikai 2 drošības līmeņus - "kernelis" griežās 0. līmenī, bet "usermode" - 3. līmenī.

 

Tam pa vidu nāk arī virtuālā atmiņa. Doma tāda - CPU ir speciāla vieta, kur glabājas pointeris uz "page table". Šo pointeri usermode kods modificēt nevar, un tas rāda uz atmiņas adresi fiziskajā RAM. Page Table ir jāatrodas fiziskajā RAM, un to nevar izswapot, cik es saprotu. Bet varbūt arī kļūdos. Enīvei, kad usermode kods vēršas pie kādas atmiņas adreses. CPU to vispirms izlaiž cauri page table, lai no loģiskās adreses pārtulkotu uz fizisko (ir arī TLB, kas faktiski ir vienkārši kešs, lai ātrāk strādā). Ja iekš page table nav atrasts ieraksts, tiek izsaukts īpašs kernelmde kods, kuram ir iespēja pielabot page table. Šajā vietā arī dzīvo atmiņas menedžeris, kurš rūpējas par swapošanu.

 

Emm... nu tas tā, rupji runājot. :) Smalkās detaļas droši vien jālasa CPU manuālī. :blush:

Edited by Vilx-
Link to post
Share on other sites

jā, tam klāt vēl pievieno swap uz ārējo atmiņu. Karoč progŗamma redz lineāru atmiņas regionu (max 4gb atmiņa 32 bit mašīnām) ar segmegment register:0 offset un to visu translē par fizisku adresi memory manager, kas strādā jau iekš ring 0. Globāli skaidrs. Ir lasīts. Joki sākas ar IRQ apstrādēm. Nevaru irq iekš niansēm protected režīmā iebraukt. Bet nu tas vis ir kā apkalt blusu. Parastam koderim tas nav jāzin.

Link to post
Share on other sites
Inspektors Caps

Es jau arī no tā paša gadsimta. Jā, zāle bija zaļāka un kreptīgāka :D, bet procesori gan bija... sarežģītāki! Haotiskas un stulbas arhitektūras un instrukciju komplekti. Šodienas x64 un ARM, salīdzinoši ir vienkārši, ērti un daudz funkcionālāki. Tev ikdiena ar AVR? :)

 

Man rodas ziņkārīgs jautājums - kādēļ Tev ir jāzin šādas x86 virtuālās atmiņas nianses? Progām OSā taču ir taisna atmiņa un viss. Rakstīsi savu OS vai firmwari priekš x86? :S

Link to post
Share on other sites

Caps! Os uz x86? Nē. Vienkārši ir arī cilvēki (piemēram es) kuri grib zināt. Kāda pievienotā vērtība? Vaidas sajūtas no zinātkāres apmierināšanas. Uzskati to par fetišu. Ja AVR noliek blakus x86, tad varētu teikt ka man AVR ir ikdiema. Apsolūtā vertējumā arī AVR ir tāda svētdiena nevis ikdiena. Lai arī AVR ASM cienu. Patīk iepist katru iespējamo cloku un atmiņas baitu.

 

Proči sarežģītāki? 8-bitīgie? Jā Motorolas MC68000 nav nekas viegls. 8086 vēl ciešamas ar saviem segmentiem. Kad sākās kosmoss ar 80286, tad man galva uzsprāgā un smadzenes pa visu sienu izšķlīda. Kopējos vilcienos skaidrs process (Vilks ko jaunu pateica tik par 64-bit lietām). Interesantas ir arī nianses tam visam. Pārādi kurš mūsdienās vēl par to interesējas. Bootā max 10 cilvēki? Tas ir daudz vai maz? Mūsdienās ir interesanti saspraust moduļus uz puņķiem un priecāties ka strādā. Vai brīnities kāpēc neiet. Tāpat kā pieslēgt auto pastūzi pie mājas datora utt. Mati ceļas stāvus.

 

Jau kādu laiku ir interese kur nopirkt gaiseni un izšaut visus pokemonus.

Link to post
Share on other sites
Inspektors Caps

Es arī pret pokemoniem un līkiem risinājumiem. :) Vienīgais es neredzu pievienoto vērtību x86 virtuālās atmiņas apguvē. Man nesen ikdiena bija LPC2148, kas ir ARM7TDMI mikrokontrolieris ar 64 KB RAM, 512 KB flash un čupu perifērijas. 32-bit power, bet vienkāršs un efektīvs. Cortex-M3 tagad vēl vienkāršāks un foršāks. Nu super, nu! :) Labāk savu laiku veltīt šādu izstudēšanai, jo no tiem var uztaisīt reālas mantas no nulles. Es tajā projektā no nulles uztaisīju firmwari ar tādu kā pseido-OS tasku izpildi, visus perifērijas draiverus (16550 UART, piemēram) un pat starp iekārtas režīmiem pats darbības laikā ar PLL un BUS reizinātāju mainīšanu pārslēdz CPU un perifērijas BUS frekvences enerģijas taupīšanas nolūkos. Nekādu svešu līku softa librariju, nekā. Tīri nokompilēti 5 KB mana rūpīgi rakstīta korekta C koda. Iekārta ir pietiekoši kompleksa un "gudra", bet strādā "bezotkazno". :) No asamblera gan jēgas šodien ir maz. To pamatā vajag tikai starta konfigurācijai un varbūt pa retam kādās atsevišķās specifiskās vietās vai funkcijās. Citādi C (nevis C++) ir labākais asambleris, jo tas visiem CPU ir vienāds bet reizē ir arī "caurspīdīgs" - Tu zini, ko tieši kompilators iekompilēs un citu brīnumu tur nebūs. Labāk perfekti izstudēt C, kas ir reāli iespējams, jo tā valoda nav apjomīga, atšķirībā no C++ un jaunākiem murgiem. Un pirms kāds nejēga kaut ko iebilst - C nav pilnīgi nekādu problēmu programmēt objektorientēti, kur tas ir nepieciešams. :)

 

Lielākām sistēmām savukārt manuprāt labāk ir apgūt WinNT, WinCE, Linux, BSD, QNX, VxWorks vai citas OS darbības un konfigurācijas principus, un native programmu un draiveru izstrādi, kas atkal dos spēju izstrādāt kvalitatīvas pabeigtas sistēmas ar īstu pievienoto vērtību. Kaut kā tā... :)

Link to post
Share on other sites

Par pievienoto vērtību nav šaubu. Bet mani arī urda ziņkāre - a kā tas viss īsti strādā? :) Būtu laiks, mēģinātu uztaisīt pats savu mazu OS uz x86, vienkārši tāpēc, ka varu. :)

 

Un, vispār, reizēm arī zema līmeņa zināšanas nāk par labu. Piemēram, šī rakstiņu sērija par to, kā darbojas datora atmiņa. :) Piezīmēšu, ka pats to neesmu līdz galam izlasījis - stipri blīvs tas materiāls. :) Ak, jā, tur arī smalki par virtuālo atmiņu pastāstīts, ja kas. ;)

 

Itkā zema līmeņa lietas, kurām nevajadzētu ietekmēt ikdienas dzīvi, bet no otras puses - ja to ņem vērā, var savas programmas performanci uzlabot ar kārtu. Piemēram tas triks, kādā secībā apstaigāt 2D masīvu. Vienā virzienā būs ātri, otrā lēni. Jo nepareizajā virzienā ies "pret spalvu" CPU kešam. Utml. :) Kaut kur bija arī rakstiņš (linku pazaudēju, bet no tā nonācu pie augšupminētās sērijas), kur džeks par to iedomājās, mazliet pārtaisīja datu struktūras (tur kaut kādi koki bija), un uztaisīja algoritmu, kas ar lielāku O-mēru tomēr strādā kudiš ņiprāk nekā "optimālais" algoritms.

Edited by Vilx-
Link to post
Share on other sites

Cortex tas darbs. A atpūsties ta gribās. Kaut vai Juper Ace. Man patīk "videokartes" elegance. Kur nu vēl vienkāršāk? No Os lietām... Bišku te: http://wiki.osdev.org/Expanded_Main_Page Bišku tur: http://www.osdever.net/tutorials/

 

AVR assembleris tā kā saprotams. ARM? Mēģināju iebraukt iekš Raspberry (ARM6). Kaut kas bija saprotams (reģistri). A komandas kaut kā ne pārāk līp klāt smadzenēm. Tāpat jāiebrauc atmiņas adresācijas niansēs un MMU. Vienmēr ir kur augt. Tik laika tam visam nav.

Link to post
Share on other sites
Baigais Janka
"int" arī 64-bit programmā būs 32 bitus liels. Brīnos tikai, ka Baigais Janka to nezināja.
Baigais Janka to zināja, bet bija aizmirsis :) Nu jau divus gadus pilnīgi un nekāda darīšana nav bijusi ne ar Windows programēšanu, ne 64-bitu padarīšanām. Bet vispābā ar visādām specifiskām vidēm nācies saskarties, tai skaitā ILP64, kur, atgādināšu, int ir 64-bit. Bet arī tas bij eksperimentāli - mana OS, kurā kašājos un kašāšos vēl paris gadus, iraid 32-biti :)
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...