SDs*_*lar 3 64-bit intel system-installation 18.04
系统为戴尔,配备64 位 3 GHz Intel Q9650 Core 2 Quad CPU。
它运行 Windows 7 Professional (x64) SP1并在任务管理器的性能选项卡中显示所有 4 个内核。大多数安装的 Windows 程序都是 64 位版本。
Ubuntu 18.04 LTS 拒绝安装,说这是一个“i386”处理器。
它甚至不允许选择“尝试 Ubuntu”
该系统支持多个 5 TB 驱动器作为 NAS。此外,16 GB 内存。
英特尔引入了 64 位硬件,以支持更大量的两者。
随着操作系统开始需要更专业的 CPU 架构,如 AMD 的“AMD64”,它从来没有打算让人们停下来
谁在驾驶这辆公共汽车?(原谅双关语)
为什么这个 64 位操作系统不支持所有 64 位处理器?
这没有意义。
您的英特尔Q9650的64位酷睿2四核CPU是不被支持的Windows 10任。它于 2008 年发布,被认为对于现代操作系统来说太旧了。
查看您在英特尔网站上的规格,我注意到它没有超线程。它也没有涡轮增压,这可能不太重要。
更重要的是 64 位指令集随着时间的推移而发展。Linux 在引导期间测试每个 CPU 以查看是否支持某些指令。我无法找到我要找的参考,但此一个概述了内核检查:
设置堆栈后,下一步是 CPU 验证。当我们要执行到长模式的转换时,我们需要检查 CPU 是否支持长模式和 SSE。我们将通过调用verify_cpu
函数来完成:
call verify_cpu
testl %eax, %eax
jnz no_longmode
Run Code Online (Sandbox Code Playgroud)
这个函数在arch/x86/kernel/verify_cpu.S
汇编文件中定义,只包含对 cpuid 指令的几个调用。该指令用于获取有关处理器的信息。在我们的例子中,它检查长模式和SSE支持,并在寄存器中返回0
成功或1
失败eax
。
如果 的值eax
不为零,我们会跳转到no_longmode
通过hlt
指令调用停止 CPU而不会发生硬件中断的标签:
no_longmode:
1:
hlt
jmp 1b
Run Code Online (Sandbox Code Playgroud)
如果eax
寄存器的值为零,则一切正常,我们可以继续。
总而言之,您的十年前的CPU 不支持现代 64 位处理器支持的许多东西。
归档时间: |
|
查看次数: |
2410 次 |
最近记录: |