Installing Embedded RTOS in VM ware - linux

can RTOS like Nucleus and Zephr be installed in VM ware
Is it possible to install in VM ware. I like to learn RTOS and if there is any smaller version of some RTOS that can be easy to learn then that will be great. and do They have image file like iso or do I need to compile the code with make
System info
Model name: Intel(R) Core(TM) i5-2450M CPU # 2.50GHz
CPU op-mode(s): 32-bit, 64-bit
Architecture: x86_64

Related

High CPU Usage - Android Emulator (qemu-system-x86)

Distro - Ubuntu 20.04.2 LTS x86_64
System Specs -
RAM: 8G
CPU: AMD Ryzen 5 3550H with Radeon V
GPU: AMD ATI 05:00.0 Picasso
GPU: NVIDIA GeForce GTX 1650 Mobile
Running only android studio works just fine but when i try to just open my firefox it becomes too much for the system and it makes the whole system slow like can't even open my terminal. I have to press and hold my power button to shutdown and reboot.
By using top - %CPU even shown 600.3 which is insane!!!

Understanding qemu-kvm

On a remote machine, I have qemu-x86_64 installed. Upon trying to find the version of the same I'm presented with the following information.
$ qemu-x86_64 -version
qemu-x86_64 version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard
I'm trying to understand what qemu-kvm is. We will not discuss whole system emulation but only qemu user level emulation.
QEMU supports 2 kinds of emulation : system and user level. In System level emulation the whole system is emulated, and you see that an OS can be booted up using the same. In User level emulation, I'm able to run binaries compiled for an architecture on another architecture. eg: I end up being able to run Linux MIPS binaries on an x86-64 machine.
The version information for qemu-x86_64 on my machine is as follows.
qemu-x86_64 version 2.2.0 (Debian 1:2.2+dfsg-5expubuntu9.2), Copyright (c) 2003-2008 Fabrice Bellard
I'm trying to understand what kind of a qemu-x86_64 is running on the remote machine. Where does kvm fit in? The remote machine is also a 64-bit machine.
When I run a 64-bit binary on the remote machine using its qemu-x86_64, there is no binary translation going on, instead qemu is using KVM to execute the instructions on actual hardware. If so, what part does qemu play? Does it handle privileged instructions? I'm trying to understand where exactly kvm comes into the picture.
In essential binary-translation allows you to run instructions of another architecture (e.g., MIPS) on your physical machine. The target architecture is simulated. For example, the registers in the simulated MIPS machine are just some variables in the QEMU process.
It is true that QEMU can use binary-translation to simulate a x86_64 machine on your computer. However because it's simulating a same architecture, the instructions can actually be directly executed by the host machine without translation! QEMU employs some techniques which use the hardware supports from CPU and OS/software supports such as KVM/Xen. It's still simulation, or you can call it virtualization.

Linux Arch OpenCL ICD Loader - Nvidia GPU, Intel CPU

I am trying to run my OpenCL application at my Intel CPU and Nvidia GPU at the same time for load balancing purposes. But i have the problem that only the Nvidia Plattform is detected.
I use this cl.hpp call:
std::vector<cl::Platform> m_platforms;
cl::Platform::get(&m_platforms);
My system setup:
Linux Arch 3.14.6-1-ARCH
Intel Haswell 4770K
Nvidia 250GTS
installed packages:
nvidia-libgl 337.25-1
opencl-nvidia 337.25-1
nvidia 337.25-1
nvidia-utils 337.25-1
mesa 10.2.1-1
opencl-headers12
intel-opencl-sdk 2014R1-2
opencl-icd 1.2.11.0-4
Both platforms (Intel, Nvidia) have there .icd files in /etc/OpenCL/Vendors. So I don't know what i can try to finally get an Intel CPU OpenCL platform recognized. Maybe you have some ideas?
For now, it would be best to uninstall both of these packages (intel-opencl-sdk and intel-opencl-runtime) and install beignet from the community repository.
sudo pacman -S --needed beignet
The package provides the same functionality and allows you to use the Intel GPU cores also.
I can confirm that it coexists well with other OpenCL platforms such as that provided by NVIDIA, as tested on an Optimus-capable ASUS G750JM. Currently switching via bbswitch and offloading GL-renders via PRIME and primus.
Some pipelines (pyrit) can use OpenCL simultaneously on both platforms, boosting the performance noticeably.
I found an additional package called "intel-opencl-runtime". The intel-opencl-sdk contains the icd file, but it seems not to be enough to be able to run OpenCL apps with the Intel platform. To be able to run OpenCL using the Intel platform it was necessary to also install the above mentioned runtime package.

preconditions for a 64Bit virtual system

I just need to install Windows 2008 64Bit on a virtual machine. How to??? Do I need a special type of processor? Do I need a "special" virtualization tool? Actually installation fails on startup with the message that the CPU is not able to handle a 64Bit system.
host system: Windows 7 64Bit
CPU: Pentium D (seems to be Smithfield 805)
You need a 64-bit capable processor. VMware / Hyper-V don't emulate CPUs, they execute on them. You don't mention what hypervisor you're using.
I tried Virtual PC 2007 and VirtualBox. Installation stopped with following information:
File: \windows\system32\boot\winload.exe
Status: 0xc000035a
Info: Attempting to load a 64-bit application, however this CPU is not compatible with 64-bit mode.

How is linux simultaneously 32bit and 64bit? Or is that something handled in glibc?

How is Linux simultaneously 32bit and 64bit? Or is that something handled in glibc?
I run CentOS 5.3 and it is a "64 bit" version; although I build things for 64 bit and 32 bit. From what I think I know, Windows supposedly has a 32bit emulator. Does Linux do the same thing? Is it in userspace or kernel space?
If libc handles it, is it kind of like a emulator that says, I'll link with 32 bit apps, but speak 64 bit to the kernel?
The cpu can execute both 64 and 32bit instructions and the kernel can switch between modes. The only limitation is that you cannot link 32bit programs against 64bit libraries so you must have both 32 and 64bit versions of libc, etc. installed.
Nothing is stopping the cpu from switching from 64bit to 32bit. It just switches.
You can have a 64 bit kernel, and run 32bit apps. You can even have a 32bit kernel and run 64bit apps(Mac os x).
However you need the libaries they use to also be 32bit or or 64bit, which is why you might see files called lib64 or lib32 on linux for the 64bit or 32bit libaries.
Because x86_64 processors are designed over x86 technology, they are still able to support 32-bit programs without any hardware emulation, like what you would need to run x86 programs in a PowerPC or Sparc environment. In Linux, all you need to do is install the necessary software libraries to run the 32-bit software.

Resources