Switching over to Linux can be daunting, but pretty much everyone will run into the same problems at some point or another. That’s why we created this handy guide that you can reference for the most common problems and fixes!
What is Linux, exactly?“Linux” as we know it is actually comprised of different things, and technically referring to “Linux” means specifically referring to the Linux kernel. When we say “Linux”, we are actually referring to a wider family of operating systems that all have one thing in common - the Linux kernel.
The Linux kernel is underlying each and every Linux distribution, but many will conflate “Linux” to include other aspects too, such as the shell and the ability to launch applications. It’s not a distinction that hugely matters to anyone but the computer geeks, but it’s worth noting that “Linux” isn’t actually the operating system, but people often are referring to an operating system when they say Linux.
What are Linux distributions? What are the most popular “distros”?Linux distributions are collections of software that are all based around the Linux kernel. Distributions are commonly split into three major families (though there are more) - Debian, SUSE, and Fedora. From these three families, there are derivatives that exist in each. For example, Ubuntu is a derivative of Debian, but Linux Mint also started as a derivative of Ubuntu. Therefore, Mint is Debian-based, but it has features and software from Ubuntu that doesn’t exist in pure Debian.
If it sounds complicated, that’s because it kind of is. Thankfully, the complexity doesn’t hugely matter. Linux distributions have a lot of overlap, and while derivatives of each other exist, many of them spin-off and become their own thing over time. Mint being a derivative of Ubuntu isn’t really something that matters anymore, as it has become so unique that it no longer gets a huge amount of its identity from the base that it started from.
While most people would likely say to try out different distributions to see what you like best, you can look up reviews on YouTube or online of different distributions to get a feel for which you’d like best. Here are some of the most popular distributions that you can look up! There are many more out there too, so be sure to lookup more of them if none of these suit you.
Ubuntu
Mint
openSUSE
Manjaro
Red Hat Linux
CentOS Stream
Who created Linux?The creator of Linux is Linus Torvalds, though it has been maintained and developed by many talented developers over the years. In fact, in recent years, more and more companies have stepped up to contributing large swathes of code to the kernel, likely due to self-interest as Linux is used in practically everything in some way or another.
What can I do with the Linux source code?The Linux kernel source code is licensed under GNU GPL, meaning that any changes you make to the source code should be published. With this license, you can freely copy, change, or distribute the source code, and this is why smartphone manufacturers are obliged to release kernel source code with every release.
How much does Linux cost?Linux is a free operating system, and while a developer can charge for their operating system, most don’t. Some survive off of voluntary contributions and the sale of additional resources. For example, Red Hat Linux sells additional software packages that have documentation and web support for 60 days, with the lowest package costing $30. These organizations also often offer enterprise packages, which usually cost significantly more. As well, when downloading Ubuntu, you can choose to make a voluntary donation and choose where exactly your money goes. These are just a couple of examples, and there are so many different Linux distributions that many of them likely have their own monetization ideas.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
What can I use Linux on?Pretty much any device can run some form of Linux, though it depends how “open” that device is to doing so. Famously, the Nintendo DS could even run Linux with the use of a flashcard, though it couldn’t officially do so without breaking Nintendo’s copy protection. In most cases, all there needs to be is some way to run your own code on a device, and it should, in theory, be possible to run Linux on it. This is obviously also dependent on the distribution used. The United States government even used a cluster of PlayStation 3s running Linux to build a supercomputer.
Will I be able to use X application if I switch from Windows?Nearly all applications have a well-made Linux equivalent, but for the few that don’t, you can use Wine and PlayOnLinux to execute most (not all) Windows applications natively on Linux. Wine is not an emulator (and that’s what Wine used to be an acronym for!), but rather a compatibility layer that translates calls as they are made in an application. Wine is the basis for Proton, a compatibility layer developed by Valve that makes many AAA titles playable on Linux. Games like GTA V and Cyberpunk 2077 are perfectly playable on Linux distributions with the use of Proton.
X is broken or does not work correctlyAs in all cases, the best thing to do on a Linux machine if something isn’t working is to ensure that all of your drivers are up to date. Googling whatever peripheral or device it is and “Linux” as a suffix will likely yield useful results, particularly if the device you are trying to use can be problematic. In rarer cases, you may need to build and install your own Linux kernel instead, if the chipset in your device is the issue.
Great post, Adam. Linux is just superior to Windows 10 in every way, whether it's customization or performance, Linux is just the best, no doubt in that, period.
Thank you for getting the conversation started on this.
I'll be the first to add a "but" ... Sorry. ( ^.^ ;
Red Hat Linux, or rather RHEL nowadays ( the E is for enterprise ) is a commercial distribution targeted to the corporate world mainly. Companies, in short. I wouldn't recommend anyone starting with Linux to check that one out to begin with.
You should probably mention Fedora instead. ( From which RHEL eventually comes anyway. ) Fedora offers plenty of ready-to-use variants with live usb downloads, perfect for any beginner who wants things to "just work", or simply test and play around, even in a more similar / traditional graphic environment ( more like Windows ) than other Linux graphic desktops, say using Cinnamon for instance rather than KDE or Gnome.
Arch base and Debian SID OS has been great to me over the years.
Used and tested likely all Linux OS but been active for years on the following.
Archlinux
ArchLabs
Debian Sid
SupremeKing5810 said:
Great post, Adam. Linux is just superior to Windows 10 in every way, whether it's customization or performance, Linux is just the best, no doubt in that, period.
Click to expand...
Click to collapse
Pretty sure hardcore gamers will not agree, but it's getting closer every day
Great post !!
Under " Will I be able to use X application if I switch from Windows? ", You could add Running windows in a virtual box environment on Linux as another alternative.
Superb Bro !
I wanna add one thing:
What can I do Linux For?
--For recovery activities on non-bootable devices
--For Forensics purposes
--For Data Migration
--For a Daily Basis OS (work, hobby, gaming, entertainment, study, hacking, researching..)
--Another "For" that U could imagine it !
Nice one, but sometimes a little bit inconsistent.
On the section "Distributions": Fedora and Suse are both based on rpm package format (Red Hat). Later on you mention Manjaro, which is based on Arch, which you didn't mention in the first place.
I am tired of Windows and really considering to go with Linux.
What distro would you recommend for someone with no Dev knowledge?
orb_selektor said:
I am tired of Windows and really considering to go with Linux.
What distro would you recommend for someone with no Dev knowledge?
Click to expand...
Click to collapse
Linuxmint
I do not use it myself, but for a beginner it is superb.
What the Linux Mint developers have pulled off is nothing short of astounding
Jack Wallen's eyes have finally been opened to how truly impressive Linux Mint is. Read on to find out why he believes the developers have perfected the desktop operating system.
www.techrepublic.com
Download the iso file and write to a USB (8Gb) stick following the instructions. Then boot your computer from the USB stick and have a play without touching your Windows install.
orb_selektor said:
I am tired of Windows and really considering to go with Linux.
What distro would you recommend for someone with no Dev knowledge?
Click to expand...
Click to collapse
Bro, i would suggest you several distros:
-Zorin OS 16
-Elementary OS 6.0
-Linux mint
-UE (ultimate edition) distro
edit:
To folks like me there are 3 primary reasons Linux is my operating system of choice, since 2001, creating devices notwithstanding....
1 - stays the hell out of my way - at all times, my hands are not tied
2 - no financial obligations, no ridiculous subscriptions, nobody owns my machine but me
3 - produced and maintained by the world, not some company
4 - privacy, in tact
5- security, an ongoing process made simple and workable because Linux
6 - everything is a file
Back in the day I wrote a debian tutorial site that gained a lot of popularity. Of course, my aim was to help Windows users leave that pile behind and get with Linux, but, alas, it was far more popular with the Linux crowd. Poke around, it may be of some value even today, which, brings me to yet another terrific reason for using Linux - just about everything on my old site is applicable today, it still works, though it's from the 00 - 10 decade.
EDIT: Actually, my swith to Linux was in the late '90's for the express purpose of running a web server. There was no way I was using IIs or Windows for such a purpose. I was hooked immediately.
I want to talk about one very cool aspect of using Linux: aliases. An aliases is a handy command that stands in for another, longer or messy one, maybe a thing you do a lot and don't want to write a script for.
So, as an example, I have a handy alias for using my favorite package manager to - clean, purge, and or fix the apps on my system. A few years ago this command was more necessary than it is now, but, I still use it.
Have a look -
alias cpf='sudo aptitude clean && sudo aptitude purge ~c && sudo aptitude -f install'
If you look at that line you can easily see what's going on. The command I want to run is: sudo aptitude clean && sudo aptitude purge ~c && sudo aptitude -f install
Well, that's a lot to type. Pffft. Instead of typing all that noise I now only have to type: cpf
EDIT: aliases are run in the terminal. Seems obvious, I know, but, just to avoid confusion.
If you're running Linux right now and you are hearing about aliases for the first time - happy birthday!! You're gonna love this. In your ~/ (which the machine reads as /uname/home/) you will find a file called: .bash_aliases. If it's not there, for whatever reason, just make it. In a terminal just do: nano .bash_aliases.txt, enter. Now, you're in the file, add your stuff. When you're finished, to save and close do: ctrl+x, y, enter.
Here are a few of the aliases I use on my machine, in no particular order or grouping:
alias clients='sudo nmap -sn 192.168.1.0/24'
alias ns='sudo netstat -alnp --protocol=inet'
alias wpupdate='~/development/update.sh' - this is handy. it uses wp-cli and points to a little script I wrote to make updating/upgrading wordpress sites better. to use it - in a terminal I type - wpupdate, and then it asks me for the subdirectory, I type that in and bam all updates occur.
If you are using wp-cli locally, be sure to add this to your aliases file:
alias wp='sudo -u www-data wp'
alias cdv='cd /var/www/html && ls -la'
alias lamp='sudo systemctl start apache2 php7.4-fpm mysql'
alias aphp='sudo systemctl restart apache2 php7.4-fpm'
alias lampkill='sudo systemctl stop apache2 php7.4-fpm mysql'
alias pikill='sudo systemctl stop pihole-FTL'
alias ftl='sudo systemctl restart pihole-FTL'
alias mysql='sudo mysql -u root -p'
alias ownit='sudo chown -R www-data:www-data'
alias findbig='find . -type f -exec ls -s {} \; | sort -n -r | head -5'
alias cleancache='sudo /sbin/sysctl vm.drop_caches=3'
alias nap='sudo /usr/sbin/pm-suspend'
alias again='sudo shutdown -r now'
alias off='sudo shutdown -h now'
alias pscpu='ps auxf | sort -nr -k 3'
alias sources='sudo nano /etc/apt/sources.list'
alias makepwd='head -c 12 /dev/urandom | openssl enc -base64'
alias pwgen='pwgen -ys 24 1'
I have loads more broken down by function in the file. Aliases are awesome. Your desktop, or window manager (I use openbox) can do similar, and/or supplement. Openbox, can, anyway. In openbox you have a couple files, one is rc.xml. rc.xml is the file that controls keybinding, keyboard shortcuts. Love it. I hit win+m for my email. You know, this isn't anything new, this functionality has been around for decades.
orb_selektor said:
I am tired of Windows and really considering to go with Linux.
What distro would you recommend for someone with no Dev knowledge?
Click to expand...
Click to collapse
You need no dev knowledge or skills to run Linux. None at all. If you want, however, oh, the places you'll go....
People in this thread have asked for advice on which Linux distribution to use, and rightly so as the ecosystem is vast. I'm not going to recommend any because it's problematic. I want you to run and like Linux, because it's awesome. What I don't want is to confuse you. Now, LinuxMint and Ubuntu and so many others are fine Linux distributions, certainly. However, they are built upon another in all cases. I don't have to tell you about more moving parts or layers, do I? Personally I have run into trouble will all manner of distros (yes, even Ubuntu) built upon another, because they were built on another and for implementations, scripting, all that - to make their ideas work. In 20 years with Debian it's always been: flawless. But, I didn't just recommend Debian. (Shhh - USE DEBIAN!!!)
If you want to try Linux then try one of the base distributions the others are built on for a trouble-free operational lifetime. There are major differences in the main base Linux distributions, but, you don't have to worry about any of it, mostly it's just package management - LSB be damned!! I don't know if you can still get Red Hat - I think it's just fedora, or centos, but, this is one of the base distributions. Fedora is a bit beta, and you use centos for your server.
If you're a masochist, roll up Gentoo. You da man!
THere is Arch Linux, Debian, Slackware (the oldest), and, OpenSuse. Maybe Mandriva, is that what it's called now?
Hello World , I am most definitely not the best person to be writing this but somebody's gotta.This will be my best attempt to create and maintain an ongoing description of different Linux Distributions, starting with the most popular and branching out from there. If you're new to Linux, or are interested in using it, practically the first thing you are expected to do is choose a Distro (shorthand for distribution) of GNU/Linux to use. Well if that's where you're at, or are looking to find out more about Linux distributions in general, I'm here to break down the pieces and start a tour of distros so you can find what beckons to you. This part can get a lot of people caught up thinking there's a right/wrong answer, really though, the joy of Linux is making it your own and once you know what you're doing, the make and breaks of a distribution will mostly be their software manager and it's repositories (database of applications). Unless otherwise noted, be aware that practically all distros are designed w/ daily use in mind and will likely come with or be easy to install a basic suite of software to meet those needs.
Spoiler: More About
Most beginner guides and resources for Linux are around Ubuntu and if you want things to be easy, just go download that and be gone, but what I've learned, and hope to share in these posts, is that Ubuntu isn't perfect for everyone, and much of the support for Ubuntu also works on other distros, maybe with a few different keywords. The out of the box experience of other distros may be more or less to your taste, and exploring what you do or don't like by jumping distributions is known as distro hopping. This thread may both be a resource for hopping as well as finding the single right distro for you right now.
I am not an authority on Linux nor would I consider myself an "expert," this isn't a complete guide to distibutions either. Anyone with more experience or knowledge than I is free to correct me or add info and I'll do my best to acknowledge and update. I'll also do my best to refrain from speaking too much on things I don't know about, and will denote when I'm unsure. Also stars will be placed like *Distro Names* to deote I know about but do not have firsthand experience with them. I'm writing this post as I have a slightly above average knowledge and understanding on the world of Linux and would like to share what I can for those just starting their journey, as well as take this experience to expand my own knowledge base. If you want more info on each and every distro, check out something like distrowatch.
1. A Dirty Introduction to Linux For those regular to the XDA forum, a good point of comparison for a Linux distro would be the custom ROM scene for Android, where we have the OEM stuff like OxygenOS, OneUI, but then we see the custom scene starting from AOSP, and derivative Lineage, AOKP, and more complex derivatives like crDroid and Dirty Unicorns (RIP ). But there is a distinct difference in practice between custom Android ROMs and Linux distros, which is binary (application) compatibility. Just because an application was written/compiled for one version of Linux doesn't mean it won't be compatible with others, but generally speaking, that is not the expectation with pre-compiled apps for Linux. All the major distributions simplify getting the right version of the app through the package manager, the Linux equivalent of the Play Store or F-Droid, unlike Android though, everything is typically free .
For one reason or another, you may find an application is not available, or maybe it's outdated/doesn't work. The good news is because most Linux software is open source, you can just compile the source code within your distribution to make it run. Whereas with Android, there is platform uniformity through unified app stores like the Play Store, Linux is a bit more fragmented, but not in a way that has to affect your usability. It is in part due to the variety in Linux distributions that we find them to be more secure than their closed source conterparts, malware written for Ubuntu for example would have to be re-written to work on or sometimes be completely ineffective against say Fedora- or Arch-based distros.
Spoiler: Overview
If you're interested in just seeing what some of the distros have to offer, jump to part 2, but this is where I'd like to break down the different pieces to a GNU/Linux system so you will have a better understanding what's actually going on between distributions hopefully. Unlike a platform like Windows where different functions in the system are all tied to one another in ways we can expect only Microsoft devs to truly understand, and Android where the majority of the what you the user interacts with is designed by Google while using proprietary drivers pre-baked into your handset, Linux can be (and often IS) built piece-by-piece. I'm sure there is better language to describe the difference in philosophy but the words escape me. But from here, we'll be breaking down the bigger pieces distributions will customize and include to make the full experiences we expect from them. Keep in mind this is my best to give an overview of these different parts, but is by no means all that can be said. Every section and subsection following here until part 2 is a deep enough topic to make it's own post, or several posts on, describing the pros and cons, gives and takes of each component choice, and the actual user experience some of these components provide are best experienced firsthand. Just know these are where you find many of the similarities and differences between distros.
1.1 Fixed vs Rolling If there's one difference between two distros you should be keenly aware of, it's gotta be distinguishing distributions by their release patterns. Many distros release on a fixed cycle. They'll push out individual and important updates on a regular basis, but will wait for major releases to make large changes. That's where we see things like new features and user interfaces updated on these, when they have a new version release. Compare that to a rolling distro where each component of the system is updated as soon as an update is ready, meaning you may have a major version change to a component months before someone on a fixed distro, but you may get a major change that changes your workflow with little to no warning when running system updates. They both have their gives and takes, but basic rule of thumb is Fixed distros for reliability, Rolling distros for cutting edge features. Standard individual apps, like Firefox, or LibreOffice will update on regular cycles with fixed distros still, maybe not as immediately as a rolling distro usually though, we're mainly talking about OS level updates being either fixed or immediate.
1.2 The Kernel (GNU, and the Bootloader too ) The heart and soul of Linux, the Kernel itself. Developed by Linus Torvalds, the Linux kernel is essential to the OS, and is what provides the most basic functionality of the computer past the BIOS and bootloader. You may have noticed people (including myself0 using Linux and GNU/Linux interchangeably, there's a very quotable meme here to summarize what this means:
Spoiler: CopyPasta
I'd just like to interject for moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.
Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called Linux, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.
There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called Linux distributions are really distributions of GNU/Linux!
Put briefly, the Linux kernel handles many system level functions, while user commands and most other basic system level functions are built into what's known as the GNU corelibs and shell utilities, open source projects initially developed separately but are now essential to using a Linux system on a PC. And this right here is what makes desktop Linux (GNU/Linux) different from Android, which is only Linux based and uses many fewer GNU tools. The GNU Project itself is massive (and we'll touch on more applications later) it, includes the essentials for not only GNU/Linux but for any operating system trying to get off the ground. Sure, you can develop your own functions, but if they achieve the same thing as a GNU tool, why not use the tested and trusted libraries/programs that already exist?
Leading us to the most essential GNU tool when starting up your PC, essential to getting an OS up and running, the Bootloader. Android users who root or do any customization will already know a little what this is, but like most things for Linux, is typically GNU and open-source on a PC. There are non-GNU alternatives, but the most common Linux bootloader is GRUB (the GNU GRand Unified Bootloader). So why am I mentioning this? Well coming from any recent Windows PC, the only part of a bootloader you've seen would be maybe a Windows icon or your motherboards OEM icon as Windows is getting ready, on older PCs, you might have gotten a couple lines of text after your BIOS completed post (first part of turning on a PC, sometimes adjustments need to be made to BIOS for new OS and bootloaders to install), but nothing like GRUB. Sure, you can have it only flash on the screen but upon turning on, you need something that tells the computer where an operating system is and loading the initial programs that will allow it to start running and take the reigns from there. GRUB is compatible with practically all operating systems and will be essential if you intend to dual-boot with Windows still installed or if you have multiple distros on your machine. It loads the Kernel, required drivers, and initial system services needed to make everything else work, and once past the bootloader, with a standard distro, you'll be put into userland, where you can sign in, start programs, , do your computing things. There's very little difference between versions of GRUB besides visual, though there are ways you can customize it.
The Kernel which the bootloader loads is where we see the first main thing that vaaries between the distros, as there are different optimizations, behaviors, or even drivers within the kernel itself that need the distribution writers to configure for the best experience possible. For the most part though, even though the Kernel including with a distro is tuned for it, most Linux kernels can be used across distros, or the one's included in a distro are based off of forks of the Kernel for specific things.
Common non-distribution specific versions/forks are: - Linux Stable (All the standard kernel stuffs, with maybe a couple tweaks applied by the distribution, typically loading modules [extra instructions needed for different use cases])
- Linux LTS (Long Term Support, may be missing newer edge features but will get essential updates for years to come, may be missing some security patches, but more stable, and less attack vectors afaik)
- Linux Hardened (making changes that may slow down or otherwise negatively impact performance, but overall make the system less susceptible to attacks)
- Linux Zen (focused on making the user experience the best possible with improvements to memory management and resource management as a whole)
Exactly which kernel options will be available to you out of the box will depend on your distribution, but most will install a standard or LTS kernel and then give official options in settings, with unofficial options able to be installed by other means, often the package manager.
1.3 Free vs NonFree Drivers (Not related to money) This section can be summarized with this: Do you have a Nvidia GPU you need/want to use? Do you intend to watch copy-protected media? Then you need proprietary drivers, written and maintained by organizations that don't support the open source agenda but know their products must work with open source software due to it's prevalence in certain industries and product types. At least for the Nvidia driver, there is an open source alternative, but do not expect it to do anything besides the barest of basics when it comes to visual effects and performance. AMD and Intel both have open source drivers that are on par with their closed source Windows counterparts to my understanding.
1.4 The Package Manager (and Daemons incl. systemd ) This is one of the more critical aspects of different distributions, how you get your applications, and how they are managed. Any component to a Linux system, whether it be a the settings menu or Firefox, is considered a package, and the package that handles other packages on a system level is the package manager. While many package managers exist, there tend to be the primary ones for a distribution base like Ubuntu/Debian has DPKG, Fedora has RPM, and Arch has Pacman. Some more universal package manager formats exist, like Snap, but they aren't ideal as they may lack the system integration expected of repository hosted packages.
A background application is typically denoted as a service, though in Linux a service specifically interacts to requests from other programs and the user, while a daemon typically handles only system level functions, which includes monitoring hardware and keeping services alive. The initialization of these daemons is done through the init system loaded at boot after the kernel. The most commonly used init system is systemd right now, but used to be sysv. The exact functions of these systems are too complex for me to go more in detail here, and would require I learn more than I already do, but what I can say is that systemd does much more than what sysv did and in doing so, has many more problems including reliability and security issues that other init systems do not have, though is used for the same reasons that it has problems: it's complex but handles a lot of functions you'd need more daemons, services, and packages to achieve otherwise.
1.5 The Desktop Environment (Including the Display Servers and Window Managers) Now we're in the territory of aesthetics and software suites, this is where we'll find both the most and least change between distributions,, at least from a beginner's perspective. Once you have a booted computer, you're typically greeted by a login screen, but even this is a variable your distribution chooses for you by default. Once your system initializes, it needs to communicate graphical information to you but that's not part of Linux or the GNU corelibs. Remember, when this stuff was developed originally, computers were more text than graphics, so a service was developed to display graphics, the Xorg server, evolving into modern X11, was the primary backbone of graphical UIs until a modern replacement known as Wayland began development. It's a server because it handles services, though is itself a type of service. Both have ongoing development though Wayland fixes many problems a 30+ year old program is bound to contain for compatibility. In creating a new standard though, Wayland has split development of the other key ingredient to a real graphical user interface. That said, as a user, typically it won't matter which you choose, but may find some oddities between the two in terms of display scaling and some display features working better in one or the other. I'd say though stick w/ what the distro recommends unless you have a specific issue, just trying to cover the differences.
Moving on, I said before Xorg (or Wayland) is the initial service so your computer knows hot to draw graphics, but it's a type of service known as a server waiting for other services to interact, so then loads a fully fleshed out library (either GTK or QT) to determine styling and such. Once the display server and library are designated and loaded comes the Display Manager, or in other words, login screen. From there one more major piece, the window manager, determines how you can actually manipulate the stylized applications. Other UI services will also be loaded such as system bars, docks, and universal menus. The combination of these things into more complete software suites is what's known as a desktop environment (or DE). All those details are picked out for you when you download a distribution, which will have a default flavor (the primary Desktop Environment they develop for and expect you to use) and flavors w/ other desktop environments that another internal team may maintain to assure compatibility and consistency between updates and versions. There's a lot of Desktop Environments and Window Managers, but they all do the same types of things and have some commonality between them between their QT or GTK origins and their reliance on Xorg or Wayland.
Some common desktop environments and window managers include: GNOME - (Premier GTK environment, many forks and derivatives exist, but is good for both touch and traditional mouse/keyboard, but doesn't function like most people expect at first. It can be used similarly to Windows or Mac, but isn't designed to and is best learned correctly before applying too many customization, otherwise why not pick a better fit?)
KDE - (Arguably the most advanced in terms of overall features and customizability, at least of complete DEs. Functions similarly to Windows, w/ some Mac like configuration options. More extensible than GNOME, but also less stable in my experience)
OpenBox - (A completely customizable window manager many other window managers are based on. Does not include all components of a DE, instead giving the bare basics for handling many windows, and leaving the DE experience down to additional packages and/or customization of OpenBox itself)
i3 Window Manager - (A favorite Tiling Window Manager. Always want to lock sections of your screens for specific apps, it may take time to get acquainted but this is for you)
1.6 Gaming (and Windows App Compatibility) Despite what many distributions claim, or how this information gets presented, you can expect nearly all distros to have similar compatibility save for the pre-configured programs to help with this. This is due to the same core component(s) across the board for this, Wine and Proton. These are compatibility layers, made to provide the necessary instructions to run binary applications with Windows specific instructions and using Linux/Unix/GNU functions instead. This is done by interpreting the DLLs or Dynamically Linked Libraries which are different app to app and may need different settings to work correctly. Using Wine (or gaming focused Proton), most programs will run without too much hassle but where distributions differ are in their included tools to simplify this such as WineTricks or PlayOnLinux.If you need Windows apps on the daily, and if those apps are reliant on peak performance as much as possible, Linux may not be right for that, not right now at least. But if you're willing to troubleshoot and compromise, you'll find that almost everything can be run in Linux with some tweaking. The worse case would be to look into Virtual Machines, or sandboxxed operating systems created, and with the right configuration and additional features, can be used in ways that make the apps run almost natively, though you are running Windows to maintain it so is only feasible on powerful enough computers, and will hamper battery life if used on a laptop in most scenarios. With this said, I don't recommend "gaming" distros of Linux unless there is something particularly special about gaming on it (there are a couple, but none meant for daily use). If a good distro has a seperate gaming version, I'll try to mention it, but keep in mind, most of the time you'll be installing bloat and you just need PlayOnLinux and WineTricks to get what you want out of it.
2. The Classics When getting into Linux, you'll likely find a few very commonly recommended or mentioned distributions, and nearly all other distros are based on these, or based off of the same base in Ubuntu's case. If you're new to Linux, you don't have to use these, but start here so the rest of the distro descriptions make sense.
Spoiler
2.1 Ubuntu
Spoiler
The tried, the true, you can't go wrong when going with Ubuntu. But what makes Ubuntu so ubiquitous in the Linux community? From their regular long-term support distributions and wide range of utilities included with it, Ubuntu is the go-to fixed distribution for anyone looking for ease of use in Linux. They offer both an LTS version for users not wishing for regular upgrades, with every other version being a standard release, updated for a little while, but phased out much more quickly for each new release. The default flavor of Ubuntu has for some time now come with the GNOME Desktop Environment, pretty much the standard for Linux desktops. Due to it's size and corporate backing, you'll find prorgrams are easier to find, download, and sometimes even use on Ubuntu. This has the downside of including many more nonfree proprietary pieces of software, as well as less care put in to user privacy. That said though, more things work out of the box, and you'll find it comes with a simple to use graphical package manager which allows you to find and install applications with ease though. If you're still afraid of touching a computer terminal, Ubuntu is a safe choice as you transition away from propietary computing.
As will be the case with many of these distributions, Ubuntu isn't entirely responsible for it's non-GNU/Linux pieces, particularly, it used the Deb package format through installed through DKPG (the Debian Package Manager) usually using APT (Advanced Package Tool). Or in simpler terms, it's based on another Linux distro, Debian Linux. We'll give some more info on that later, but what that means here is that Ubuntu is built on top of what's come before, and has integrated what has come after for a feature-rich experience w/ consistent theming. In addition to the Debian package base though, there are also Snaps which are sandboxed applications that can be updated directly without the need of Ubuntu pushing out an update, but are not popular among many of the users. My understanding is that this is due to it being sandboxed, thus may behave different or not fit in as thematically as apps maintained by the official repositories.
On top of it being a well-themed, reliable OS, it comes in both user and server oriented releases w/ many official and unofficial flavors existing including:
Kubuntu - Ubuntu w/ KDE, or the K Desktop Environment. More Windows like, but also more customizable than the default GNOME
Ubuntu Mate - Created when GNOMEwent from version 2.x to 3.x, Mate (pronounced mah-tay, like Yerba Mate) is a more traditional desktop that can look and feel like Windows or Mac, but is a continuation of what GNOME 2.x was, a good looking, performant desktop environment
Xubuntu - Ubuntu using Xfce, a well rounded, simple desktop manager that's always felt like a bit of Windows XP and 7 combined to me, leaning more on the XP side. Primarily used as a stable desktop environment that uses minimal resources while including the features expected, like window snapping, animated window resizing, and a navigation bar.
Ubuntu Budgie - Using the Budgie DE, this is often considered to be closer to a Mac-like experience, but besides the central dock, has a lot going for it distinctly un-Apple like. The programs menu and widgets it includes makes this DE feel like it's own thing
Plenty more flavors exist but these felt like the most critical to mention. As we'll get to later, many distinct Ubuntu-based distros exist too, but just because it is based on Ubuntu doesn't make it a flavor of Ubuntu, which I hope to illustrate when comparing to Linux Mint later on.
Examples of
App install
Code:
sudo dnf install xxx
App Update
Code:
sudo apt update
System Update
Code:
sudo apt dist-upgrade
2.2 RHEL/Fedora
Spoiler
Doing business w/ Linux? Well then this is probably the Linux distro most recommended for this. Red Hat Enterprise Linux (RHEL) is a commercial Linux distro aimed at the business market currently maintained by IBM. For those reasons, you'll find it's likely easier to get business oriented software on here as companies have come to trust Red Hat to make some of the most stable and secure software you can get out of the box with few compromises. Fedora is the open source free version of RHEL maintained by the community. You'll find more features and user centric programs with Fedora, but are binary compatible, or programs will work across the board. That said, even though RHEL is sold for real money, these distros are much stricter in regards to what's included being open-source and you won't be getting perfect hardware support out of the box if you have something like a Nvidia GPU or software needing proprietary drivers, and is probably the least recommended distro here for gaming on Linux. There's less customizations done than say Ubuntu as well, but you may find it more performant and reliable than Ubuntu partly due to this. These distros are released on a fixed cycle as well but unlike Ubuntu, there isn't a long-term support version, instead, to stay up-to-date, you must be willing to upgrade every 9 months or so. For this reason, Ubuntu server is much more popular for server situations.
Inside of RHEL/Fedora, you'll find the RPM package format with the DNF package manager to install. This is a package format incompatible with Ubuntu, Arch, and other distros not based off the same source code, but the visual package manager will appear quite similar between it and Ubuntu. If you're willing to download Fedora instead of Ubuntu, I'd hope you are a little more inclined to use the Terminal for package management as you'll find it's a lot easier to type a couple words than open a program, type, search, read description, click multiple times before finishing an install. One other interesting thing to note that's different between Ubuntu and most other distributions is that Fedora uses BTRFS by default for it's file system. This is in regards to how it stores and manages files, on Windows, everything is exFAT or NTFS usually, but in Linux, you'll find the most common is called ext4. Consensus seems to be that BTRFS is the best of these options, but ext4's limitations haven't been met and has been stable for longer, so we will not see BTRFS as the default all too often.
Examples of
App install
Code:
sudo apt install xxx
App Update
Code:
sudo dnf upgrade
System Update (multi-step via command line)
Code:
sudo dnf upgrade --refresh
##restart PC, REQUIRED STEP BEFORE ALL UPDATES##
Code:
sudo dnf system-upgrade download --releasever=xx ##WHERE xx IS THE VERSION NUMBER##
sudo dnf system-upgrade reboot
Similar to Ubuntu, there are flavors here, maintained directly by the main dev team instead of individual devs though, known as Fedora Spins. Similar to Ubuntu, you'll find both a KDE and Xfce spin, as well as many others. And like Ubuntu, there exists distros based on Fedora but distinctly different, though due to it's relative simplicity in presenting itself, there are far less of these. Because both Ubuntu and Fedora have a lot of money backing them, they are some of the best distributions for anyone new to Linux, but maybe you're not wanting some corporate entity in charge of maintaining your software. Maybe you're more inspired by the community co-creation aspect, or want to have more control over the fine details of how your PC works. If so then read on.
2.3 Arch
Spoiler
Got that DIY attitude with the time and patience to learn new skills? Well Arch might be right for you. It's not building Linux from the ground up (we'll get there) but it has usually required you (the user) to not only configure your hard drive and manually copy files and such, though there are automated tools to help, and as of recently, now includes one of these. It sticks to the principles of KISS (Keep It Simple Stupid), which is to say it has all the simplest necessities out of the box, unfortunately not the simplest to install. You get a terminal interface, a rolling linux system, some networking tools, and that's about it. If you want a GUI, you have to install the GUI, if the default config of the GUI doesn't work for you, you have to customize the GUI. While this may sound daunting, it's not as bad as you think, partly due to my favorite package manager here, PACMAN! As will be the case with basically all the package managers here, it will help you get all the dependencies required to install and run an applications correctly.
On top of having this standard package manager, Arch users have another goldmine of applications you don't get any where else, the AUR, or Arch User Repository. While AUR apps are not installable the same way through pacman as other apps, you'll find many apps here that otherwise claim to only work on Ubuntu or Fedora, as well as many gits for programs that wouldn't make it into standard repositories. The up to this is you can almost always get something working on Arch with little trouble, the downside to this is that the AUR needs to be maintained, and sometimes you may find an out-of-date AUR listing and not realize you'd be better off cloning and compiling the git yourself. Or in the worst case, they may be pre-compiled or need PGP keys that the maintainer has not maintained, making it uninstallable. Luckily, it's really only apps that aren't necessary where this happens, but it's still frustrating nonetheless.
Because of it's barebones nature but wide compatibility, you can use Arch however you please, but you have to know the different pieces to make it work how you want. For example, do you want it to be a file server? Well, if you know what apps would make it a non-graphical file server, you can do that. Want it to be a network logger? Download the right applications again, and let it do it's thing. Because there's so little extra, you are less likely than on most other Linux platforms to run into performance issues, and can have servers with extraordinarlily long runtimes. But you can also bring it all down a lot more easily if you don't know what you're doing and either have incompatible packages or configuring them in ways that crash your PC, so user beware.
Examples of
App install
Code:
sudo pacman -S xxx
Package Update (since this is a rolling release, this will update both user and system apps)
Code:
sudo pacman -Syu
Package Search
Code:
pacman -Q "xxx"
An AUR helper (not recommended by devs, though used by many, including most Arch based distros including these
Code:
sudo pacman -S yay
##Once installed##
yay "xxx"
##enter your sudo password to proceed)
2.4 * Gentoo (More info in Section 6) *
Spoiler
While Arch Linux is about keeping it simple while making you do a bit of the work, Gentoo is a distribution with an even more hardcore DIY philosophy having you make many more conscious decesions about your Linux. A big theme in the Gentoo community is building and compiling one's own software, this is not a beginner's OS by any means, and a solid, working knowledge of Linux and terminal navigation will be required. Due to this, details will be discussed much later on.
2.4.1 ChromeOS/ChromiumOS ChromeOS and ChromiumOS are linux distributions based off Gentoo designed for simplicity with the Chrome (or Chromium) browser taking center stage. If you're interested in Linux though, you'd be looking at ways to remove ChromeOS from your machine, not add it typically.
3. Debian-based? Debian based So none of the above caught your attention? Maybe you want the compatibility of Ubuntu but don't want as much proprietary software, or are not comfortable with a large company like Canonical creating and maintaining Ubuntu as they please. Well as stated earlier, Ubuntu is derived from Debian, which provides the base for packages and binary applications to run, meaning anything else based on Debian should have similar compatibility.
Spoiler
3.1 Debian (Buster)
Spoiler
Starting off strong is the og, Debian itself. Currently on Debian 10, codenamed Buster, it is fast and reliable, with a focus on LTS (long-term support) rather than bringing cutting edge features. Similar to Ubuntu, it is easy to use proprietary drivers as needed, and is also released on a fixed model. That said, we haven't seen a major release in years, but many new features do eventually get added through incremental updates and you can use Debian Testing if you'd like to get some of the newer features you might find in something like Ubuntu or Mint
3.2 Linux Mint
Spoiler
Based off Ubuntu (which is Debian-based, so is Debian-based in a sense), Mint is a popular choice amongst people distrusting of Canonical but wanting a stable OS with intercompatibility basically guaranteed. The default Desktop Environemnt is one of the devs own creation, being a modified version of GNOME 3.x known as Cinnamon. It has a glassy almost Win7 look to it, but has evolved it's own design language as it's matured. That said, Mint is a little more privacy focused, and do a good job maintaining their repository to avoid the use of the oft-maligned SNAP package format Ubuntu pushes.
While the DE Cinammon is GNOME based, it offers greater customizability than GNOME while taking less resources. It has many of the same elements as GNOME but presented in a way that desktop users will feel more at home such as the navigation bar at the bottom and the start menu being much closer to Windows than GNOME 3.x it's based off of.
3.2 Deepin (I'd urge you to look at alternatives, maybe ok if you live in China but still better alternatives)
Spoiler
You may find Deepin in your search for a Debian or Ubuntu OS that looks nicer, and by all means, Deepin is a beatiful system, originally based off Ubuntu and KDE, they moved to a Debian base and have developed their OS to so it's not just some souped up KDE on here, but it's own Desktop Environment. It has it's own dock, settings menu, terminal, text editor, etc. with KWin being the only part of the DE distinctly KDE. But even then, that's more in a technical sense than a usability sense as Deepin looks more like a Mac than anything we've discussed so far. That said, Deepin isn't completely open source though and was created and is most used in China. Due to the CCP, many are skeptical of this distro, though the main dealbreaker comes down to the repos being Chinese based so downloads are slow and unreliable.
The good news and why Deepin get's its own listing here is that it's DE is so striking, it's been brought to the other Linux distros including Ubuntu and Arch so you can get all the eye-candy with your favorite distro and none of the potential spying.
3.3 Raspberry Pi OS (NOT YOUR ONLY OPTION)
Spoiler
Based on Debian, this is the official OS that the Raspberry Pi team maintains and recommends. If you have a Pi 3 or 4, feel free to use this, but a none GUI OS will probably be better for performance and storage space. Basically Debian with some Pi tools built in
3.4 SteamOS (DEAD)
Spoiler
Valve's (1st) attempt at making a Linux OS for their licensed Steam Machines. SteamOS was available to download and install on other systems and was based on Debian as well, with Steam Big Picture taking control of the interface. It is not well maintained now and is not recommended, even with it's Steam integration. A new SteamOS could come up but the same thing could be achieved with any of these distributions w/ Steam installed.
3.5 * Kali Linux *
Spoiler
Many know this as the hacker's Linux. It is based on Debian and comes with tools designed for penetration testing as well as a lot of other cybersecuirty software. More could be said, but if that's what you're into, I don't think you need me to tell you more, do your own research how to use this OS, it is not recommended for new users.
3.6 * PopOS! *
Spoiler
An Ubuntu derivative gaining a lot of traction lately, PopOS! is created by System76, the largest Linux specific computer company targeted at individul consumers. It is another user-friendly OS to operate and install, but unlike Ubuntu, doesn't want your data, and is more privacy centric. In addition though, there are performance centric features pre-configured here like having the Vulkan GPU drivers installed out of the box, but not much you can't do w/ Ubuntu as well, though they claim to have many other under the hood improvements. User satisfaction w/ PopOS! seems to be higher from my experience. Same can be said of Linux Mint though.
4. Pacman? Waka-WakaSo a fixed release cycle isn't right for you. Maybe you want all the cutting edge features Linux can offer and you want it now. Or maybe you want the endless user repositories of the AUR without the trouble of setting it up from scratch. If that sounds like you but Arch is still a bit above your head to setup and maintain, well then an Arch-based distro might be for you
Spoiler
4.1 Manjaro
Spoiler
Based on Arch, but is much more like Ubuntu in terms of set goals and presentation. This is a highly recommended distro if you want the customizability of Arch, but aren't quite confident enough to format your own harddisks and initialize your bootloader/EFI partition.
4.2 Garuda KDE Dr460nized
Spoiler
Like Manjaro, but a greater emphasis on aesthetics and performance. Uses the Linux Zen Kernel and BTRFS for optimal performance. These features do not reflect well in vitual machines, as compared to running on real hardware. While I don't specify flavors too often, this is their customized KDE flavor that is potentially on it's way to being it's own DE. While it combines many open source programs not exclusive to this styling, it's custom configuration of the Latte Dock makes it look extremely Mac like, while it's custom KDE Sweet theme put's it in a style category that's hard to match out of the box with these other distros. And one of the best parts is it's ability to pre-configure and add apps from the repo of our next distro
4.3 BlackArch
Spoiler
Work in Progress, check back later
5. Grab Your Hats Stability and reliability is the cornerstone of the workstation orriented distributions based off the same base as RHEL and Fedora.
Spoiler
5.1 CentOS
Spoiler
Work in Progress, check back later
5.2 openSUSE
Spoiler
Work in Progress, check back later
5.3 * Rocky Linux *
Spoiler
This was created by one of the people behind CentOS, and my understanding is this will replace CentOS when that stops receiving updates (which is in the near future unfortunately)
6. I Don't Need You, I'll Do It MyselfIf you don't want anybody telling you what you can or can't do with your computer and you're not afraid of getting your hands dirty, check these projects out.
Spoiler
6.1 * Gentoo *
Spoiler
Work in Progress, check back later
6.2 * Linux from Scratch * A true DIY Linux project, requiring you to download, configure, and compile source code to build a Linux system from the ground up. Beyond just compiling a git, or choosing some of the package options, Linux from Scratch will guide you from beginning to end making your own one of a kind distro, though with enough uniformity as to be a proper guide and having compatibility with the greater Linux ecosystem.
7. Wait... This Isn't What I Signed Up ForOS Projects that are open source, potentially POSIX compliant, but aren't Linux. This is by no means complete and be aware many other interesting OS projects exist not listed here
Spoiler
7.1 * OpenBSD *
Spoiler
Not Linux, but still like-Unix, openBSD is the continuation of BSD, a unix derivative. It is POSIX compliant and has runs GNU corelibs as well, but has a kernel all it's own. If you're looking for something different but still getting decent support, look into openBSD.
7.2 Haiku
Spoiler
An open-source OS meant to be reminicent of BeOS, an OS developed through the 90s and was ahead of it's time. I'm unsure of the capabilities of a system like this in 2021 even if it were fully compatible on hardware, but an interesting project nonetheless. And if there are more practical applications of Haiku or BeOS, please tell me.
7.3 ReactOS
Spoiler
Meant to be binary compatible with Windows, it's a clean room project designed to reverse engineer Windows. Still has a long way to go before being a usable OS for daily use, but is able to run on real hardware and run many applications up to the XP-era of Windows
Final Note:
I'm new to this type of writing and as said a few times, this is a work in progress, so feedback is appreciated. That said, I know this post is a little barebones for now, I intend to flesh it out with pictures, a list of typical unique (or distinct) packages each distro contains, and more. Also be aware I may not be able to update daily as I'd like to, but will do my best to have this fleshed out completely within a couple weeks.
Suggestion: add MX Linux (Debian-based) and openSUSE (Tumbleweed and Leap)
Good post @thats_the_guy, this will surely be helpful to Linux newbies (if there are any...)
thats_the_guy said:
Hello World , I am most definitely not the best person to be writing this but somebody's gotta.This will be my best attempt to create and maintain an ongoing description of different Linux Distributions, starting with the most popular and branching out from there. If you're new to Linux, or are interested in using it, practically the first thing you are expected to do is choose a Distro (shorthand for distribution) of GNU/Linux to use. Well if that's where you're at, or are looking to find out more about Linux distributions in general, I'm here to break down the pieces and start a tour of distros so you can find what beckons to you. This part can get a lot of people caught up thinking there's a right/wrong answer, really though, the joy of Linux is making it your own and once you know what you're doing, the make and breaks of a distribution will mostly be their software manager and it's repositories (database of applications). Unless otherwise noted, be aware that practically all distros are designed w/ daily use in mind and will likely come with or be easy to install a basic suite of software to meet those needs.
Click to expand...
Click to collapse
Outstanding post!!!
Superb Post Bro !!
This help me alot to understand more of this "Realm"!
I think, you should add more explanations regardling of Apps inCompatibilites on several Distros----how & why ? or create a section about that.
Thanks!
can you make a list of distros that arent ubuntu based... All I see is some flavour of ubuntu kubuntu, lubuntu etc.
Dhairy said:
can you make a list of distros that arent ubuntu based... All I see is some flavour of ubuntu kubuntu, lubuntu etc.
Click to expand...
Click to collapse
He did touch on that a little bit but I'll list then for you
Debian based:
Debian
Ubuntu (and it's derivatives kubuntu, Lubuntu, etc.)
Mint
Pop!_os
MX Linux
Elementary
Zorin
RHEL based:
RHEL
fedora
CentOS
Arch based:
Arch
Manjaro
EndeavourOS
Then you've got independent ones that are close to the ones that are mentioned above like
OpenSUSE
Slackware
Alpine
Gentoo
A good place to see distributions and more specific information about them is https://distrowatch.com/
Hopefully that helps
This:
thats_the_guy said:
a lot of people caught up thinking there's a right/wrong answer, really though, the joy of Linux is making it your own
Click to expand...
Click to collapse
Exactly!
Try, break*, tinker, start again! Just do it!
* but do make backups!
SigmundDroid said:
Try, break*, tinker, start again! Just do it!
Click to expand...
Click to collapse
This is the way.
I use debian sid as my daily driver
Good post. I have used several dristo in the last few years and the only one I haven't tried is Fedora. Actually I run MX Linux, it's a compromise but it's good for me and it's good for my family.
Now i use Debian 11 bullseye btw
iamshubh69 said:
Debian 11 bullseye
Click to expand...
Click to collapse
What desktop do you use primarily?
SigmundDroid said:
What desktop do you use primarily?
Click to expand...
Click to collapse
You mean specs of my desktop or anything else?
iamshubh69 said:
You mean specs of my desktop or anything else?
Click to expand...
Click to collapse
Pretty sure he means Desktop Environment, like XFCE, etc
HipKat said:
Pretty sure he means Desktop Environment, like XFCE, etc
Click to expand...
Click to collapse
Then i use kde plasma
Yes, thanks for pointing it out @HipKat
Me, too
I just wonder what will be in 2023 with KDE and Debian 12 when no maintainer is found for QT6...
https://www.phoronix.com/scan.php?page=news_item&px=Debian-Needs-Qt6-Maintainers
...but then Plasma 6 doesn't seem a pressing mattter yet:
https://community.kde.org/Schedules/Plasma_6
SigmundDroid said:
Yes, thanks for pointing it out @HipKat
Me, too
I just wonder what will be in 2023 with KDE and Debian 12 when no maintainer is found for QT6...
https://www.phoronix.com/scan.php?page=news_item&px=Debian-Needs-Qt6-Maintainers
...but then Plasma 6 doesn't seem a pressing mattter yet:
https://community.kde.org/Schedules/Plasma_6
Click to expand...
Click to collapse
Lmao
iamshubh69 said:
Lmao
Click to expand...
Click to collapse
Better don't laugh your ass off so quickly... Srsly, am I overlooking something here? Wouldn't that pose a problem?
Eh, but you're probably right, why should we worry about the tomorrow-worries of other people Besides, unlike windows or mac, we can switch to anything and/or use things together...
SigmundDroid said:
Better don't laugh your ass off so quickly... Srsly, am I overlooking something here? Wouldn't that pose a problem?
Eh, but you're probably right, why should we worry about the tomorrow-worries of other people Besides, unlike windows or mac, we can switch to anything and/or use things together...
Click to expand...
Click to collapse
I've used XFCE for so long but I loved KDE-Plasma when I used it, too