Hey guys! Trying to understand what developers actually do to create a yet another distro, or what are the differences between existing distros. Lets say we have ubuntu and fedora. What are the differences? Excluding DE, Installer, theme, installed packages/libs and package manager. They both are FHS compliant, both running systemd what else?

Just wondering if there could be a way to “simulate”, lets say ubuntu on fedora. For example providing every program that should be present on ubuntu in fedora. Would it be enough to be able to run .deb packages on fedora? Im not gonna do that though, just curious about this question.

Thank you!

  • Pantherina@feddit.de
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    11 months ago

    Distros

    • are putting together a set of packages in repos.
    • the repos are either close to upstream, or they backport security fixes. Everything else is not secure
    • make working, secure, sometimes branded bundles including Desktop, some apps, some specific software
    • the bundles get updated and if it is a point release, upgraded to a new set of packages. That is called a “Distro version”
    • This ensures new features and security fixes
    • the Distros care about bug reports, work with upstream, getting new contributors, packaging (bundling the packages, presets, libraries into a set with a name, handling dependencies etc.)
    • Distros also often package and build their own Kernel or multiple ones. These kernels are general purpose most often, even though there is the kernel-hardened or Oracles “unbreakable kernel” (whatever that is). Also there is a lts Kernel that has backported security fixes, as well as other releases of the kernel like git (latest of everything)
    • Distros take care of the versioning, so not every package is always the latest but tested to work with other packages.
    • Distros also implement security systems like SELinux and Apparmor with matching configurations

    So you see that is highly complex. So stay as close to upstream as possible to get the best experience. I think of the main distros as

    • Debian + Ubuntu
    • Fedora + the RHEL stuff or clones (Oracle, Alma, Rocky etc)
    • Opensuse, SEL
    • Arch
    • Gentoo
    • Alpine (busybox and musl, not real Gnu+Linux)
    • NixOS
    • GUIX
    • ClearLinux
    • Coreboot (yes that is a Linux distro)
    • Slackware and other probably outdated projects
    • small ones with different focus

    All the others are either downstream modifications of these, or less known. Some Line ublue, EndeavorOS etc. also just take an upstream distro and change very little.

  • nyan@lemmy.cafe
    link
    fedilink
    English
    arrow-up
    4
    ·
    11 months ago

    The main difference between Ubuntu and Fedora is the package manager. Most of the rest is just selected default values for configuration and cosmetics, and what helper scripts are or aren’t present on the system. They’re both mainstream distributions aimed at the general user, and they’re shaped by their goals.

    To see how different distributions can be, you need to compare the mainstream distributions to stuff that’s decidedly not mainstream, like Gentoo, Alpine, and Nix.

    Just as a trivia note: Gentoo does package a couple of other distros’ package managers (app-arch/rpm and app-arch/dpkg), for use in installing otherwise-unavailable commercial binaries, although I suspect app-arch/rpm2targz sees more use than either of them.

    • majestic@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      11 months ago

      NixOS, Alpine and Gentoo are also pretty popular, but yeah, Fedora and Ubuntu it is the distros the regular person is associating linux with. Or doesnt know what is linux at all :)

      Btw i use NixOS

  • juli@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    11 months ago

    You can use distrobox to run ubuntu on fedora and fedora on ubuntu.

    Imo the difference isn’t too big. If you know what you do, your system will look roughly the same on ubuntu and fedora. Same packages, same workflow etc.

    If you keep the base packages constant, i.e. with a immutable distro, you can compare it much better, imo. The experience on Fedora silverblue and opensuse microos will be almost the same for the usual end user. Both are immutable systems, you install packages via flatpack, command line tools via distrobox. System keeps itself up to date. One is standard release, one is rolling.

    Flatpak and distrobox offer sandboxing and reproducibility. Imo you want both on a regular install as well which almost make a traditional install like an immutable system, yet you are not as discouraged from installing packages onto the base layer.

    If I’d be asked what the difference between fedora and ubuntu is, then I’d say the company behind it from which you get tech support. That’s mostly it.

  • DannyBoy@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    11 months ago

    The differences between distros are the things you mentioned. They all use the Linux kernel, so the differences are in the DE, installer, theme, default packages, and package manager. These changes come about from design choices: rolling vs versioned releases, stability goals, FOSS vs proprietary packages/repositories, things like systemd vs alternatives, and overall goals/use cases (lightweight, server, etc).

    A distro can be as little as a theme change. The famous Hannah Montana Linux is KUbuntu with a custom theme, icon pack, and Hannah Montana as the background.

    https://linuxreviews.org/Hannah_Montana_Linux

    • majestic@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      0
      ·
      11 months ago

      So basically if i have all Voidlinux’s programs installed on NixOS, i can have some decent amount of packages (that are not heavily depending on init systems or some other non trivial stuff) from Void repos running on NixOS?

      • Dotdev@programming.dev
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        11 months ago

        I wouldn’t compare void and nix since both of them follow very different approaches. Void is more like a traditional distro while nixos on the other hand uses configurations for setup.

        And no you can’t use void on nix os as said above. Hannah Montana linux and kubuntu uses Ubuntu as the base that’s what he meant.

        • majestic@sh.itjust.worksOP
          link
          fedilink
          arrow-up
          1
          arrow-down
          1
          ·
          edit-2
          11 months ago

          Im not talking about comparing these distros, nor using void on NixOS. Im asking if i had all packages that are preinstalled on void, present on NixOS as well. Would i be able to run some packages from void linux repos on NixOS? If i make nix derivation with package from void repo and install it, would it work?

          Looks like the answer is “Yes”, but im not sure.

          • Dotdev@programming.dev
            link
            fedilink
            arrow-up
            1
            ·
            11 months ago

            If the same void package exists in the nix os repo then sure. You can’t use a void package in nix os is the thing I would like to point out other than using distrobox.

  • Joker@discuss.tchncs.de
    link
    fedilink
    arrow-up
    1
    ·
    11 months ago

    On the surface, the biggest difference between distros will be the package manager and the update cadence. Most package managers are generally comparable so I won’t get into that. The cadence has to do with release type - rolling or fixed - and the speed with which updates are released. Do you want the newest packages, LTS or somewhere in the middle? This is probably the first big decision to make when choosing a distro. The only real must-have here is you want a distro that provides timely security updates. Even a highly stable LTS should be pushing out security updates asap.

    Then you have default package choices, which are often superficial like DE or default apps. This can all be changed so it’s not much of a concern. But there could also be more impactful choices like whether a distro uses systemd or glibc vs musl. The mainstream distros tend to use systemd and glibc, which is generally good, but know that you have other options if your specific use case requires it. There’s also package availability, meaning the number of packages available in the repository, although this is less important than it used to be because you have options like Flatpak or Nix for getting packages that aren’t in your distro’s repository.

    There are also some distros created with a specific use case in mind, such as Alpine for containers or Kali for testing network security.

    Finally, you have structure and governance. Some distros have corporate backing, others are community supported and still others aren’t much more than a hobby. The ones with corporate backing typically have options for paid support. In general, you want something with stable and competent governance where it will continue to thrive even as team members change. You can find examples of this in corporate-backed distros as well as community distros.

    So your biggest choices are going to be cadence, structure/governance, and whether you may need paid support now or in the future.

    As for what distro developers actually do… First, they build the tooling and infrastructure to make their distro work - package manager, packaging tools, repository, etc. Then, they are responsible for packaging everything available in the distro. They are pulling in source code for all these apps, compiling it and putting binaries in the repository. They rebuild packages as required when there are updates to the source code. Some distros like Arch will build vanilla packages, meaning they don’t make changes to upstream code. Others may apply their own patches for various reasons. Some like Red Hat will provide patches to upstream apps requested by customers as part of their paid support services. So let’s say something isn’t working the way you need it for some random FOSS app included with the distro. You can put in a request and they will change it for you.

    As for your specific question about simulating Ubuntu on Fedora, that is not possible. They each use their own distinct package manager and repository. They generally have similar packages, but they are not interchangeable. However, there are tools like distrobox and distros like VanillaOS that have mechanisms for using another distro’s packages. These use containers under the hood so it’s not quite the same as just installing .deb on Fedora or .rpm on Ubuntu.

  • Auli@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    3
    ·
    11 months ago

    Really nothing. Want to distribute hop without the hassle change your theme.