如何判断我的处理器是否具有特定功能?(64 位指令集、硬件辅助虚拟化、加密加速器等)我知道该文件/proc/cpuinfo
包含这些信息flags
,但所有这些神秘的缩写是什么意思?
例如,给出以下摘录/proc/cpuinfo
,我是否有 64 位 CPU?我有硬件虚拟化吗?
model name : Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
…
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriority
Run Code Online (Sandbox Code Playgroud) uname -m
uname -m
在 Red Hat Enterprise Linux Server 5.4 (Tikanga) 机器上给出 i686 和i686 i386 输出。我需要在那台机器上安装 Oracle 数据库 10g 第 2 版。那么,如何确定内核架构是 32 位还是 64 位?
(如果本题得分为72分,请不要投票!)
我跑了这个:
cat /usr/bin/* |
perl -ne 'map {$a{$_}++} split//; END{print map { "$a{$_}\t$_\n" } keys %a}' |
grep --text . | sort -n | plotpipe --log y {1}
Run Code Online (Sandbox Code Playgroud)
并得到这个:
(即使使用对数 y 轴,它看起来仍然是指数的!顶部和底部之间的距离超过 100 倍)
看一下数字:
:
31919597 ^H
32983719 ^B
33943030 ^O
39130281 \213
39893389 $
52237360 \211
53229196 ^A
76884442 \377
100776756 H
746405320 ^@
Run Code Online (Sandbox Code Playgroud)
^@ (NUL) 是可执行文件中最常见的字节,这并不奇怪。\377 (255) 和 ^A (1) 对我来说也具有直观意义。
但是,是什么导致“H”(72)成为可执行文件中第二常见的字节——比 255 和 1 更常见呢?
背景
对于 Perl 脚本,我需要找到 Perl 脚本中最不常见的字节。意外的是,我没有只 grep 出 Perl 脚本,而是对所有二进制文件运行了该命令。我预计有几个字节会脱颖而出,例如 …
安全研究人员在Project Zero上发布了一个名为 Spectre 和 Meltdown 的新漏洞,允许程序从其他程序的内存中窃取信息。它影响 Intel、AMD 和 ARM 架构。
可以通过访问 JavaScript 网站远程利用此漏洞。技术细节上可以找到redhat的网站,Ubuntu的安全团队。
通过推测执行侧通道攻击(CVE-2017-5715、CVE-2017-5753、CVE-2017-5754 aka Spectre 和 Meltdown)导致的信息泄漏
发现一类新的旁道攻击会影响大多数处理器,包括来自 Intel、AMD 和 ARM 的处理器。该攻击允许恶意用户空间进程读取内核内存,并允许来宾中的恶意代码读取管理程序内存。为了解决这个问题,需要更新 Ubuntu 内核和处理器微码。这些更新一旦可用,将在未来的 Ubuntu 安全通知中公布。
作为概念验证,编写的 JavaScript 代码在 Google Chrome 浏览器中运行时,允许 JavaScript 从其运行的进程中读取私有内存。
我的系统似乎受到了幽灵漏洞的影响。我已经编译并执行了这个概念验证 ( spectre.c
)。
系统信息:
$ uname -a
4.13.0-0.bpo.1-amd64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux
$ cat /proc/cpuinfo
model name : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516
Run Code Online (Sandbox Code Playgroud)
如何缓解 Linux …
我知道 Linux 是可用的,并且已被移植到许多不同的平台,例如 X86、ARM、PowerPC 等。
但是,在移植方面,究竟需要什么?
我的理解是Linux是用C语言写的软件,所以把Linux原本从X86移植到ARM或者其他的时候,不就是为了特定的目标架构用编译器重新编译代码吗?
撇开不同外设的设备驱动程序不谈,在将 Linux 移植到新架构时还需要做什么。编译器不会为我们处理一切吗?
也许有一些兼容性问题?
我的印象是,对于基于 Intel 的系统,Intel 编译器可能比 GCC 做得更好。也许已经有一个发行版尝试过这个?
我认为使用 Gentoo 可能非常简单。
根据英特尔安全中心发布的日期为 2017 年 5 月 1 日的帖子,英特尔处理器上存在一个严重漏洞,可能允许攻击者使用 AMT、ISM 和 SBT 获得特权(特权升级)。
由于 AMT 可以直接访问计算机的网络硬件,因此此硬件漏洞将允许攻击者访问任何系统。
英特尔® 主动管理技术 (AMT)、英特尔® 标准可管理性 (ISM) 和英特尔® 小型企业技术版本固件版本 6.x、7.x、8.x 9.x、10 中存在提权漏洞.x、11.0、11.5 和 11.6 允许非特权攻击者控制这些产品提供的可管理性功能。基于 Intel 的消费者 PC 上不存在此漏洞。
英特尔发布了适用于 Windows 7 和 10的检测工具。我正在使用来自dmidecode -t 4
英特尔网站的信息并通过在英特尔网站上进行搜索,我发现我的处理器使用Intel® Active Management Technology (Intel® AMT) 8.0
.
受影响的产品:
已在英特尔® 主动管理技术、英特尔® 小型企业技术和英特尔® 的英特尔可管理性固件版本 6.x、7.x、8.x 9.x、10.x、11.0、11.5 和 11.6 中观察到该问题® 标准可管理性。6 之前或 11.6 之后的版本不受影响。
说明:
无特权的本地攻击者可以在英特尔可管理性 SKU 上提供获得非特权网络或本地系统特权的可管理性功能:英特尔® 主动管理技术 (AMT)、英特尔® 标准可管理性 (ISM) 和英特尔® 小型企业技术 (SBT)
如何在 …
我更新我的 Gentoo 系统已经有几个月了。而且,正如您可以想象的那样,这意味着我需要检查很多包(和 USE 更改)。我的系统是“amd64”(multilib),但我有很多来自“~amd64”的手动关键字包。
无论如何,在此更新中,我一直看到“ABI_X86”USE 标志。这是什么?这是新的。“eselect 新闻列表”中没有关于它的任何内容。
我找到了这个话题:http : //forums.gentoo.org/viewtopic-t-953900-start-0.html。这似乎展示了如何使用它,但是,是否有任何“真正的”文档?它有什么作用?我应该将“ABI_X86”设置为什么?我有一个多库系统。我假设我想要“64”,但是“32”和“x32”是什么?我对我需要在这里做什么感到困惑。
Emerge 对插槽冲突大喊大叫,它们似乎与“ABI_X86”有关(我完全忘记了错误,但我记得一个是 zlib)。
那么,是否有任何关于它是什么ABI_X86
以及如何使用它的“官方”文档?
从我链接的线程中,我找到了这个页面:http : //kicherer.org/joomla/index.php/en/blog/liste/29-transition-of-emul-packages-to-true-multilib,但我想要在我输入一堆关键字并编辑我的make.conf
.
PS 我的“package.keywords”文件中有大部分“app-emulation/emul-linux-x86”包(我当时似乎需要的包)。
如何知道我的 CPU 是否支持 Linux 下的 64 位操作系统,例如:Ubuntu、Fedora?
我用这个命令来添加 i386 arch:
sudo dpkg --add-architecture i386
Run Code Online (Sandbox Code Playgroud)
然后在没有安装任何软件包的情况下立即尝试删除 i386 arch,如下所示:
sudo dpkg --remove-architecture i386
Run Code Online (Sandbox Code Playgroud)
我得到了错误:
dpkg: error: cannot remove architecture 'i386' currently in use by the database
Run Code Online (Sandbox Code Playgroud)
我已经看到了迄今为止涉及移除i386的包装解决方案,我还没有安装任何,是的那些安装有该操作系统的运作至关重要。我该怎么办?
编辑,请阅读以下内容以避免破坏您的操作系统:
事实证明,64 位 Linux 操作系统已经包含 i386 架构,因此该命令sudo dpkg --add-architecture i386
并没有真正执行任何操作。