A few days ago, I requested some input toward a library series on free and open-source software. I am bad at outlines, so what I wrote for work was already practically a blog post. I have removed some copy/pasted info and edited it down for your review, so please add your input in the comments!
Free and Open Source Software
Free and Open Source Software, abbreviated as “FOSS,” has few, if any, license restrictions on use. The meaning is “free as in free speech,” and is not related price, although most FOSS is free in that sense as well.
The Free Software Foundation’s four essential freedoms
The Free Software Foundation (FSF) is a nonprofit organization promoting computer freedom. The FSF maintains the GNU General Public License (GPL). The GNU Project is a collaborative free software project started by Richard Stallman, and the GPL is used for many free software projects.
A program is free software if the program's users have these four essential freedoms:
0 The freedom to run the program as you wish, for any purpose.
1 The freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
2 The freedom to redistribute copies so you can help others.
3 The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
The Open Source Definition
The Open Source Initiative (OSI) is a nonprofit organization that works to raise awareness and adoption of open source software. The OSI Open Source Definition is derived from the Debian Free Software Guidelines. It is longer than that from the FSF, but also more comprehensive in its definition.
Common licenses for FOSS
Many licenses offer varying compliance with the FSF and OSI definitions. These include:
- Copyleft, an umbrella term for all share-alike licenses
- GNU GPL
- BSD (Berkeley Software Distribution) Licenses
- Apache License
- MIT License
- Some Creative Commons licenses
Note that a CC0 license is an explicit release into the public domain. More restrictive licenses may require attribution, forbid commercial use, or forbid derivatives. These may not be FSF or OSI compliant.
Non-FOSS licenses and distributions
Any software license that forbids users from decompiling the program and examining the underlying code is in opposition to the FOSS philosophy. Most proprietary software includes such terms and forbid code alteration. Dependencies on proprietary software can undermine programs that otherwise meet FOSS definitions.
Some programs are free in the sense of not having a price to use, but are not FOSS-compliant. Shareware, “freemium” software with extra paid features, and ad-supported software are examples.
Why use FOSS?
No up-front purchase price or ongoing subscription fees for most software.
No digital rights management (DRM) hassles or license expiration. The software is yours to use forever.
Most programs require no internet connection once installed.
Widespread community support for new users
Rapid bug fixes based on user feedback on most large-scale projects
FOSS you can use
Now that you know what it is, what kinds of free and open source software might you want to try? Here are some programs you can try on Windows, and some are available on Apple. If you already use Linux, these are often bundled with distributions, available through app management, or downloadable through terminal commands. Mozilla
You may already use this web browser, and if you don’t already, you might want to give it a try. Mozilla strives to improve user security with bug bounties, fast patches for security issues, and add-ons to protect your browsing data.
The open-source foundation for Google Chrome, Opera, and Microsoft Edge can also be used as a standalone web browser with access to many common plugins. It doesn’t have all the features of the proprietary releases built onto it, but in turn it offers a minimalist browser without any unwanted extras.
LibreOffice is an office suite including programs for word processing, spreadsheets, slideshows, and databases. It can read and save common Microsoft file formats, and the newest versions of Microsoft Office are compatible with the Open Document .odt file format, too.
VLC Media Player is already a popular music and video player. Originally designed as a client for central media servers, it is now a standalone program. It can play numerous audio and video formats. Blu-Ray support is in development, but legal and licensing hurdles mean compatibility is still in the air as of this document’s creation. https://www.videolan.org/vlc/index.html
If you are building a home music studio, trying out podcasting, or any other audio editing project, Audacity has all your basics covered. You need a separate plugin to export MP3 files due to licensing issues, but instructions and links are available from Audacity, so the process is almost painless.
The GNU Image Manipulation Program (GIMP) is an image editing program similar to Adobe Photoshop. If you need to retouch and edit photos, create illustrations, or even code automatic scripts in programming languages like C, C++, Perl, Python, and Scheme, give this a try! There is a lot of community support to help you learn the basics or explore advance d features.
Do you need a dedicated drawing application? Check out Krita! Originally designed as an editor like GIMP and Photoshop, it shifted in 2009 toward a focus toward digital painting features found in programs like Corel Painter. While this is designed to work with dedicated drawing tablets, you may be able to repurpose an old Android phone or tablet instead of buying new hardware. Hobbyists share apps and code to support new devices all the time.
Are you interested in animation and 3D modeling? This program can be used for everything from illustration to movie-making! Design tools include solid primitives and digital sculpting, texture mapping, physics simulation, and rendering.
The KDE Non-Linear Video Editor is a free video editing program for cutting and splicing audio and video files. It can add titles, transitions, and effects. If you make YouTube or Facebook videos, this tool is a free way to improve your production values without any expense or “free trial” watermarks!
I am also working on a separate project to cover Linux once FOSS has been explained and some examples people can use on Windows and Mac have been offered.
Unix was developed by Bell Labs for AT&T starting in 1969, and was licensed to outside parties in the late 1970s. It split into many distributions, some open-source, some closed, and some mixed. Mac OS X and many web servers are Unix-based.
GNU is a collaborative free software project started by Richard Stallman. The GNU Project pioneered the General Public License (GPL) used for numerous free software projects. Linux is a Unix-like operating system kernel programed by Linus Torvalds in 1991 and released under the GNU GPL in 1992. The Linux kernel is used in many different distributions, or “distros.” Different distros often use different repositories and package management systems. Popular Linux distros for home computers include Gentoo, Fedora, Arch Linux, and Debian.
Debian is the basis for many different “forks,” including Linux Mint, Raspberry Pi OS, and Ubuntu. The core Debian releases support a wide range of system architectures, including 32- and 64-bit PC (i386 & amd64), various ARM systems, MIPS (big and little endian), POWER Processors, and IBM System Z.
Ubuntu in turn is available in different variants known as “flavors” with varying user interfaces and prepackaged programs. These are often named by adding the first letter of the desktop environment to the front of the name.
Kubuntu is developed by the KDE software community using the Plasma desktop for a streamlined, modern-looking interface. KDE also spearheads numerous software projects including Kdenlive and Krita mentioned above.
Lubuntu uses LXDE/LXQt for a lightweight environment, and is one of the preferred options for older computers with less RAM.
Xubuntu uses Xfce, another lightweight environment designed for simple mouse-driven use and modular component add-ons.
Note that Canonical, the publisher of Ubuntu, no longer supports computers with older 32-bit processors. Version 18.04 LTS (Long-Term Support) was the final release for 32-bit architecture. Linux Mint 20 also dropped 32-bit systems. The final releases will have official support until 2023 or 2024, though, and other distros will likely maintain support for older systems well beyond that date.
Android smartphones and tablets are based on the Linux kernel, and other ARM-based microcomputers are supported by Linux hobbyists and various official releases.
How to get started
If you have an old laptop or desktop computer you’re not using anymore, you can try replacing its operating system with Linux. Most Linux installers also offer the option to partition your hard drive and add a second OS beside the original, although there is always some risk of data loss here. If you want to preserve the original data, and you’re willing to spend a little money, you can get a replacement hard drive for as little as $20, or even boot from a USB thumb drive or a memory card, although performance may suffer.
If you want to learn programming, try installing the Raspberry Pi OS. It includes tutorials, and the Raspberry Pi Foundation website includes lots of projects and lesson plans. You can even get a Raspberry Pi computer and build a custom micro-PC, although this is not necessary to use the OS.
Lastly, I would like to cover options for open-source hardware, electronics, robotics, and other S.T.E.A.M. activities. This isn't very fleshed out yet though.
Do you want to move beyond software and into hardware? For robotics and automation projects, consider the Arduino family of open-source microcontrollers. These systems can be used for home-built 3D printers, weather stations, home automation, and innumerable other projects. Just browse maker forums and hackathon posts for inspiration! https://create.arduino.cc/projecthub