In the two decades between 1998 and 2018, the computing world underwent a few magical transformations.
The most interesting in regards to hardware, is its size and price has significantly decreased, while its power and capacity has increased by the same factor. Software, on the other hand, has matured in subtle ways not obvious to the common computer user. Open Source software developers around the world have worked hard to produce stable software that just works, and support for various hardware has broadened to the point of being extremely easy for just about anyone to get Linux running on their computer.
We don't need to be experts anymore.
So here we are, finally, in 2018, at a major intersection where hardware and software are equally accessible. In this post, I'll explain my path to the future of computing with a Linux desktop, while highlighting the companies, products, and community contributions which led us here.
Most phones are running a heavily modified version of Linux, called Android, or its much more open alternative, LineageOS (which I also use). Those devices, although powerful, are by design unsuitable as desktop computers. They lack ports for connectivity (ex: USB, Ethernet, HDMI, even Audio), and generally cost a small fortune.
Chromebooks, although designed as inexpensive laptops, are extremely slow and shipped with subpar components, with the expectation that you'll only run Google's Chrome OS, and trash the computer in a couple of years. Once again, unsuitable as a desktop computer.
While I can't give a bad review of Apple laptops, I believe their time as the perfect work computer has come to an end. For as long as I've used them, Apple laptops have held the top spot thanks to their design and usability, but they were paired with major disadvantages:
- They cost over USD $1500
- Their hardware is not open hardware
- Their software is not open source
- They're not designed for Linux
A desktop computer?
This is my new (1 month old) desktop computer. No, I don't have a giant hand, it literally fits in my palm, like most mobile phones, however there's an important difference between the two: this computer has five times the power, and only cost USD $45.
To give some specs, this physically tiny computer hosts a 1.4GHz quad-core ARM-64bit processor, 4GB RAM, a 500MHz GPU, USB 3.0, HDMI, Audio, and 2 Ethernet ports, as well as accessible GPIO pins for hardware hackers. To make things even better, all the hardware datasheets and schematics are available for download on their wiki.
The ROCK64 is a beast, and the price makes it a no-brainer.
Back in the day, a desktop computer looked a bit like this, a big ol' box, sitting on top of your desk, alongside a monitor, a keyboard, and a mouse.
My setup, pictured below, includes just that, with the addition of a micro SD card and USB hard drive. For an optimal setup, I strongly recommend a USB 3.0 hub (independently powered), and a USB-wifi adapter - if you don't already have them.
The Raspberry Pi is a fantastic little Linux computer for getting started, but its power doesn't come close to the ROCK64. The former is extremely unsuitable as a desktop computer, while the latter isn't, as I'll explain next.
Finally, something suitable
Unlike the Raspberry Pi, the makers of the ROCK64 provide limited software support, in the form of a wiki, forum and IRC channel. Their goal is to focus exclusively on the hardware. For some, this may seem blasphemous, but the advantage is they greatly lower their costs, and leave the software support to the community of Linux experts. It's an interesting business decision, which I fully support as it allows us to obtain well-designed, powerful computing devices at a fraction of the cost of anything else on the market. Moreover, when the hardware manufacturer isn't forcing their software on us, our hands are not bound or restricted to the terms they choose to enforce (i.e: vendor lock-in, forced upgrades, planned obsolescence, by companies such as Apple/Microsoft/Google).
Essentially, the PINE64 company, makers of the ROCK64 have the correct approach.
Even as I write this, I still have difficulty believing this computer cost less than a pair of Nike running shoes. It doesn't make sense, but it does, and I applaud/thank/hail the PINE64 team for making it possible.
So far, everything works well, straight out the box, using a community-provided Linux OS. Here's an overview of my software setup, along with links to their donation pages:
- Debian stretch (9.3) minimal
- Kernel, initrd, bootloader on SD card
- Linux rootfs on external USB/SSD drive
- XFCE4 graphical Linux Desktop interface
- Pluma text editor (from Ubuntu MATE)
- Firefox for web browsing
- Libreoffice for docs and spreadsheets
- Pidgin for IRC and XMPP chat
- PicoLisp for coding and scripting
- Kicad for PCB design
- Apio & Icestorm for FPGA builds
- AVRdude and related packages for Atmel/Arduino builds
- Syncthing to keep files sync'd between computers
- Qemu for cross-compiling and running x86 VMs
- ... and much more
As you can see, almost all the tools I used on my Mac (Intel x86-64) can easily be replaced by cross-platform (arm64) alternatives, or similar. I'm still missing my favourite bedroom DJ tools such as Scratch Live, Traktor Pro, and Maschine, but I haven't gotten rid of my Apple laptop just yet ;)
It's almost perfect
The only disadvantage you'll have from running an arm64 computer instead of an x86 is the binary incompatiblity between the two. The x86 platform, having existed for so long, is a popular target for most software developers, so you'll easily find compiled binaries for closed source apps such as Sublime Text, but the same can't be said for arm64 binaries. Fortunately, open source software compiles quite easily to the arm64 platform, and I've yet to find a package which doesn't.
What this boils down to, and the point I've been trying to get across since the start of this post, is that it's finally time to use Linux on the desktop. There are no excuses anymore. This is it, it's wonderful, and I encourage everyone to move in this direction.
"This is The Year of the Linux Desktop"