I’m a 20yo, Hella Autistic, ADHD-riddled spaz that likes to tinker with programs and software settings alot. I’m building a pc for the first time right now, and while I am tech savvy; or more tech savvy than most; coding, programming, tech engineering is complete and utter gibberish, and it seems like the only people that use Linux are HEAVILY experienced with those things I just listed… HOWEVER… I’m not. I just like digging around various program settings or messing with things, or personalizing them as much as I can.
The more I delve into tech or tech related spaces; whether its through building my pc or just- using this website; the more people wont stop yapping about “OOH LINUX, I LOOOVE LINUX.” and every time I ask about it and why I should use it, they make it out like its an absolute godsend piece of technology (im sure it is tbh… it does look nice)
But then looking into it myself, all I see is a bunch of technical word vomit that makes no god damn sense to me. and the more I ask for people to explain this to me, the worse my confusion becomes. now I’m learning there’s like 40 different “Distro’s”… Someone else told me about Linux Mint, which looks nice, but again- I DO NOT want to be forced to use a terminal just to get the most outta my operating system. I like having some kind of UI to use.
idk man… from everything they say I can do with it, ESPECIALLY in terms of customization, I’m so tempted to use it. But my mental understanding of whatever tf Linux is, is at best a toddler’s.
Okay:
You don’t have to deal with scripting and command-line stuff, but all the major tinkering under the hood depends on it. The amount of customisation and tinkering is fairly infinite, so past a certain point you just can’t build graphical stuff to cover every single possible choice - and that’s where the gibberish comes in.
Baseline concepts:
‘Operating system’ means different things in different contexts, and this can be confusing.
Context 1: technically correct
Your computer has a big chip that runs programs, and a bunch of hardware that actually-does-stuff: network card, graphics card, disk drive, mouse, keyboard etc. Programs need to talk to the hardware and make it do stuff, or else they don’t actually… do… anything.
There’s two problems with that:
There’s a gazillion kinds of hardware out there, that all has its own language for talking to it, and your program would either only run on one EXACT set of hardware, or it would have to speak all gazillion languages and be too big to fit on your machine.
The second problem is that in order to do more than one thing at a time, you need a bunch of programs all running at once, and they all need to use the hardware, and without something to coordinate the sharing, they’ll all just fight over it and everything falls down in a tangled heap.
A good analogy for this is a restaurant. They aren’t just public kitchens where you can just wander in and start preparing your own meal, taking ingredients/equipment/space however you want, then just carry it to whatever table takes your fancy - and you definitely can’t have all the customers doing it at once. Especially if they don’t know how all the equipment works, where the different ingredients are kept, etc - it would be an absolute disaster, and there would be fights, injuries, fire and food poisoning.
So instead there’s an agreed-upon system with rules, and people that do the cooking for you. You make a reservation or queue at the desk, you are told which table you can have, you go sit there and a waiter brings you a menu. You pick the food - and depending on the place, maybe ask for customisation - then wait and they bring it out to you, then you sit there, eat it, then leave.
That system-with-rules is the operating system, or more specifically the operating system kernel. Any time a program wants to do more than think to itself, it has to asks the OS to do it, and bring it the results.
In this analogy, fundamentally different operating systems (windows / linux / OSX / android / etc) would be like different kinds of (5-star / sushi-train / pizza place / burger joint / etc) that have different rules and expectations and social-scripts to interact with them. A program written for one OS would have no idea how to ask a different OS for what it wanted, and wouldn’t be able to run there.
Context 2: what people usually mean
It’s all well and good to have a machine that can run programs and do things, but the human sitting in front of it needs to be able to interact with the thing, so you can poke buttons and move files around and move windows and stuff.
And so there needs to be a crapton of programs all working with each other on the thing to provide all this functionality, and the whole user experience - preferably with a consistent design language and general expectation of how everything should work: you need a desktop environment.
In restaruant terms, this would be the specific brand/franchise/corporate-culture that runs the place. Yes, the general idea is that it’s a burger joint, but specifically it’s a mcdonalds, or a wendy’s, or whatever that homophobic chickenburger place is called - it’s got the decor, it’s got the layout, it’s got the specific combo meals, etc etc, the same uniforms, the same staff policy, etc.
Now here’s the thing:
Let’s say there’s only one sushi franchise in the world. That’s like Windows - there’s updates new versions and some slight variations (server versions aside), but you walk into one, you’ve walked into them all. There’s one Windows kernel, and one windows desktop environment that goes with it.
And say there’s only one pizza-place franchise in the world, and they all look the same, have the same menu. That’s like OSX: there’s one kernel, and similarly one OSX desktop enviroment to go with it. A mac is a mac, and it does mac things.
But linux… linux is different. With Linux, it’s there’s 900 different burger-joint franchises in the world, and literally anyone can go start a new one if they want to put the time into designing one from the ground up. The paradigm is the same - order at the counter at the back, menus on the wall overhead, grab bench seating wherever or get it to go - but every place can design the look and feel, the menu, the deals, the other amenities, the staffing structure, etc.
And the different franchises - that’s what distros are.
It’s the set of programs all working together that create a whole working enviroment, but everything uses the standard kernel to actually get stuff done. If your program can run in one linux distro, then it should be able to run in a different one, because your program uses the same standard set of requests in order to do things.
The windows and the menus and the desktop apps and the way the interface behaves and how you configure everything can be different, but the core functionality that the software uses, is the same.
Now, for the most part, Windows is like NO USER-SERVICEABLE PARTS INSIDE, all the fiddly internal bits are carefully hidden away and made deliberately opaque. You don’t need to know, we don’t want to tell you, we’ll let you change the wallpaper, but for everything else, we decide how it’s wired up. If you want it to do things slightly differently to suit your own workflow, tough.
Macs are kind of the same deal: for the most part it’s no-touchee, you’ll break stuff. Just push the very shiny buttons and be happy that everything Just Works ™.
But Linux… doesn’t seal anything in plastic. All the gubbins are not only there on display, they’re mostly all human-readable and human-tinkerable with. Instead of mysterious monolithic chunks of software communicating with each other via hidden channels, with configuration in databases you don’t get to see… it’s mostly scripts you can read and tinker with, and plain-text config files you can edit, all writing useful details in highly-visible log files that you can read through when things don’t do what they’re supposed to.
Now with a lot of distros, you absolutely can just push buttons and treat the thing like a Windows box, and never have to tinker with the fiddly bits. You’ve got a browser, you’ve got apps, you’ve got games, it just does the thing. But if you want to start getting technical, you absolutely can - unlike windows or mac.
But this very ability to configure and tinker and patch bits on - and the fact that most distros don’t have a gigantic microsoft-sized coordinated team all following one shared vision, but are wired together like a kind of junkyard frankenstein from thousands of separate teams as a labour of love - means that occasionally you will need to get technical to deal with small annoyances or use-cases they didn’t think of.
lemme go get my reading glasses for this one…
Crazy good comment right here
Just by reading the first sentence I can tell you that you will enjoy Linux. Don’t worry about all the technical stuff it seems complicated because you don’t know it. Just install Linux and use it and you will learn what all that stuff means. Since you’re building a new PC you got nothing to lose from trying out a few different Linux distros.
Very concise answer. Linux was intimidating for me aswell when I first dual-booted it, and I didn’t understand it the first time around. But getting started in it was a lot of fun, and every time I came back, it got easier, until eventually it was the same for me as Windows
It’s a multifaceted answer for me, I feel.
Linux is weird, on a technical level. It’s funky and broken and has weird quirks you have to remember. But it’s not malicious. Wendel from Level1Tech said it best in one of his videos: the headaches with Linux are haphazard, the headaches with Windows are adversarial.
It’s not a perfect solution to Windows, but at least for some people, the respect that it has for its users (ie, no ads, not trying to fight you on everything you’re trying to do, gives you the ability and freedom to tinker as you please) offsets its technical problems.
Additionally, Linux is missing a lot of core applications. There’s many applications that do have a Linux version, and many that can run through a compatibility layer, and out of those that are left, many have really solid replacements. Heck, you might be surprised to find that some of the software that you use already were originally intended to be replacements for Windows-only applications.
But there’s still a handful of core applications that don’t work on Linux and don’t really have a good replacement, and even missing 1 can easily break someone’s work flow. No, LibreOffice isn’t a full replacement of Microsoft Office, no, GIMP can’t actually replace Photoshop.
As for terminal, there’s no way around it. You will have to open terminal at some point. To be clear, most, if not all, things that you might imagine yourself doing likely has some way of doing it through a GUI. The issue is that as a new user, you don’t know where the GUI is, or what it’s called, or how to even ask. And when the tutorials that you find online tell you to just use terminal, that ends up being the only practical way of getting things done. So it’s a weird Catch-22, where only experienced users who know where all the menus are will know where the GUI options are, but it’s the new users who need it the most.
My understanding is that Linux developers in the past several years have been explicitly trying to make the OS more accessible to a new user, but it’s not quite there yet.
Overall, I think Linux is deeply flawed. But seeing how Microsoft seems to be actively trying to make Windows worse, Linux ends up being the only OS where have faith that it will still be usable in 2 years.
If anything, the more people switch to Linux, the more pressure there will be to make the OS more accessible to new users, and also for software companies to release a Linux-compatible version of their software. Some brave people just need to take the dive first
So it’s a weird Catch-22, where only experienced users who know where all the menus are will know where the GUI options are, but it’s the new users who need it the most.
Nah. They don’t know it either.
You will use the terminal. And you won’t “level-up” into knowing the GUI. And GUI-focused distros are stupid for adding barriers over the terminal usage.
The reason why people talk so much about the terminal is:
- It’s easier to tell newbies “input this command” than to guide them through a GUI.
- The terminal gives you a lot of flexibility to customise stuff.
You’ll probably want to learn the terminal for any serious customisation. However, you don’t need to deal with it in your everyday usage.
I’d suggest you to use a Live USB, like other users recommended. Linux Mint, plus plenty other distros, can run straight from the USB. It’ll be better for you to judge if you could/should be using Linux this way.
About the thousand distros, most of them don’t matter. And if you’re a newbie, stick to Mint and you’ll probably not regret it.
I will add onto this, that you don’t need to be a programmer or understand how everything works to use the terminal. At first, it’s fine to copy the commands directly into the terminal without really knowing how it all works.
I would very highly suggest to be careful about doing this blindly, you can and will compromise or Bork your system doing this too haphazardly. But it’s fine to learn it piece by piece, looking at what commands do as you go to use them. Treat every command you copy paste into the terminal the same way you would treat a .exe file you download from the internet on Windows.
As you use the terminal more frequently, you’ll being to recognize different commands and what they do. You’ll even start figuring out shortcuts or variations of commands and variables that align more with how you use the computer and what you’re hoping the output to give you.
Linux Mint is a great place to play with this, because most everything has a GUI counterpart so you can see the difference between doing the same task with a GUI vs using the terminal. It is also able to live-boot from a USB, as others have pointed out, so you don’t need to worry about ruining your primary computer experience. I’d suggest trying this out before you build your new computer, just to see what it’s like.
You can install Ubuntu (or many other Linux distros) to a bootable USB drive. Restart your computer, press F2 or whatever it says to open your boot menu, and then boot from the USB drive. This will let you run a full version of Linux, which will let you experiment around with it so you can get some experience and see if you like it or not, without having to uninstall your current OS or repartition your drives and mess around with dual-booting. It’ll run a bit slow since it’s gotta come off a USB drive for everything, but that should at least give you a good estimate on whether or not Linux is right for you.
Don’t over think it, Mint will be fine. Modern Linux is very user friendly, and you can do almost everything with some form of UI.
Linux mint doesn’t require the terminal for almost anything. If it is required anywhere, there will be step-by-step instructions, but even then there is likely a better solution specifically for linux mint that doesn’t require the terminal.
Use the software manager and update manager and you’re set. Don’t install applications from the terminal, it will be easier to let the manager applications keep track of it all.
For super advanced stuff, sure, you might want the terminal, but you don’t need these things. If anything, it will be a good opportunity to learn.
Get a USB, put linux mint on it and boot from it just to try out. It can run without being installed on your computer.
There’s nothing stopping you from making a boot key and messing with Linux or making a partition of your storage. Nothing ventured, nothing gained.
That said, as someone who is also very visually inclined, I’ve tried a couple of different distros over the years and always bounced off. I kept encountering the dumbest little issues that most people didn’t get, and it always required Terminal to fix. It’s those moments when you get to learn how obtuse and unwelcoming some of the Linux community can be.
Avoid installing linux in a partition on the same disk you have windows.
It never works well. Windows will destroy everything within reach.
If you do decide to do it, use an LLM. That shit will turbo charge your learning curve.
As side note, you can start learning now or later, choice is your. This is just an opinion tho
People say that a lot, but I used ChatGPT as a math tutor and it couldn’t figure out the first goddamn thing of algebra. It spit out incorrect answers, and when I asked about them, it’d flip the answer. I’d ask again, and it’d flip it again.
I’ve used it as IT help to fix a computer that wouldn’t boot and it hallucinated hard enough to make it worse.
The point i am getting is the learning process.
It will provide quick snipa on any term or definition.
It can read error logs and provide inputs, right or wrong, it is still learning
It can generate linux commands from plain english.
Also context matters. Linuxnis open source inherently online topic.
LLM was trained on it so this is likely one of its strongest domains
Strongly disagree with you that “right or wrong” instruction is “still learning.”
whats an LLM?
ChatGPT
LLMs are really good at dumping a big ass error log on them and saying “what’s wrong” and it will find the issue, and probably point you in the right direction.
Large Language Model - the ai search stuff that will give you answers that are mostly but not always accurate but can be very helpful in figuring out how to ask the right question. So if you don’t really know what you are looking for, you can ask it to tell you how to do what you want to do and it will either answer or answer in a way that is close enough to use the terminology in a web search for the right answer.
I don’t use it myself, but it sounds a lot like how google used to work up to about a decade ago.
Stuff like chatgpt. Stands for Large Learning Model
A great diagnostic tool and a terrible psychologist
There are thousands if not tens of thousands of distros. Wikipedia has a really cool Linux family tree.
If you think of the Linux ecosystem as a whole, a distribution or distro is just someone somewhere took various options and put them together. I want this GUI, this init system, this package manager, this set of default apps. Then someone else says well I want this GUI and this init system but I want that package manager and the other set of default apps. Often they have specific use cases in mind, some specifically target gaming, some are meant for workstation use, some like TAILS are specifically for covert communication, some like Hannah Montana Linux are entirely for fucking around.
You have a selection of GUIs to choose from, some like KDE or Cinnamon are more feature rich and the vast majority of tasks can be done through a GUI settings menu, others are more minimal because some folks prefer just directly editing config files, or so that the software is smaller, lighter and faster. The choice is yours.
I might suggest, if you want to take computer tinkering to the next level, learning a little bit of Python, or maybe playing with the Godot game engine. These work on Windows as well as Linux and turn out to be handy tools.
As for whether you should use Linux? Try it out and see.
Get a live version of any distro burned into an USB.
You can give it a try this way without compromising anything.
deleted by creator
I switched to Linux mint maybe 6 months ago and it’s been great. Just a bit of adjustment for which programs I needed to get some things done. Also turns out some stuff was WAY easier to get running such as my JavaScript twitch chat bots, I didn’t even need a tutorial and I got it running in terminal. My wife also using mint at the same time I switched and she has been liking it too. Good luck and know there’s a ton of people here that can help you out.
deleted by creator
Oh don’t worry. There’s not 40 different distros…there are thousands, if not hundreds of thousands of distros!
As for terminal? Linux is terminal. There is no getting around it.
Now I’m sure SOMEONE will chime in, and say “Uhm actually, I set my 90 year old grandmother up with linux, and she’s blind. It’s not hard to use.”
And they’ll claim you don’t need terminal. But the SECOND even one little thing goes wrong? The online tutorials all start the same way.
Step 1 - Open terminal.
Maybe there is a way to do the thing without terminal. Maybe technically that’s true.
But if you don’t know how, and the tutorials all resort to terminal as step 1, then functionally speaking? Linux requires word code diarrea that is terminal.