06-14-2011
Quote:
Originally Posted by
theKbStockpiler
Interpreted implies that the Emulator would just be substituting code for other code from a look-up table but then the program would actually be more or less ported at this point would it not?
It's hard to call something 'ported' when it can't run outside the emulator, no.
The exact approach may depend on the emulator in question. qemu, for instance, can use CPU virtualization features if you're emulating the same architecture you're on -- setting up a virtual environment in
hardware. This lets programs run in the virtual environment mostly natively, just trapping a few higher-ring instructions and the like so software can take over and fill in the gaps. This was actually possible without hardware virtualization support, but it makes it much easier and more efficient -- I'm not too well read on the details but suspect it involves more direct/explicit ways for the client to talk to the host, for starters.
For emulators that run instructions that are completely alien to the native processor, the obvious way would be to make a data structure in memory that represents the registers of the native CPU, and use something like a big switch statement or look-up table to branch to the appropriate code for each instruction. If the emulated CPU has fewer registers than the native one I suppose you could stick everything in registers, use jump tables, self-modifying code, raw ASM and other dirty tricks to make it much faster but in the end it's the same idea.
This User Gave Thanks to Corona688 For This Post:
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
iam new to unix , i would like to practice unix commands at home, can anyone help me to know if there are any emulators that i can download to practice or any trial versions that can be installed to practice.
Regards
dep (1 Reply)
Discussion started by: dep
1 Replies
2. UNIX for Dummies Questions & Answers
Hi,
Is there a command I can use to find out how many CPU's and what type are on my server? (I was told to use cat /proc/cpuinfo)
Also, how do I know what kind of bus speeds are on my server?
Thanks in advance:) (3 Replies)
Discussion started by: ihot
3 Replies
3. HP-UX
is there a single command or location from which one can get information like cpu Mhz,cpu cache...etc in HP UX:) (1 Reply)
Discussion started by: vijayca
1 Replies
4. Gentoo
well. the title says it all.
im runing top in batch mode like this
top -b -n1 > somefile
but the cpu usage info is not correct.
if i run top normally, the first second, i see the same wrong info, and then it corrects itself.
i found only one small mention of it on this forum. with this link... (7 Replies)
Discussion started by: broli
7 Replies
5. AIX
Hi,
may be this is an AIX noob question:
my current C++ application runs on Linux and is quite memory consuming. Therefore, the application writes a logfile after it has finished containing memory information, CPU information, information on the running other processes besides my application... (5 Replies)
Discussion started by: DarthVader77
5 Replies
6. HP-UX
Hi,
I am going to buy a software that is licenced per CORE.
I have a HPUX B1123 64 bit with 8 cpus.
How can i know how many cores are in my machine ?
Thanks (3 Replies)
Discussion started by: yoavbe
3 Replies
7. Shell Programming and Scripting
Dear all,
Is there any generic command working on all Unix listing the CPU of a server?
I found different command line per OS but I am looking for a more generic one.
Thanks for your answer. (5 Replies)
Discussion started by: sgoiffon
5 Replies
8. Shell Programming and Scripting
Hello to everyone.
This is my first post. I want to make one perl agent which calculate following things from Linux Server. Actually I want to pull all this information from 2 linux client and wants to display on web interface.
First I want to calculate below details
1) CPU
2) MEMORY
3)... (6 Replies)
Discussion started by: sania.mirza
6 Replies
9. AIX
To get only the cpu info from the topas command terminal.
CPU User% Kern% Wait% Idle% Physc Entc
ALL 2.3 4.4 0.0 93.3 0.07 7.7
I tried some thing like this but did not work
topas << done
grep "ALL"
q
done
Can someone help me in this. (5 Replies)
Discussion started by: rpm120
5 Replies
10. UNIX for Dummies Questions & Answers
Hello all
i did search the web and found allot of answers but im confused
what are the best ways to get this info via Linux default commands
1. current Cpu Usage in Percent
2. current Memory Usage In Bytes
3. current Memory Available In Bytes
Thanks! (2 Replies)
Discussion started by: umen
2 Replies
LEARN ABOUT ULTRIX
systemd-detect-virt
SYSTEMD-DETECT-VIRT(1) systemd-detect-virt SYSTEMD-DETECT-VIRT(1)
NAME
systemd-detect-virt - Detect execution in a virtualized environment
SYNOPSIS
systemd-detect-virt [OPTIONS...]
DESCRIPTION
systemd-detect-virt detects execution in a virtualized environment. It identifies the virtualization technology and can distinguish full
machine virtualization from container virtualization. systemd-detect-virt exits with a return value of 0 (success) if a virtualization
technology is detected, and non-zero (error) otherwise. By default, any type of virtualization is detected, and the options --container and
--vm can be used to limit what types of virtualization are detected.
When executed without --quiet will print a short identifier for the detected virtualization technology. The following technologies are
currently identified:
Table 1. Known virtualization technologies (both VM, i.e. full hardware virtualization, and container, i.e. shared kernel virtualization)
+----------+----------------+--------------------------------------+
|Type | ID | Product |
+----------+----------------+--------------------------------------+
|VM | qemu | QEMU software virtualization, |
| | | without KVM |
| +----------------+--------------------------------------+
| | kvm | Linux KVM kernel virtual machine, |
| | | with whatever software, except |
| | | Oracle Virtualbox |
| +----------------+--------------------------------------+
| | zvm | s390 z/VM |
| +----------------+--------------------------------------+
| | vmware | VMware Workstation or Server, and |
| | | related products |
| +----------------+--------------------------------------+
| | microsoft | Hyper-V, also known as Viridian or |
| | | Windows Server Virtualization |
| +----------------+--------------------------------------+
| | oracle | Oracle VM VirtualBox (historically |
| | | marketed by innotek and Sun |
| | | Microsystems), |
| | | for legacy and KVM |
| | | hypervisor |
| +----------------+--------------------------------------+
| | xen | Xen hypervisor (only domU, not dom0) |
| +----------------+--------------------------------------+
| | bochs | Bochs Emulator |
| +----------------+--------------------------------------+
| | uml | User-mode Linux |
| +----------------+--------------------------------------+
| | parallels | Parallels Desktop, Parallels Server |
| +----------------+--------------------------------------+
| | bhyve | bhyve, FreeBSD hypervisor |
+----------+----------------+--------------------------------------+
|Container | openvz | OpenVZ/Virtuozzo |
| +----------------+--------------------------------------+
| | lxc | Linux container implementation by |
| | | LXC |
| +----------------+--------------------------------------+
| | lxc-libvirt | Linux container implementation by |
| | | libvirt |
| +----------------+--------------------------------------+
| | systemd-nspawn | systemd's minimal container |
| | | implementation, see systemd- |
| | | nspawn(1) |
| +----------------+--------------------------------------+
| | docker | Docker container manager |
| +----------------+--------------------------------------+
| | rkt | rkt app container runtime |
+----------+----------------+--------------------------------------+
If multiple virtualization solutions are used, only the "innermost" is detected and identified. That means if both machine and container
virtualization are used in conjunction, only the latter will be identified (unless --vm is passed).
OPTIONS
The following options are understood:
-c, --container
Only detects container virtualization (i.e. shared kernel virtualization).
-v, --vm
Only detects hardware virtualization).
-r, --chroot
Detect whether invoked in a chroot(2) environment. In this mode, no output is written, but the return value indicates whether the
process was invoked in a chroot() environment or not.
--private-users
Detect whether invoked in a user namespace. In this mode, no output is written, but the return value indicates whether the process was
invoked inside of a user namespace or not. See user_namespaces(7) for more information.
-q, --quiet
Suppress output of the virtualization technology identifier.
-h, --help
Print a short help text and exit.
--version
Print a short version string and exit.
EXIT STATUS
If a virtualization technology is detected, 0 is returned, a non-zero code otherwise.
SEE ALSO
systemd(1), systemd-nspawn(1), chroot(2), namespaces(7)
systemd 237 SYSTEMD-DETECT-VIRT(1)