Sunday, 13 September 2015

The Windowsification of Unix

For quite a while, Microsoft Windows has exhibited a property that seems to be common in living organisms while being quite uncommon in the world of operating systems: Its ability to age and the subsequent inevitable need to die and get reborn.
To put this in more technical rather than biological terms: After a couple of months up to a low one digit number of years (in a base 3 number system) the continuous degradation of perceived performance in a Windows system, plus the ever-increasing clutter of what-the-hell-is-this-files on the C: partition becomes such a PITA that the easiest solution is to lock oneself in at home on a lonely Friday night with a sixpack of beer and reinstall Windows and all apps.
This of course was completely unknown to Unix-like folks who never really needed to reinstall their machines, mostly due to the Unix philosophy to do as much as possible with simple tools and use simple text files for configuration of the whole OS. For instance, the last time I installed my home server from scratch was more than 6 years ago and the reason was relocating overseas, not a software issue.
And then came Android. "Did you try factory reset?" is a standard question to all kinds of problems with Google's great approach at transferring the much-loathed concept of ageing software from Windows on top of a Linux-based software stack. In the past weeks, my 18-months old Android mobile phone became gradually suspiciously slow and apps started to crash more often. Yesterday it decided to give up even trying to start them: The error message "Unfortunately, the process has stopped." appeared in very quick repetition such that it became hard to operate the device at all in order to attempt all the salvage recipes that the internet offers. Before you ask: No, I did not attempt the ones that involved sacrificing a virgin when the moon is waning gibbous; only the ones that seemed to be sensible from a technical point of view: Clearing caches, resetting apps to initial state and reapplying updates, this kind of thing, and - of course - reboot the device a bazillion times. What helps on Windows shall help on Android, right? The fuck it did. So I finally gave in, did a factory reset, and will probably spend the next weeks noticing small things that were not properly restored by Google's glorious backup-and-restore feature, starting with the local music files. Thank you Google for breaking Linux to the point that it behaves like Windows 95.

1 comment:

  1. Funny. I spent the weekend "fixing" my 2012 Nexus 7, which, even though it has over 20GB of free space available, has gotten so terribly, horribly slow that opening chrome took minutes.
    "Easy fix" says the internet, just clear up some space, delete some unused files and apps... oh, and run fstrim because even though TRIM is supported since Android 4.3, an update to 4.4 or 5.x wouldn't fix the blocks that have been affected before the update. Just get root, run fstrim and you're done. And there it starts.
    So I installed the Nexus Root Kit from WugFresh, wiped my Nexus, unlocked the bootloader and got root. Seconds after, I installed LagFix and sure enough it didn't work.
    As we all know, if you want to get something done right, do it yourself. So, install BuxyBox and a terminal emulator to run fstrim from the shell (that was the plan at least). I got stopped early when the BusyBox installer informed me that BusyBox seems to be installed but not the right version and that it wasn't installed. Wait, what?.. yeah
    So it turns out my /system partition had 0.0MB free space and I couldn't be bothered to dig down to find out why. More factory resets! Still 0.0MB free :(
    Ahh well, since I had a freshly reset tablet with no personal files and settings, may as well put CM12 on it cause that's sure to fix anything wrong with it. Install went amazingly painfree and I even remembered to install the Google Apps so I had a store. A matter of minutes and I had a new OS, root and (wait for it) lots of MB space free in /system. Sure enough LagFix still wouldn't run: "error: only position independent executables are supported".
    Who cares.. surely, by now the NAND controller had forgotten all about the previously used blocks. AndroBench gives my Nexus 35MB/s sequential read, 7.2MB/s random read and 87ms for "Browser". That'll have to do for now