如果这篇文章有点密集/混乱,请提前道歉,但我很难更好地制定它......基本上,我想研究硬盘写入时会发生什么,我想知道:
更详细地说 - 首先,我使用的操作系统是:
$ uname -a
Linux mypc 2.6.38-16-generic #67-Ubuntu SMP Thu Sep 6 18:00:43 UTC 2012 i686 i686 i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
所以,我有以下简单的(例如,跳过通常的操作失败检查)用户空间 C 程序,wtest.c:
#include <stdio.h>
#include <fcntl.h> // O_CREAT, O_WRONLY, S_IRUSR
int main(void) {
char filename[] = "/tmp/wtest.txt";
char buffer[] = "abcd";
int fd;
mode_t perms = S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH;
fd = open(filename, O_RDWR|O_CREAT, perms);
write(fd,buffer,4);
close(fd);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我用gcc -g -O0 -o wtest wtest.c. 现在,由于我正在尝试写入/tmp,我注意到它是根目录下的一个目录/ …
这个问题只是出于无聊的好奇心,但我怀疑其他人也会好奇。搜索 errno.h(Linux 2.6),我发现 ENOANO “No Anode”。没有“无阴极”错误的迹象。查看内核源代码索引,它似乎没有被称为阳极的设备使用,只是一些晦涩的设备驱动程序故意将其用作奇怪的错误代码。谷歌搜索没有发现任何有趣的东西。
这可能是一个笑话吗?它是否在诸如 POSIX 之类的标准文档中定义,但没有用?
我目前正在从安全角度比较 OpenBSD、FreeBSD 和 Linux 上的随机 PID 实现。
只要考虑到 OpenBSD 和 FreeBSD,我的工作就完成了。然而,虽然这里的答案指出仅通过sysctl设置就可以在 Linux 上启用随机 PID ,但我无法确定它是哪个设置。
网上的研究只导致主流Linux内核拒绝补丁和讨论,也没有出现在grsecurity特性中(很明显在我的Linux机器上PID到处都是增量的,sysctl似乎没有参数名称相关,并在其中搜索了一些内核源代码没有显示任何相关信息)。
PID 随机化真的可以在 Linux 上使用吗?
我正在使用 Debian GNU/Linux 7.8(喘气)。今天在运行我的 MATLAB 程序时,我在终端中收到了这条消息。
Message from syslogd@sas21 at Jul 18 16:40:49 ...
kernel:[1747708.091929] Uhhuh. NMI received for unknown reason 20 on CPU 4.
Message from syslogd@sas21 at Jul 18 16:40:49 ...
kernel:[1747708.091932] Do you have a strange power saving mode enabled?
Message from syslogd@sas21 at Jul 18 16:40:49 ...
kernel:[1747708.091932] Dazed and confused, but trying to continue
Run Code Online (Sandbox Code Playgroud)
我还记得中间听到了一些哔声。
这是什么意思?我应该怎么做?
当我service vboxdrv setup在 CentOS 7 终端中键入命令时,出现以下错误:
Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
当我通过键入打开日志文件时vi /var/log/vbox-install.log,内容是:
Uninstalling modules from DKMS
removing old DKMS module vboxhost version 5.0.4
------------------------------
Deleting module version: 5.0.4
completely from the DKMS tree.
------------------------------
Done.
Attempting to install using DKMS
Creating symlink /var/lib/dkms/vboxhost/5.0.4/source ->
/usr/src/vboxhost-5.0.4
DKMS: add completed.
Failed to install using DKMS, attempting to install without
Makefile:185: *** Error: unable to find the sources of your current Linux kernel. …Run Code Online (Sandbox Code Playgroud) 假设,我有一个没有X server. 我只能从控制台登录。看来,默认情况下 linux 控制台仅支持 8 种颜色:
# tput colors
8
Run Code Online (Sandbox Code Playgroud)
是否可以在控制台中使用 256 种颜色,就像我在终端仿真器(即终结器)中使用的一样?
在谷歌搜索时,我发现了许多类似的问题(其中许多已经超过 10 年),但没有明确的答案。有人建议使用帧缓冲区,其他人建议将 TERM 参数附加到内核引导选项。
目前,我只传递一个额外的选项作为内核启动参数:
append="video=1280x720"
Run Code Online (Sandbox Code Playgroud)
我相信传递视频分辨率仅适用于kernel mode setting支持的现代内核,但我不确定。
是否可以在现代 linux 控制台 (tty) 中使用 256 种颜色
如何?
我正在使用内核 4.1 的 Debian Wheezy
更新:
根据@muru 的建议,我尝试了fbterm. 虽然它可以使用 256 种颜色,但它的字体非常难看/乱码。此外,左下角有一个不断闪烁的光标,我觉得这很分散注意力。
我可以在没有 fbterm/framebuffer 的情况下在控制台中使用 256 色吗?
控制台中的 8 色限制从何而来?
大多数 Linux 发行版都附带特定的内核版本,并且仅在点发布 ( x.y.zto x.y.(z+1)) 和安全更新时对其进行更新。
另一方面,我知道 Linux 有一个非常严格的政策,即不更改内核 ABI 并且永远不会破坏用户空间。事实上,Linus 已经有许多针对想要(有意或无意地)以非向后兼容方式更改内核的开发人员的公开发脾气。
我不明白为什么发行版使用“稳定”内核而不是总是更新到最新的内核。这不是批评,我只是想知道原因。
我的理解是硬盘驱动器和 SSD 在驱动器内部实现了一些基本的错误纠正,并且大多数 RAID 配置(例如 mdadm)将依赖于此来决定驱动器何时无法纠正错误并需要脱机。但是,这取决于存储在其错误诊断中是否 100% 准确。事实并非如此,像两驱动器 RAID-1 镜像这样的常见配置将容易受到攻击:假设一个驱动器上的某些位被悄悄损坏并且驱动器没有报告读取错误。因此,像 btrfs 和 ZFS 这样的文件系统实现了自己的校验和,以免信任有问题的驱动器固件、故障 SATA 电缆等。
同样,RAM 也可能存在可靠性问题,因此我们有 ECC RAM 来解决这个问题。
我的问题是:在两盘配置(即使用主线内核驱动程序)上,保护 Linux 交换文件免受静默损坏/位腐烂没有被驱动器固件捕获的规范方法是什么?在我看来,这里缺少端到端保护的配置(例如 btrfs 提供的配置)在某种程度上否定了 ECC RAM 带来的安心。但我想不出一个好方法:
总之:
在自由相关问题方面,Debian Linux Kernel 和 Linux-libre 之间有什么区别?
我知道 Debian Linux 内核可以加载非自由模块,而在 Linux-libre 中它们已被列入黑名单。
我有一台新的笔记本电脑(联想 A485)在工作,几乎没有问题。之后它会打印AMD-Vi: IOAPIC[32] not in IVRS table和内核恐慌。到目前为止,我已经找到了几种方法来启动和运行系统。
noapic - 糟糕的性能和高温,所以不是一个很好的方法amd_iommu=off - 也不理想ivrs_ioapic[32]=00:14.0 ivrs_ioapic[33]=00:00.2 - 这似乎工作正常iommu=soft我的问题是关于iommu=soft. 我不确定它到底是做什么的。这种模式的含义是什么?什么更可取,覆盖 IVRS 表或 iommu=soft?
linux-kernel ×10
linux ×4
amd ×1
centos ×1
colors ×1
console ×1
debian ×1
debugging ×1
exit-status ×1
history ×1
iommu ×1
kernel ×1
linux-libre ×1
process ×1
security ×1
swap ×1
terminal ×1
trace ×1
tty ×1
virtualbox ×1