Windows and macOS are commercial, proprietary operating systems. Microsoft and Apple sell the OSes either directly to manufacturers or to end users like you and me. We can then use the systems, but we can't see the code that makes them run. We call this closed source software.

Most of the programs you run on Windows and macOS are also closed source, whether or not they cost you money. But some programs are free and open source. These are applications with source code that you're free to view and modify as you wish.

Why Source Code Matters

I know what you may be thinking: I'm not interested in messing with code. Neither am I. But it's important that others can on our behalf. Computer programs may feel like tools, but they're comprised of language -- and that language can say anything.

Closed source applications hide that language, so we don't know what they're actually doing. Not being able to view the code of an application is akin to buying a house without being able to get a home inspection. Is there lead in the paint? Is the building structurally sound? You have only the seller's word.

The purpose of free software isn't limited to trust. The "free" refers to freedom, not price, even though most free software doesn't cost money. Since the source code is available, new developers can keep software alive once the original developers lose interest. Providing code for free encourages an open and honest relationship with users, so you won't see tricks that encourage you to purchase new versions or find out that all of your activity is being tracked. There also aren't any ads or pop-up windows nagging you to pull out your credit card.

If it sounds like I believe all software should be free and open source, I do.

But that's not likely to happen any time soon. There are reasons, often market driven, why companies produce closed source software. This is why privacy abuses continue to plague the latest release of Windows. They're the reason switching to a Chromebook and using Google services will only mean handing over more information. It's why Lenovo computers come with malware.

On the other hand, it is possible to make all the software you use free and open source, and you can make that change today.

Ready to Make the Switch?

If you're only discovering free software for the first time, or even if you've been a long-time Linux user, you can only make this change if you're willing to make sacrifices and miss out on most popular services and programs. You will have to change your priorities and expectations.

Is it worth it? I think so. I value the peace of mind I get from using software made by people who respect users over profits. And I like knowing that the code I rely on will stick around and is largely free from ever-changing corporate priorities. I like knowing that my computer isn't working against me.

You can come up with your own reasons to live a fully free and open source life. This guide isn't here to convince you to make the switch -- it's here to help you once you've already made up your mind. And if you are discovering free and open source software for the first time, I hope you walk away from this feeling empowered. So if you're ready to make the transition, take a deep breath, and let's get started.

Picking an OS

Linux is by far the most popular free and open source desktop, in terms of users and name recognition. Whether or not you run Linux on your desktop, you interact with it everyday. Linux is used to power much of the internet and is in Android phones and Chromebooks. You can find it in anything from ATMs and gas pumps to most of the world's top supercomputers, and even the International Space Station.

Linux isn't the only free OS to pick from. There are a few based on BSD that offer a few key distinctions but a very similar experience. There are quite a few others out there, but you would have to be pretty dedicated to use them.

Want Linux? Pick a Distro

No one organization distributes Linux. That means you can't head to a website or a store and walk away with something called Linux on your computer the way you can with Windows or macOS.

Linux is actually just the kernel, the part of your operating system that enables software to communicate with hardware. It has very little to do with what you see on screen.

Instead, you download a Linux distribution ("distro" for short). This contains a user interface, applications, and other tools along with the Linux kernel. Together, this software provides a complete experience.

There are many to pick from. Some of the most popular options accessible for newcomers include Ubuntu, Fedora, openSUSE, Linux Mint, and Elementary OS. But thanks to the decentralized nature of free software, there are hundreds of other Linux operating systems out there for anyone interested.

Don't Want Linux?

If you're looking to use a free OS based on BSD, FreeBSD is a great place to start. On a computer, the experience feels largely the same as Linux. Underneath, you'll find the same code used in video game consoles such as the PlayStation 4 and the Nintendo Switch.

It's possible to run Android on your computer. If you don't install the Play Store and instead go for F-Droid, an open source alternative, then you will be filling your machine with free software. Thing is, Android is technically Linux, even if it doesn't necessarily seem like it. If you do go down that route, you'll want to skip the next few sections.

Choosing a Desktop Environment

Whichever OS you pick, choosing a desktop environment is arguably more important. This will determine what using your computer is actually like.

For newcomers looking for a modern experience, I would recommend GNOME. The experience is unique to the free software world, and it provides a level of polish that migrants from Windows or macOS are likely to expect.

People who are more interested in holding on to something familiar may prefer Cinnamon (if coming from Windows) or Elementary OS Pantheon (if coming from macOS). That's not to suggest that these environments are mere copies -- they're not. But a former Windows user will still find a lot that feels familiar in Cinnamon.

Power users can figure out any desktop environment easily enough, but those who love to customize everything may be best served by KDE Plasma.

There are many, many others to choose from. If your computer is old, consider Xfce or LXDE. If you just want something classic and simple, you might like MATE. Ultimately, which desktop environment you will like best is a matter of taste.

Picking a Computer

There are two ways to go about determining which hardware to use. You can buy a machine that comes with a free and open source OS, or you can replace the software on a computer you already have.

You could buy a laptop that comes with Windows, macOS, or Chrome OS with the intention of replacing the OS, but more often than not, that's more trouble than it's worth. There's no guarantee you will be able to replace the OS, and even if you can, there are often hardware-related issues that solutions don't yet exist for. Manufacturers often don't design with Linux in mind, sometimes leaving users to reverse engineer the technology and come up with a solution themselves.The older your machine, the greater likelihood someone will have already done this and your machine will run Linux just fine.

You're not likely to find computers running Linux (aside from Chromebooks) in bricks-and-mortar stores, but you can find them online. System76 will sell you one running Linux out of the box. The company's website is modern, and the online customer service will answer any questions you may have.

Options such as ZaReason or Think Penguin will let you choose which distro your machine comes with, or you can opt for one that doesn't come with an OS pre-installed at all.

The Free Software Foundation maintains a list of companies that will sell you a computer that doesn't come with a trace of closed source software. Computers not on this list tend to have closed source BIOS and drivers.

Replacing Applications

So you have a computer running free software. Great! What do you put on it?

Installing software on Linux is easier than you might expect. Most distros come with a built-in app store where everything is free. You fire up the program, search for the kind of software you need, and click a button. If you're using one of the more popular distros, the process is about as simple as installing an app on your phone.

While there are some programs that cost money, the overwhelming majority of software doesn't cost a dime. Though once you have settled on a few favorites, consider making a donation so that developers have extra incentive to continue making great free software.

But let's not get ahead of ourselves. First, which apps might you want to consider in the first place?

Web Browsers

Open source browsers have come a long way. Mozilla Firefox is a household name, and there's a good chance it comes pre-installed with your Linux operating system. Google Chrome is available for Linux, but it isn't open source. However, Chromium is.

Email

Mozilla Thunderbird is a great cross-platform email client, and it's the most popular free option you will find. Others worth considering include Geary, Evolution, and KMail [Broken URL Removed]. And, yes, you can still access Gmail or Yahoo in a browser.

Office

If you want to keep things simple, install LibreOffice. This suite replaces most of the core applications found in Microsoft Office. Swap Microsoft Word for LibreOffice Write, Excel for Calc, and PowerPoint for Impress. There are also programs for creating diagrams, managing databases, and calculating formulas.

Photos

Need a good photo manager? Linux has plenty. Shotwell and digiKam are both feature-rich options with plenty of ways to organize your favorite memories.

While those apps let you make touchups, you need something else when the time comes to make serious edits. Consider GIMP as your PhotoShop alternative.

Games

Gaming is tricky. Sure, you can install Steam on Linux, but that's a closed source program. So are most of the games, which are locked behind DRM. Even DRM-free stores like GOG.com still serve up closed source games.

If you want to go fully free and open source, there are quite a few games waiting to be discovered in your Linux app store. Unfortunately, the quality can be all over the place, and don't expect to see new releases often. This is one area of software where the open source world has a long way to go.

In case you want more app recommendations, we've compiled a list of the best Linux software.

Replacing Formats

You may not have given much thought to formats before. They kind of lurk in the background, only relevant when you try to share a file with someone and receive an email back saying it doesn't load.

Why this happens is complicated. If everyone used open standards, then all document programs would know how to load files the same way. But the most popular formats are not fully open. Microsoft Word's default format may work fine between two Office users, but problems can arise when someone tries to open the file in Google Docs, LibreOffice, or even an older version of Word!

Open file formats exist, but they need greater adoption. Fortunately, if you're interested in going fully open source, then you'll be doing your part.

Documents

When it comes to the workplace, Microsoft has long set the standard. People expect files in DOCX, XLSX, and PPTX. These formats will load in LibreOffice, but if you want to rely on open formats, you want to embrace the OpenDocument standard. This is the default format used in LibreOffice, OpenOffice, and the Calligra Suite. Your ODT, ODS, and ODP files will also load in Google Docs and newer versions of Microsoft Office.

One way to guarantee that your file loads correctly regardless of application or operating system is to save as PDF. This is an especially good practice when sending crucial documents such as resumes.

Images

Here you're in luck. You don't need to make any changes to how you normally interact with files. JPEG and PNG are both open standards without legal restrictions.

You're more likely to encounter incompatible formats when switching from one piece of image editing software to another, or when mixing RAW files taken from two different cameras, than out of anything related to switching to a free operating system.

Music

The patents recently expired for MP3, the most popular digital music format. So you can keep listening to your music library without converting any files. But if you want to use a format that was designed from the beginning to be open, then you'll want to go OGG. And if you want lossless music more similar to what you would hear from a CD, then you may even want to go FLAC.

Video

Video is tricky. When it comes to formats, there are containers, and there are codecs. You can download an open container format like Matroska (MKV) but still end up with the proprietary MPEG-4 and AAC codecs for video and sound. You can't fully predict what you're dealing with just by looking at the last three letters of a file name.

OGG Theora is an open video codec, but it lacks the performance and features found in later versions of popular video formats. The WebM container and VP9 video codec are both open formats primarily developed by Google and thus largely seen online.

What About Mobile Devices?

Freeing your PC is one thing, but if you're doing most of your computing from a mobile device, you're still living your digital life in a closed ecosystem. iPhones? Closed. So are Windows-powered phones. What you may not know is that Android phones, out of the box, are just as locked down.

Isn't Android Open Source?

That question isn't as straightforward as it seems, though the answer is yes (mostly).

Google makes Android's core code available for anyone to download, but you can't install Android the way you would a Linux distro. It takes someone to come along and turn that code into a custom ROM. But due to the way Android is licensed, manufacturers can take that same code and make a proprietary product. The experience you see on Samsung, HTC, and LG phones is not free and open source.

Google's own devices, out of the box, are no less a proprietary experience. The Pixel and Nexus phones come loaded with Google apps, including the homescreen launcher itself. This software is all proprietary. And those very Google apps are what draw many people to Android in the first place.

What You Can Do About It

You're still better off buying an Android phone than an iPhone because you have the option to install a custom ROM that consists mostly of the free and open source bits. These aren't fully free, just like most Linux operating systems, because many hardware manufacturers only provide closed source drivers. This is especially the case on mobile phones where carriers and cellular technology are involved.

But there are plenty of great FOSS apps for Android. With a custom ROM and the F-Droid app store, you can have a software experience that is entirely made of free and open source software.

Are There Other Options?

A few years ago, there seemed to be hope. Mozilla was shipping phones running Firefox OS. Canonical was developing Ubuntu Phone. Both have since stopped (although it has been continued in the UBports project). Sailfish OS is still around, but one of its biggest features is the ability to use Android apps. It's not exactly thriving.

You can still install Firefox OS, now known as B2G OS, on a handful of phones. The same is true of Ubuntu Phone. In either case, don't expect to have as much functionality as you would find on an Android phone running a custom ROM and F-Droid -- itself a limited experience compared to what you would get with Google Play.

The Thing About Cloud Services

Many of us now do much of our computing inside a web browser. This comes with a new set of dangers. While you may have traded your proprietary desktop apps for open source alternatives, what does that matter if you've traded those for proprietary web services?

While the web is largely built on open technologies, many sites and services are locked down. You have no real way of knowing what they're tracking or doing with the data you provide.

Like in the desktop world, open alternatives exist, even if they're not relatively popular. Some will tell you they support the open source community. Others will go further, allowing you to export your data and run the software yourself on your own server. Let's look at your options.

Building Your Own Server

A server is like a regular PC, as both are computers that run programs. The difference is that a PC is meant for you to sit down and interact with directly, while a server runs software intended for other PCs to access. All of the sites and services we interact with on the web run on servers.

Linux and free BSD-based OSes have a reputation for being better oriented toward this task than Windows. Much of the web runs on Linux or BSD servers, even if the services on top are not free. One way to avoid this non-free proprietary software is to build your own server.

This may sound difficult or expensive, but neither is the case. While you can buy parts individually, you can also make a server out of an old laptop, or even a Raspberry Pi.

Managing Your Own Cloud

The cloud is a modern phrase that gets thrown around a lot these days, but the concept is nothing new. It refers to software that's on another machine you're accessing remotely, likely via the internet. That software doesn't have to be on someone else's computers. If you've built your own server, you can software on that machine that you can access whenever you leave home.

If you haven't built your own set up, you can still run cloud software on someone else's server. Though this typically costs you a monthly or annual subscription.

  • Sandstorm is a web productivity suite that you host yourself. There are over 50 applications available with usecases ranging from keeping notes and editing graphics, to communicating with others. Sandstorm can be your replacement for services like Trello and Google Keep.
  • Framasoft is a similar platform that pulls together numerous open source solutions. Framaforms, for example, is an alternative to Google Forms.
  • Kolab Now is a webmail provider that uses open source software. The company even uses KDE's Kontact as its preferred email client.
  • Try Open365 as a replacement for Google Docs or Office 365. It gives you access to core LibreOffice applications and the GIMP inside of a browser, alongside other functionality.
  • Check out Nextcloud or Syncthing in place of Dropbox. Nextcloud also serves as an RSS reader and bookmarking service, replacing Feedly and Pocket.
  • Mastodon is a decentralized alternative to Twitter. No one company owns all of the messages sent via this social network, nor is the data stored in a single cluster of servers. You're even free to set up your own instance.
  • Squarespace and Tumblr are proprietary, but WordPress isn't. Stick with that.

Things to Look Out For

Even with a completely open source set up, you may still feel social pressure to use certain services. Doctor's offices now routinely put information up on online web portals. Tax preparers and financial advisers let you send files digitally. Employers want you to collaborate with colleagues using specific sites. Sometimes it's as seemingly harmless as friends wanting to game online or share a playlist they put together.

More often than not, you will be directed to a proprietary service. Yet not all closed source products are created equal! Some treat you more fairly than others. Here are some qualities to keep an eye out for.

Vendor Lock-In

Vendor lock-in is a market strategy based around making it extremely difficult for a client to stop using a product.

Example behaviors include creating a program that only saves files in a proprietary format that no other application can read. Switching would require losing all of your data or going through the effort of manually re-typing everything one document at a time.

With online services, you don't necessarily feel like you're interacting with a file. In that case, it helps to ask the question a different way.

Can You Export Your Own Data?

Google is pretty good about this. The company provides a handy dashboard where you can export much of the data you've created. You can download your email from Gmail, save posts sent to Google+, and download your Google Maps location history.

Deleting your data often isn't an option. Part of the reason is that companies do not want to let this information go. When you sign up for a free service, you're often offering to pay with your data, rather than cash.

Having the option to export your data gives you the ability to import that information into a free and open source alternative service in the future.

You Don't Have to Go 100%

If you make every change above, then congrats, you've done more than I have. While I have a Linux laptop running free software (BIOS not withstanding), I don't have my own server nor do I manage my own cloud. I still occasionally stream videos online, and I've installed proprietary codecs so that I can view media formats that aren't free.

I've struck a balance that works for me. I shop online and read blogs in a web browser made for Linux. I'm still able to make a living working from a computer without ever wishing I was using a different operating system.

I could go on, but you get the idea. While I don't fully meet the standards of the Free Software Foundation, I'm also much more of a free software purist than the vast majority of computer users. I feel good knowing that most of the proprietary code I depend on is only through a browser.

Yet at the same time, I'm not here to judge you for any closed source software you rely on. In many ways, the system is stacked against us. I'm just glad you've read this far. That means you're interested. That means you at least know about free and open source software. In the grand scheme of things, that's a sign of progress.

What are your thoughts? Have you installed a free operating system? Are you trying to use as much open source software as you can? What has held you back? Share your experience below, and if you have any questions, let me know. I'm here to help however I can.

Image Credit: enzozo via Shutterstock.com