• Lucid Dreaming - Dream Views




    Results 1 to 14 of 14

    Hybrid View

    1. #1
      dsr
      dsr is offline
      我是老外,可是我會說一點中文。
      Join Date
      Nov 2006
      Gender
      Location
      my mind
      Posts
      374
      Likes
      1
      The main differences between most distros are package management and init system. Almost all distros have some sort of package management, but not all distros keep track of dependencies for you (i.e. Slackware and some of its derivatives). Some distros operate on a rolling release with daily updates as software is updated upstream (e.g. Arch and Gentoo). This gives you bleeding edge software, but less time for testing means less guarantee of stability. Other distros issue fixed releases every now and then (e.g. Ubuntu and Slackware). Yet others offer you a choice of release type (i.e. Debian). Fixed releases provide more time for testing, and some distros are more stable as a result. Slackware and Debian stable in particular are known for their stability.

      I don't know too much about the different init systems out there, but most distros base theirs off of the scripts from SysV UNIX or BSD. I like BSD-style config scripts (e.g. Slackware, CRUX, and Arch) since they're conducive to editing by yourself in a text editor. SysV-style scripts (e.g. Debian and Gentoo) are said to be better for automated configuration, which I get the feeling means automated configuration by GUI abstraction layers. Some distros use entirely different init systems (e.g. Ubuntu, which uses something called Upstart).

      Most distros are pretty much the same except for their package managers and init systems. Some might come with specific X setups already installed and configured, but these are only the defaults. Ubuntu comes with GNOME, KDE, or Xfce preinstalled, but there's nothing to stop you from installing a fully keyboard-controlled tiling window manager like Ratpoison, Stumpwm, or dwm. Likewise, even though Arch boots to a framebuffer console by default, nothing's stopping you from installing X11 and even using KDE4 as your desktop environment.

      I don't have much experience with hand-holding distros that aim to make the transition from Windows or Mac OS X easy (e.g. Ubuntu, openSUSE, Fedora, and Mandriva) since I made the switch from Mac OS X to Arch over a year ago, but here's a little comparison of some good distros that facilitate custom tailoring your Linux environment to meet your needs.

      Debian: Comes in stable (fixed releases after extensive but possibly excessive testing and patching), testing (rolling release after several months of testing), and unstable (rolling release) versions. Most users will find stable too outdated except for server use and unstable too buggy for normal use (although Ubuntu is based off of Debian's unstable tree). It features a binary package manager (APT) with automated dependency resolution. Unfortunately IMO, Debian devs have a tendency to patch software programs a bit excessively, considering that the devs of those programs understand the code better than the Debian devs do. This might result in you not understanding your system that well.

      Gentoo: A source based distro that aims to give you total control over your system. Its Portage package management system features automated dependency resolution that provides a lot of control (through a feature called USE flags) over which features of programs get compiled and which dependencies get built. This ability to install only what you need to keeps your system very slim. It's worth mentioning that some users claim a noticeable speed increase with Gentoo over binary distributions since you can use compiler-specific optimization flags for every piece of software compiled. It's arguable whether CFLAGS that optimize beyond, say, i686 create executables that run any faster. Installing software and, more importantly, keeping the system up to date can take a lot of time, however, due to the nature of source code compilation. Note though that Gentoo provides pre-compiled binaries for common programs to save time.

      Arch: The distro that I currently use. Its binary based package manager called pacman uses packages optimized for the i686 and 64 bit x86 architectures, so it feels as fast as source based distros, but without the compiler overhead. Updates take seconds rather than hours. It also has a great source based package management tool called ABS (the Arch Build System) that works with pacman to let you customize programs how you wish. Arch also has a repository called the AUR where users can add their own build scripts for the community to use. Arch has an awesome BSD-style init system with a central /etc/rc.conf file, which was inspired by CRUX. There's a strong KISS focus (emphasis on minimalism) where the user is given as direct control of his Linux environment as possible. Arch is also one of the most up-to-date distros around, with updates sometimes available the day they come out. That means Arch doesn't test packages as extensively as some other distros, instead relying on upstream developers for bug fixes and such, which unfortunately sometimes results in instability as with Gentoo.

      Slackware: Very stable, BSD-style init scripts, works on older hardware than Arch does, and it has a heavy emphasis on minimalism to the extent that its package management doesn't include automated dependency resolution. It is up to the user to install each and every package. It's officially a binary distro, but it doesn't have binary packages for a whole lot of modern software, so it's effectively a source based distro without dependency resolution. Nevertheless, slackbuild scripts automate the build process at least to some extent, and Slackware's strict attempt to use vanilla source code whenever possible results in one of the most stable Linux distributions on the planet. Slackware is great for servers and MythTV boxes, but if you don't feel the need to update software once you install it and get it working, Slackware might very well work for you as a desktop OS. If you don't want to wait between (long) fixed releases, you can use the -current branch, but I don't expect it to be as stable as the releases.

      CRUX: The inspiration for Arch Linux. It's just about the most minimalist distro on the planet with a true KISS focus. It's source based like Gentoo, but it does not have the benefit of USE flags. It also doesn't run on (or at least have an official version for) a whole lot of architectures, including x86-64. Nevertheless, it's probably the purest Linux experience one can have shy of (or even including) LFS, and it has a great BSD-style init system with a central /etc/rc.conf file like Arch.

    2. #2
      FBI agent Ynot's Avatar
      Join Date
      Oct 2005
      Gender
      Location
      Southend, Essex
      Posts
      4,337
      Likes
      14
      Quote Originally Posted by dsr View Post
      Some distros use entirely different init systems (e.g. Ubuntu, which uses something called Upstart).
      Just FYI,
      Upstart is an event-driven replacement for the init daemon
      written by Scott James Remnant of Canonical (previously a Debian maintainer)

      The original SysV and BSD init systems are very linear, and do not fair well with hot-pluggable devices, or other external system changes

      Say you have /usr mounted via NFS
      When the boot process hits the mounting of /usr, it could potentially take a little time
      (If not done so already, got to initialise networking, get IP, etc.)

      Upstart uses events to trigger init scripts, making the whole thing asynchronous, and therefore much more concurrent

      You can read the original Ubuntu blueprint from 2006
      https://wiki.ubuntu.com/ReplacementInit

      Upstart is also, now, used on Fedora and Palm's WebOS
      (\_ _/)
      (='.'=)
      (")_(")

    3. #3
      Rational Spiritualist DrunkenArse's Avatar
      Join Date
      May 2009
      Gender
      Location
      Da Aina
      Posts
      2,941
      Likes
      1092
      Quote Originally Posted by dsr View Post
      The main differences between most distros are package management and init system.
      This is precisely what I wanted to know, though of course I didn't know that thats what I wanted to know at the time of my OP. It seems as if the order of complexity for the init system is bsd < sys V < upstart. Is that correct?

      If so, then it seems logical to start with a BSD style init system and work my way up. It has been pointed out that in my OP, I was not clear about what I wanted. My gripe with ubuntu is that I don't have to do anything for it to work. Being the lazy sonofabitch that I am, if I don't have to do anything, then I don't do anything. A consequence of this, aside from having more time to surf the web, is that I don't learn anything about gnu/linux system administration. Ubuntu is too good for the lazy, just-in-time learner. I guess a better title would be, "Ubuntu doesn't annoy me enough and I am looking for an OS that will." When it comes to programming, I will seek out information just for the sake of it because I genuinely enjoy it. System administration... not so much. I do feel compelled to learn it though.

      Thank you all for the great responses. I've decided that I'm going to dual boot arch and ubuntu for a while.

      EDIT: I made this edit on arch with the openbox as the WM. I'm gonna skate without a DE for now I think. Thanks again for the help.
      Last edited by PhilosopherStoned; 07-21-2009 at 04:16 AM.
      Previously PhilosopherStoned

    Bookmarks

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •