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!
Notices
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.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
Read acid's post there at the end. Linux is the that core kernel file, all the rest of the software is used by the Linux kernel but is not technically Linux.
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).
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.
Quote:
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:
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.