Recently, I’ve been using linux(tried multiple distros). I’m curious about how linux works, it’s architecture! Is there a book, guide, video, etc to learn about linux? By using linux, I get to know something. It would be better If I know how linux works!

  • CaptainJack42@discuss.tchncs.de
    link
    fedilink
    arrow-up
    33
    ·
    1 year ago

    If you really want the deep dive, look into LFS (Linux from scratch), besides that I’ve always been the learning by doing kind of guy. Got a problem? Search a solution and read up on the intricacies of the problem

    • sorrybookbroke@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      13
      ·
      edit-2
      1 year ago

      I can also suggest installing gentoo if LFS is a bit much, which is understandable. It won’t have as much direct information as LFS but if you look up everything you don’t understand and follow all the links you’ll get a fairly good concept of the thing

      • fbsz@lemmy.mlOP
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Hey, I will try to ubderstand LFS and build it myself. If it’s much harder than I expected it to be, i will install gentoo. What about arch? Why install gentoo instead of arch? The installation process of gentoo will teach me about linux, the same could be said about arch?

        • sorrybookbroke@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          6
          ·
          edit-2
          1 year ago

          Absolutely, arch will teach you quite a bit. Not nearly as much as Gentoo though. If you’re going for learning how things work at a core level Gentoo is a fantastic place, though of course LFS will be better though more involved. I’m glad you’re willing to take the harder path though!

          As for arch, it’ll teach you about mounting, user management, partitioning and partition management, an overview of how to set up a system and a few of the options available, and make you more comfortable with the command-line. With a few exceptions, that’s about it. you can understand what makes arch arch in less than a day.

          As for Gentoo, it’s a guided experience that will teach you all of that but much, much more than arch will. With arch you could look more into it, and arch will be very well documented on what to do, but Gentoo will lay out the choices clearer with an explanation as to why. What is SystemD and why would you use something else (or, why you need so much to replace one thing?) How is networking built up? how do package managers work? What different kernels are available and why would you use them? What file system should you use? How does networking work on Linux? How do you install a tarball? What are firmware and microcode?

          Just look at the index (legend?) on this page Gentoo Wiki and then this page Arch Wiki (on the left.) You’ll see how much more Gentoo goes over

          To be clear, I use arch on my main system, it’s a fantastic OS and I’ll likely use it until the heat death of the universe, but installing Gentoo, following the links, and searching up what I don’t understand has taught me much more. LFS will, of course, teach you essentially everything though. It’s a great option, and you’re in for a fantastic journey. Once you’re done you’ll be the most impressive person in the room, if that room is full of us linux nerds

          • Zloubida@lemmy.world
            link
            fedilink
            English
            arrow-up
            4
            ·
            1 year ago

            Once you’re done you’ll be the most impressive person in the room, if that room is full of us linux nerds

            New life goal unlocked.

          • fbsz@lemmy.mlOP
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            To make the learning process much more enjoyable, I’am going to try one of the OS’es either arch or gentoo. Which one will best for as a beginner? As gentoo has much more wiki than arch, which one will best suit for beginners(like me) to trying to understand things? Are there some resources, where I can learn some very basic stuff like about package manager, linux kernel, etc(if there, please share it here) and then it would be good if I go onto the installation and then onto the LFS thing. Learning linux would be a fantastic journey!

            • Zloubida@lemmy.world
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 year ago

              As a beginner I installed Arch manually to learn things and was kind of disappointed. The only hard thing was to understand the partition system, so it’s more or less the only thing I learnt. Sure there were pieces of other things learnable, but it was small things.

              Now I want to try to install Gentoo.

            • sorrybookbroke@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              1 year ago

              I’d argue gentoo isn’t the worst thing to do even as a beginner, but installing arch would likely be the best first step as it’s shorter and you’re more likely to get it running first try. You also don’t have to compile.

              As for other resources, though I prefer reading and doing, youtube might help. Specifically, chris tituss tech’s linux basics playlist or learn linux TV playlist on the subject. Another great resource is to just read the man page for and specific command

              Other than that, install in a virtual machine and start breaking things. Finding the solution will likely teach you quite a bit

    • fbsz@lemmy.mlOP
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      Hey, thanks for the great suggestion. Looked onto it and it’s great to build your own linux. I think that’s really the essence of linux, the freedom to build it on your own.

      • silent_water [she/her]@hexbear.net
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        no joke it’s how I learned linux, bootstrapping a gentoo install from the toolchain on up, with a printed manual. it’s surprisingly effective, if time-consuming (took me about 2 weeks to get to a booted system, though most of that was compilation time - took ages back then).

      • milkjug@beehaw.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        One more tip, if you already have a Windows environment, spin up VMs with Hyper-V and start from there. Anytime you mess up, just nuke the VM and spin up another one. I must have burnt through hundreds of VMs (hyperbole) while testing out distros that I like.

      • milkjug@beehaw.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Another vote for LFS. I like that it is really at the right level of depth (assuming that you already have a basic grasp of computing in general). Even if you end up going with a distro, reading through LFS gave me insights as to why certain things were done in certain ways. Alot of “quick-start” style guides tell you what command to type in, but for brevity reasons, they don’t explain what the command does. For example, you may come across many guides tell you to type sudo or sed or echo or | or >>. It may seem daunting at first, but gradually as you become more at ease with the CLI, all these will start to make sense.

  • Happenchance@lemmy.world
    link
    fedilink
    arrow-up
    22
    ·
    1 year ago

    I’ve been dabbling with Linux for 30 years and it’s only in the last few that it really clicked. I needed a project.

    Go start a home server and give yourself projects to work on. Makes Linux very fast to pick up.

      • Happenchance@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        1 year ago

        I actually would recommend learning a hypervisor.

        Not first. For sure. But before you want to do anything serious.

        Proxmox made learning home service hosting so much easier and faster to unfuck.

  • Kangie@lemmy.srcfiles.zip
    link
    fedilink
    arrow-up
    12
    ·
    1 year ago

    IMO running through a Gentoo installation is a great way to learn.

    The handbook is well documented and walks you through all of the steps that an installer would traditionally do.

    You can do it in a VM or bare metal if you’re feeling adventurous!

    • banazir@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      Yeah, Gentoo is a good way to get your hands dirty. Reading the guide and trying to dig in deeper as to what you’re doing will give you a decent understanding of Linux.

    • ruination@discuss.tchncs.de
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      I found that, at the cost of a few months of absolute suffering, using Gentoo as my first distro fasttracked my Linux learning.

      • TheEntity@kbin.social
        link
        fedilink
        arrow-up
        6
        ·
        edit-2
        1 year ago

        Gentoo itself is “just” a very solid distro with lots of flexibility due to being source-based (most distros just deliver the resulting binaries), so if you’re the kind of person that would customize the things Gentoo exposes, Gentoo makes it easier than it would be on Debian or Arch. If not, it’s an added complexity for not much benefit.

        The Gentoo installation guide famously doesn’t shy away from explaining what needs to be done, it isn’t just a series of step-by-step instructions. For this reason it’s a great way to start learning this stuff. Even if it won’t explain everything completely, it will surely point at the right direction.

      • Kangie@lemmy.srcfiles.zip
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        1 year ago

        The standout feature of Gentoo is its configurability; you can configure portage, the package manager, to enable and disable features of a package at build time.

        Say you don’t have Bluetooth. You can just exclude Bluetooth from every package by setting the use flag globally:

        */* -bluetooth
        

        it can even manage dependencies, a good example is picking pipewire over pulse.

        It’s also easy to package software that isn’t in the official repos - here’s a post where I did just that.

        The community is fantastic and supportive, and you can often get a near immediate response in IRC.

        Finally the documentation is excellent, especually the handbook.

    • Captain Aggravated@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      1 year ago

      Even manually installing Arch is a good way to understand the parts of a Linux system, stuff like users, package management, etc. Without heating your house all summer compiling the kernel.

  • AnUnusualRelic@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    1 year ago

    What I did back in the day when I started Unix was mostly explore.

    I looked at what was in /bin and read their manpages, or just browsed manpages to see what did what (your desktop manager will probably have a help browser nowadays that makes this much easier, in KDE it’s the Help Center), and generally experimented with stuff.

    Poking at things to see what they do is probably the best way, especially on a system that’s not production. Also there will be a lot of reading involved, although it will mostly be to get a feel of things, as in the end, you’ll essentially have to be proficient in finding information rather than memorising it for the most part.

    And don’t get too hung up on the whole distribution thing, in the end they all install the same stuff anyway.

    • fbsz@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Wow, I’ve planned to learn linux by exploring and doing. Any suggestions on exploration?

      • beeng@discuss.tchncs.de
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        1 year ago

        Create a VM on your current machine, install it, install software on it, try use it as your daily driver. Don’t forget to take snapshots of your vm incase you break something.

        But… Then again, if it does break, nothing like reinstalling again to make sure you know what you’re doing ;)

        • CaptKoala@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          1 year ago

          I was going to do this, but ended up happening across the Orange Pi 5 upon release and managed to get an order in.

          I had it running Ubuntu 22.04LTS, but there were some OPi specific issues I just wasn’t capable of troubleshooting myself at that stage, I’ve since switched it to 23.01 non LTS and is much better suited to me.

          That said, even after discovering gnome extensions I still dont like gnome that much. I’m trying to get a better handle on CLI so I can abandon the desktop all together later.

          But yeah, having a whole device just for experimenting with has been huge, very much helps keep me from distractions, I usually will just swing my monitor towards my bed and play twitch while I mess around.

          Edit: it’s also saved me the issue of adding to my already chaotic daily filesystem, all my projects are on GitHub, I’ve gotten more proficient at getting a distro going, the urge to hop around a few more is really growing now.

          • AnUnusualRelic@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 year ago

            You’re going to suffer if you run a machine without a desktop.

            Gnome is a bondage and discipline desktop, so you may not enjoy their way of doing things (if so too bad, because their way is the right way). Just try something else, like KDE or XFCE, or whatever. Or just run a window manager. Even tvwm is more comfortable than a plain terminal.

    • fbsz@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      1 year ago

      Hey, learning through book is great, but how is it better than installing gentoo, arch or through LFS. What would be the best way to actually understand how linux works

      • rufus@discuss.tchncs.de
        link
        fedilink
        arrow-up
        8
        ·
        edit-2
        1 year ago

        Well, the way I like to learn is: First read a book. And then get the actual thing and play around with it.

        This way around you’re doing it a bit more methodical. And more effective than just fooling around. But the experience and exercise with the thing itself is also super important. You’ll get practical experience and this is often the time you understand why things are a certain way and really start to understand details.

        In case of linux: Read the mentioned book. Install a distro without an automatic installer (arch, gentoo, …). You’ll need to read the documentation while doing this. Use Linux daily for a year. Install a webserver, fileserver, … And if you want to dig down all the way, get through the Linux From Scratch process (but don’t start with that, and I don’t recommend it either. It’s mostly hard work and boring details nobody needs to know.).

        • fbsz@lemmy.mlOP
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          1 year ago

          ‘read and then do’? How is it better than ‘learn while you do’? It may save you some time when you read and then do, but I think you can learn more when you do and also learn in the process? Correct me, If I’m wrong. Are there any books or resources which are available for free of cost?

          • rufus@discuss.tchncs.de
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Regarding my earlier replies: I think I was a bit harsh. ‘Learn while you do’ is perfectly alright. What I wanted to say is, read a book or a course or something that guides you during the most difficult steps. I don’t care in which order you do it. I’m currently learning programming Rust. And I picked a book combined with assignments. And I like it. It is one short chapter with information and then you get to apply it right away. I think this is the most effective way to learn and remember things, for me. I’m trying to be a bit patient with the project I want to start. Because I could probably jump straight into the project and see how far my background knowledge from other programming languages will get me. But I’m sure this will lead to an amateurish result and bad design choices I’d need to face later. And it would take me longer all in all than being strict and learning 2 weeks and then doing the work after that, but much quicker.

            That was more or less what I was trying to say.

          • corvus@lemmy.ml
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Libgen.rs (books for free) By doing without reading you are at risk of not understanding the meaning of what you are doing.

          • rufus@discuss.tchncs.de
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            1 year ago

            Well, generally speaking, if you start with some subject, you have no idea what’s important and in which order to learn things. You can often do it yourself and just start somewhere. But it’ll be more effective and quicker if you start with the basics first and then the details. And let someone who knows this stuff simply tell you.

            Also sometimes you need to know some concepts to be able to understand something. For examples the maths, trigonometry before trying to program a robot arm that needs to move somewhere. If someone figured this out for you, you’ll be faced with the assignments in the correct order and you’ll have the background to start learning this topic. If they’re a good teacher, this will be most effective and also make sure to keep you motivated. In this example you could figure it out yourself and see what background knowledge you now need to learn. But once it gets more complex, it won’t be that easy. For example with programming, knowing about heap, stack, harvard architecture and memory protection will make it obvious for you why you can’t change a C string, why you can’t grow and shrink some objects but you can do it with others. Why some of your code just runs slow. And you probably won’t know to look up ‘heap’ while looking at your code to deal with json-objects. You’re more likely to memorize when to write ‘new’ something and learn lots of exceptions individually and not understand some things at all. While someone with a ‘traditional’ education will know the concept behind that.

            And sometimes you’ll get lost in details if you do it on your own and waste quite some time. Or you’ll miss out on some important fact, because this case didn’t occur in your practical experience.

            But that’s only part of the truth. People with a ‘traditional’ educations also sometimes don’t know stuff, miss out on concepts and struggle with the same things. And self-taught people often have other beneficial character traits. And you should never underestimate their level of motivation and dedication to a subject. And you can learn how to learn. I - personally - think it’s more important to do something with love and dedication, than to do it 100% the right way. And to have fun. But since you asked why it’s better to read the book first, these are some reasons to do it that way round. And as I said, don’t skip out on the actual experience. There are people who only have theoretical knowledge. And it’s a difference to hypothetically know how something is done, and actually knowing about all the consequences and caveats in practice, because you’ve already done it 3 times.

            I don’t have any book recommendations. I also taught myself lots of stuff. Read computer magazines, distro-hopped for quite some time. Read most of the documentation while dealing with some problems during the years. Deleted all the files for shits and giggles and learned about the filesystem hierarchy on Linux. Ran a webserver with lots of services. Studied computer science… Read a few books from the library… I’m sure other people here have good recommendations on what to read as of today. If not, go to the library or bookstore and have a look at the books, see if you like the style of some book. Maybe a university or a free software organization has some course available or some bibliography.

            • fbsz@lemmy.mlOP
              link
              fedilink
              arrow-up
              1
              ·
              1 year ago

              Sure, you dont know what’s important, how things work when you start out! But when you randomly explore, you’re hit with blocks and in order to pass it you have to analyze, examine it. In the process, you better develop your intuition as you yourself explore it and understand it to the core.

              Suppose, your end destination is some place, there is a forest before the place you need to reach. If you know the path(when someone teaches you), you can reach the destination effectively and quickly. But if you explore it yourself, it may take some time but you get to know the forest when you analyze and careful enough that you are not be lost.

              I think, the goal that is learning linux has to do with everything that makes the linux, but it is a long and boring process, when one learns without knowing the basics or the philosophy behind it. I think that, I better get to know about forest(basics of linux) and then explore randomly when you know what you’re doing.

              I find a website, linuxjourney.com. Let me try and understand the basics of linux.

              • rufus@discuss.tchncs.de
                link
                fedilink
                arrow-up
                2
                ·
                edit-2
                1 year ago

                I’m just saying… The forest also contains difficult to overcome obstacles. And even traps. And now it’s your job to stay motivated while breaking free or taking the detour around… You could have been guided and told how the trap works.

                And without knowing what to look for, you won’t see the traps coming. Some are really difficult to overcome if you didn’t see something alike before. And you’re relying on chance with that.

                I’m not saying you shouldn’t do it. Nobody does it to that extreme. I think most people pick up a book at some time. Or watch an online course that has information processed for you.

                And everybody learns differently. There just isn’t one simple truth that applies to everyone.

  • GustavoM@lemmy.world
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 year ago

    Heres a tl;dr of some “must learn” things in order to use GNU/Linux in an acceptable fashion;

    • Package manager (how to install, remove, clean old packages)

    • The “know-hows” (Which package goes for audio, video card, webcam, etc)

    • How to make a minimal/baremetal installation (Which is a very simple process nowadays – it takes only one package to do this)

    Thats it.

    • CaptKoala@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Yep, having stumbled around and learned many of this the hard way (guided by a knowledgeable friend) it was a big headache, however it’s stuff I’m not going to forget anytime soon.

  • Makussu@feddit.de
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    1 year ago

    Try setup arch or even gentoo with the help of the arch wiki or gentoo wiki

    • fbsz@lemmy.mlOP
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      the whole OS, everything from kernel to installation to philosophy

      • 3enhjz@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        I printed out a Gentoo manual in 2004 and compiled from scratch to a working os with x. I ruined it a week later and went back to Windows and learned nothing that stuck with me. Ive been messing around with free slackware cd’s since the late 90’s, whole smart home is running debian and ive been gaming on linux close to 10 years now, the synenergy with the deck is fantastic.

        I’m gonna try and start the course in the top comment :)

  • amphetaminisiert@feddit.nl
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    I’ve learned Linux (and vim) just by forcing me to use it. One day I’ve installed i3 and just used it forcing me to solve my problems by myself haha