Jump to content

User:Gi1242

From ArchWiki

My history with operating systems.

I'm a long time Linux user, who switched to Arch in 2019. Here's a bit of my history with operating systems.

Sinclair BASIC (1986--1991)

I used this my trusty 128kb ZX Spectrum+. Given that I was 7 at this time, I mainly used this to play 48k (sometimes 128k) games. I would patiently wait 15 minutes for each of these games to load from my tape drive...

ACORN MOS (1991--1993)

Once I retired my trusty ZX Specturm, I spent a few years without owning a computer. My high-school however had FOUR BBC Micro computers, which we were allowed to use once we reached 9th grade. I wrote a typing tutor program on this, riddled with spelling errors.

MS DOS (1993--1996)

When we reached 11th grade, we had FOUR 8088 PC's which were available to us. None of the computers had a network connection, or hard disk. Each of us carried our trustable 5 1/4" MS-DOS floppy, and were required to write our high school projects in GW Basic. I occasionally got my hands on a 286, and played Solitaire on Windows 3.1.

Windows 95/97 (1996--1999)

Once I went to college, I got a 386 (33Mhz, 2MB RAM) for myself. I still didn't have regular internet access, and didn't even know what Linux was. I'd mainly use my computer to play games. I think my favourite games was "The Secret of Monkey Island", it's sequel, and Full Throttle. I also enjoyed playing Prince, Prince II, Mortal Kombat 4. Though I would spend most of my time running "Speccy", a ZX Spectrum emulator, and playing all my old favourite Spectrum games on it.

I got my hands on the DOS based "Turbo C Compiler" and wrote a C program to play Othello. However I quickly lost interest in C programming, and learnt assembly in order to write a "proof of concept" virus, that would not be detected by the current virus scanners. (Of course, I never circulated this virus.)

I'd also become extremely proficient in re-installing Windows after a crash. On our college computers, I'd sometimes do this two or three times a day. One of my friends did this on a system that was in use during a live event.

Redhat / Fedora (1999--2005)

I sold my old Windows computer, and moved to the US for grad school. The department had a number of computers with Redhat on it (they were later upgraded to Fedore Core computers). At this time I was tired of the blue screen of death, and a clunky GUI which I never really cared for anyway. So when I saw a vanilla Linux console login on the department computers, I was quite eager to try it out.

After a little RTFM'ing, I really really liked Linux and would only use Windows very rarely. Sometime in 2003, I went to two talks at the university which completely changed my computing habits: The first talk was by Richard Stallman. He was quite amusing and gave a very nice talk. After listening to it, I followed his advice, swore to never use Windows again. The second talk, by Steven Wolfram, had the complete opposite effect on me. After Wolfram's talk I swore to never participate in any project affiliated with Wolfram, and completely stopped using Mathematica!

Gentoo (2005--2009)

Sometime in 2004, I scrounged up spare parts from the department and assembled an AMD K6 based machine (500Mhz, 256MB). I immediately put Gentoo on it.

What I really liked about Gentoo was the configurability, and the interface. I could configure most everything by editing a beautifully syntax highlighted file in /etc. I doubted I would get any real speed boost from Gentoo (especially since most of the time my box was compiling updates), but I wanted the tweakability, and to learn the inner workings of Linux.

While I enjoyed my first couple of years with Gentoo, my free time was becoming more and more scarce. I eventually switched from my AMD K6 desktop to a 1.6Ghz Intel Pentium M laptop, and I my machine spent 3 days initially installing the OS.

In 2007, I decided to buy a Tablet PC (the HP 2710p). This has a Intel Core 2 U7600 (1.2Ghz) processor, and when I bought it required the very latest and greatest kernel and Xorg to get most of the hardware (esp. wireless) working. This is when I was quite thankful to have Gentoo. Since on Gentoo I would use gentoo-sources, and compile my kernel anyway, it was quite easy to switch to the upstream vanilla kernel sources and put the latest greatest GIT sources on my box (2.6.24/5 at that time).

After reading countless forum posts, and writing a patch for the Wacom drivers, and pulling a few GIT patches for the X server, I finally got everything on my precious Tablet PC working in Gentoo, and was quite happy with it for a few months.

Then came the downfall of Gentoo. I never had the time, to run regular updates. I could of course do the compilation at night. However each update in Gentoo meant also runing dispatch-conf, and editing the new config files by hand. This usually involved a fair amount of RTFM too. Consequently I would run updates only once every 4--6 months.

Now updating every 6 months in some distributions (such as Debian) not a problem. But in Gentoo, updating every 4--6 months meant your compile time itself was at least a day or two. Further, such large updates, compilation was expected to fail in places (and certainly did), at which point one would have to RTFM, look up forum posts and beg for help on IRC to get past these issues. To make things worse, after running a day of updates, Gentoo would update a critical library used by numerous packages, and you would have to spend another hour or two running revdep-rebuild to recompile those packages. But all this is only the easy first half of the battle! After your updates are compiled, you have to RTFM and dispatch-conf for all the config files.

At this point I'd come a full circle. What I now really liked about Gentoo was the configurability, and the interface 😄. I decided to stop updating my laptop except for security advisory's. I also bought a server at home, and decided to switch distributions. After considering Slackware and Ubuntu, I went with Debian.

Debian (2009--2019)

I initially installed Debian on my (headless) server at home. It took me a little time to get the installation going -- I didn't have a CD drive, and the online docs weren't too clear on how I should get started from my USB drive. But when I got started, the installation was a breeze! I was up and running in an hour or so. It took a little bit longer to configure the system (firewall, WiFi hotspot/home router, Time Machine backups (for my wife's computer), etc.). I was a lot happier with Debian that I was with Gentoo.

Finally, I reformated my tablet's hard disk and switched even my tablet from Gentoo (32bit) to Debian (64bit), and it was quite easy to get all my hardware working since all the hardware now had upstream support. Here are the notable differences I've seen so far,

Pro Debian

  • apt is infinitely faster than portage at calculating dependencies. After a new sync in Gentoo, to get portage to show me what upgrades were possible would take a few minutes! Apt however seems to instantly know what packages are upgradable, and what's unnecessary.
  • dpkg-reconfigure is a god send. I don't know what the analogue of that in Gentoo is. Short of installing a virtual machine with Debian on it, you can't get the analogue of dpkg-reconfigure on Gentoo!
  • Gentoo's init scripts do runtime dependency checking. This means, when you bring down the network, Gentoo automatically brings down VPN, ssh, openafs, etc. While sometimes that's a good thing (e.g. in case of openntp), in the other cases (openvpn, openssh, openafs) I had to manually edit the init scripts to avoid this behaviour. Each of these services stay perfectly dormant when the network is unavailable, and come right back up when you restart your network (even with a new IP address). The other con of this elaborate runtime dependency checking is that your boot becomes a lot slower than Debian's.

Pro Gentoo

  • The configuration, and flexibility of emerge looks better than that of apt-get. I never once even had the need for a GUI when using emerge. But I've had to use synaptic more than once in Debian. For instance, I wanted to mark a bunch of build dependencies as automatically installed, and I couldn't do this by editing some file in Vim. I had to use dselect (who's interface is terrible), aptitude, or synaptic.
  • USE=kerberos from Gentoo was absolutely wonderful (with no analogue on Debian). It took me a bit to get this worked out on Debian: For instance, mutt would happily authenticate via Kerberos, and read my IMAP mailboxes. However it would refuse to Kerberos authenticate when sending mail! It took me a while to realise that I had to (manually) install libsasl2-modules-gssapi-mit to get SMTP Kerberos authentication.
  • I preferred syslog-ng (Gentoo default) to rsyslog (Debian default). Mainly because I found it easier to ignore some particular type of message that's thrasing your log file with syslog-ng. But that's an easy fix in Debian -- aptitude install syslog-ng, and you're all set.

All in all, I was very happy with Debian. I got a new laptop in 2016 (Lenovo X1 Yoga, i5 6300U, 8GB RAM), and Debian installed painlessly on it. I thought the switch was permanent...

Arch (2019--present)

Welp. It wasn't permanent 🙄 10 years with Debian, but I had to switch. One of my constant annoyances with Debian was the long release times, and how long it took for upstream changes to make it into Debian stable. I tried switching to Testing, but that wasn't as stable / usable as I would have liked. I decided use testing for packages I absolutely had to have the latest and greatest versions of, and use stable for everything else. This made the system a little harder to maintain; but wasn't a deal breaker, so I wasn't considering switching.

The deal breaker, unfortunately, was a Kernel bug that affected my laptop sleeping. It was fixed in upstream, but hadn't made it into the Debian kernel yet. My kernel compiling days were long gone, so I needed to use one of the distribution kernels. Given my annoyance with the long release times in Debian I decided to distroshop. After considering Slackware and Ubuntu, I went with Arch.

Pros of using Arch

  • Minimal
  • Latest software easily available
  • Rolling release; no nervousness on big release days

Cons of using Arch

  • Minimal
  • Latest bugs are also easily available
  • Rolling release; constant nervousness on every upgrade

The migration wasn't too bad. Most of my time was spent migrating from Debian's networking scripts to systemd-networkd and NetworkManager. My Docker containers and everything else moved over seamlessly.

After using Arch for a few years, my biggest complaint is the fact that Arch is minimal. And neutral! For most major things Arch doesn't have a default. It lists choices, and gives you excellent documentation; but the choice is yours to make. Here are a few examples when this caused me some grief:

  • Desktop environment: After 20 years of using fvwm as a window manger, I had to finally switch; I had two monitors that I needed to scale differently and Xorg couldn't handle it. So I had to switch to a different desktop environment. If Arch had a default, I would have chosen it; but Arch has a list of about 15 officially supported desktop environments. I finally narrowed it down to either Gnome or KDE, and chose Gnome because it was the default on most distributions. I regretted it after a month and switched to KDE 😄.
  • Networking: Arch doesn't have a recommendation for which network manager to use! It has a beautiful color coded table of choices. After clicking through I settled on using NetworkManager on my laptop and systemd-networkd on my desktop.
  • Boot loaders: Another beautiful color coded table, but no default. At this point it looks like systemd wasn't controversial anymore and almost all distros were using it by default. Since it had a boot manager, I just chose systemd-boot.

Interestingly, the one place that Arch did choose a default, and did so definitively, was in the init system. Arch choose systemd back in 2012 for reasons that are beautifully explained here.

In summary, my thoughts on Arch are:

  • Overall great, and cutting edge. When I got a new computer (another Lenovo X1 Yoga, i5 1135G7, 16GB ram) I again needed the latest and greatest drivers. Changing my kernel from linux-lts to linux was enough, and everything worked.
  • Sometimes too cutting edge. A kernel upgrade every few weeks (even for LTS kernels), forces me to reboot every few weeks. But, the fear of my system upgrade breaking something critical is gradually subsiding 😄.