Linux Kernel Mode Vs User Mode
I'm trying to better understand the process of switching from user mode to kernel mode on linux systems.
When a process requires access to the low level HW/restricted memory spaces, does it issue a system call to the kernel and the kernel runs the code on its behalf and passes the information back to the process ? or does the kernel put the process in a privileged mode and now the process itself is running in kernel mode and has access to whatever resources it requested ?
Thanks !
linux kernel process linux-kernel
migrated from serverfault.com Jan 29 at 14:17
This question came from our site for system and network administrators.
add a comment |
I'm trying to better understand the process of switching from user mode to kernel mode on linux systems.
When a process requires access to the low level HW/restricted memory spaces, does it issue a system call to the kernel and the kernel runs the code on its behalf and passes the information back to the process ? or does the kernel put the process in a privileged mode and now the process itself is running in kernel mode and has access to whatever resources it requested ?
Thanks !
linux kernel process linux-kernel
migrated from serverfault.com Jan 29 at 14:17
This question came from our site for system and network administrators.
add a comment |
I'm trying to better understand the process of switching from user mode to kernel mode on linux systems.
When a process requires access to the low level HW/restricted memory spaces, does it issue a system call to the kernel and the kernel runs the code on its behalf and passes the information back to the process ? or does the kernel put the process in a privileged mode and now the process itself is running in kernel mode and has access to whatever resources it requested ?
Thanks !
linux kernel process linux-kernel
I'm trying to better understand the process of switching from user mode to kernel mode on linux systems.
When a process requires access to the low level HW/restricted memory spaces, does it issue a system call to the kernel and the kernel runs the code on its behalf and passes the information back to the process ? or does the kernel put the process in a privileged mode and now the process itself is running in kernel mode and has access to whatever resources it requested ?
Thanks !
linux kernel process linux-kernel
linux kernel process linux-kernel
asked Jan 29 at 9:31
John DoeJohn Doe
1123
1123
migrated from serverfault.com Jan 29 at 14:17
This question came from our site for system and network administrators.
migrated from serverfault.com Jan 29 at 14:17
This question came from our site for system and network administrators.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
does it issue a system call to the kernel and the kernel runs the code
on its behalf and passes the information back to the process ? or does
the kernel put the process in a privileged mode and now the process
itself is running in kernel mode and has access to whatever resources
he requested ?
Yes. Any of the above, depending on the system call.
Sometimes a process transitions to kernel mode and does things. Sometimes kernel threads handle the work, especially I/O and file system related. For gettimeofday()
, vDSO means it just reads the value without going to kernel space.
Read articles introducing the system call interface, such as LWN's Anatomy of a system call. Architecture specific, so the details of Linux on x86 are not portable other operating systems or CPU types. But probably have similar concepts.
Use profiling tools to see what the stacks look like for your workload. Get an idea of the % "system CPU" is typical for your workload.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f497464%2flinux-kernel-mode-vs-user-mode%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
does it issue a system call to the kernel and the kernel runs the code
on its behalf and passes the information back to the process ? or does
the kernel put the process in a privileged mode and now the process
itself is running in kernel mode and has access to whatever resources
he requested ?
Yes. Any of the above, depending on the system call.
Sometimes a process transitions to kernel mode and does things. Sometimes kernel threads handle the work, especially I/O and file system related. For gettimeofday()
, vDSO means it just reads the value without going to kernel space.
Read articles introducing the system call interface, such as LWN's Anatomy of a system call. Architecture specific, so the details of Linux on x86 are not portable other operating systems or CPU types. But probably have similar concepts.
Use profiling tools to see what the stacks look like for your workload. Get an idea of the % "system CPU" is typical for your workload.
add a comment |
does it issue a system call to the kernel and the kernel runs the code
on its behalf and passes the information back to the process ? or does
the kernel put the process in a privileged mode and now the process
itself is running in kernel mode and has access to whatever resources
he requested ?
Yes. Any of the above, depending on the system call.
Sometimes a process transitions to kernel mode and does things. Sometimes kernel threads handle the work, especially I/O and file system related. For gettimeofday()
, vDSO means it just reads the value without going to kernel space.
Read articles introducing the system call interface, such as LWN's Anatomy of a system call. Architecture specific, so the details of Linux on x86 are not portable other operating systems or CPU types. But probably have similar concepts.
Use profiling tools to see what the stacks look like for your workload. Get an idea of the % "system CPU" is typical for your workload.
add a comment |
does it issue a system call to the kernel and the kernel runs the code
on its behalf and passes the information back to the process ? or does
the kernel put the process in a privileged mode and now the process
itself is running in kernel mode and has access to whatever resources
he requested ?
Yes. Any of the above, depending on the system call.
Sometimes a process transitions to kernel mode and does things. Sometimes kernel threads handle the work, especially I/O and file system related. For gettimeofday()
, vDSO means it just reads the value without going to kernel space.
Read articles introducing the system call interface, such as LWN's Anatomy of a system call. Architecture specific, so the details of Linux on x86 are not portable other operating systems or CPU types. But probably have similar concepts.
Use profiling tools to see what the stacks look like for your workload. Get an idea of the % "system CPU" is typical for your workload.
does it issue a system call to the kernel and the kernel runs the code
on its behalf and passes the information back to the process ? or does
the kernel put the process in a privileged mode and now the process
itself is running in kernel mode and has access to whatever resources
he requested ?
Yes. Any of the above, depending on the system call.
Sometimes a process transitions to kernel mode and does things. Sometimes kernel threads handle the work, especially I/O and file system related. For gettimeofday()
, vDSO means it just reads the value without going to kernel space.
Read articles introducing the system call interface, such as LWN's Anatomy of a system call. Architecture specific, so the details of Linux on x86 are not portable other operating systems or CPU types. But probably have similar concepts.
Use profiling tools to see what the stacks look like for your workload. Get an idea of the % "system CPU" is typical for your workload.
answered Jan 29 at 12:28
John MahowaldJohn Mahowald
1112
1112
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f497464%2flinux-kernel-mode-vs-user-mode%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown