this post was submitted on 25 Nov 2023
87 points (94.8% liked)
Linux
48012 readers
1038 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Welcome to the club!
Just want to mention that "C:" is a Windows-specific convention for identifying hard disks. Linux doesn't have quite any concept of a "C:\ drive." You'll of course still have your OS installed on the same disk that today Windows calls "C:", but on Linux it'll be (and I'm oversimplifying a little bit here) "/".
I'm a little bit jealous because I can't start learning such things for the first time like you will be soon. Ha!
My advice: don't feel like you have to learn it all at once. Don't feel bad about just accepting the defaults that the installer suggests where you don't know what to do otherwise. If the command line intimidates you (we were all there once) use the gui tools exclusively as much as you like. Some day you might start to feel limited sticking with gui tools. (Or maybe for your particular purposes, the guis will always be perfect.) Until you do start to feel like you want to learn more about such things for your own sake, don't let anyone tell you you're doing it wrong by using the easy way.
(This from someone who does basically everything from the terminal. Lol!)
And don't be too afraid to break things. Breaking things is arguably the best way to learn. And do feel free to reach out to friendly communities for help when you need it. It's likely that if something has gone wrong (which is pretty unlikely with Mint), you'll need to do some terminal stuff to fix it, but people can help you out with that if you ask. :)
Godspeed!
Hee hee, some may agree with you. jumped into Gentoo very early and hasn't stopped breaking things yet. Sometimes for fun, sometimes 'cause some distro maintainer type did something horrible ^.^
I definitely support "Just try things, see what breaks, then learn to fix it" as a learning method. Not necessarily for everycritter and not necessarily as a sole learning method but certainly it can be many fun and very productive, sometimes in ways that other methods would not be.
For sure. I think there's a happy medium for those who might not go for the Gentoo approach. (I'm a veteran of Gentoo as well, by the way. :) )
The extreme opposite of that is probably fearing to touch anything once the system is up and running. There are certainly Windows users like that. IT folks have one or two in their families who regularly try to rope them into doing free tech support. ("Sorry, Aunt Debbie, but I haven't touched any version of Windows since XP. No, Aunt Debbie, I don't 'build computers' for my job. That's a different department. No, Aunt Debbie, I don't know how to recover deleted emails in Hotmail. I've never used Hotmail.") I wouldn't want folks to fall into a habit of being afraid of their Linux system.
And of course, the Gentoo or LFS approach is way too far on the other end of the spectrum for some.
But I definitely wasn't advocating that OP take the "break all the things and learn how to recompile your Kernel to enable debugging with GDB so you can figure out why such-and-such USB device isn't working correctly." (Unless of course OP wants to do that. In which case, knock yourself out, OP!)
I used OpenSUSE before Gentoo. I'm glad I did. It got me some basic bearings in the Linux ecosystem in a gentle way that didn't make me want to give up and reinstall Windows. I switched to Gentoo basically when I started to realize how limiting relying on the OpenSUSE guis for installing and configuring things was. (I could tell there was a hidden layer of stuff going on behind those guis. And shying away from the deep lore was keeping me from doing things I could otherwise do.)
But even if I thought a particular person had a strong likelihood of taking the Gentoo approach at some point, I'd probably recommend something like Mint until they themselves wanted to dig deeper. And if that never happened, that's fine too.
And, let's be honest. There's a chance that Mint could break as well even if OP isn't doing reckless things solely for the sake of learning. (I'd say the same about Windows for that matter.) At that point, OP's options are 1) figure out how to fix it and fix it or 2) wipe evrything and reinstall from scratch. Either way, something will have been learned in the process.
So, to OP, don't feel pressured to do all the deep lore stuff unless/until you find yourself wanting to. But also you might be better off if you aren't so scared to try to do things that you don't try to customize your system for your needs in even very simple ways.
And again, good luck!
She goes by "Debra" now ;P (Do we really both have an Aunt Debbie/Debra?)
Also, for sure I don't mean to pressure anyone nor suggest that you do. I also tried other distros first, even fearing a little that I'd break something. Dual booting (I knew Windows better back then... dunno if I'd know what to do with 11 😅) was a help, but also I started with easier distros (Ubuntu, Debian, Fedora, Mint... definitely Mint gets my recommendation as an easy/comfy/friendly distro even though I haven't touched it in over a decade) and found that I wanted them out of my way so I could set up my computer how I wanted it to be. All' the stuff happening "for me" kept doing things I didn't like and changing things I did, so I moved toward the "harder" or "harder-core" distros less because I wanted Linuxy cool-cred (though I did a little bit ;P ) and more because I just wanted to get my OS out of sight and out of mind rather than having to fight the thing over control. Arch mostly does that, Gentoo does it a bit more. These days I don't have the latest high-powered gaming hardware and I myself am starting to feel a little old (2⁵+1 years! Augh!) so the compile waits don't feel so great... but I'll be back 😅I've been oscillating between Arch and Gentoo (may try Funtoo next time! Could be a fun... or two 😹) for ages so unless something else fits I don't see a reason to quit.
Wait, what was I talking about? Oh yeah, no need to jump right into Gentoo or LFS or something... but also no need to worry if one does! I really want to make one point in particular: everything can be fixed. Everything. Broke the kernel? Fixable. Broke networking? Fixable. Package manager set off a bomb in its own backend? Fixable. There's always a fix, whether it's rolling back a package to an old version, booting another OS or computer, GRUB's recovery console, a fallback kernel, rolling forward a package to a new version, using a newer/patched/forked kernel that doesn't crash your graphics driver on a new laptop. No matter how deep into "I'll just go until I trip on something," you can get back up and you can learn something from it... or you can just reinstall or hop to the next distro.
And maybe the thing you tripped on was a cute kittycat who you can appease them despite their annoyance at you for tripping on them :3
Also no, I don't know why I felt like yapping for ages <.< Sorry about that? 😅
He didn't imply that, he said he wanted to format C:\
Why is it oversimplifying to say the disk will be called / in Linux?
I just meant with the
C:
comment that OP shouldn't expect it to still be calledC:
after he's wiped Windows and is running Linux.As for the oversimplification comment:
First off,
C:
(orD:
,E:
etc) doesn't refer to a disk in Windows. It refers to a partition. So it's entirely possible (and not terribly uncommon) to have a single disk with both aC:
and aD:
on it.It's very typical for a Linux installation process to (by default, if you don't tell it to do something else) make separate partitions on a single disk for
/
and/home
. (Plus there's usually an extra EFI boot partition on most modern desktop/laptop systems. And a swap partition.) In such a case, you couldn't really describe where "the disk" (that was formerly calledC:
on Windows) was mounted in the mindset of conflating "partition" with "disk". What was previously "the disk"C:
(again,C:
isn't a disk, it's a partition, but Windows makes it easy to conflate the two) is now split in two (or three or more) and mounted not just on/
but also on/home
(and maybe on/boot
as well, and maybe one partition isn't mounted on the main abstract root filesystem)./
and/home
aren't really even partitions (let alone disks). They're mount points in the slightly more abstract root filesystem.The most obvious software representation on a typical Linux system of the main internal disk in that machine would probably be something like
/dev/sda
or/dev/nvme0
. The partitions would likely be something like/dev/sda1
//dev/sda2
/etc or/dev/nvme0p1
//dev/nvme0p2
/etc. Also, the "filesystem" on the partition is arguably a subtlely a distinct concept from the block device that is the partition. And where that filesystem is mounted is yet another distinct concept. (Another subtlety I haven't mentioned is the distinction between the device in the/dev/
directory/filesystem and the kernel representation of the device with the device major/minor numbers.)A typical Windows install kindof conflates a lot of these probably a lot more so than Linux does. But I didn't want to be like "akshuly things are a lot more complicated than that and you have to understand a bunch of Linux kernel internals to understand all the ways in which you're wrong so you can install the holy 'Guh-noo Plus Linux'." All that is stuff that OP will learn by installing and using Linux. And if OP's going with Mint, it's probably not necessary to really understand all of that before starting the install process.
And technically OP doesn't really need to understand that the main disk won't be called
C:
after switching to Linux. Probably. (I don't think I've ever installed Mint. So I don't know for sure, but from what I've heard about it, I'd be surprised if the installation process had much of a learning curve.) But I told OP anyway. So there. :DOkay thank you. I feel like it's a lot of information here that is about, like you say, how complicated abstract and advanced it is, with the devices, kernel representations and mount points.
There must be a better way of just explaining how the root fs works, because I still don't understand anything.
It really doesn't feel like comparing it to windows gives any favours though, maybe explain use cases, like where would the user save downloads, where would you install apps?
I've used Linux a little. Right now it's modernized enough for me to not learn the file system. But I remember in old times when I ran Ubuntu I just crammed files in a folder and struggled a lot with it
Ok. Lessee.
Just to quickly explain first off:
01100001
and later it can reliably be read back from the same index as the same value, until it's changed to a different value.)/dev
for the disk along with more files for each of the partitions on the disk. For instance, an external USB hard drive with three partitions might show up as/dev/sda
and the partitions as/dev/sda1
,/dev/sda2
, and/dev/sda3
respectively. (Ok. Technically the things in/dev
are only files in some senses. They're technically "devices". But they have paths like files do and they can be read from and written to like files.)/dev
a file lives on and what filesystem driver is used for that device, themount
command just typed into any bash terminal will tell you. It'll output rows likeon type (...)
. If you read/write a file or list a directory, it'll pick the entry in themount
output that has the longestthat is a prefix of the requested file. The
is the "file"(/device) in/dev
that corresponds to the parition on which that file is encoded. `` is the name of the filesystem driver. So, for instance, if I have an entry/dev/sdb3 on /mnt/pringles type ext4 (...)
and I read a file named/mnt/pringles/apple/unicorn/potato.txt
(and if there are no entries in themount
output with longer paths that are still prefixes of the requested file path), the kernel will ask theext4
filesystem driver to please look at the partition/dev/sdb3
and interpret that partition's contents as a hierarchical filesystem to find and return the contents of the file at the pathapple/unicorn/potato.txt
relative to the root of the filesystem encoded on the/dev/sdb3
partition.tmpfs
store data in RAM only (and RAM isn't intended to be persistent, so you can't expect anything in a tmpfs to last reliably through a reset.) Others likeprocfs
don't look at a disk but make these ephemeral files that basically decide what data to return when read from at the time they're read from. (Files inprocfs
filesystems usually expose data about the Linux system. Like, for instance, what processes are currently running.)Now, the question of where files should go is... kinda unrelated to the above. Files that are system-wide configuration should go in
/etc
. Files that are system-wide executables should generally go in/bin
,/sbin
,/usr/bin
,/usr/sbin
, and/usr/local/bin
. Anything your own user downloads/creates should go in/home/$username
. Etc. More specifics of all this here.It can be useful to make decisions regarding what disk/partition a particular directory like
/home
lives on. But whether/home
is on the same partition with/etc
and/bin
and/var
etc or whether it's on a different partition (and both of these options are quite common), your users' files should go somewhere in/home
.To elucidate a little more, if you decide to put your
/home
on the same partition as/bin
and/etc
and/var
and such, you'll have an entry in yourmount
output like/dev/sda2 on / type ext4
but nothing with a `` of/home
. If you decide to put/home
on a separate partition, you'll have your/dev/sda2 on / type ext4
entry plus another entry like/dev/sda3 on /home type ext4
.So which partition does a file go on when you write a file to
/home/keenflame/document.txt
? Well, in the first case, it'd be on the partition Linux calls/dev/sda2
. In the second case it would be written to the partition that Linux calls/dev/sda3
.