How to get one core of a quad-ARM running without an OS The 2019 Stack Overflow Developer Survey Results Are InHow to disable one CPUHow to avoid 4 core limit for Ubuntu within VMWare?Exynos 5 DVFS or turning off cores in Ubuntu - Scaling frequency for one of the cores only (dual core) (cpufreq)disabling cpu cores on quad core processor on linuxtop command on multi core processorSocket and Core information - How do I check empty sockets?Using another's device resources for software executionAssign virtual core number to specific real coreUsing only one cpu coreEnabling CPU Core on Linux after BootHow to get all processes running on each CPU core in Ubuntu?
What does Linus Torvalds mean when he says that Git "never ever" tracks a file?
What is the meaning of Triage in Cybersec world?
What do I do when my TA workload is more than expected?
Is an up-to-date browser secure on an out-of-date OS?
Output the Arecibo Message
What do these terms in Caesar's Gallic wars mean?
Why isn't the circumferential light around the M87 black hole's event horizon symmetric?
If I can cast sorceries at instant speed, can I use sorcery-speed activated abilities at instant speed?
Did the UK government pay "millions and millions of dollars" to try to snag Julian Assange?
What is this sharp, curved notch on my knife for?
Why was M87 targeted for the Event Horizon Telescope instead of Sagittarius A*?
Star Trek - X-shaped Item on Regula/Orbital Office Starbases
Are spiders unable to hurt humans, especially very small spiders?
Did Scotland spend $250,000 for the slogan "Welcome to Scotland"?
Why can't devices on different VLANs, but on the same subnet, communicate?
ODD NUMBER in Cognitive Linguistics of WILLIAM CROFT and D. ALAN CRUSE
Is it correct to say the Neural Networks are an alternative way of performing Maximum Likelihood Estimation? if not, why?
Does adding complexity mean a more secure cipher?
Mathematics of imaging the black hole
How do I free up internal storage if I don't have any apps downloaded?
Is one supposed to eat the zero'ah (shank bone) from the Seder plate?
Can there be female White Walkers?
Inverse Relationship Between Precision and Recall
Is it ok to offer lower paid work as a trial period before negotiating for a full-time job?
How to get one core of a quad-ARM running without an OS
The 2019 Stack Overflow Developer Survey Results Are InHow to disable one CPUHow to avoid 4 core limit for Ubuntu within VMWare?Exynos 5 DVFS or turning off cores in Ubuntu - Scaling frequency for one of the cores only (dual core) (cpufreq)disabling cpu cores on quad core processor on linuxtop command on multi core processorSocket and Core information - How do I check empty sockets?Using another's device resources for software executionAssign virtual core number to specific real coreUsing only one cpu coreEnabling CPU Core on Linux after BootHow to get all processes running on each CPU core in Ubuntu?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I'm using a quad-core ARM CPU and I'm wondering if it is possible to get 3 cores running in Linux, and one core running without Linux?
linux arm multiprocessor
New contributor
add a comment |
I'm using a quad-core ARM CPU and I'm wondering if it is possible to get 3 cores running in Linux, and one core running without Linux?
linux arm multiprocessor
New contributor
2
I'm a little unconvinced that this is a duplicate. This question has two parts 1) disabling Linux from using one core 2) using one core to do something non-linux related. The "duplicate" only addresses the first point. Yaya, if you feel the duplicate flag was inappropriate you maybe need to ask a new question and include some information on what you would like to do with the "non-linux" core.
– Philip Couling
Apr 8 at 10:29
You can usecpuset
to limit the cores that your Linux-based system will use. I have no idea how you would go about scheduling something entirely different on the remaining core, though.
– roaima
Apr 8 at 21:34
add a comment |
I'm using a quad-core ARM CPU and I'm wondering if it is possible to get 3 cores running in Linux, and one core running without Linux?
linux arm multiprocessor
New contributor
I'm using a quad-core ARM CPU and I'm wondering if it is possible to get 3 cores running in Linux, and one core running without Linux?
linux arm multiprocessor
linux arm multiprocessor
New contributor
New contributor
edited Apr 8 at 21:27
Gilles
547k13011131629
547k13011131629
New contributor
asked Apr 8 at 9:10
yayayaya
111
111
New contributor
New contributor
2
I'm a little unconvinced that this is a duplicate. This question has two parts 1) disabling Linux from using one core 2) using one core to do something non-linux related. The "duplicate" only addresses the first point. Yaya, if you feel the duplicate flag was inappropriate you maybe need to ask a new question and include some information on what you would like to do with the "non-linux" core.
– Philip Couling
Apr 8 at 10:29
You can usecpuset
to limit the cores that your Linux-based system will use. I have no idea how you would go about scheduling something entirely different on the remaining core, though.
– roaima
Apr 8 at 21:34
add a comment |
2
I'm a little unconvinced that this is a duplicate. This question has two parts 1) disabling Linux from using one core 2) using one core to do something non-linux related. The "duplicate" only addresses the first point. Yaya, if you feel the duplicate flag was inappropriate you maybe need to ask a new question and include some information on what you would like to do with the "non-linux" core.
– Philip Couling
Apr 8 at 10:29
You can usecpuset
to limit the cores that your Linux-based system will use. I have no idea how you would go about scheduling something entirely different on the remaining core, though.
– roaima
Apr 8 at 21:34
2
2
I'm a little unconvinced that this is a duplicate. This question has two parts 1) disabling Linux from using one core 2) using one core to do something non-linux related. The "duplicate" only addresses the first point. Yaya, if you feel the duplicate flag was inappropriate you maybe need to ask a new question and include some information on what you would like to do with the "non-linux" core.
– Philip Couling
Apr 8 at 10:29
I'm a little unconvinced that this is a duplicate. This question has two parts 1) disabling Linux from using one core 2) using one core to do something non-linux related. The "duplicate" only addresses the first point. Yaya, if you feel the duplicate flag was inappropriate you maybe need to ask a new question and include some information on what you would like to do with the "non-linux" core.
– Philip Couling
Apr 8 at 10:29
You can use
cpuset
to limit the cores that your Linux-based system will use. I have no idea how you would go about scheduling something entirely different on the remaining core, though.– roaima
Apr 8 at 21:34
You can use
cpuset
to limit the cores that your Linux-based system will use. I have no idea how you would go about scheduling something entirely different on the remaining core, though.– roaima
Apr 8 at 21:34
add a comment |
1 Answer
1
active
oldest
votes
You can't just take two operating systems and run one on one core and another on another core. (“No OS” is a special case where whatever code you run effectively includes its own OS merged into the application code.) It's possible to run multiple OSes that way, but they need to be aware of each other and to be written carefully to avoid treading on each other.
Even if you assign one OS to one core and one OS to another core, a computer is more than the processor. The operating systems will compete for memory and peripherals. It may be possible to tell the Linux kernel to keep entirely off one core (and I'm not sure if that's possible: it's not enough to tell it not to schedule any process there, which is easy, you also need to ensure that the kernel won't try to make that core receive any interrupt), but that's only the most obvious problem. If you want to use that core that Linux stays away from, you need to ensure that Linux won't power it down as part of its power management mechanism.
And then there's memory. It's easy to tell Linux to stay off some region of physical memory. But there's only one MMU for all the cores, and Linux needs it. To make Linux cohabit with another operating system, you'd need to make significant changes to its MMU management code so that it allows the other operating system to own part of the MMU data, and the two OSes need to agree on how they use the MMU. It's technically possible to have an OS run without the MMU, but at least with arm CPUs no MMU means not only no virtual memory (obviously) but also no cache, which is extremely slow.
And then there's peripherals. If you run multiple operating systems, practically speaking, each peripheral has to be owned by a single OS, and the other one must stay off. It may even be impossible for the two OSes to use the same bus conjointly, so all the peripherals on the same bus would have to be owned by the same OS.
If you want to run multiple operating systems, cores aren't how to split them. You need to virtualize all these shared resources — physical memory, virtual memory, peripherals, and you might as well virtualize the CPU itself. This is done with virtual machines: each operating system runs in one virtual machine, with access to a virtual CPU, a virtual MMU, virtual interrupts, etc., and there's one operating system that is the host of all these virtual machines and has access to the actual hardware. When the host is dedicates to running VMs and nothing else, it's called a hypervisor.
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
);
);
yaya is a new contributor. Be nice, and check out our Code of Conduct.
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%2f511187%2fhow-to-get-one-core-of-a-quad-arm-running-without-an-os%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
You can't just take two operating systems and run one on one core and another on another core. (“No OS” is a special case where whatever code you run effectively includes its own OS merged into the application code.) It's possible to run multiple OSes that way, but they need to be aware of each other and to be written carefully to avoid treading on each other.
Even if you assign one OS to one core and one OS to another core, a computer is more than the processor. The operating systems will compete for memory and peripherals. It may be possible to tell the Linux kernel to keep entirely off one core (and I'm not sure if that's possible: it's not enough to tell it not to schedule any process there, which is easy, you also need to ensure that the kernel won't try to make that core receive any interrupt), but that's only the most obvious problem. If you want to use that core that Linux stays away from, you need to ensure that Linux won't power it down as part of its power management mechanism.
And then there's memory. It's easy to tell Linux to stay off some region of physical memory. But there's only one MMU for all the cores, and Linux needs it. To make Linux cohabit with another operating system, you'd need to make significant changes to its MMU management code so that it allows the other operating system to own part of the MMU data, and the two OSes need to agree on how they use the MMU. It's technically possible to have an OS run without the MMU, but at least with arm CPUs no MMU means not only no virtual memory (obviously) but also no cache, which is extremely slow.
And then there's peripherals. If you run multiple operating systems, practically speaking, each peripheral has to be owned by a single OS, and the other one must stay off. It may even be impossible for the two OSes to use the same bus conjointly, so all the peripherals on the same bus would have to be owned by the same OS.
If you want to run multiple operating systems, cores aren't how to split them. You need to virtualize all these shared resources — physical memory, virtual memory, peripherals, and you might as well virtualize the CPU itself. This is done with virtual machines: each operating system runs in one virtual machine, with access to a virtual CPU, a virtual MMU, virtual interrupts, etc., and there's one operating system that is the host of all these virtual machines and has access to the actual hardware. When the host is dedicates to running VMs and nothing else, it's called a hypervisor.
add a comment |
You can't just take two operating systems and run one on one core and another on another core. (“No OS” is a special case where whatever code you run effectively includes its own OS merged into the application code.) It's possible to run multiple OSes that way, but they need to be aware of each other and to be written carefully to avoid treading on each other.
Even if you assign one OS to one core and one OS to another core, a computer is more than the processor. The operating systems will compete for memory and peripherals. It may be possible to tell the Linux kernel to keep entirely off one core (and I'm not sure if that's possible: it's not enough to tell it not to schedule any process there, which is easy, you also need to ensure that the kernel won't try to make that core receive any interrupt), but that's only the most obvious problem. If you want to use that core that Linux stays away from, you need to ensure that Linux won't power it down as part of its power management mechanism.
And then there's memory. It's easy to tell Linux to stay off some region of physical memory. But there's only one MMU for all the cores, and Linux needs it. To make Linux cohabit with another operating system, you'd need to make significant changes to its MMU management code so that it allows the other operating system to own part of the MMU data, and the two OSes need to agree on how they use the MMU. It's technically possible to have an OS run without the MMU, but at least with arm CPUs no MMU means not only no virtual memory (obviously) but also no cache, which is extremely slow.
And then there's peripherals. If you run multiple operating systems, practically speaking, each peripheral has to be owned by a single OS, and the other one must stay off. It may even be impossible for the two OSes to use the same bus conjointly, so all the peripherals on the same bus would have to be owned by the same OS.
If you want to run multiple operating systems, cores aren't how to split them. You need to virtualize all these shared resources — physical memory, virtual memory, peripherals, and you might as well virtualize the CPU itself. This is done with virtual machines: each operating system runs in one virtual machine, with access to a virtual CPU, a virtual MMU, virtual interrupts, etc., and there's one operating system that is the host of all these virtual machines and has access to the actual hardware. When the host is dedicates to running VMs and nothing else, it's called a hypervisor.
add a comment |
You can't just take two operating systems and run one on one core and another on another core. (“No OS” is a special case where whatever code you run effectively includes its own OS merged into the application code.) It's possible to run multiple OSes that way, but they need to be aware of each other and to be written carefully to avoid treading on each other.
Even if you assign one OS to one core and one OS to another core, a computer is more than the processor. The operating systems will compete for memory and peripherals. It may be possible to tell the Linux kernel to keep entirely off one core (and I'm not sure if that's possible: it's not enough to tell it not to schedule any process there, which is easy, you also need to ensure that the kernel won't try to make that core receive any interrupt), but that's only the most obvious problem. If you want to use that core that Linux stays away from, you need to ensure that Linux won't power it down as part of its power management mechanism.
And then there's memory. It's easy to tell Linux to stay off some region of physical memory. But there's only one MMU for all the cores, and Linux needs it. To make Linux cohabit with another operating system, you'd need to make significant changes to its MMU management code so that it allows the other operating system to own part of the MMU data, and the two OSes need to agree on how they use the MMU. It's technically possible to have an OS run without the MMU, but at least with arm CPUs no MMU means not only no virtual memory (obviously) but also no cache, which is extremely slow.
And then there's peripherals. If you run multiple operating systems, practically speaking, each peripheral has to be owned by a single OS, and the other one must stay off. It may even be impossible for the two OSes to use the same bus conjointly, so all the peripherals on the same bus would have to be owned by the same OS.
If you want to run multiple operating systems, cores aren't how to split them. You need to virtualize all these shared resources — physical memory, virtual memory, peripherals, and you might as well virtualize the CPU itself. This is done with virtual machines: each operating system runs in one virtual machine, with access to a virtual CPU, a virtual MMU, virtual interrupts, etc., and there's one operating system that is the host of all these virtual machines and has access to the actual hardware. When the host is dedicates to running VMs and nothing else, it's called a hypervisor.
You can't just take two operating systems and run one on one core and another on another core. (“No OS” is a special case where whatever code you run effectively includes its own OS merged into the application code.) It's possible to run multiple OSes that way, but they need to be aware of each other and to be written carefully to avoid treading on each other.
Even if you assign one OS to one core and one OS to another core, a computer is more than the processor. The operating systems will compete for memory and peripherals. It may be possible to tell the Linux kernel to keep entirely off one core (and I'm not sure if that's possible: it's not enough to tell it not to schedule any process there, which is easy, you also need to ensure that the kernel won't try to make that core receive any interrupt), but that's only the most obvious problem. If you want to use that core that Linux stays away from, you need to ensure that Linux won't power it down as part of its power management mechanism.
And then there's memory. It's easy to tell Linux to stay off some region of physical memory. But there's only one MMU for all the cores, and Linux needs it. To make Linux cohabit with another operating system, you'd need to make significant changes to its MMU management code so that it allows the other operating system to own part of the MMU data, and the two OSes need to agree on how they use the MMU. It's technically possible to have an OS run without the MMU, but at least with arm CPUs no MMU means not only no virtual memory (obviously) but also no cache, which is extremely slow.
And then there's peripherals. If you run multiple operating systems, practically speaking, each peripheral has to be owned by a single OS, and the other one must stay off. It may even be impossible for the two OSes to use the same bus conjointly, so all the peripherals on the same bus would have to be owned by the same OS.
If you want to run multiple operating systems, cores aren't how to split them. You need to virtualize all these shared resources — physical memory, virtual memory, peripherals, and you might as well virtualize the CPU itself. This is done with virtual machines: each operating system runs in one virtual machine, with access to a virtual CPU, a virtual MMU, virtual interrupts, etc., and there's one operating system that is the host of all these virtual machines and has access to the actual hardware. When the host is dedicates to running VMs and nothing else, it's called a hypervisor.
answered Apr 8 at 22:09
GillesGilles
547k13011131629
547k13011131629
add a comment |
add a comment |
yaya is a new contributor. Be nice, and check out our Code of Conduct.
yaya is a new contributor. Be nice, and check out our Code of Conduct.
yaya is a new contributor. Be nice, and check out our Code of Conduct.
yaya is a new contributor. Be nice, and check out our Code of Conduct.
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%2f511187%2fhow-to-get-one-core-of-a-quad-arm-running-without-an-os%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
2
I'm a little unconvinced that this is a duplicate. This question has two parts 1) disabling Linux from using one core 2) using one core to do something non-linux related. The "duplicate" only addresses the first point. Yaya, if you feel the duplicate flag was inappropriate you maybe need to ask a new question and include some information on what you would like to do with the "non-linux" core.
– Philip Couling
Apr 8 at 10:29
You can use
cpuset
to limit the cores that your Linux-based system will use. I have no idea how you would go about scheduling something entirely different on the remaining core, though.– roaima
Apr 8 at 21:34