LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 07-09-2007, 08:40 PM   #1
RichardBronosky
LQ Newbie
 
Registered: Feb 2007
Location: Atlanta, GA, USA
Distribution: KnoppMyth, Ubuntu
Posts: 18

Rep: Reputation: 1
Linux "kernel, device, display, window sys, app" stack/relationship diagram


So, does anyone out there REALLY know how Linux works? It seems to me that even a lot of Gentoo and "Linux From Scratch" users have merely got a "follow the directions" understanding of how Linux works. I'd love to find, and trust me I have searched, a diagram that explains the stack of services/daemons/applications that make up the Linux desktop.

I have been a *nix server guy since 1999. Now I've attempted to bring Linux into my home and workstation, but find that there seems to be a lot of "Black Magick" under the hood. I want to know how things work, so that when I encounter a problem I can have an idea of where to start looking for solutions. I'm tired of being the guy who, anytime something goes wrong, immediately begins Googling for every buzz-word he can think of, only to find that 6 hours later he is no closer to the answer and has to go to his job having had no sleep.

So far, the best diagram I have found is http://www-rohan.sdsu.edu/doc/debian...omponents.html
(The diagrams here are good examples of how it might look, but not quite applicable.)

However, this diagram is severely lacking in detail. A concise diagram should include:
  • Kernel
  • Modules
  • Drivers
  • Devices
  • File Systems
  • Swap File
  • Boot Loader
  • Run Levels
  • Frame Buffer
  • Boot Splash
  • Daemons
  • Console
  • Virtual Terminals
  • Shells
  • Environment Variables
  • Command Line Interface
  • Command Line Applications
  • Windowing System
  • X11
  • X.org
  • XFree86
  • Display Manager
  • Desktop Environment
  • Window Manager
  • File Manager
  • GUI Applications

Okay, I realize some of those things may be a little too detailed to be on any system overview diagram in existence, but once I started I just went with the flow.

I think something with most of this should exist.

If it doesn't exist, I will make it. Please pick a portion that you have a strong understanding of and give a breakdown in text. I will make the diagram. I will manage the project, make a clean vector file, host it, share it, keep it up to date, whatever. I just think that we'd see a lot less stupid questions if there was a way to learn this without beating your head against it for 12 years.
 
Old 07-09-2007, 09:43 PM   #2
wjevans_7d1@yahoo.co
Member
 
Registered: Jun 2006
Location: Mariposa
Distribution: Slackware 9.1
Posts: 938

Rep: Reputation: 31
Well, one first step for getting a good idea of how Linux works under the hood is to install Slackware. Slackware is designed to let you have full control over how things are installed, without making it difficult. As far as I know, no significant arbitrary decisions are made for you in the installation process.

Then browse through the /etc directory (especially, but not limited to, the /etc/rc.d directory). Issue every man command suggested by the files that exist there.

I have an O'Reilly book on my shelf, Understanding the Linux Kernel, which I intend to read some day. Its table of contents looks like the book will answer many of your questions. It looks like you can read the kernel 2.6 version here:

http://safari.oreilly.com/0596005652

You can also get some interesting tidbits by googling this:

Code:
"Linux kernel" "under the hood"
Hope this helps.
 
Old 07-11-2007, 12:43 AM   #3
SciYro
Senior Member
 
Registered: Oct 2003
Location: hopefully not here
Distribution: Gentoo
Posts: 2,038

Rep: Reputation: 51
What you want to know: boot sequence (takes care of: boot loader, modules/drivers (same thing), devices (depends what you are talking about, either way, its covered, device drivers in the kernel export devices as files, udev (located outside of Linux) creates these files in /dev for users to use), shells, environment variables (a aspect of shells), console, virtual terminals, run levels, and CLI (its the same as the shell, as the shell implements the CLI!!!! (on top of a terminal/virtual terminal/console/whatever they are calling it these days), boot splash.

GUI system: takes care of framebuffer (a graphics display located in Linux), X windows (the GUI system (windowing system) of almost all *nixes, (Linux can use its framebuffer as a "alternative" (as in: no applications!!!)) (X windows is implement by: XFree86, Xorg, X11 is the 11'th version of the X standard), window manager (X dosent manage windows for you, a 3rd party program does that, the window manager is this program), file manager (a GUI application to allow you to manage your filesystem (in CLI, the shell and programs work close enough with files that using a file manager there is almost pointless (but some do exist), in GUI, you dont have that luxury, so you need a file manager), display manager (its part of X, to allow you to use a to login to a display), desktop environment (a collection of libraries, daemons, and programs designed to implement a environment in X for the desktop (without a DE, all you have is a loose nit collection of GUI toolkits, programs, etc, and very little standards, each DE defines its own standard set of libraries, and so the resulting desktop feels integrated and consistent (as possible, anyways)).

sysadmin/basic stuff stuff: filesystems (really, you must know what this means), swap file (should be: swap space, space on the harddrive used for swap (named from the verb swap, as in, to swap memory located in the RAM, with that on the harddrive, thereby increasing the amount of memory available (called virtual memory in Windows i believe)), kernel/device drivers/modules/whatever, basic system config files, system logger, daemons (programs that provide services, but are not used directly from the command line, such as the system logger, it logs events, but its pointless to run it from the command line. Or Cron, used to schedule tasks, if tasks must be automatically started at a given time, what good would a program that wasent a daemon be? (all daemons disconnect from the terminal, but remain active, essentially, allowing the user to do whatever).

I think that about covers it.

Last edited by SciYro; 07-11-2007 at 12:45 AM.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Cannot connect to X11 window server using ":).0" as DISPLAY variable cclack Linux - Newbie 4 09-06-2007 09:32 PM
"Xlib: extension "XFree86-DRI" missing on display ":0.0"." zaps Linux - Games 9 05-14-2007 03:07 PM
X display doesn't work with Gforce2, "framebuffer device not found" cheema Debian 2 01-06-2006 12:07 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 10:36 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration