it was late 2020. i was 15 years old, quarantined at home, and spent most of my time playing games on an android phone.

and one day, i got bored.

while scrolling through the play store one day, i came across an app called termux.

termux is a terminal emulator for android, similar to command prompt on windows. at the time, i had absolutely no idea what a terminal was.

that boredom slowly turned into curiosity as i started tinkering with it.

i learned about its package manager, apt, which is used to install command-line applications. i still remember the first command i ran:

apt install cmatrix
  • apt is the package manager.
  • install tells it to install something.
  • cmatrix is the package name.

running that command installed cmatrix.

termux is entirely text-based, so there are no buttons to click. everything happens through text commands.

to launch the program, i had to type:

cmatrix

and suddenly my screen was filled with the matrix-style animation.

~/termux

looking back, it was pretty pointless.

but at the time, it looked incredibly cool.

i spent most of my time installing random packages, OSINT tools, and various cringe "hacker" tools that i found through random youtube videos.

eventually, i discovered linux.

or more specifically, kali linux.

kali is a linux distribution that comes bundled with penetration testing and cybersecurity tools. back then, i was introduced to it as "the operating system hackers use".

naturally, i wanted to try it.

i didn't have a computer at the time, so i started searching for ways to run it on android.

that's when i discovered virtual machines.

somehow, i managed to emulate kali linux on my samsung j2 with only 4GB of RAM.

when it finally booted, it was exactly what you'd expect from a linux system squeezed into a phone. there was a terminal, a few preinstalled tools, and not much else.

the problem was that i had absolutely no idea what any of it did.

after a few days of poking around, i lost interest and forgot about linux for almost a year.


fast forward to 2022.

i got my first laptop.

i used windows for about a year and then, out of pure boredom, decided to install ubuntu.

the installation process was confusing and honestly a little scary that i might break something.

for anyone wondering how linux installation works, it usually goes something like this:

download an ISO image from the distribution's official website.
install a tool like Rufus or BalenaEtcher. personally, i prefer Rufus because it's simple.
flash the ISO onto a USB drive.
restart the computer and enter the boot menu.
select the USB drive as the boot device.
boot into the live environment and launch the installer.
follow the on-screen instructions.
once installation finishes, the system reboots into linux.
remove the USB drive and you're done.

the flashed USB contains a small temporary operating system that lets you test linux and install it onto your computer.

after that, i fell into the rabbit hole of distro-hopping.

ubuntu, fedora, manjaro, arch, openSUSE, mint, elementary OS, nixOS.

every few weeks i'd install something new.

and with every new distribution came a new problem to solve.

that's probably where i learned how to troubleshoot things properly. and chatgpt wasnt that great in helping with these things.

one of the first things i learned about was the kernel.

the kernel is the main part of an operating system. it acts as a bridge between software and hardware, helping applications communicate with things like your audio device, keyboard, storage drives, network adapters, and everything else connected to your computer.

how the kernel works
user space applications & processes
↕ system calls
kernel space kernel
↕ drivers
audio
keyboard
storage
network

drivers are what allow the kernel to communicate with specific pieces of hardware.

every operating system has its own kernel.

windows has the windows NT kernel.

macOS uses the XNU kernel.

linux uses the linux kernel.

Windows
NT Kernel
proprietary
macOS
XNU Kernel
hybrid
Linux
Linux Kernel
open source

unlike windows and macOS, the linux kernel is open source, meaning anyone can inspect the code, contribute to it, or build their own version.

that's also where some of linux's hardware compatibility issues come from.

consumer hardware is primarily designed with windows in mind. apple designs both the hardware and software for its devices, which gives them complete control over compatibility.

while linux developers often have to reverse-engineer support or wait for manufacturers to provide documentation.

when i first started using linux, my laptop's audio did not work properly. the os did not detect my laptop's audio hardware.

it used a relatively new realtek sound chip, and support for it hadn't fully implemented in the kernel yet.

some distributions didn't recognize bluetooth. others had touchpad issues.

every installation seemed to have a new problem. but fortunately, things improved over time.

then came software compatibility.

linux applications worked fine, but many programs i needed for college didn't.

power BI, microsoft office, and a few other windows-only applications forced me to rely heavily on virtual machines.

for that, oracle virtualbox is what i use almost all the time.

it's probably one of the easiest ways to run another operating system inside your existing one.

one thing that surprised me during this journey was learning how widespread linux actually is.

most people assume windows is the most used operating system.

in reality, linux powers an huge portion of the tech industry.

linux presence by sector
supercomputers
100%
servers
~96%
mobile
~72%
desktop
~4.5%

android itself is built on top of the linux kernel.

the servers running websites, cloud platforms, and internet infrastructure are overwhelmingly linux-based.

even the world's fastest supercomputers run linux.

a lot of people don't realize that every android phone they use is technically running linux underneath.

if you're trying to learn linux, i highly recommend doing your own research instead of buying courses.

you didn't learn how to use your phone through tutorials.

you learned by touching things, breaking things, and figuring them out.

linux is pretty much the same.

trial and error teaches far more than watching someone else's screen for six hours.

if you're interested, watch linus torvalds talk about linux himself: