Choosing Linux

This year I’m taking part in “Bloganuary” – a series of writing prompts published throughout the month by Mindy Postoff. Today’s writing prompt is “What is a cause you are passionate about, and why?”


I read a book several years ago called “Just for Fun”, by Linus Torvalds – the creator of the Linux kernel. It charts the history of the project, from it’s earliest beginnings in a back bedroom, through to it’s accidental entry onto the world stage. I thought it might be interesting to relate my own interactions with Linux, and to perhaps reflect a little on the other operating systems I have used too.

My relationship with Linux begins with the first laptop I owned – a Toshiba, in about 2000. After playing around with the pre-installed copy of Windows 98 it came with for a few weeks, I read a magazine article about the latest release of “Redhat Linux”, and ordered a shrink-wrapped copy that was delivered by the postman a few days later.

My laptop was never the same again.

A year or so later I became interested in web development, and decided to turn my long-suffering home computer into a web server – running Linux rather than Windows. I can’t imagine my other half can have been too pleased with me.

I read the now famous O’Reilly books from cover to cover, and proceeded to build one of the first blogging platforms. I released it as open source because one of my co-workers thought it would be a good idea, and quickly moved on to building what I had really intended to build all along – a content management system. In the meantime, the blogging script got downloaded somewhere in the region of a quarter of a million times.

Thankfully Matt Mullenweg and Mike Little then forked a much better blogging script, and renamed it “WordPress”. I wasn’t bitter – I never set out to manage a project after all – and I switched to WordPress almost overnight.

I suppose it’s important to note that I never used Linux “because it was Linux”. Linux wasn’t “the thing”. Linux was “the thing that got me to the thing” – a phrase that I believe lots of people have used over the years, and that fits my story well.

While it’s true that the various things I have done outside of work could have been done on any operating system, I chose to do them in Linux mostly because it was free, and it almost worked as a turn-key solution – providing a platform on which I could tinker with the things I was interested in. Linux came with a great webserver (Apache), a great database (MySQL), and a simple web scripting language (PHP).

That I have ended up using Linux as a desktop operating system at home has happened mostly by accident. I will happily use anything that “just works” – and by-and-large the more well known Linux distributions do just that – they “just work” – without endless updates, drivers, security patches, reboots, and so on.

Anyway.

Having messed around with Windows, OSX, and Linux over the last twenty five years, you would think I have formed some opinions about them. A few come to mind.

Windows is ubiquitous – there is almost no learning curve, because everybody is familiar with how the user interface works. Because of it’s ubiquity, Windows won the battle for hearts and minds of businesses decades ago. There are signs this might change soon, but don’t hold your breath. Because of its ubiquity, hardware device drivers are widely available for most recent versions of Windows. You can almost always get any piece of hardware to work with Windows.

Unfortunately the core security of Windows is, and has always been pretty awful – with the continual need to run firewalls and virus killers to protect every single Windows machine from outside influence. Perhaps more worryingly, due to poor design the performance of all computers running Windows reduces over time – registry bloat, DLL hell, and wreckage from past updates are a continual source of frustration for home users and system administrators.

MacOS benefits from Apple both creating hardware and software – meaning the performance of the user interface in relation to the hardware is very good. You might also claim however that Apple are more concerned with how things look, than how well they work. Unfortunately MacOS only runs (reliably) on Apple hardware – while you can build a “Hackintosh”, you will face numerous problems with device drivers and core operating system stability. The software is driven – by design – by the Apple hardware renewal cycle. It’s easy to forget that Apple are a hardware company – it’s in their interest to obsolete existing hardware over time in order to sell it to you again, and again – and to discourage you from trying to run their software on anybody else’s hardware.

At a lower level, it’s perhaps worth noting that MacOS/OSX was originally based on Mach – a micro-kernel – the polar opposite of Linux. Micro kernel operating systems work by reducing core operating system functionality to control of messaging between services that do all the real work – which makes each service simple, but makes management of messaging enormously complicated, and causes all manner of design, functionality, and stability trade-offs.

Linux differs from both Windows and MacOS in that it’s a constellation of software development projects built by a vast community, rather than a commercial product developed by one entity. Books have been written about this arrangement – perhaps the most famous being “The Cathedral and the Bazaar”. If Tim Berners Lee’s “World Wide Web” was “for everybody”, then the same is probably true of Linux. The source code of every part of the core operating system and it’s supporting applications is freely available to copy, re-use, extend, enhance, and adapt – leading to ports for just about every hardware platform imaginable.

Linux originally borrowed the design of Unix, which set out some simple but powerful underlying concepts around the treatment of all applications as processes – with standard input and output streams. It’s a game changing design that’s beyond the scope of this post, and not followed by either Windows or MacOS.

Linux famously has no central control over future direction – it has been, and always will be designed and developed by a disparate community. This can be seen as both a good, and a bad thing – good because the system is not forced in a direction by external actors, and bad because it causes fragmentation. The fragmentation also causes duplication of effort – with different teams building alternative versions of the same core functionality – everything from window managers, to text editors. This of course means more choice though, and a properly functioning ecosystem of sorts – with evolution, and natural selection in play.

I need to draw this to a close somehow.

I titled this post “Choosing Linux”, and have sat on the fence throughout the entire monologue so far – being annoyingly even handed. I suppose when it comes down to it, the main reason I choose to use Linux outside of work is because I have to use Windows at work. The anarchic voice that occasionally whispers in my ear and causes me to walk to my own beat tells me that Linux is a good idea. It’s really that simple, and that illogical.

Not only do I get to “choose Linux”, I get to choose the distribution of Linux I use – and that has changed over time. Last week I ran “Manjaro”, the week before that “Elementary OS”, and before that “Ubuntu”. I’m back using Ubuntu this week. I may change again next week – it’s a little like re-building your house again and again, with no appreciable loss or gain in core functionality. Of course, you get nothing done, but that’s not the point.

Advertisement

Behold the Fediverse

I’m trying to think of something clever to write about federation, or diversification. I’m not coming up with much. Perhaps if I take a look at a definition of fediverse it might help.

Wikipedia has the following to say:

The Fediverse (a portmanteau of “federation” and “universe”) is an ensemble of federated (i.e. interconnected) servers that are used for web publishing (i.e. social networking, microblogging, blogging, or websites) and file hosting, but which, while independently hosted, can communicate with each other.

You’re probably wondering why I’m rambling on about fedivi (is that the collective noun?), and you’d be quite right to be wondering because I’ve not explained anything yet.

It all started late last night, when I stumbled back into the tentacles of the federated Mastodon universe. If you’ve not heard of it, Mastodon is an open, free social network that anybody can join. Rather than operate a monolithic service such as Twitter, Tumblr or Facebook, it’s a federation of lots of servers – each serving a particular community of interests. Here’s the trick – anybody on any server can follow anybody on any of the other servers.

It’s a bit like saying “I hang out in the tech community, but I’m also interested in books, comics, music, and art – so I might follow people who are members of servers that revolve around those subjects”.

Anybody can start a server and connect it to the rest of the “fediverse”.

Anyway.

While falling straight down the Mastodon rabbit-hole, I started to learn about more federated services – among them a publishing service called “WriteFreely”, and a photo sharing service called “PixelFed”. Services with many independent servers around the world providing free alternatives to Tumblr, WordPress, Substack, Instagram, Flickr, and wherever else – and none of them selling or using your data for any sort of commercial means.

I’m still learning, still reading, still tinkering, and still delving around to find out how it all works. I’ve begun pulling a few bits and pieces together, that can be found at the following locations:

https://fosstodon.social/@jonbeckett

https://wordsmith.social/jonbeckett

https://pixelfed.social/jonbeckett

In other news, I’ve also been meddling with a publicly accessible method of publishing the various writing that had previously been behind the paywall at Medium. After a day of experimentation, desk thumping, and endless reading I managed to funnel all of previous writing into Github at the following URL:

https://jonbeckett.github.io

It uses a free service provided by Github called Jekyll that turns markdown text files into a published website. All I have to do is upload articules as plain text to Github, and it re-builds the site for me. All clever stuff. If you’re interested, Jekyll is actually a “Ruby on Rails” application in the background. You weren’t interested. It’s ok. I didn’t think you would be.

My dinner will be ready in a bit. I’ll return to “slice of life” stuff next time, honest.