blobjim [he/him]

  • 1 Post
  • 24 Comments
Joined 4 years ago
cake
Cake day: July 29th, 2020

help-circle








  • blobjim [he/him]@hexbear.nettoLinux@lemmy.mlIntel WiFi 6E
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 months ago

    I’m not any more knowledgeable about this stuff than you :(, I just got an AX210 for my laptop the other day, but I don’t have a 6 GHz capable router.

    It feels like it’s some kind of power saving feature or something like that. Do you actually get any faster speeds on 6 GHz?

    You could try seeing if you have some kind of “roaming” or “mesh” option in your router settings. There’s a feature that’s supposed to have the router kick devices off of a connection if it thinks there’s a better one in the same mesh network. Not sure if it has any applicability to different frequencies on the same access point. Probably a dead end but you could look into it.

    If it’s a fully featured router there should be tons of random options to change the power usage of the router’s wifi radios and all sorts of other stuff like that. At least on my old Asus router there were tons of options like that.



  • You may also encounter some contradictory information out there too. For example, I said don’t modify stuff outside of your user home directory, but some people will advise to modify stuff in /etc. Although I would never do this on a desktop distro (usually /etc is set up the way the distro maintainers want it, and anything you need to modify will have another more user-friendly way to modify it), especially one where you’re mostly just trying to run desktop applications. It might make sense to modify stuff in /etc on a server installation since that’s where a lot of configuration for different daemon processes (i.e. system services but also server applications) and even software libraries goes.

    That’s one of the good and bad things about linux. There is some information about all this stuff on the internet if you can find it, but it is also an information overload and you’re basically learning about the internals of the operating system with all the associated complexity. That’s one thing that threw me off about linux initially (I started getting into this stuff only a couple years ago), almost everything you learn about linux is basically an implementation detail. There are Windows equivalents to most things in linux, but when you use Windows as a desktop user you don’t really think about them unless you’re developing an application using Windows-specific APIs.

    Windows has things like COM (linux equivalent is gobject and dbus), Services (linux equivalent is systemd services), Win32 API (this is a million things in Linux like glibc and a bunch of other system libraries, just check out how many files are in /usr/lib or /usr/lib64), Registry (dconf/gsettings) and so on.

    There’s also unfortunately no real clean break between “stuff anyone should know” and “stuff programmers and linux distro developers should know”. A lot messier than something like iOS or Android where if you’re a normal user you basically don’t see the OS implementation or hints of it at all.

    Trying to hide the implementation details is also why the GNOME Files app shows you some documents folders on the left but makes it more difficult to view the root directory or even the current file path. Which was very frustrating and confusing for me, coming from Windows.


  • The most important thing to realize about the “file system” in Linux is it does a lot more than just persist your documents and app data. You shouldn’t index your root directory because almost everything other than your home directory is some kind of Linux distro/application-specific directory that is often not a normal directory stored on a storage device. If you run the mount command with no arguments, every line of output is a separate file system, mounted at some specific directory of the current “mount namespace”. Kinda confusing, but every process in Linux has a mount namespace that has a list of mounted file systems, often that namespace is shared between many/most processes, such as your terminal shell. Most of the file systems will be virtual i.e. not representing anything in storage. For example sysfs (always mounted at /sys), proc (always mounted at /proc), devtmpfs (mounted at /dev), etc. are all completely virtual and are ways for system services and applications to access state and devices exposed by the Linux kernel. They should never be indexed, treated as normal files, or modified by the user.

    That’s probably even more confusing, sorry. But the gist of it is, the only directory on your system you can really count on actually being stored on disk and always available to you is your home directory. Basically everything else exists as an implementation detail of the operating system and software applications.

    If I were you, I’d stick to only indexing your user home directory. Indexing /usr or /tmp or /etc or whatever is like indexing C:\Windows and C:\Program Files, except even weirder since at least on Windows those are actually files stored on disk whereas in Linux they may not even be actual files (although most of them in /usr and /etc are actual files on disk).



  • I don’t know how helpful it is to split stuff out like that. Especially grouping so many things under “default applications and daemons”, which is most of what a desktop distro is. Also depends largely on a PC vs server setup.

    should list an init system as its own bullet, which others have mentioned.

    “one or more shells” doesn’t mean that much. Yes, every distro includes one but the only difference between a terminal and any other application is that a terminal needs to be able to escalate to root privileges. You can think of it as just another default (but special) application. A lot of stuff that people think about when they think of Linux distros is just various clever mechanisms for supporting the terminal shell. Like the PATH environment variable. If you are using actual desktop applications other than a terminal, there isn’t any interaction with the terminal shell application.

    There’s also fwupd, for updating firmware (your hardware is gonna be running out of date/buggy/insecure code if you don’t have this).

    The dbus daemon falls under the “daemons” bullet but it’s pretty important, like wayland/x11 it’s another IPC mechanism you need for programs to work correctly.

    There’s also the sound system. PipeWire is the modern one that implements the interfaces of various other sound systems so existing applications work with it. https://pipewire.org/ (PipeWire also has its own IPC protocol like dbus/wayland/x11).

    flatpak, snap, distrobox, toolbox, docker, podman, etc. for running sandboxed PC/server applications. I assume there are some programs that are flatpak-only these days.

    gsettings/dconf for Windows-registry like config that many programs use.

    There’s also plugging in an implementation of the glibc Name Service Switch, which allows libc to use a mechanism other than /etc/passwd and related files for user accounts, internet service names, DNS resolution, etc. . systemd can provide NSS implementations using its own user account mechanism.