I’ve got a Pop_OS system76 machine that runs well straight out of the box. I love it and it’s my daily driver. However I’d like to learn more about how it works, Linux internals and how to use it to the best of its capabilities. I want to learn about things like system-d Wayland, error logging (there seems to be a few of them) directory structure and drivers. For instance, how do I know that my and GPU is being leveraged to the fullest?
I DONT want to build a system from the ground up, which I expect to be a common suggestion.
I’d prefer to read literature, blogs, and articles relevant to me, my system and not dated.
Any suggestions? Thanks in advance
You want to read literature? Try the
man
pages available from a shell / terminal. Don’t know where to start?man hier
,man proc
,man 5 sysfs
for three. Those are where Linux puts important things or rather, in the case of the latter two, where the Linux kernel likes to pretend they are for easy access. The ‘SEE ALSO’ section of at least one of those suggests other interesting reading, and on and on.If that’s not a direction you want to go but still want to know about something that you think might be in the Linux manual pages, try
man -k keyword
orapropos keyword
. Replacekeyword
with what you want to know about and it will list all the manual pages that have the keyword in their name or description.This is a helpful tip, thanks
What do you want to know?
I will say Arch isn’t the greatest learning experience. It is good if you want to learn how to install Arch but that’s about it.
The best way to learn Linux is though random (sometimes dump) side projects. Take some random idea and run with it. Spin up containers and VMs and build things.
Well for starters, my Wacom tablets drawing pen’s eraser sometimes stops working until I restart my machine. How can I restart the service for this without restarting my machine? How can I identify what service that is? How can I debug the error to prevent it in the future?
You can list running services by running systemctl or systemctl | grep “service name”
I don’t believe Wacom has a service but I could be wrong
Start self hosting some web services.
Way ahead of you but that only scratches the surface of Linux. I’ve got a docker compose stack with a bunch of services, DNS and reverse proxies… But that doesn’t teach me about the internals on my workstation
Gotcha. I feel like I learned a lot of Linux stuff by standing up and configuring servers (log analysis, iptables, systemd…). I guess that’s the stuff I’m interested in though. I’ve never cared about compiling packages or tweaking the kernel for example.
Oh, I did that once.
su
Just search or ask whatever questions you have about Linux (just like your question on GPU use). Overtime you will gain extensive knowledge of linux and before you know it you will be a linux power user.
I probably will :) but some baselineing would be nice too
One alternative option would be to get a Raspberry Pi (or similar SBC) and run it using command line only. You will quickly learn the basics of Linux internals (directory structure, systemd, common command line tools and approaches).
Raspi isn’t necessarily the best option for that, because it’s based on an ARM processor rather than the x86_64 that’s common on desktops and servers.
A cheap N100 “NUC” style Micro-PC is almost as inexpensive as a raspi and wouldn’t limit the user to ARM-compatible software or add complications like emulating the architecture via qemu.
The RPI and N100 are both way overpriced. Get a old desktop with a i5-6500
Heck, my current desktop is still an old third-gen i-series, lol~
That’s past the point or real usefulness. Apt upgrade is going to run forever and both your ram and storage run at a snail pace
Eh, builds do take a while but the performance has been sufficient for my needs until very recently. I’ll probably upgrade soon.
An x86 NUC works too. That being said, for CLI/DIY home server stuff I didn’t really find any issues with software availability on Linux/ARM64.
I DONT want to build a system from the ground up, which I expect to be a common suggestion.
Arch kind of is building from the ground up, but without all the compiling and stuff. It’s really not as hard as it sounds especially if you use a̶r̴c̷h̴i̵n̵s̴t̷a̶l̷l̵ and you do get the experience of learning how it all fits together through the great ArchWiki.
That said one can learn a lot even on Debian/Ubuntu/Pop_OS. I graduated to Arch after I felt like
apt
was more in my way than convenient and kept breaking on me so I was itching for a more reliable distro. But for stuff like managing systemd services and messing with Wayland, definitely doable on a Debian/Ubuntu/Pop distro. Just use the terminal more really, and it’ll come slowly through exposure.hot take maybe but archinstall really takes out basically all the learning process of arch. I would recommend at least one non archinstall install before using it if you’re wanting to learn.
It does, I wrote it in corrupted text for a reason, but if you want something functional you can use it and then see how it set it up for you and still go set up the rest of the services yourself.
When I switched to Arch, it used the Arch Install Framework, that predates even
pacstrap
, and I still learned a fair bit. Although the now normalpacstrap
really doesn’t hide how the bootstrapping works which is really nice especially for learning.Point is mostly if OP is too terried they can test the waters with archinstall (ideally in a VM).
While I’m usually a hands on type of learner, usually these days I find my time pretty limited and that’s why I’m looking for a reading approach. I absolutely want to up a machine with arch, there’s no doubt it will teach me many things. I’ve got a lot of items on my ‘to learn’ list though and was looking for a more passive approach I can fit between other tasks away from my machine
- Start manually building and installing all your software instead of using packages
- Try writing a simple app with some tutorials
- Start reading Phoronix religiously and looking into each news item
- Build a distro from scratch on some old spare hardware
Thanks for the tip on phoronix, I’ll look into this.