TWiki

Twiki Announcment

Welcome to my personal Wiki powered by Google Sites. I named it TWiki because T is a special letter for me and my family. It is not powered by TWiki anyway! Have fun!
Computers‎ > ‎

Windows sucks

Why Microsoft Windows sucks? (I am still working on this article, comments will be warmly welcomed! I will be more than happy to improve this article. Please DO read the conclusion. DO NOT take it for granted, it's not simply debasing Windows. Win-Win situation is something I would like to see.)

1. User Data transfer (reinstall, upgrade, migrate between different machines)

Linux
Simply keep /home on a separate partition or keep an image by using Clonezilla/partimage, you can even tar your home folder directly and copy it over (boot from Live USB/CD is an safer option tar zcvfp dest source --exclude=~/.google...;-)). It's so easy to switch distribution or change your hard disk. For apps, APTonCD offers the backup to all installed packages on the fly, unless you clean all the package caches in /var/cache/apt/archives by using apt-get clean command.
Note: The UUID may change if you replace any hardware, for example a larger and faster Hard Disk. Remember to change the UUID reference in /boot/grub/menu.lst and /etc/fstab.

To reinstall a Debian based Linux distro, simply export all installed packages to a list by executing the command on the source PC:
sudo dpkg --get-selections > installed
Restore all packages on the newly installed destination PC:
sudo dpkg  --set-selections < installed
sudo apt-get dselect-upgrade

Get yourself a cup of tea or coffee, then it's done!

For Arch Linux users, check Backing up and retrieving a list of installed packages for quick restoration

Mac OS X
Migration Assistant offers pain free migration over wireless network or FireWire! From Time Machine backup or other disk, To another Mac. For example, you replace the internal HD with a bigger and faster one. Re-install OS X and plug the old HD to your Mac over USB, all user settings and apps can be migrated seamlessly. Even dummies can easily migrate. This clearly profits from its UNIX ancestors.

For example, I want to replace your Macbook HD (80G Seagate Momentus 5400.3) because it's slow and small capacity. I replaced it with a Seagate Momentus 7200.3 250G one. What I did is replace the HD, made a external USB HD with the old HD, reinstalled Mac OS X Leopard. Then plug the external HD, Migration Assistant will pop up and ask you to migrate all apps and user settings over over wireless. Cool! I went out for a walk and then it's done^_^. Of course you can use tools like CCC to copy the whole OS over to the new HD. I just don't bother, I want a fresh OS X.

Windows
To be honest, do you find built-in Files and Settings Transfer Wizard useful at all? How do you feel like a Windows version upgrade (XP to Vista, XP to 7)painful or pain free? Tell me the truth:)

2. Painful Windows patches (Update/Service pack, leftover and reboot)

If we install Microsoft Windows from scratch on a new box or laptop. Probably, you need to spend at least half a day before it is usable. One of the annoyances will be endless reboot. Why can't Microsoft reduce the times of reboot? It's stupid to bounce over and over.

Update leftover, garbages, ignore this if you have a big enough disk. While I think  nobody likes to keep junks at home, right? So you need to manually delete the craps:

  • %systemroot%\ServicePackFiles (if u have ever applied any service pack manually)
  • %systemroot%\SoftwareDistribution\Download
  • If u r not going to uninstall any HF later, delete %systemroot%\$hf_mig$ and %windir%\ any $NT*$ folders.
Calculate the size of these useless files. Of course they are just a small part of the craps... Also, consider the frequency that Microsoft releases hotfixes and Service Packs...

3. File System

I am used to the *NIX file system and directory structure. As I am a loyal user of GNU/Linux (Since 2001) combined with Mac OS X.

*NIX has a simple and clear directory structure, everything is under Root /, user profiles under ~ (/home/user) clean and tidy, easy to manage. Less fragmentation compared with FAT32/NTFS. Although officially, ext2/ext3 is supposed to be fragment-free. But then why there is still e2defrag? And in ext4, there is an online defrag tool e4defrag:)

Once M$FT's WinFS in 'Longhorn' - code name for Vista drew some of my attention. But the disappointing truth was that there was no such WinFS in Vista or Server 2008. Only a higher version of NTFS.

NTFS is all right. However, it is definitely not superior enough to compete with ext3/ext4/Btrfs/HFS+ or ZFS...

Now that Oracle buys Sun, ZFS and Btrfs will probably be into something else, which is the king of file systems.

4. Upgrade (I need rolling release)

We all know that some great GNU/Linux distros like Gentoo, Arch Linux and Debian sid are rolling releases.

They have the concept of rolling upgrade which means, whenever there is a new release or version, we can just upgrade from existing installation, all configurations and software packages will be upgraded automatically, dependencies will be resolved by package management. Even those distros donno support rolling completely, it's still easy to keep all user data/configurations by simply backing up ~(/home/user) folder.

However, whenever we upgrade Windows nothing seems to be smooth.

Mac OS X does a fairly good job as well. Migrating user settings/data is an easy job via Migration Assistant.

5. Stability, Reliability and Security

I don't want to discuss any more about the stability, reliability and security difference between *NIX and Windows. We all know the story. *NIX and Windows, totally different.

6. BSOD (Blue Screen of Death)

One more thing about bloody Windows, BSOD. System hang! There is no way to recover unless hard reset, power off and on.

I have never experienced any BSOD, system hang on Mac OS X so far, 3+ years. Aqua on top of Darwin seems to be well optimized, very stable.

Sometimes X11 (also known as X Window System, X) on Linux crashes or hangs. I can still kill the x session and restart it. The system is still alive. DO it via either pseudo consoles or SSH to recover. Commit the changes to the file system by using sync, data may still be lost but at least it's still alive, there is chance to recover data.

SysRq key is also an alternative. http://en.wikipedia.org/wiki/Magic_SysRq_key

I have experienced unexplained Linux system hang and the workaround above doesn't work. Not very often, and I knew it's because I did something silly like compiled the new video card driver or things like that.:)

Anyway, it's my comment. I still need at least 1 copy of Windows to play games and run some particular apps sometimes. My wife and parents, they can use Ubuntu or Mac OS X to do their daily surfing or jobs without problem:) Great! 

7. Internet Explorer (devil)

IE seems to become a part of the fatty Windows kernel now, at least a very important part of the whole operating system. IE can be a severe security threat to Windows because of Browser Help Object. It is easy to inject malicious code by making use of the BHO, and run the codes inside other processes. What I can't understand is why Microsoft allows IE to be such a big potential threat to the whole operating system. The architecture of Windows is really ridiculous. I have never heard that browser can cause such a big risk in *NIX world. I did remember there were a lot of buffer/stack overflow or things like that for Linux, and by doing that someone can get root privilege. Most of them were kernel or device, device driver related. Browser? Never heard of, maybe I am ignorant...

So, who is to blame? Microsoft Windows architect?

I believe IE is losing its market share anyway. Although a lot of Internet banking or web apps still rely on ActiveX, as a result they are only compatible with IE and Windows(Run ies4linux, IE in WINE, I don't think it's a good workaround, we don't count running Windows in Virtual Machines either). I can't say IE is totally crap, but in fact it is very stupid and crappy. I have to use it because of web conferencing tool, Siebel CRM and netbank. But I normally run IE in a Guest Windows XP running in VirtualBox or VMWare Workstation/Fusion.

Better choice out there in the market:

Firefox, Opera, Safari, Mozilla Seamonkey (All cross platform), Chrome (Mac and Linux version available soon)......

8. Registry

The concept Registry should be a great idea and innovation, but Microsoft's implementation turned out to be crap. Back in Windows 98/98SE era, Registry was easy to get overstaffed and causes Windows to crash a lot. It's still a core of the Windows OS, even Windows Mobile. So many garbages in registry, normally don't try to clean up, just forget about it.

I prefer text file based configuration implementation in *NIX. That's far more reliable and straightforward.

9. No native Multi-Workspace (virtual desktop)

We all know that almost all X11 window managers provide out-of-the-box workspace, like GNOME, KDE and XFCE, it is a key feature to improve productivity to most people. Also, in Mac OS X, Apple introduces Spaces which is a improved Workspace equivalent on OS X.

However, the more expensive Microsoft Windows doesn't offer anything like that. Well, in power toys and sysinternals toolkit we can find apps to enable workspace like feature. Most of them sucks, like desktop. Some 3rd party open source/freeware do a fairly better job, for example: VirtuaWin and Dexpot. After all, they are not native feature and don't work as good as those born with *NIX. I don't think it's hard to implement a workspace like feature in Windows. In the latest Windows 7 beta and RTM, there is no footprint of features like workspace, no hope to see that in GA, although it has an enhanced taskbar with pins. Shame on Microsoft.

10. Manage 3rd party applications install/remove/update/upgrade

GNU/Linux

Debian/Ubuntu
dpkg + APT offers you the peace of mind. Once you set up all necessary apt repositories and PPAs (only for Ubuntu), leave all the upgrade, dist-upgrade, install, remove, clean, autoremove jobs to the package management system. No worries, mate!
Arch Linux
Similar to Debian's APT, Arch has its own Swiss knife, pacman, plus the AUR (Arch User Repository, its yaourt frond-end make it something even better than Ubuntu's PPA) and ABS... Arch was born for geek! It's actually my favorite so far;-)
Gentoo
Portage, emerge, it has the similar concept of FreeBSD ports. To be continued, I am not familiar enough with Gentoo to write a comment at this stage.
Fedora, RHEL and Oracle EL
I know that YUM from yellow dog does a similar job, rpmfusion repository is like a wide range of PPAs.

Mac OS X

Drag and drop installation was once the symbol of the ease of use of Mac OS X. Even a dummy can install and remove OS X applications without any difficulties. But remember, we still have .pkg installers from inherited from NEXT. But it's still relatively easy, similar to .msi on Windows platform.

Most of the time, leave the maintenance job to the application itself, when it asks you Yes or No to upgrade, click yes, that's it! What underneath it is that the 3rd party applications will check if there is newer version, if there is it downloads the latest version, remove the old version (can be found in Trash) and copy the latest version into /Applications folder. However,  not all OS X apps work this way. We all know that Mac OS X doesn't have a package management system. As a result, some applications use the .pkg format installer, are not able to update automatically.

Windows

Nowadays, Windows Installer takes care of the install/remove in most cases. Remember to use appwiz.cpl to add/remove programs, it it's not working, try to fix it using msiexec.exe. Sometimes, dll dependencies will be annoying, it's time consuming to resolve dependency problems. Not like *NIX OS.

Basically, you do all the updates manually! OMG! That can't be possible, right? Although software like HFS (not the OS X File System) will pop up and ask you if you are going to upgrade. Click yes, and HFS will take care of it via a script. But not all developers are that considerate. What's more, not all software can be easily updated, only those portable applications can.

11. Miscellaneous

Global proxy settings
Windows
IE settings, yes! Why IE? I don't know...
IE settings -> Connections tab -> LAN settings, why? I don't understand. Why Microsoft put this in control panel and make it clearer to all users.

Linux:
1. Gnome Proxy Server settings
2. Find /etc/profile (Debian/Ubuntu), add export http_proxy="http://username:password@hostname:port/"
3. Session wide ~/.profile, ~/.bashrc, ~/.bash_profile
4. System wide /etc/profile, /etc/environment (not a script, key value pair)
5. Terminal session wide export http_proxy="http://username:password@hostname:port/"
Notes: https://help.ubuntu.com/community/EnvironmentVariables

Mac OS X
System Preferences

This post was originally inspired by a post on Lifehacker, in response to: What are your Biggest Windows annoyances

So to sum up, I hate Windows as it sucks in so many ways. However, it is still good enough for ordinary people. Although ease of use is no more a problem since Ubuntu came upon the stage, we should clearly see that Linux still has a lot of problems to be solved. Otherwise it won't be successful in the mainstream Desktop OS market. For example multimedia and game support. The market share of all GNU/Linux distros up till now (Feb 2009) is below 1%.

Don't worry, of course Linux is being improved rapidly after Ubuntu's appearance. The rich guy Mark Shuttleworth is smart and so far he and his team has done a great job. Let's wait and see.

To be honest, I would like to see a Win-Win situation. We can choose whatever OS we like!

I am with Tux and open source, because I love freedom. Quote: Software is like sex, it's good when it's free:)