Friday, June 15, 2007

64-bit!

Does that number excite you as much as it excites me? I have finally taken hold of a 64-bit machine at work, giving me a nice test machine for FolderSize. First I had to understand the new file mapping scheme (64-bit DLL's are in the system32 directory, and 32-bit DLL's are in the SysWow64 directory - thanks guys), and the registry remapping scheme (same thing, but with optional reflection enabled by another key...). I knew the Explorer column handler DLL would have to be 64-bit, so it could be loaded into a 64-bit process. That also meant it had the 64-bit "view" of the file system, which is also the real view.

For Internet Explorer in 64-bit, there are actually two Internet Explorer items on the Start menu, right beside each other, but one with a 64-bit suffix. It is not the default browser. For Windows Explorer, there is only the 64-bit version.

The service executable, on the other hand, one might think could be left as a 32-bit exe. This might be advantageous, especially for memory usage. But that doesn't work because it only has the 32-bit view of the file system, which causes some confusion when receiving paths from the 64-bit Explorer. The file mapping system is retarded.

Even the Control Panel, a lowly Property Page dialog, most of which's file size is consumed by my picture, could not avoid the lure of 64-bit. If it stayed behind in 32-bit land, XP would whisk it aside into a "32-bit Control Panels" control panel, safely hidden from the discerning eyes of a 64-bit control panel user. Compiled as 64-bit, it takes its place among a Control Panel of equals.

So now I have 3 32-bit files, and 3 64-bit files to install. What would be great, is if I could package them all into one downloadable file, which then automatically installs the right versions for your system. Basically, the same deal as the "Universal Binary" on the Mac, which packages all executables in one item, and the system knows which one to run. This can make Mac programs twice as large as separate versions, but it makes it so much easier.... things "just work".

But even the latest version of Windows Installer, the official system in Windows to install and register programs correctly, doesn't support one installer for 32-bit and 64-bit platforms. I would have thought you could just mark which bitness each component is, and it would automatically figure things out. Not so. You have to mark your installer as 32-bit or 64-bit, and the 32-bit installer once again hallucinates its own version of the file system. I can't think of any way I can just make one MSI that will install correctly on 32-bit and 64-bit Windows. A workaround would be to make a 32-bit exe, that can ask if it's on a 64-bit machine, and then extract a particular MSI from within itself, and launch that. That should work, but then I have to distribute a suspicious-looking exe instead of a native installer. And it has to do messy things like clean up its own temporary files. Ugh.

Or, I can have 32-bit and 64-bit separate downloads. I'm sure most users wouldn't have a problem with this, but if things can be screwed up, they will eventually be, so why even allow that possibility?

Unfortunately, I still don't have a Vista version of FolderSize yet. Hopefully it will work, but you have to do annoying things like register a schema.

10 comments:

Scatropolis said...

Well it sounds like you're having fun. I upgraded to Vista long ago and can tell you FolderSize is what I miss the most. I'm stuck using tooltips which aren't as fun as they sound.

Keep up the great work.

BlindWanderer said...

I've seen MS embbed scripts in MSI's that do some freaky stuff. Couldn't you check for the existence of SysWow64 (and then against the environment variables)? Maybe read bits of the registry?

jacoborousseau said...

This is a great piece of software.
I hope you add the option to disable Folder Size for specific drives.
That would be awesome.
Thanks!

foldersize said...

blindwanderer:
Yes, there is probably some kind of hack that will work. But it's not that simple. It can't be a 64-bit installer, because that will not run at all on a 32-bit OS. So it must be a 32-bit installer. But then, you can't just check for SysWow64 because it isn't there! It replaces System32! Once I'm a 32-bit installer, I can't put my program in Program Files, because Program Files (x86) is now Program Files!
There are some loopholes to this illusion, but it's not so simple... everything moves around on you.

Jürgen said...

So, how can those of use who suffer from x64-disease get their hands on the 64-bit version? Or did I misunderstand something? You do have a working 64-bit version, right?

I had foldersizes on my 32-bit box, and was just checking to get it for my amd64 box, and now I see it is another piece of (*great*, might I add) software that I won't have due to x64-disease ;p

jure said...

Yep! I'm also wondering where can I download Folder size for 64bit XP...

Jürgen said...

Frankly, I'd really prefer two separate installers to no x64 at all.

Kash said...

I am desperately waiting for a Vista version of FolderSize - best utility I miss.

Is it ready yet? Please?

bilou said...

Isn't it terrible the culture they have there. "next version of Windows....nothing else I can do"

No "Oh boy, we've dumped you guys in the sh*t without thinking. I'll see Steve this afternoon. Heads will roll!"

I'm running Windows 7 Ultimate 7068 and will probably keep it running until I can buy one. So far so good, with a lot of apps, including, unbelievably, good old Winamp 2.6 and TclockEx still chugging, so I can even upgrade my old mp3 server !

But here they have just broken the API and not implmented any code to do the same job.

Tried Fastfolders, which was one of the most succesful solutions for XP/W2K3 (it managed to throttle the folder scanning in a nice way that still left the results ready pretty quick - a list of 10 4 gig folders with thousands of files in would post in less than 15 seconds), but even that seems to have lost the ball on W7. Didn't try Vista - I wrote that system off as a failure the week after its RC1.

7 isn't bad at all for a bloat. You can turn of UAC and anything else nasty, the firewall is pretty effective, though I don't trust it, and very few crashes even at this stage. Only probs so far are occasional Explorer outages, but that has been the rule since Win98 with Explorer.

Good luck with the project. I'll drop by and help a bit when my income exceeds my expenditure.

Libberx said...

Hi
I've been using foldersize for years. You guys have been doing (for a long time) what Microsoft still hasn't done. You do functionality, they do eye candy, too each his own.

I'm having what I think is a registry problem, a conflict of sorts. Today I installed 2.4 and both Notepad++ and Notepad2 were freezing up on me. I had similar problems with other ware (nothing to do with FS) and found that it was Zone Alarm settings that caused it. That's not the case now. Do you have any Idea what it could be/how it could be fixed?

I removed FS and evrything went back to normal.

Thanks

M. Ogilvie