What is Vista 64-bit?

Discussion in 'Operating Systems' started by Jacastto, Mar 30, 2009.

  1. Jacastto

    Jacastto Member

    Messages:
    35
    Likes Received:
    0
    GPU:
    Nvidia 9600 GT 512mb
    I was just wondering, what exactly is the difference between a 32-bit OS and a 64-bit OS?

    and what does it take to run it?

    Thanks

    Jacastto
     
  2. IchimA

    IchimA Maha Guru

    Messages:
    1,346
    Likes Received:
    280
    GPU:
    7800XT Asus TUF
    the major diff betwen a 32 bit and a 64 bit OS is that in the 64 bit you can use more then 4 gb of ram. thus making it a bit faster ... at least in theoty.
     
  3. PuddingWagon

    PuddingWagon Guest

    Messages:
    1,087
    Likes Received:
    0
    GPU:
    Gigabyte GTX 670
    Microsoft page on the difference

    You'll need a 64 bit cpu (and compatible motherboard), which is pretty much anyone that came out in the past 4ish years, in order to run it.
     
  4. samusaran1

    samusaran1 Master Guru

    Messages:
    389
    Likes Received:
    0
    GPU:
    BFG 8800GT 710/1970
    Just like it sounds

    64bit installs the OS into 64 linear locations on your C drive which allows the system to boot more smoothly.32 bit installs the OS onto just 32 "bits" or pieces of the hard drive which makes the OS a little more clunky in feel.

    If you have 64 places left on your hard drive, I would definitely go with the 64 bit version but if space is a concern you should just go with 32 bit since it takes up less space
     

  5. gamerk2

    gamerk2 Ancient Guru

    Messages:
    2,108
    Likes Received:
    1
    GPU:
    NVIDIA 570 GTX 1.2 GB

    ????????????????

    You clearly have no clue about computer architecture.

    A OS has to give an address (or memory space) to every single item that requires memory access. For example, that RAM on your GPU eats up some of that address space. Same with certain parts of your motherboard; they all need space in the OS to be addressed.

    A 16 bit OS can handle 2^16, or around 655MB of address space. As you can see, that isn't nearly enough, which is why all OS's since Windows 98 have been 32 bit OS's, which can handle 2^32, or 4GB of address space.

    The problem is, with GFX cards eating 512MB+ of that 4GB, sometimes more, people are finding that there systems, even when installed with 4GB of RAM, will have less to use, as the other components eat up some of the avaliable 4GB address space. (Typically, assuimg a 32-bit OS has 4GB RAM installed, subract your GFX RAM + 256 from 4GB, and thats your avaliable system RAM).

    A 64 bit OS can handle up to 2^64, or over a million GB of RAM (OS sets a hard limit a 64, but can be raised easily enough). Hence, you no longer have to worry about not having all your system RAM mapped to the OS address space.

    The problem, however, is that and software that communicates with the OS must be written in such a way as to support 64-bit addresses, instead of 16 or 32 bit. Even though the CPU can understand both, the OS doesn't. What Vista-64 does, if it encounters a 32-bit program, is it converts all its memory addresses to 64-bit, so the OS knows what to do with the data. 16-bit programs, however, are not handled this way and will not run.

    Drivers are another problem, although less so since Vista-64 has come out. All devices that communicate directly with hardware must be strictly written in 64-bits, as the OS does not have the ability to waste time to convert the addresses for time critical tasks. As such, if a hardware device lacks 64-bit drivers, that device will not be able to be used.


    I hope I've explained this simply enough.



    EDIT

    I'm even going to dig up Computer Arch 101 for you now:

    Lets look at a random 16-bit address as expressed in Hexadecimal format:

    Hex: A65D

    Each value represents 4 bits (hence, 4 values = 16 bit)

    To write a Hex address, you need to go even deeper, down to the binary level. Lets look at the binary representation of 'D', which is 13 written in decimal format:

    1101

    How do we get '1101' from 'D'? Like this:

    (8) (4) (2) (1)

    Starting from the last bit (1), the next bit over is double the previous bits value (hence, if another bit was added to the left, its designation would be 16).

    You follow this logic to get the binary representation of any decimal number:

    Is '13' greater than/equal to the farthest left bit '8'?

    In this case, yes it is, so you get:

    1

    Subtract 8 from 13 to get left with 5.

    Is '5' greater than/equal to the farthest left bit '4'?

    Yes it is, so we get:

    11

    Subtract 4 from 5 to get left with 1.

    Is '1' greater than/equal to the farthest left bit '2'?

    No, so we have:

    110

    Finally, is '1' greater than/equal to the farthest left bit '1'?

    Yes, so we get:

    1101


    Above is an example of how you would convert a single address in a 4-bit system to Hex to Binary.

    The reason I show this is simple: All data the OS uses is in Binary, Hex is something we created so we had a better visual idea of how data is organized.

    Lets take a look at our Hex values again:

    A65D

    If the entire thing were converted, we would get a binary number like this (minus spaces):

    1010 0110 0101 1101

    Now, lets look at a 32-bit address:

    642AA65D, which in binary would be written as:

    0110 0100 0010 1010 1010 0110 0101 1101


    Now, heres the question: how are OS's that are expecting two diffrent lengths of binary addresses? How is the OS supposed to interpret the 16-bit address? Do you just throw 0's in the front? What if that address already has data in it? The OS needs a way to interpret the 16-bit address as a 32-bit address, without any data loss.

    This is what Vista-64 does with 32-bit programs; it converts all data into 64-bit addresses that the OS knows how to work with, while ensuring no data is lost/overwritten/not used.

    As you can see, its a process that does have overhead. As such, any hardware that needs direct access needs to have a driver written in such a way that the OS can understand it without conversion, due to the possibility of a significant time delay (who wants the GFX card to wait while Windows converts its 32-bit address assumed in the drivers to 64-bit?). Hence, why the move to 64-bit was such a failure the first time around (XP-64), as most drivers did not have a 64-bit version and hardware was unable to be used.


    I have no idea why I went into this; I think the above poster just blew up my mind with his comment or something...
     
    Last edited: Mar 30, 2009
  6. samusaran1

    samusaran1 Master Guru

    Messages:
    389
    Likes Received:
    0
    GPU:
    BFG 8800GT 710/1970
    That's not correct at all. In fact, your explanation is full of holes and is indigestible by even the most avid computer builders. It is what has placed the PC market so far behind Macintosh or even Linux.

    Think of a bit in an operating system as a string of information. In a 32 bit OS, you have a total of 32 strings which makes the OS bottleneck on its self. It is short and fat like a stereotypical Italian man from an old country and western movie from the US.

    A 64 bit OS lays all of the strings in a parallel fashion with only 2 or maybe 3 strings in some extreme cases of overlap. This makes the OS much more faster because it is not weighed down by so many over lapping instructions. It is tall and slender like a Stereotypical Russian woman from one of the Cold War movies found in the US.
     
  7. Mineria

    Mineria Ancient Guru

    Messages:
    5,540
    Likes Received:
    701
    GPU:
    Asus RTX 3080 Ti
    A common misconception is that 64-bit architectures are no better than 32-bit architectures unless the computer has more than 4 GB of memory. This is not entirely true:
    • Some operating systems reserve portions of process address space for OS use, effectively reducing the total address space available for mapping memory for user programs. For instance, Windows XP DLLs and userland OS components are mapped into each process's address space, leaving only 2 to 3.8 GB (depending on the settings) address space available, even if the computer has 4 GB of RAM. This restriction is not present in 64-bit operating systems. (This also applies to computers running Windows Vista with Service Pack 1 as it only shows the installed RAM not the usable.)

    • Memory-mapped files are becoming more difficult to implement in 32-bit architectures, especially due to the introduction of relatively cheap recordable DVD technology. A 4 GB file is no longer uncommon, and such large files cannot be memory mapped easily to 32-bit architectures; only a region of the file can be mapped into the address space, and to access such a file by memory mapping, those regions will have to be mapped into and out of the address space as needed. This is a problem, as memory mapping remains one of the most efficient disk-to-memory methods, when properly implemented by the OS.
    • Some programs such as data encryption software can benefit greatly from 64-bit registers (if the software is 64-bit compiled) and effectively execute 3 to 5 times faster on 64-bit than on 32-bit.

    • Some complex numerical analysis algorithms are limited in their precision by the errors that can creep in because not all floating point numbers can be accurately represented with a small number of bits. Creeping inaccuracies can lead to incorrect results, often leading to attempts to divide by zero, or to not identify two quantities as being identical for practical purposes. International Computers Limited added 128-bit support to the ICL 2900 Series in 1974 largely as a result of requests from the scientific community.
    The main disadvantage of 64-bit architectures is that relative to 32-bit architectures the same data occupies more space in memory (due to swollen pointers and possibly other types and alignment padding). This increases the memory requirements of a given process and can have implications for efficient processor cache utilization. Maintaining a partial 32-bit model is one way to handle this and is in general reasonably effective. In fact, the highly performance-oriented z/OS operating system takes this approach currently, requiring program code to reside in any number of 32-bit address spaces while data objects can (optionally) reside in 64-bit regions.


    Currently, most commercial x86 software is compiled into 32-bit code, not 64-bit code, so it does not take advantage of the larger 64-bit address space or wider 64-bit registers and data paths on x86 processors, or the additional registers in 64-bit mode. However, users of most RISC platforms, and users of free or open source operating systems (where the source code is available for recompiling with a 64-bit compiler) have been able to use exclusive 64-bit computing environments for years. Not all such applications require a large address space nor manipulate 64-bit data items, so they wouldn't benefit from the larger address space or wider registers and data paths. The main advantage to 64-bit versions of such applications is the ability to access more registers in the x86-64 architecture.


    Source:Wikipedia
     
  8. gamerk2

    gamerk2 Ancient Guru

    Messages:
    2,108
    Likes Received:
    1
    GPU:
    NVIDIA 570 GTX 1.2 GB
    I now know you know nothing about how an OS works.

    From Wikipedia:

    The first sentence being the most important. Its all about the size of the registers that hold the data. Hence my 16-bit/32-bit example. A 32-bit memory location would fall outside the bounds of the 16-bit register sets, and the 16-bit memory location would need to be converted to a standard 32-bit format. Thats why I went so far to show how two addresses would look in binary terms (how it would actually be referenced by the machine itself).

     
    Last edited: Mar 30, 2009
  9. MikeMK

    MikeMK Ancient Guru

    Messages:
    11,106
    Likes Received:
    108
    GPU:
    Nvidia RTX 4090
    Actually, he is near enough spot on with his explanation, and its a pretty detailed example he gave. I am no fantastic expert when it comes to this, but from what I know it has everything to do with the binary code string a CPU can handle in one chunk, but the OS has to support/under stand this itself too.

    I have a really good article from custom PC explaining how 64bit works - if u fancy a read, I can PM it to ya :)
     
  10. MikeMK

    MikeMK Ancient Guru

    Messages:
    11,106
    Likes Received:
    108
    GPU:
    Nvidia RTX 4090

  11. Rochin

    Rochin Ancient Guru

    Messages:
    1,941
    Likes Received:
    1
    GPU:
    EVGA GTX460 EE 1GB


    Wow how can you be so clueless and end up on a computer forum?
     
  12. gamerk2

    gamerk2 Ancient Guru

    Messages:
    2,108
    Likes Received:
    1
    GPU:
    NVIDIA 570 GTX 1.2 GB
    I admit i'm not a teacher, but I did as best as I could, considering I had to remember computer arch 101 :D

    It all comes down to how much data you can pass at one time. Anything larger, and you get overflow, anything less, you get underflow (and you need to convert).

    Seriously, look at the first example samusaran1 gave and tell me that makes sense?
     
  13. Nato.dbnz

    Nato.dbnz Ancient Guru

    Messages:
    3,263
    Likes Received:
    0
    GPU:
    5870 Crossfire
    samusaran1 just gave me 2 massive lols.

    Thanks!!
     
  14. gamerk2

    gamerk2 Ancient Guru

    Messages:
    2,108
    Likes Received:
    1
    GPU:
    NVIDIA 570 GTX 1.2 GB
    I gotta head out for the day, but its nice to know I'm not the only sane one left.

    And if any of my explanation can be cleared up a bit, feel free to do so. Just don't butcher it too much, k? :D
     
  15. icywind32

    icywind32 Master Guru

    Messages:
    687
    Likes Received:
    0
    GPU:
    ati 6970 2gb
    i r LOL >.> wrong wrong wrong
     

  16. must_kill_ati

    must_kill_ati Maha Guru

    Messages:
    1,268
    Likes Received:
    9
    GPU:
    6800 XT
    .....!!! .....

    Wow.

    Dude.

    O.K. I'm not going to use a single computer term in explaining the benefit here. Obviously, it won't be technical - and will leave a hefty chunk of explaining left to do...but that's why the people who have a clue go to college for most of a decade to learn about it.

    You're on a cart in the hospital, one piece of you anyways. Your arms, ears, fingers, toes, and other small chunks of you are waiting near the accident site...but it's ok, you can be reassembled. For some reason, each piece has to be brought to you in a different ambulance, there are 32 pieces waiting to get through rush hour traffic.
    Which route should they take? There's the through town route...it has 32 lanes...good thing is the speed limit is pretty high. There's also the highway...same speed limit, but 64 lanes for each of those ambulances to choose from. Now based on the fact that it's rush hour, your bleeding, and time may be critical...which to choose?
    All the pieces are going to get there no matter the route...even if you put them in station wagons, police cars, ambulances, or F1 race cars (representing the speed of your hardware). It's all about the speed and the traffic on the way there.

    Take your pick.
     
  17. gamerk2

    gamerk2 Ancient Guru

    Messages:
    2,108
    Likes Received:
    1
    GPU:
    NVIDIA 570 GTX 1.2 GB
    It has nothing to do with "lanes"; I have no idea where that came from. The number of bits refers to the size of the registers, and thus, the amount of data they can send to the CPU. 64-bit implementations also include 64-bit addressing, which allows for 2^64 bytes of RAM (16 EB)

    Heres a decent link, its for the PowerPC arch, but its still valid:
    http://www.ibm.com/developerworks/library/pa-microdesign/

    And for the record, I currently have a Masters in Computer Sciences, and work with customized machines (ie: spend a lot of time converting programs to work on diffrent architectures) at a major multinational.


    EDIT


    Here's a really easy way to explain why more bits = more address space:

    N^x

    Where N = The possible number of values a bit can be
    Where x = The number of bits a register can hold

    N = 2 for all binary computer systems, so for a 32 bit system, we get:
    2^32 = 4096GB

    Now, what does that actually mean? That number represents the total number of possible addresses (expressed in binary format) that it is possible to create using 32 characters of either '0' or '1'.

    Example: 2^4 (a 4 bit system) = 16; the total number of combinations of '0' and '1' values for four bits.

    0000 (0)
    0001 (1)
    0010 (2)
    0011 (3)
    0100 (4)
    0101 (5)
    0110 (6)
    0111 (7)
    1000 (8)
    1001 (9)
    1010 (10)
    1011 (11)
    1100 (12)
    1101 (13)
    1110 (14)
    1111 (15)

    Now, what if we had 18 bytes of RAM, and wanted to use it all? When our CPU would try to write to the 18th memory address, we would get:

    0011 1111 (3 + 15), or '3F' in Hex. We need at least 6 bits to write to that addressm but our CPU can only handle 4, as such, every address outside F (15 in decimal) can not be used. (Note, for arithmatic purposes, you can add two values from 2 registers, but you can not do this to extend the address space without OS support).

    As such, by increasing the size of the registers (the number of bits they can carry), you not only increase the number of addresses in the address space, you can also carry larger values, and remove steps from mathamatical computations (see the link I poseted above in this post).


    I hope this makes things more clear.
     
    Last edited: Mar 31, 2009
  18. Flukester

    Flukester Banned

    Messages:
    1,499
    Likes Received:
    0
    GPU:
    eVga GTX 260 Core216 896M
    Who cares what the difference is? The point is ALL software/games included are 32 bit. There is no logical reason anyone would run a 64bit OS because all you are doing is running everything in compatibility mode. Drivers suck too. When games begin evolving to 64bit then I can see a reason, but all concentration from developers is on 32bit not 64bit. Don't be another sucker to fall for "Go for 64bit". Stick with what's current.
     
  19. aircool

    aircool Don Aircooleone Staff Member

    Messages:
    13,763
    Likes Received:
    30
    GPU:
    Zotac GTX 560 Ti 448 Core
    All software is 32 Bit, not really.

    Drivers suck? By far not, if not at least the same stability compared to a 32 Bit version.

    You wont be running everything in 32 Bit compatibility mode mainly because now there is a lot of software which has native support for 64 Bit operating systems.

    Stick with whats current yet you say 32 Bit IS? I'd disagree condier the expanding volumes of users now using it (even retailers selll machines with Vista 64 Bit on now).
     
  20. gamerk2

    gamerk2 Ancient Guru

    Messages:
    2,108
    Likes Received:
    1
    GPU:
    NVIDIA 570 GTX 1.2 GB
    As i explained in my latested edit post, that is not true. When dealing with large interger values (IE: RENDERING), you can store values in a single 64-bit register as opposed to 2 32-bit registers. As you remove an extra load and add function, every time you add two 64-bit integers, you cut your computational time IN HALF. Thats a fairly big deal. Drivers have largly caught up anyways, and are a minor issue at this point.
     

Share This Page