= What you need to know about Linux in 2020

:Author: Seth Kenlon
:Email: seth@opensource.com

Some of the best technology is a moving target.
When technology stagnates, society tends to outpace and outgrow it.
Linux, the widely-used open source operating system, is a foundational technology serving as the basis for some of the most progressive ideas in modern computing.
So while it's startlingly unchanged after 3 decades of development, it also has to allow for adaptation.
As a result, Linux is in a unique position of being a sound investment of skills because it doesn't change, and yet also a seemingly eternal driving force of new skills yet to be learned.

The year 2020 has been a strange one by any measure, but for Linux it's largely been a typical development cycle.
Here's a look back at the year so far to serve as a review of what you need to know about Linux in 2020.


== ZFS on Linux

The ZFS file system offers integrity checking for data and metadata, redundancy with mirroring, support for up to _256 trillion yobibytes_ of storage, hardware-accelerated native encryption, and efficient replication.
ZFS is a Sun Microsystems innovation that, unfortunately, has a license that prohibits it from being bundled with Linux by default.
However, the https://openzfs.org/wiki/Main_Page[OpenZFS] group has ported the project to BSD and Linux, and so you can run ZFS on anything from your laptop to your data center.

Getting started with ZFS is suprisingly simple on Fedora Linux, as demonstrated by Sheng Mao in the article https://opensource.com/article/20/10/zfs-dnf[Set up ZFS on Linux].


== Linux interupts

No matter how familiar you are with Linux, it seems there's always an opportunity to dive deeper and discover exactly how it achieves what it does so well.
Computers running stock markets, digital film studions, audio workstations, and other performance-intensive tasks need realtime processing, while other computers can afford to be a little lazy when processing requests, and it's no small task to manage the myriad loops happening on a computer at any given millisecond.
Understanding how and why the Linux kernel manages interupt requests (IRQ) is by no means vital to the everyday user, but it's a fascinating study no matter what you do on computers.
Give Stephan Avenwedde's article about https://opensource.com/article/20/10/linux-kernel-interrupts[how the Linux kernel handles interrupts] to learn more.


== Linux in your pocket

It's widely understood that Google's Android OS runs on a Linux kernel, so technically _a lot of us_ have Linux in our pocket as it is.
As comforting as that may be, the smooth Java front-end of Android doesn't always provide the Linux _feeling_ many of us Linux users long for.
And some users don't have an Android phone at all.

The good news is that you can Linux on your Android or iOS device, complete with a terminal, Bash, Python, a package manager, and all the other things you love about your favourite open source desktop OS.

If you're on Android, read my article about https://opensource.com/article/20/8/termux[Termux].

If you're on iOS, read Lee Tusman's excellent article about https://opensource.com/article/20/9/run-linux-ios[running a Linux command-line on your iOS device].


== New commands on Linux

Time marches on, and sometimes the old, quaint commands of yesteryear become insufficient for modern systems.
Although your muscle memory may cling to commands like `crontab` and `ifconfig` (and `iwconfig` and `wpa_supplicant`), there are perfectly good replacements for these and more.
If you can't bring yourself to abandon your old commands, get familiar with https://opensource.com/article/19/7/bash-aliases[Bash aliases] because these new commands are worth learning.

* Drop `ifconfig` for `nmcli`. Look, at some point you have to admit that the unholy combination of `ifconfig` plus `iwconfig` and a foray into `wpa_supplicant` (which you secrectly dropped long ago in favour of `wicd` anyway) just isn't efficient. Linux uses `nmcli` now, and as of 2020 it's a highly usable, sometimes even intuitive, way to interface with your network. Read Dave McKay's excellent https://opensource.com/article/20/7/nmcli[nmcli tutorial].

* Cronjobs, `at`, and `batch` are uniquely timeless commands that probably ought never be replaced. They're great for quick and simple scheduling, but for complex jobs you might find some features you like in a supplement to these: systemd timers. David Both provides an extensive https://opensource.com/article/20/7/systemd-timers[systemd timers tutorial] that demonstrates how to write and monitor your important custom system tasks.

* `gcore` and `gdb` are important debuggers that developers may be familiar with. A new take on `gcore` functionality is Microsoft's ProcDump, which obtains a core dump of a PID so you can analyze it with `gdb`. It's more an alternative than a replacement, but it's worth trying if you're curious about different tools. Read Guarav Kamathe's https://opensource.com/article/20/7/procdump-linux[ProcDump tutorial] for more information.


== The cloud runs on Linux

As "the cloud" continues full steam ahead, Linux remains its main driving force.
The cloud, of course, is a collection of computers (nodes) with a massively distributed file system (such as https://opensource.com/business/15/1/introduction-ceph-storage-openstack(Ceph]), and it's commonly managed with Kubernetes (KOO-burr-net-eez] or https://www.redhat.com/en/technologies/cloud-computing/openshift[OpenShift].

Regardless of how well you know Linux on your laptop or desktop, or even your private data center, there's a whole new world of Linux experimentation available in containers running on the cloud.
It can take some adjustment to learn how to get comfortable in an ephemeral container, but with some practise and a little context you can build some interesting systems, and then orchestrate them (that is, cause them to update, scale, and perform as needed) with Kubernetes.

Jiaqi Liu wrote one of the best overviews of the cloud workflow in her article https://opensource.com/article/20/6/container-orchestration[A beginner's guide to Kubernetes container orchestration]. Read it, and then download Chris Collins's https://opensource.com/downloads/kubernetes-raspberry-pi[Kubernetes ebook] to build your own cloud at home on a Raspberry Pi cluster!


== Open source growth

Linux users relish the consistency and stability of Linux, and it's a testament to the original UNIX system design that this OS can stay the same while also pushing its own boundaries into new and exciting new forms of technology.
Part of the fun of Linux and open source is the sense of discovery you get when you start learning a new command, and the sense of accomplishment when it works to make your work and life easier.
Take a look at the latest developments of Linux, and get started with something new today!
