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.
First, what is the context of your question? Are you considering trying Linux? Have you tried it?
What computing environments are you familiar with?
You install applications onto a Linux installation---much as you would in Windows, but with more methods to choose from. For most things, you don't see the "front end"--or the back end. An obvious exception is the printing system, where you have front-end drivers that interface with apps, and back-end drivers that talk to printers.
What do you mean by "user space"? Generally programs will run as part of some parent process--eg the the user's shell. Programs can also be commanded to run in background.
From a virtual-memory and privelege-separation point of view, all programs run in user-space. Only the kernel and kernel modules run in kernel-space. When programs need resources from the kernel, they make use of a system call (handled by libc and a kernel interface) to do so.
From a virtual-memory and privelege-separation point of view, all programs run in user-space. Only the kernel and kernel modules run in kernel-space. When programs need resources from the kernel, they make use of a system call (handled by libc and a kernel interface) to do so.
As opposed to my attempts, this guy seems to know what he is talking about....
I don't think or kernel or kernel modules as "programs". By themselves, they don't do anything useful. To many people, I think program is taken as the thing that performs a particular function.
Yes, I would not consider the kernel or modules programs, though they do behave similarly to one. My intent was to clearly define the line between user-space and kernel-space.
Based on the OP's reference to user-space, I assumed his question of where they reside was in the context of process (address) space, and not physical (i.e., disk). I could, however, be way off base here.
I don't think or kernel or kernel modules as "programs". By themselves, they don't do anything useful.
They do do something useful - running the computer and all its hardware components, its just not directly useful to the user, but they are still programs.
Quote:
To many people, I think program is taken as the thing that performs a particular function.
A better word for that would be 'application'. I'd say a program is any piece of software which runs, an application is something that does a specific function for the user, eg. a web browser or a spreadsheet or something like that.
"The kernel" is a device-control program: if you can pop off the case of your computer and "see something or touch it," then the kernel is what physically controls it. That includes: CPU, memory, the motherboard, peripheral devices, keyboard, mice, displays. The kernel provides the basic environment in which all programs are run. It creates and patrols the notion of "files." But ultimately, hardware control is all that it does.
"The system environment that you interact with every day" is actually composed of many programs, all running at the same time within the environment that the kernel has created. And, unlike Microsoft Windows, you have more control over these and can "see" them. Linux is a loosely-coupled system.
For example, let's say that you are looking at this page in FireFox and you decide to print it. How many programs are "helping" you? ...
The graphical display that you're looking at is built by the XWindows (or XOrg) subsystem.
The shell, or control-environment including taskbars and icons, might be Gnome, KDE, or something else ... running "under" XWindows/XOrg.
The FireFox browser is an application, interacting with each of these.
You sent an item to the printer, so the CUPS (or LPD) program is sending that output, a page at a time, to the printer.
Oh yes, there's a clock ticking away at the bottom of the screen... yep, another program.
All of these programs are running, simultaneously, in the environment created for all of them by the kernel.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.