Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
In my efforts to learn Linux I have learned that VMLINUX is the "core" of the Linux OS. Yet I have also learned (mostly through trying) that you can't always install/run programs across distributions--that is, I could not make a Debian based application run on TinyCore. (Admittedly this might have been due to my own ignorance of how to properly install/configure/execute programs.) With this in mind I have two questions:
1. Are there different versions of the Linux core for different distributions? In other words, does Debian have its own version of VMLINUX, which would be different than the VMLINUX RedHat might use?
2. To what extent are Linux programs limited to their parent distributions? (Would a program written for RedHat, for example, run on a OpenBSD system?)
Please forgive my ignorance, as I'm just learning. Thanks!
VMLINUX is a statically linked version of the current running kernel that is executable. The kernel may very well be the exact same from one system to the next but that does not mean that programs will run the same under both. There are so many other variables here, what is the architecture of the kernel? What libraries are linked? And so on.
You see, there's a chunk of software that's always resident, the entire time that the system is running. It's loaded into memory at boot time and it stays there until you shut the power off. That piece is called "the kernel." (Technically, "kernel modules," which can come and go, become part of "the kernel" also while they are loaded.) The lowest-level responsibilities of device and hardware control reside here. The kernel creates the virtual-memory / multi-tasking environment in which every process runs. It also hosts file system drivers.
There are many, many other parts of the total software system that, colloquially speaking, is referred to as "Linux." The kernel is the always-resident, low-level hardware control portion of it ... what IBM likes to call a SCP = System Control Program, which I actually think is a much more descriptive name.
First, must give credit to sundials further explanation on this.
Originally Posted by Inert
Kustom, thank you for replying. I think this is what you meant in your explanation:
1. The Linux kernel, by itself, is not responsible for executing programs.
2. To execute certain programs, one needs to access additional resources (libraries).
Is this correct?
1. See Sundial's response, it should answer this question. If you want more clarification just ask.
2. Correct, in order for functions to execute the appropriate library must be linked and accessible by the kernel. See the "ldconfig" and "ldd" man pages for info on library linking. If you want to see some of this run the "ldd" command on a binary: