🇧🇷 Caso prefira ler em outra língua, esse artigo também foi publicado em português. Clique AQUI para acessar!
If you opened this article, you are at least curious about the world of the Penguin. Be careful: you are being attracted to the more open-source, private and customizable side of the Force.
Some people may feel comfortable in Windows and never even consider an alternative to it, many do not even know that there are options to the Microsoft system, while others fear that Linux world is just a "black screen" (terminal).
This is the first in a series of articles in which I will try to resolve some of your doubts about the Linux world and show you that this subject is only a 7-headed monster if you want it to be :)
After all, what is Linux?
At first, this question may seem trivial and something similar may come to your mind: “Linux is a operating system, like Windows and MacOS, but free”. But that's not quite it...
The Operating System (OS) is the name given to the program or set of programs that manages computer resources, as a bridge with a graphical interface between hardware and the user.
Linux, in fact, is not an operating system, but it is the kernel (core) present in several OSs.
The kernel, in general, is the heart of the operating system: the part that makes the connection between applications and hardware, that is, who allocates and manages the machine's resources so that programs can run.
Another important point is that not all Linux-based software is necessarily free because, as it is an open-source project, its license allows third parties to sell a proprietary version of the kernel or even charge for distributions based on it. Some examples would be Red Hat Enterprise Linux, Zorin OS Pro and the SUSE Linux Enterprise product line.
Open-source software is created under a license that allows the public to study, modify and distribute their code as they see fit. Some restrictions may apply depending on the license.
GNU without Linux, that's me without you
The kernel is, in fact, a very important part of the composition of any operating system, however this puzzle has many more pieces, as the kernel needs a whole environment and tools that make it possible to manage the machine.
The GNU project, on the other hand, had a lot of tools, utilities and components necessary for the composition of an OS, but guess what, just one piece was missing: the kernel.
GNU is a recursive acronym for GNU is Not Unix and, my dears, there are wonderful references at the end of the article if you like history or are just curious about the project!
Yes, ladies and gentlemen, what we now commonly call just Linux is the combination of the entire system created by the GNU project and the kernel project created by Linus Torvalds, whose correct name for, what is now really an operating system, is GNU/Linux.
Distro is nothing more than an abbreviation for distribution, a term used to generically refer to a GNU/Linux based operating system.
In the previous section, it was mentioned that the combination of applications and tools from the GNU project and the Linux kernel (GNU/Linux) is an operating system, however, there is not, in fact, an OS called "GNU/Linux" to download and install it on your computer... and that's where distros come in.
There are several distros, each aimed at its audience or a specific purpose. Therefore, despite generally having the same base, linux distributions can be very different from each other, ranging from a modified kernel and proprietary programs to different graphical interfaces.
The graphical interface, also called the GUI, or Graphical User Interface, of the OS, is the part of the distro that manages the way things are presented visually to the user.
Note that GUI is an extremely generic term and is being used to refer to the graphical part of the OS, which the user can see and interact with, which does not include text-based and command-line interfaces.
Graphical interfaces / Desktop Environments
It's possible that instead of coming across graphical interface, you'll find a slightly different definition: Desktop Environment or simply DE. While, formally, the first term refers, in this article, to how an OS presents itself graphically to a user, the second refers not only to the interface, but to a whole set of tools that the project responsible for it created to the same.
What good would an interface be without a settings program or a file explorer? Yes, these programs are part of DE, an environment developed to support the interface and complement the user experience, in addition to generating a visually cohesive system.
Now, unlike Windows and MacOS, which only have their default "look", there are several graphical interfaces in the Linux world.
Of course, even though Windows and macOS only have a single interface, there are ways (official and unofficial) to customize them. However, in the Linux world, it is possible to simply install a new interface and delete the old one.
Some DEs have interfaces that are more user-friendly, intuitive, and even have Windows similarities to ease the user transition (like Cinnamon and KDE Plasma).
Others, on the other hand, may have a very different usability than what you're used to, but still provide a more minimalist and, who knows, productive experience (like Gnome).
In general, other DEs can also be installed via the terminal and, when logging in, you choose which interface you want to use.
Gnome is a project that places special emphasis on usability and, even though it may seem strange to you at first glance, it has an intuitive and easy-to-adapt interface.
Maybe you've heard about one of the most famous Linux distros, Ubuntu. It uses Gnome and is a system recommended by many people precisely because it is easy to learn to use, has a solid foundation and constant updates.
There are several other distros that use Gnome - Manjaro, Debian, Fedora, GnomeOS - each with its own unique features.
GnomeOS is a distro created by the Gnome project itself for developer testing purposes. This distribution is not considered stable enough for everyday use so please do not install it on your main computer.
Cinnamon is a Gnome-derived project, being developed by the Linux Mint team. For Windows users, it has a much more friendly and familiar interface, which is precisely its intention: to be a gateway for those who want to migrate from Microsoft's operating system to the Linux world.
Undoubtedly, the Linux Mint distribution is another great recommendation, with an extremely intuitive interface and, as it is an OS based on Ubuntu, a frequently updated program repository.
There are other distros that use Cinnamon besides Linux Mint, such as Debian and Fedora, with their differences, of course.
It is worth mentioning that linux distributions can release different versions of themselves but with a different interface.
The Linux Mint team, for example, despite having created CInnamon, also makes available versions of its operating system with DEs Mate and Xfce.
KDE Plasma is developed by the KDE team with a focus on usability and, mainly, customization. With advanced customization options available by default, distributions with KDE Plasma are a great option for anyone who wants to modify their system to the fullest.
KDE Neon is the official distro that the project maintains to test new DE features, but some other distros also adopt a more stable version of Plasma to make it available for the user, such as Manjaro, Fedora and Kubuntu.
Today, there are two versions of KDE Neon, one that you can actually use on your personal computer and the other one to be used as testing by developers.
Others DEs and interfaces
There are other DEs and interfaces like DDE, XFCE, LXDE, LXQT, Mate and UKUI.
I recommend you do your research, take a look at the channels Diolinux and The Linux Experiment to see how the interfaces work and which ones you like best.
Perfection is individual
The perfect OS does not exist, but everyone is constantly updating to always be the best version of themselves. However, the perfect system for you would be one that meets all your needs.
There's no such thing as a perfect interface, but rather the one you feel comfortable to use, where you're the most productive or just the one you think is the most beautiful.
I recommend that you test, experiment and learn more about it. Most distros do not charge you anything for using them and none limit your access to the system so... why not give it a try?
Pros and cons
Nothing is perfect, unfortunately neither is the Linux world. So, here are some pros and cons of using Linux distros over Windows.
|Linux distros are faster than Windows||Linux has few NATIVE games|
|Linux distros are more secure than Windows||There are programs for Windows that do not exist in the Linux world|
|Linux is open-source and most distros are free|
|Multiple choice of interfaces|
|It is extremely customizable|
|Full system access|
Research, first of all, if the programs and resources you need are available in the distribution you are considering using.
Choosing your distro
I recommend that you watch the videos Qual a melhor distro para “——” and Como escolher a melhor distro para o seu uso?. The first is basically a re-recording of the second, but both complement each other and will show you some other important points for choosing the distro.
Taking into account some points, I separated some recommendations of distros for questions:
Deepin and Ubuntu Kylin are by far the most beautiful distros for me. But there is a catch: both are Chinese distros and there is no guarantee that you will find any material (forum, documentation, videos…) in English or in your native language for you to consult in case there is a problem. Another important point is that there may be some parts of the system that are not translated.
Despite being present in the distribution name, Ubuntu Kylin just uses Ubuntu as a base, having no relationship with Canonical (maintainer of Ubuntu) .
Another very beautiful distro is eXternOS, but it is still in beta until the posting of this article. One option would be to use a distro with KDE Plasma and modify it as you wish, there are several tutorials on the internet and the results are incredibly beautiful.
Today, I also find Gnome 40 (or higher) quite charming, being my favorite DE and the one I've been using by default since well before the redesign in the version 40 interface ❤️!
This is a wound that anyone who doesn't like the Linux world loves to hammer. As I said before, Linux doesn't have many native games like Windows does… But there's nothing stopping you from trying to run games made for Windows on Linux.
This magic of being able to run programs made for Windows on Linux is thanks to WINE and Proton.
Not all software supports these technologies, and even if they do, there may be some issues. Find out more about the subject, if it interests you, search specifically for the applications you need.
Pop!_OS is one of the best distros to play today, already coming with Nvidia drivers (if choosing this option on the website) and for having a frequently updated program repository.
I recommend you to watch these two videos: Configurando o Pop!_OS para jogos and Como jogar no Linux em 2020. They will give you a sense of how things work and give you tips on where to look to see if your favorite games are supported on Linux.
With the advent of Steam Deck, some distributions like Fedora have announced investments to improve gaming experience and hardware compatibility.
Here we already need the latest software, constant updates and a large arsenal of programs. Ubuntu has long been the darling and the best distro to develop in the Linux world because it is popular, stable and easy to use.
However, over time, other distros have also acquired and reinforced these characteristics, with some having more appeal to the developer audience like Pop!_OS, Fedora and Manjaro.
Stability (one distro to rule them all)
In general, distros like Ubuntu, Linux Mint and Pop!_OS try to deliver a balance between stability and new features. However, there is an operating system that is known to focus on stability: Debian.
Debian is an operating system primarily composed of free software and maintained by the community. Its release cycle for new versions is considerably longer than traditional distros, focusing precisely on a stable system and long-term support.
This distribution may not have the programs or DEs in their latest versions, as their updates are only made available after many tests, to try as much as possible to ensure that nothing causes problems for your user.
It's called freedom, right?
You don't have to be indecisive among so many choices, it's open-source! If you want, just format and install another distro or another DE. You are free to install, reinstall and modify as you wish.
I hope I have clarified some of your doubts. I know I haven't addressed every possible subject, but other articles will come to complement this one :)
This article was initially written in Portuguese, so if you find any inconsistencies in the text, please let me know!
Feel free to say what you think of this article, ask questions, point out a topic that was not very well explained or that needed to be talked about, suggest other topics and complement what has already been said. To the next!
References and recommendations
🇺🇸 Graphical user interface - Wikipedia
🇧🇷 Curso de Linux - Curso em Vídeo
🇧🇷 Open Source (Código Aberto): veja como funciona - TOTVS
🇺🇸 Why everyone should try using Linux - opensource.com
🇺🇸 Linux Jargon Buster: What is Desktop Environment in Linux? - It's FOSS
Top comments (49)
I'm using Linux Mint and I believe that what linux can give you in terms of software development is leaving you well-prepared for various situations, because you will have more opportunities to dig down and find out what is under the hood of all these node, dotnet core and docker stuff.
Not to mention that the 500 fastest supercomputers in the world use Linux ... it is like a swiss army knife in the right hands kkkkk
Yes, Yes, Yes! I made a mess! Sorry!
Well it depends on your stack and usages.
I'm using both windows and Linux for personal and work (dev).
Linux community and what you can with it is awesome and feels nice.
However I found it is always a bit extra work to achieve all my dev goals compare to windows 10.
Overall I find windows 10 being smoother and more stable.
One thing I have to say though using DevOps pipeline and scripting. Linux is always my first choice. Much faster but also way more.powerful for bash scripts compare to PowerShell.
I have to agree with you. I've been using Linux on and off since the late 90s and exclusivly for a couple of years until last year. While I enjoy it a lot, I feel like there is always something that needs fixing. I've had bugs in gnome, problems with sleep and shutdown and other stuff. Windows 10 has been very stable for me, and WSL2 has really improved the coding experience on Win10.
Same here, recently I did a test during a full year using Linux (elementaryOS ) as my main OS for work.
Im a tech lead in a dev shop using mostly Microsoft Stack. (core, old asp.net etc etc)
While I was able to do pretty much everything (still needed windows vm for some projects). The feeling of being able to work on linux was nice. (almost felt like representation of hackers in movies :) ).
But in reality I was always spending more time to fix little issues like updates breaking my bluetooth, or some weird issues with PATH for node js etc etc. at least once a week I had to deal with linux only related issues. With the time it just become too annoying and time consuming so that s why I came back to windows at least for work.
But from my experience I have a completely new view on linux.
What I loved:
You can work on linux (even with microsoft product like vscode, teams, azure db etc)
You can game on linux (thanks protonDB)
Some distros are truly amazing. (elementaryOS, new Ubuntu 20.04, linux mint to name a few)
What I hated:
the "extreme" side of linux community and users sometime deserving linux itself by stating shit like 'this distro is better or (you are not suing vim editor.... you are not a true one...) or "oh no he's using a proprietary software on linux what a shame!!). this type of argument annoy me and I think linux is still 'behind' mostly because of that.
Also those constant breaking change or shit you have to fix all the time compare to windows.
The absence of Microsoft Office on linux (yes libre/open office is nice, but not at ms office level)
I use OnlyOffice Community Edition for Linux as a Microsoft Office replacement. Works great.
Oh yeah good alternatives are out there for sure. but when it comes to fully collaborate with peers using live sharing docs and all those little fancy feature from Microsoft experience isn't smooth.
I agree with you, in the end the best system is the one that best adapts to your use and your needs.
But I confess that I used Windows 10 since its launch until recently and, unfortunately, I didn't have as good an experience as yours.
And yes... Bash is magical 🧑💻 🧙
Linux as a system has a very clean concept and is really powerful. But my god are the desktops awful. It doesn't take a lot of digging until you have to touch some arcane config files. The amount of hoops I had to jump through to get my WiFi to work... Linux distros do a lot of things better than Windows. User friendliness, UI robustness and general plug&play are, alas, not among them. With applications moving more and more to the web, and web browsers working perfectly fine under Linux, the software argument becomes less significant every year. There's even steam for linux these days (no experience with it though). Still, I can't recommend my mother (or any person not intimately familiar with IT) to use a Linux system. If you don't know at least how to use a command line shell, Linux simply isn't an option because the desktops are not there yet.
I use Debian for my personal desktop, and I fully understand where you are coming from, I keep a terminal window open 24x7 for various tasks that cannot be easily done via GUI. But have you tried Linux Mint? I have had excellent luck using it for people like your mother (or my wife lol) and been able to get the desktop system fully operational without ever touching a command line. Non-free wifi drivers and all. The folks at Mint have done an excellent job of making not only a beautiful looking and good performance desktop, but also one that does the hard stuff automatically for those that are not techs.
Yep, indeed the terrible experience with my WiFi drivers was on Linux Mint 20, just a couple of weeks ago. It took me the entire day to figure it out. In the end, I had to disable secure boot in my UEFI to make it work; figuring out how that's done was another task in its own right. I'm positive that my mother wouldn't be able to do either if those.
But it gets better. My motherboard stopped working last week; the hardware wasn't exactly new anymore and it just stopped working. So I swapped the hardware. Windows 10 (dual boot) didn't even raise an eyebrow, it just continued to work as before. Linux Mint on the other hand refused to even boot the display manager, instead throwing some weird interrupt handler errors. I tried to reinstall it, but even the live boot USB had the same issue. I tried again with vanilla Ubuntu and it worked right away; no WiFi issues either. That is, after I re-installed it TWICE because the first time around I didn't erase my /home partition, foolishly believing that the settings from the Mint installation MIGHT carry over to Ubuntu, since they're essentially the same under the hood. Oh boy was that a bad idea.
I really like Mint, especially Cinnamon. It looks nice, behaves well and doesn't get in your way (I use it at work 100% of the time). But it seems to despise my hardware at home. Now I'm stuck with Ubuntu and their super weird Unity desktop and it makes me cringe - but at least it works.
That sums up what I wanted to say: Linux is nice when it works, but the desktops often don't. And for the average end user, this is a death sentence - game over.
Wow you did have a bad experience. I actually do remember running into the secure boot and the wifi drivers issue on a system once, I guess we get to blame the secure boot people for that, just as many others have done, they have chosen to only fully support Windows, which causes Linux and other OSs problems sometimes. Secure boot DOES work, but not if you have to use proprietary driver modules in the kernel, because apparently secure boot can't authenticate them.
I am with you on the Unity desktop, can't stand it. And while you can install different desktop environments, installing one other than the distro default often gets you right in the same boat of having to edit stuff manually to get it working.
I did a similar thing with my /home when I switched from PopOS to Debian, it didn't cause me any major issues, does seem like I remember having to tell it that partition was my /home though, it tried by default to use something else.
I can't say I have had similar experience with Windows, every single time I have booted a windows install on different hardware, I have had mega issues. Most of the time it wouldn't even boot.
Maybe I was just unlucky, who knows. It's interesting that the same (!!) WiFi card works with Ubuntu (while secure boot is on) while it doesn't work with Mint. Either way - those are the reasons why I can't recommend Linux to the typical end user. For a developer - sure, go ahead, by all means.
That is interesting, I just assumed I couldn't use secure boot with the card I was working with. I did notice on my wife's laptop, Mint wanted to load a proprietary driver for her Wifi card, but I told it no because the open source driver was already loaded and working fine.
I definitely agree that for most end users, Linux can be a problem. When it "just works" it's great, but when something breaks, you have to get under the hood to fix it.
That being said, I feel Windows is not as much better in that regard. 90% of my income for my part time computer repair business is end users who call me because Windows isn't working right on their computer and they can't figure out how to fix it. Only difference in the repair process is that most repairs in Windows are from the GUI, I generally only use CLI for information gathering.
And Windows breaks a LOT more often, usually due to updates. Once I have a stable Linux based system setup for a customer, I usually don't get called back unless they want to add something new. Windows on the other hand, I get 30 voicemails every six months when Microsoft releases their updates and stuff that was fine stops working.
youre right, windows OS are not worth for web dev / mobile dev. someone using windows coz adobe and games if for video/music editing Mac is choice
I think it's worth to mention tiling window managers. They describes uniqueness of Linux desktop environment.
I've been using the awesome window manager called "awesome" for 2 years. It is pretty stable, highly configurable and keyboard centric.
Would love to try i3, Xmonad and other tiling window managers in the future.
Hi! Glad you liked it 🥰!
I didn't know the "awesome" but I had heard of i3... I haven't tested a tiling window manager yet, at most the PopShell extension that already comes with Pop!_OS kkkkk but I will research more about it!
Also I'm surprised you mention Pop!_OS.
I'm using system76 PC (Arch linux in it).
I've played with Pop!_OS for an hour and works well.
I use popOS too. I'm no gamer but I had NVIDIA driver issues with Ubuntu which I used previously. So, I switched to PopOS and I am happy about it.
Yeah, it has promising device compatibility. It's the reason to use that OS.
I have two systems one desktop which has windows and a asus laptop which is now my main machine. Since I switched to linux I very rarely use my desktop 😂 only when I have to use MS office or gaming.
Ive switched to linux last year in July I was using PopOs specifically. It's amazing distro but the bloat was killing me and while updating I alos faced many issues.
In November I finally switched to an arch based distro Mnajaro i3 community edition it comes with the i3 window manager as the name suggests.
I have to say that using window manager vs the desktop environment totally changed my workflow and made it more keyboard centric. I switched from vscode to neovim and tmux. In a week or 2 I got used to it and now from Jan 1 2021 I'm using archlabs a very minimal arch distro😊.
Its fairly easy to run Windows games with Steam using Proton (AKA Steam Play) on Linux. Only games that tend to have issues consistently are the ones with anti-cheat. Before that there was Lutris, PlayOnLinux, or just plain old Wine if you needed to run Windows applications on Linux. About a decade ago I was playing Diablo 2 from Linux via Wine without issue.
Steam is a great tool when it comes to playing on Linux. And a Collabora implementation will arrive in the next versions of the kernel that promises to help with anti-cheat problems... Hopefully everything will work out!
For me my base system is always windows. I do use Linux for a lot of my development. Generally I will SSH into my Linux box and forward x11 or just work right from the ssh command line. Windows though offers driver support and mission critical applications that are not available on Linux. In general Linux works well for terminal environments, but still is lacking in GUI. This is coming from a 20-year software veteran that has seen everything. Consider embedded development. Generally you would develop your code in Keil or some other IDE in Windows and deploy the code to your device. Linux just does not have the tooling necessary for the development of many industry standard applications. Nor does it have a lot of the compilers that are necessary. It is fine for open source projects, but in industry there are still many things that Linux cannot do. That being said I love Linux and I do use it everyday. Generally though my main system is Windows and I will SSH into a Linux box as needed.
Linux's sheer customizability is both its greatest ally and worst enemy, alas. I personally think it's great to have around for development tools, even if desktop use is somewhat awkward. Great primer!
I break the Lance for windows here.. windows 10 is really nice and stable.. As a developer iam using the Linux shell (too).. There is nothing that iam currently missing and i can play my games aswell.
But yeah Linux is nice
Awesome post! I loved the overview of some of the more popular distros and you made the post very approachable to people without experience beyond looking only at Windows or Mac their whole life.
If you do a part 2 I would love to see some photos, I am definitely following to make sure I don't miss out.
Thanks so much for sharing!
I'm very happy that you liked the post! Seriously, it means a lot to me ❤️... And thanks for the tip of the photos!
Sadly, the choice of Linux distros is, in my opinion, its downfall. The fact you can find applications that only work, or are only supported, on specific distros is a nightmare.
For example, the Xilinx Petalinux tools only work/supported on Ubuntu, RHE and CentOS, but other tools I use are only supported on, e.g. Ubuntu and Fedora etc. This essentially means that, if you want to do real work on Linux where you depend on a vendor's support, you need to decide what distros to use based on what your vendors are happy with, it's not a free choice.
Then, of course, there are the FOSS packages that have instructions to build on certain distros but, if you're using something else, you're on your own.
A further irony, perhaps caused by the arrogant attitude that the command line is king, is the difficulty in finding a good, free graphical git client. On Windows you have TortoiseGit (as well as very similar TortoiseCVS and TortoiseSVN for CVS and SVN respectively) and Source Tree; if you want the same power on Linux, you have to pay for it!
If the Linux world really wants to compete with Microsoft on the desktop, it needs to rationalise. A distro designed to appeal to beginners or to try to entice Windows users away is, in my experience (having first started looking at Linux with Mandrake in ~1996), unlikely to be well enough supported for professional software developers so, at some point, you'd have to bite the bullet and move to a different distro, with then costs of potentially re-learning how to do all the things you already knew, but in a different way.
Balanced article, I have been using Ubuntu for past 12 years for my dev work and never got into situation to move back to Windows .Everything right from postgres, Docker,NPM,VSCode,Java,Eclipse ,Docker,Microk8s works flawlessly with super power on the bash shell.
Another point that I would add to Cons column is that it's really difficult to start using any distro of Linux for people who are not really familiar with technical world at all, like old age people or even young people who don't have any experience with PC. Old age people find Windows much simpler because it seems it's more intuitive and user friendly. Also, I remember how much one of my friends was frustrated when he needed to run something in command line with words "why it just doesn't work automatically?" or "why I have to type COMMANDS to do something instead of just clicking the button(s)?" (even when commands are super simple). We can count on wrong distro exactly for this person, or misunderstanding the guidelines/instructions but all these kind of situations are nudging non-technical people to get rid of Linux and forget it as a worst nightmare.
while developing is nice (git commands, and npm commands run extremelly fast),
too many things suck. Some apps run slower than on windows (chrome, spotify). Often freezes, lags.
Some apps are non-existent - TogglTrack, Excel (with VBA), Skype for business...
After 2 monhts, had to return back to windows :(
just wasted a lot of type setting up everything...
I used LinuxMint on one PC, and Ubuntu Budgie on another. Gnome was ugly and laggy.
Afaik, comparing Linux to Windows is like comparing a cat to a lion.
Other than usability, Microsoft puts billions on pre-installing Windows on Laptops, pays every other giant software developers like Adobe, Google, etc. to make sure Windows to have everything supported with it.
I don't think you should compare Linux to Windows, because practically in business perspective, Linux is free, whereas Windows focuses on market share.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.