I first asked my parents for a computer when I was 4, but they not grant my request until I was 9. That excludes a few incidents where they gave me a children’s toy that resembled a laptop and called it a computer. My parents had initially refused to buy a computer for me on the basis that I would break it. It was not until my uncle became a computer technician that they agreed to buy one.
My first computer was a Dell Dimension V350 that ran Windows 98. Surely enough, my parents’ worse fears were confirmed when I managed to break Windows, or should I say, Windows managed to break itself. In hindsight, this is no surprise given that Windows 98 was a fragile operating system. It lacked proper memory protection, which enabled malfunctioning programs to write into the kernel. It lacked central package management, such that each application thought that it knew how to manage system libraries, which inevitably would break the OS. They would also leave presents in the filesystem, which would serve as ticking time bombs to inevitably cause problems later. One form of time bomb was colloquially known as DLL hell, which could cause programs to malfunction, leading to writes into the kernel and the inevitable Blue Screen of Death.
To make matters worse, the filesystem was prone to corruption when an unclean shutdown occurred. This caused Windows to run chkdisk.exe at boot, which would attempt to automatically repair things. Unfortunately, that utility could never guarantee reliable system operation. In specific, if the directory entry containing something that chdisk.exe needs (like the kernel) were corrupted, it would be impossible to run the chdisk.exe command. To make matters harder for it, there was no journal in FAT, so even when there were issues that did not prevent it from running, it always had to take guesses. The result was that each system crash had the non-deterministic property of making the system more likely to crash again.
Needless to say, the operating system broke several times. It broke enough times that my uncle became tired of fixing it. Thankfully, I eventually learned how to deal with issues on my own. I become well versed in the practices of reinstalling the operating system every few months, running antivirus software, running a firewall, defragmenting C drive, and having the latest anti-spyware software installed. I also would become excited when Microsoft would come out with a new OS so that I could be just slight less annoyed at this whole situation.
My first computer provides some context to talk about improvements in computing, especially those that Gentoo brought to my life. Gentoo-based operating systems have kernels that use memory protection through virtual memory. Malfunctioning userland programs no longer cause the system to crash. Gentoo has a central package manager. In fact, it has the most advanced package manager in widespread use today, which provides a strong guarantee that programs no longer change system files or leave time bombs in the filesystem. It also has far better filesystems available than FAT. My favorite of which is ZFS, which does not need a special repair utility after an unclean shutdown, unlike other filesystems. It also provides snapshotting capabilities, which permits system recovery when problems occur in the files stored on ZFS (e.g. rm -rf /usr).
Gentoo installations do not need defragmentation as a form of maintenance. Their filesystems are resistant to fragmentation and will always be fairly quick. They also do not require explicit firewalls, antivirus software or anti-spyware software. Gentoo systems do not run services that benefit from firewalls by default. Files from the internet are never executable by default and everything runs with reduced privileges, so the potential for viruses is incredibly small. The opportunities for spyware to invade your system are also incredibly small. That is specifically thanks to the central package management and everyone who works on packaging software. Best of all, Gentoo is source-based. This enables remarkable customization; provides the tools needed to diagnose and fix problems; and enables Gentoo evolve at a fairly rapid pace. I no longer have to wait for improvements to the software that I use to come in a huge bundle. Gentoo permits me to get what is available at this instant.
I joined the Gentoo developer community last year. I have since spent a great deal of time trying to overcome problems that make computers unreliable. One major area in which I have spent time is the area of ZFS. People reading my blog will certainly hear more about ZFS in the future as well as other things that I am doing in Gentoo.