做适用于 x86 的软件,安装在 x86_64 和 x64 上。我专注于linux。可能会出现什么问题。我一直对这些差异感到不舒服。你能解释一下吗?
例如,我只从 16 核机器的 1 核输出。
“6”的“cpuid级别”输出是什么意思?另外,“5992.10”的“bogomips”和“64”的“clflush size”是什么意思?
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 6
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 8
cpu MHz : 2992.689
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
fpu : yes
fpu_exception: yes
cpuid level : 6
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr …Run Code Online (Sandbox Code Playgroud) 为什么Intel 80486及以上CPU有双32位内部数据总线?ALU 仍然是 32 位宽,那么额外的 32 位总线是做什么用的呢?
是否可以将已编译的 x86 二进制文件转换/重新编译为 ARM 二进制文件?
我正在使用带有命令行 Ubuntu (Maverick)的BeagleBoard并希望运行Ventrilo服务器,但据我所知,它们提供的 x86 可执行文件无法在硬件上运行(很可能是由于架构不同)。
不幸的是,我无法访问源代码以允许我在本地重新编译它。
如果没有,有没有其他方法可以让二进制文件运行(例如模拟)?
我尝试OpenWRT Backfire 10.03.1-rc6 x86_generic combined ext2在我的 x86 PC 上进行安装,但引导过程在“等待根设备 /dev/sda2”时停止。
论坛建议我构建一个自定义的 OpenWRT 镜像,但我不知道我应该包含哪些包来解决这个问题。
我试过添加,kmod-ata-via-sata但没有帮助。
我知道在 x86 上,某些物理内存地址范围映射到 BIOS,其他映射到 RAM,还有一些映射到 I/O 设备。
我想知道哪个硬件组件负责此映射/转换。
我的猜测是芯片组或 MMU,或者 CPU 本身的某种芯片选择逻辑。
假设我申请(或已通过自动更新过程为我申请)微代码更新,该更新修复了例如我的 Skylake 芯片上的超线程错误。
这种更新是不可逆的,还是我以后可以切换回较早的微码?
我喜欢 B2G 项目。但不幸的是,它只适用于智能手机(ARM 架构)。尽管如此,有些人正在破解其代码以将其移植到其他平台(本视频中就是这种情况)。
我希望实现相同的目标,但不是将 B2G 移植到 Raspberry Pi,而是希望将其移植到桌面 Linux 或 BSD 操作系统并在普通计算机上运行。这可能吗?如果是,我需要学习或做什么?
我正在阅读有关睡眠状态如何在 Windows 中工作的页面,我对重置向量很感兴趣。我目前的理解是;
当系统处于 S2/S3 时,处理器完全断电,缓存丢失,总线至少停止,如果不是完全断电的话。RAM 的内容被保留以允许快速恢复。
在恢复时,处理器读取存储在重置向量(在 x86 上,即0xFFFFFFF0)中的地址,该向量通常映射到 ROM。它跳转到它刚刚读取的地址并开始执行。
由于它是 ROM,我认为内存不容易写入,因此必须保持半恒定(不包括 BIOS 闪存等)
因此,处理器启动,从 ROM 读取地址,跳转到该地址并开始执行(大概是 POST 或其他初始化)。
在此过程中的某个时刻,它需要跳回到睡眠前正在执行的任何内容。
从存储中恢复的地址在哪里,是什么导致处理器查看那里?
例如,我可以运行主要在 ARM 处理器上运行的 Android,在 x86 Intel 处理器上的 VirtualBox 上运行吗?
我知道 Android x86,但是,这不是一个可行的解决方案。