Linux
Right after matric I wanted my PC to look cool. That is genuinely how this started, no deeper reason. I went looking for ways to customize it, and somewhere in that rabbit hole I stumbled onto something I did not realize at the time was a full separate operating system, I just thought it was another way to skin my desktop. I had zero understanding of partitions, bootloaders, any of it. I ended up breaking my PC completely. Full on prayer mode, genuinely did not know if it was coming back. Somehow, between that and a lot of blind trial and error, it did. I went straight back to Windows after that and did not touch Linux again for a long time, hahaha.
Then I got into CS. Once I actually understood what a filesystem was, what a bootloader did, and what I was risking, I wanted to try Linux again, properly this time. I stacked a USB with a handful of different distros and spent a while booting into one live session after another, figuring out what I actually wanted to run daily. It is fairly unusual for someone who went through a proper distro hopping phase to land on Zorin OS of all things, but I did, and I would do it again. It gives you the real power of Linux underneath while looking and feeling close enough to Windows that you are never fighting the OS just to get comfortable. Most of what you need is reachable through a GUI, and since it is Ubuntu based, almost every tutorial and Stack Overflow answer you find online applies to it directly, no translation needed.
I currently run Zorin OS 17.3 Core. Zorin OS 18 exists now and is the newer supported line, I tried it and personally found it a bit less optimized on my machine at the time, so I stayed put, though that tends to smooth out with point releases so it is worth checking where 18 stands by the time you are reading this. None of this needed to turn into a lifestyle. You do not have to become a hardcore Linux user or start hating Windows to get value out of this. You just need to be aware enough of your own system to pick the right tool for the work you actually do, and for CS work specifically, Zorin has covered everything I have needed.
Linux itself is just the kernel, the core piece of software that talks to your hardware and manages memory, processes, and devices. Nobody installs "Linux" on its own. What you install is a distribution, a distro, which stacks a few layers on top of that kernel, and every distro makes its own choices at each layer.
| Layer | Job | Example |
|---|---|---|
| Kernel | Talks to hardware, manages memory and processes | Linux kernel, shared across almost every distro |
| Init system | The first process the kernel starts, brings up every other service in order | systemd, used by Ubuntu, Zorin, Fedora, most modern distros |
| Package manager | Installs, updates, and removes software along with its dependencies | apt on Debian based distros like Ubuntu and Zorin |
| Desktop environment | The taskbar, file manager, window manager, settings panel, everything visual | GNOME underneath, restyled by Zorin to look Windows like |
Ubuntu, Zorin, Fedora, and Arch are all running the same kernel underneath. Where they actually differ is the init system choice, which package manager and repositories they default to, and how much they customize the desktop environment on top. Zorin and Ubuntu share the first three layers almost entirely, the difference is nearly all in that last one.
This is the part most people never think about because Windows hides it completely. On Linux, understanding this chain is what makes rescue tools and dual boot setups make sense later.
If GRUB is missing or misconfigured, the chain breaks at step two and you never reach the kernel at all, that is what a GRUB rescue error actually means, the firmware found nothing to hand control to. If it breaks at step four, you usually get dropped into an emergency shell instead of a full desktop, a service failed to start and systemd is waiting for you to intervene. Knowing which link in the chain failed tells you exactly which tool actually fixes it.
New users tend to fall into a trap here, reading forum threads about which distro is the "real" Linux experience and ending up more confused than when they started. For a first daily driver, what actually matters is how much of a gap there is between what you know and what you need to learn on day one.
| Distro | Good for | The catch |
|---|---|---|
| Zorin OS | Coming straight from Windows, want it to just work | Smaller community than Ubuntu itself, so occasionally you search a fix and find nothing Zorin specific |
| Ubuntu | Following tutorials, university coursework, matching what most guides assume | Default look takes more effort to make feel comfortable |
| Fedora | Wanting newer software versions sooner | Shorter support window per release, more frequent upgrades |
| Arch | Wanting to understand every layer of the system by hand | You configure everything yourself, not a place to start |
Do not let Arch or the terminal purists talk you into starting somewhere you are not ready for. The point of switching is to actually use the system, not to spend your first month fighting your own install.
Before any of this, you need a way to actually boot these operating systems on real hardware, and this is where a normal USB workflow gets annoying fast. Normally, one USB equals one OS. Want to try three different distros, that is three separate USBs, each wiped and reflashed every time you switch what you are testing.
Ventoy solves this. You install Ventoy onto a USB drive once, and after that you just drag and drop as many ISO files onto it as you want, Zorin, Ubuntu, a rescue tool, whatever. When you boot from the drive, Ventoy shows you a menu of every ISO sitting on it and lets you pick which one to boot into that session. No reformatting, no reflashing, one USB doing the job of a dozen.
What actually makes this work is that Ventoy installs its own bootloader onto the USB and formats the rest of the drive as a normal, everyday partition, usually exFAT. Your ISO files just sit there as regular files. At boot time, Ventoy's bootloader reads whichever ISO you pick and loopback mounts it, tricking the system into treating that file as if it were the original install disc. There is no per OS setup step, you are just copying files onto a drive.
This is genuinely the tool that made experimenting cheap for me. I could not have honestly compared distros by live booting one at a time off a single reflashed USB, it would have taken forever. With Ventoy it became something I could do in an evening.
Before touching anything, understand the difference between these two, because they carry very different levels of risk.
| Live boot | Installing | |
|---|---|---|
| What happens | The OS loads into RAM and runs from there | The OS is written onto your actual drive |
| Your internal drive | Untouched | Modified, possibly reformatted |
| After reboot | Everything from that session is gone | Your changes persist |
| Good for | Testing a distro, following a tutorial risk free | Your actual daily driver |
The mechanism behind why live mode resets so cleanly is worth knowing. The ISO ships a compressed, read only filesystem image, squashfs. On boot, that gets mounted read only, then a thin writable layer, usually kept entirely in RAM, sits on top of it through something called an overlay filesystem. Every file you touch during that session actually gets written to the RAM layer, never to the squashfs image or your drive. Power off, the RAM layer disappears, and you are back to the exact same read only base image next boot.
One exception worth knowing early. Even in a live session, if you open a disk partitioning tool and apply changes, those changes hit the real drive directly, they bypass the overlay entirely. Live mode protects everything except deliberate disk operations.
A partition is just allocated space on a drive. A filesystem is the actual system written into that space that decides how files get stored, named, and found again. This matters the moment you dual boot or plug a Windows formatted drive into Linux.
| Filesystem | Used by | Notes |
|---|---|---|
ext4 | Linux | Standard for most Linux installs, journaled, stable |
NTFS | Windows | Linux can read and write it fine, just does not use it as its own root filesystem |
FAT32 | USB drives, EFI partitions | Universal compatibility, cannot store files over 4 GB |
exFAT | Large USB drives, Ventoy's own partition | Same universality as FAT32 without the 4 GB file size limit |
This is also why installers ask you to choose a filesystem when creating a partition. Pick ext4 for your Linux root partition unless you have a specific reason not to, it is the safe, well supported default.
It is easy to read about Linux tooling and feel like you need a whole toolkit before you even begin. You do not. Starting out, this covers it:
| What | Why |
|---|---|
| Your chosen daily driver ISO | Zorin, Ubuntu, whatever you landed on, this is what you actually install |
| Ubuntu, live only | Most tutorials and Stack Overflow answers assume Ubuntu specifically, keep it around to follow along exactly |
That is it for day one. A few tools exist further down the road worth knowing by name even if you never touch them for months: a partition editor like GParted, for resizing drive space without guesswork, and a rescue environment like SystemRescue, for the day a bootloader breaks. You do not need to learn these before you have a problem that calls for them. Knowing they exist is enough for now, so you are not starting from zero if that day comes.
A lot of the fear around Linux is really fear of the terminal. Most day to day tasks on a modern distro like Zorin have a GUI, you do not need the terminal to browse files, connect to WiFi, or install most software. But it is worth getting comfortable with a handful of commands early, because some things genuinely are faster or clearer this way, especially installing software.
sudo apt update // refreshes the list of available packages sudo apt upgrade // installs available updates sudo apt install neofetch // installs a specific package by name lsblk // lists connected drives and partitions ls -la // lists files, including hidden ones and permissions
sudo runs a command with administrator privileges, the same idea as right clicking and choosing Run as Administrator on Windows, except you type it inline instead of clicking through a prompt. Every file and folder on Linux also carries an owner and a set of read, write, and execute permissions, viewable with that ls -la command, which is why you will sometimes hit a Permission Denied error even as yourself, the file simply is not yours to touch without sudo.
You will also run into three different ways software gets installed, not just one, and it is worth knowing why more than one exists instead of assuming they are interchangeable.
| Method | How it works | Tradeoff |
|---|---|---|
apt | Installs from your distro's own repositories, resolves dependencies automatically | Fast, tightly integrated, but versions can lag behind upstream |
| Snap | Ships the app bundled with all its dependencies in one sandboxed package | Always current, larger download size, slower first launch |
| Flatpak | Same sandboxed idea as Snap, different backend, distro agnostic | Same tradeoffs as Snap, wider support outside Ubuntu based distros |
Most of what confuses new switchers is not that Linux lacks equivalents, it is that the equivalents have different names and live in different places.
| On Windows | On Linux |
|---|---|
| File Explorer | Files, or whatever file manager your distro ships |
| Task Manager | A system monitor app, or top / htop in the terminal |
Downloading and running a .exe | Installing through your distro's software center, or apt install |
| Device Manager | lsusb and lspci from the terminal, or a hardware info app |
| Control Panel | Settings app, same idea, different layout |
Everything in the next section assumes something has already gone wrong and you are recovering from outside the system. This one is the step before that. Timeshift comes preinstalled on Zorin and is available on most Ubuntu based distros, and it takes a snapshot of your system before you do something risky, a kernel update, a driver install, a config change you are not fully sure about.
If that change breaks something, you boot back into Zorin normally, open Timeshift, and restore the snapshot in a few clicks. No USB, no live session, no rescue environment. It does not replace the tools in the next section, a snapshot cannot save you from a dying drive or a corrupted bootloader, but for the far more common case of software update, sits on it, restart, something is now broken, it is the fastest fix there is.
Things will occasionally break, that is true of any OS, not a Linux specific flaw. What changes is how you recover. Go back to the boot chain from earlier, a broken bootloader or a corrupted system file usually cannot be fixed from inside a system that will not boot past that point, which is exactly why rescue environments exist, live USBs built specifically to give you access to a broken install from the outside so you can repair it.
I am not going to walk through the actual repair commands here, that is deep enough to be its own post, and honestly not something you need on day one. The only thing worth internalizing now is that these situations are recoverable, and panicking into random forum fixes without understanding what a command does is usually what turns a small problem into a real one.
Everything above is enough to actually switch. This part is optional, for when you want the version of the kit that makes you the person a friend calls when their PC will not boot. I organize my own Ventoy stick into four categories, here is the expanded version, tool by tool.
Your actual daily driver, plus a Windows install for machines that need it, older hardware, a friend who is not ready to switch, whatever the situation calls for.
Permanent installBoot it whenever a tutorial or Stack Overflow answer assumes Ubuntu specifically. Commands and paths match exactly, no translation needed.
Live bootNot for emergencies. For deliberate, planned work, resizing partitions before a dual boot, or ruling out bad RAM when something is acting strange.
DiagnosticLast resort tools. SystemRescue for a broken Linux bootloader or filesystem, Hiren's for a Windows machine that will not boot or a forgotten password.
Last resortIf you want to go a step further on the learning side, here is where a few distros actually land on the size and RAM tradeoff, going from full and comfortable to minimal and educational.
| Distro | Size | RAM needed | What it actually teaches |
|---|---|---|---|
| Ubuntu 24.04 | ~5.7 GB | 4 GB+ | Reference environment, matches almost every tutorial |
| antiX | ~1.6 GB | 256 MB+ | Linux without a full desktop environment hiding everything |
| Slax | ~300 MB | 128 MB+ | Modular systems, add or remove functionality by adding or deleting files |
| Tiny Core | ~20 MB | 64 MB+ | What a Linux system actually is once you strip away everything non essential |
And when something is actually broken, this is the decision table I use before I even open a tool.
| Situation | Reach for |
|---|---|
| Broken Windows that will not boot | Hiren's BootCD PE |
| Forgotten Windows password | Hiren's BootCD PE |
| Broken Linux bootloader or GRUB | SystemRescue |
| Lost partition recovery | SystemRescue, testdisk |
| Dying drive, rescue data before it fails completely | SystemRescue, ddrescue |
| Deleted files recovery | SystemRescue, photorec |
None of tier 3 or 4 needs to happen on day one. Build up to them as your own curiosity or an actual problem demands it. The point of a kit like this is that it is already there and already understood by the time you need it, not that you go looking for reasons to use it.
Depends what you are doing. Linux gives you more control and it is genuinely better suited to development work and understanding your system at a deeper level. Windows still wins on plug and play software support and gaming compatibility, though that gap keeps shrinking. Neither of these facts cancels the other out, they are just true for different use cases.
If you are considering this switch, start with a live boot before you install anything permanent. Pick a distro that matches your actual comfort level rather than whatever gets the most respect in a forum thread. Keep Ventoy on a spare USB so trying things costs you nothing. And do not treat this as picking a side. I use Zorin because it gets my CS work done without friction, not because I think Windows is bad. Good tooling is good tooling, use what actually helps you build things.