Find the answer to your Linux question:
Results 1 to 5 of 5
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1

    A Better Understanding of Linux

    So I use Ubuntu, and it's just fine. But, I really have no idea what the hell is happening. I have a rather vague understanding of Synaptic, when I see a tar.gz package I just think "oh, ./compile, make, make install". I have absolutely no idea what is happening, though and I don't like that. I abandoned the Windows bandwagon in order to gain a deeper understanding of how an operating system works and I'm not much further than when I started out.

    I've decided to set up a virtual machine and try and install Arch Linux in effort to gain a better understanding...but I'd also like something more theory-focused-- which, of course, means some literature.

    So is anyone familiar with a book that isn't the classic "How to switch from Windows to Linux" and that focuses on pragmatism over understanding. I want something that delves deep and is specific--something focused on a true understanding of Linux and how it's tied to the hardware of the system. So if anyone can recommend either an online source or a book that does exactly this, please refer me to it;I want it to be as rudimentary as possible and not rely on any existing knowledge.

    Maybe after that I'll try (and probably fail) Linux from Scratch.

    P.S. I'd also like to finally learn a programming language...and maybe doing it in parallel with trying to understanding Linux. What would be the best language to do this? I'm going to be a future physics major, once in college, so I thought it may make sense to learn Fortran, especially given that it's so old (and thus not convoluted with all this high-level crap).

  2. #2
    Linux Engineer GNU-Fan's Avatar
    Join Date
    Mar 2008

    if you only learn one programming language, learn C. If you learn 2, add C++.
    Why? Well, nearly every program as well as the kernel you use is written in that.

    The first thing to understand is the distinction between the kernel, Linux, and the wealth of userspace applications that run on it. Together they form the operating system.

    For the kernel, here are two good books, available as free ebooks:
    Linux Kernel in a Nutshell
    Understanding the Linux Kernel

    For the userspace tools, much of it is provided by the GNU project.

    On Ubuntu/Debian, you can install the source of every package with
    apt-get source NAME
    Then you can play around with the code, compile & replace the original version with yours.
    Debian GNU/Linux -- You know you want it.

  3. #3
    Linux Guru reed9's Avatar
    Join Date
    Feb 2009
    Boston, MA
    I would also recommend reading these: The Art of Unix Programming
    Basics of the Unix Philosophy

    Whatever other language you learn, I would get comfy with shell scripting. They are ubiquitous on linux systems. For example, the main startup script for Arch Linux, /etc/rc.sysinit, is a BASH script.
    Advanced Bash-Scripting Guide

  4. $spacer_open
  5. #4
    Penguin of trust elija's Avatar
    Join Date
    Jul 2004
    Either at home or at work or down the pub
    ^ what they said ^ with one small qualification

    Quote Originally Posted by GNU-Fan
    Together they form the operating system
    Together they form the operating environment, as I understand it the kernel is the operating system
    Last edited by elija; 02-27-2010 at 11:36 AM. Reason: Changed he to they
    Should you be sitting wondering,
    Which Batman is the best,
    There's only one true answer my friend,
    It's Adam Bloody West!

    The Fifth Continent

  6. #5
    Linux Engineer GNU-Fan's Avatar
    Join Date
    Mar 2008
    Quote Originally Posted by elija View Post
    Together they form the operating environment, as I understand it the kernel is the operating system
    There are references supporting either opinion.
    It boils down to how you define "operating system".

    For example, Apple calls "Mac OS X" the operating system and the kernel is named "XNU". On the other hand, the free BSDs do not maintain a distinction in names, but still keep kernelspace and userspace code distinguished clearly.

    A kernel by itself doesn't operate much. It merely crashes.

    It is also interesting to look at Android, which is called an "operating system". Even though at its core ticking is Linux (if with small modifications).
    Debian GNU/Linux -- You know you want it.

Posting Permissions

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