5 ms·
This is a terrible article. > The main gigantic upside of a 64-bit process is the ability to support more than 2 GBytes of RAM ... Since only 1.6% of Backblaze
by shawnz 9y ago
This is a terrible article.
> The main gigantic upside of a 64-bit process is the ability to support more than 2 GBytes of RAM ... Since only 1.6% of Backblaze customers have 2 GBytes or less of RAM, the other 98.4% desperately need 64-bit support, period, end of story.
This would only be true if all those Backblaze customers were only running one process on their machines. With PAE, A 32-bit system can support more than 2 GB, just not a 32-bit process. And actually, there are workarounds available to enable even that.
> And remember, there is no downside.
There is a downside. 64-bit systems consume more RAM since every pointer and word is double the size. This could mean a performance penalty due to more swapping too.
> Because there is zero downside, the first time it could, Apple shipped with 64-bit OS support.
No, Apple did this because they are in control of the hardware their OS runs on, so they can ensure that everyone is supported. Microsoft don't have that luxury. Even then, Apple was still building for 32-bit just 5 years ago. They also weren't first to support it as the author seems to imply -- 64-bit Windows XP was available before OSX even ran on Intel CPUs.
> There are a variety of security features such as ASLR (Address Space Layout Randomization) that work best in 64-bits. The 32-bit version is inherently less secure.
Yeah, in the sense that it's easier to guess a 32-bit long number than a 64-bit long number. It's still unfathomable.
> Supporting both versions is complicated. The more data our customers have, the more momentarily RAM intensive some functions (like inheriting backup state) can be. The more data you have the bigger the problem. Backblaze customers who accidentally chose to disable 64-bit operations are then going to have problems.
Has Backblaze honestly ever had this problem, where 2GB of RAM was not enough to reliably find a customer's backup state? That seems ridiculous to me.
- likelynew 9y ago> No, Apple did this because they are in control of the hardware their OS runs on, so they can ensure that everyone is supported. Microsoft don't have that luxury. I don't think Windows 10 supports any of the 32 bit only processors. AFAIK, all Intel and AMD processors in last 10 years has 64 bit support. Update: Another user(geofft) mentioned debian analysis which confirms my point(albeit it says, none in last 13 years): https://news.ycombinator.com/item?id=14524215 https://news.ycombinator.com/item?id=14524215 Update 2: Looks like I am wrong. See comments below it.
- Stratoscope 9y ago> I don't think Windows 10 supports any of the 32 bit only processors. I have Windows 10 32-bit edition running on a Fit-PC2 with an Intel Atom Z530. I believe this is a 32-bit-only processor. I can't say it runs well with only 1GB on this old box - I'll probably put Linux on it instead - but Windows 10 definitely boots up and runs. http://imgur.com/a/J9fGh http://imgur.com/a/J9fGh (screenshot) http://www.fit-pc.com/web/products/fit-pc2/fit-pc2-2i-specifications/fit-pc2-specifications/ http://www.fit-pc.com/web/products/fit-pc2/fit-pc2-2i-specif... http://ark.intel.com/products/35463 http://ark.intel.com/products/35463 (edited to include information about this 32-bit system)
- theandrewbailey 9y agoThe existence of a 32-bit Windows 10 is not in question. 64-bit x86 CPUs will happily run a 32-bit OS.
- detaro 9y agoEDIT: nvm
- deleted 9y ago[deleted]
- spatulon 9y agoGiven that the article above is talking about the 32-bit version of Windows 10, I think 'likelynew is aware of that. You misunderstood the question, which is: will the 32-bit version of Windows 10 even run on a CPU that predates x64? (The answer seems to be yes - according to Microsoft's list of requirements, it should run, say, on a Pentium 4).
- giovannibajo1 9y agoI have failed multiple times to reliably use a Linux desktop with 1Gb of ram. Even the most stripped down Ubuntu version seems untested for this setup; for instance, the background process that repacks the DEB database easily peaks over 1Gb, and you get the computer swapping at a random point. On top of that, also browsers have a really hard time working with that constraint.
- wolfgke 9y ago> This would only be true if all those Backblaze customers were only running one process on their machines. With PAE, A 32-bit system can support more than 2 GB, just not a 32-bit process. At least under the consumer versions of Windows PAE is only supported for up to 4 GB of RAM - partly because of company policy and partly because some drivers turned out to be unstable when physical addresses above 4 GB are used (source: https://en.wikipedia.org/w/index.php?title=Physical_Address_Extension&oldid=781807734#Microsoft_Windows https://en.wikipedia.org/w/index.php?title=Physical_Address_...).
- odonnellryan 9y agoYeah was going to comment: it's pretty-much 4GB for 32 bit windows machines.
- wolfgke 9y ago> Yeah was going to comment: it's pretty-much 4GB for 32 bit windows machines. ... for the consumer versions of Windows. The server versions of 32 bit Windows support more.
- odonnellryan 9y agoGood point.
- brianwski 9y ago> Has Backblaze honestly ever had this problem, where 2GB of RAM was not enough to reliably find a customer's backup state? I'm the author of the article and wrote the Backblaze Windows desktop client. The problem isn't "finding" the customer's backup state, it IS the customer backup state. The "backup state" is a list of every filename that is backed up, with the size of the file, a SHA-1 of the file, and the location of that file in the Backblaze datacenter. This is a bit over simplified, but while your computer is backing up, as a new file is transmitted from your laptop to the Backblaze datacenter we append one line to the "Backup State". That's EASY to do and takes a very small amount of RAM and Backblaze is efficient. The first problem occurs when a customer purchases a new laptop and doesn't want to re-upload all their files from scratch, they want to "Inherit the Backup State". All of it at once. Backblaze was originally written 10 years ago, so for an average customers this all fit inside of a "reasonable" amount of RAM, let's say 50K of RAM. But the Inherit Backup feature itself caused an interesting problem. You are now carrying around all of the "baggage" of the previous file locations from all of your laptops going back 10 years. The logs only get longer, and we need all the logs to replay back everything that has occurred. So in the first year it is 50K. Then after 10 years of Inheriting it 5 laptops and 10 years later it is up to 500K of RAM. Still just fine. The second problem is that the amount of data in the world has skyrocketed in the last 10 years, and some of our customers have 50 TBytes of data backed up with Backblaze (for $5/month). Again, all fine and all works, but when that customer goes to Inherit the Backup state we find it has passed 2 GBytes in size. Again, COMPLETELY FINE and the same original code still works -> but only on a 64 bit newer laptop which describes 98% of our customers. I could rewrite the code, but I have to choose what to work on each day. Rewriting this code to work with 2% of our customers means that some OTHER feature does not get built.
- billforsternz 9y agoI don't understand. It goes from 50k to 500k, sure. But then suddenly 2g plus? (growth factor is 10 in stage 1 then 4000 in stage 2)
- brianwski 9y agoIt's 500K or less for "most customers", but then for a few of our largest data customers it 2 GByte. Think of a bell curve where the average is 500K but the top 10% are above 2Gbytes. A randomly interesting part is it isn't really the size of the backup, it is the NUMBER OF FILES in the backup. So a customer who has 1 billion 1 byte files is only storing 1 GByte of data, but the "Backup State" is more like 40 GBytes (for each of the 1 byte files we store a 40 byte SHA1).
- xorblurb 9y ago> There is a downside. 64-bit systems consume more RAM since every pointer and word is double the size. This could mean a performance penalty due to more swapping too. 64-bit systems can run 32-bit programs.