标签: linux-kernel

Linux 和(免费)BSD 内核之间的概念差异

(我已经注意到之前有人问过这个问题,但我认为它没有以我想要理解的方式回答。)

之间的概念和结构差异是什么?

  • Linux内核
  • BSD 内核(比方说 FreeBSD)

虽然归根结底它们都是内核 - 我认为在结构、功能和专业化方面可能存在差异。在哪些情况下,一种内核比另一种内核具有优势?(Web 服务器、数据库、计算等)

是否有任何共同努力将力量集中在一个通用内核或某些模块上,或者这是否毫无意义?

PS:在这种情况下,不同的许可证类型或运输/包装/维护方法并不重要。我真的很想了解它们在结构、功能/特性级别和专业化方面的不同之处。

freebsd bsd linux-kernel

21
推荐指数
2
解决办法
2万
查看次数

linux内核补丁的目的是什么?

对于每个 Linux 内核版本,都有一个补丁文件可供下载。例如,linux-3.12.22有一个对应的patch-3.12.22

那个补丁的目的是什么?总是在编译之前修补相应的内核,还是将以前的内核版本与补丁匹配的内核(在这种情况下为 3.12.22)保持最新?

patch linux-kernel

21
推荐指数
2
解决办法
5565
查看次数

如何列出内核设备树

我正在使用带有 Debian 构建的嵌入式 Arm。如何从设备树中列出已编译的设备?我想看看是否已经支持某个设备。

对于阅读本文的人来说,“设备树”是将设备添加到(嵌入式)Linux 内核的规范/标准。

linux embedded linux-kernel device-tree

21
推荐指数
2
解决办法
7万
查看次数

如果删除设备文件会发生什么?

我大致了解位于/dev 下的文件。

我知道有两种类型(字符/块),访问这些文件与内核中的驱动程序通信。

我想知道如果我删除一个会发生什么——特别是对于这两种类型的文件。如果我删除一个块设备文件,比如说/dev/sda,这有什么影响——如果有的话——有什么影响?我刚刚卸载了磁盘吗?

同样,如果我删除/dev/mouse/mouse0- 会发生什么?鼠标停止工作了吗?它会自动替换自己吗?

我什至可以删除这些文件吗?如果我设置了虚拟机,我会尝试一下。

linux udev devices block-device linux-kernel

21
推荐指数
2
解决办法
5009
查看次数

Linux 内核是否需要文件系统才能运行?

我的观点是肯定的,确实如此,因为所有对外部世界(非特权处理器模式)有用的暴露首先需要一个在外部世界中运行的进程。这将需要一个文件系统,甚至是一个临时的、内存中的文件系统。

另一位工程师不同意我的观点,但我似乎无法在所有(我不知道的)情况下证明这一点。

这个问题的答案是否取决于“跑步”的定义?

filesystems linux-kernel

21
推荐指数
3
解决办法
5081
查看次数

标准 C 库是否默认加载到 Linux 的主内存中?

由于大多数 Linux 内核是用 C 语言编写的,所以当内核加载到主内存中时,标准 C 库是否也随 Linux 内核一起加载?

如果这就是用 C 编写的程序比其他程序消耗更少内存的原因,因为标准 C 库已经加载,因此与在 Linux 机器上运行时用其他语言编写的程序相比也更快(更少的页面错误)?

linux gcc linux-kernel

21
推荐指数
4
解决办法
5270
查看次数

如何强制 /dev/random 阻止?

对于密码学课程,我试图耗尽 Linux 中的熵池(例如,使/proc/sys/kernel/random/entropy_avail转到 0 并阻止从 读取命令/dev/random),但我无法实现它。我应该从/dev/random块中读取数据。如果我执行这两个命令:

watch -n 0.5 cat /proc/sys/kernel/random/entropy_avail
Run Code Online (Sandbox Code Playgroud)

观察熵,然后:

od -d /dev/random
Run Code Online (Sandbox Code Playgroud)

为了转储随机池,watch命令中的值徘徊在 3700 和 3900 之间,并且在我运行此命令时只有一点点增益和损失。我让这两个命令运行大约三分钟, 的大小没有明显的变化entropy_avail。那段时间我并没有在电脑上做太多事情。通过谷歌搜索,我发现也许硬件随机数生成器可能非常好,以至于熵不会下降,但如果我这样做:

cat /sys/devices/virtual/misc/hw_random/rng_available
Run Code Online (Sandbox Code Playgroud)

我什么也没看到,只看到一个空行。所以我有几个问题:

  1. 是什么给我的熵补充得这么好,我怎样才能找到随机性的具体来源?
  2. 有什么方法可以暂时禁用随机源,以便我可以强制发生这种阻塞?

cryptography random linux-kernel

21
推荐指数
3
解决办法
4299
查看次数

(-) 的 niceness 值是什么意思?

根据手册页和维基百科;nice范围从 -20 到 20。

但是,当我运行以下命令时,我发现某些进程具有非数值,例如 (-)。请参阅标题为“NI”的左起第六列。

(-) 的美好表示什么?

 ps axl 
 F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0  19356  1548 poll_s Ss   ?          0:00 /sbin/init
1     0     2     0  20   0      0     0 kthrea S    ?          0:00 [kthreadd]
1     0     3     2 -100  -      0     0 migrat S    ?          0:03 [migration/0]
1     0     4     2  20   0      0     0 ksofti S    ?          0:51 [ksoftirqd/0]
1     0     5 …
Run Code Online (Sandbox Code Playgroud)

linux process-management priority nice linux-kernel

20
推荐指数
2
解决办法
4988
查看次数

如何解释 kworker 线程名称?

在双插槽 Xeon X5650 六核板上运行的 Linux 3.11.0-13-generic 上,htop显示不同的 kworker 线程。按名称排序(我稍微调整了此处显示的结果,使内核 2 上的线程先于内核 10 上的线程),结果如下:

kworker/0:0H
kworker/0:1
kworker/0:2
kworker/1:0
kworker/1:0H
kworker/1:1
kworker/2:0
kworker/2:0H
kworker/2:1
.....
kworker/11:0
kworker/11:0H
kworker/11:1
kworker/u48:0
kworker/u49:4
kworker/u49:5
kworker/u50:1
kworker/u50:2
.......
Run Code Online (Sandbox Code Playgroud)

名称以数字开头的线程被固定到具有相同数字的核心。所以第一个数字是运行线程的核心,我想知道:00H1)后面的符号是什么?

我也想知道这些uXX:Y符号的含义是什么?

我对 kworker 线程的作用只有模糊的了解:它们处理由执行 I/O 的系统调用引起的异步事件。他们在某处记录了吗?

linux linux-kernel

20
推荐指数
1
解决办法
3万
查看次数

如何检查 Linux 内核是否启用了“Retpoline”?

对于“Spectre”安全漏洞,引入了“Retpoline”作为降低风险的解决方案。但是,我读过一篇文章提到:

如果你在没有 . 的情况下构建内核CONFIG_RETPOLINE,则无法使用 retpoline 构建模块,然后期望它们加载 - 因为不会导出 thunk 符号。

如果您使用 retpoline 构建内核,则可以成功加载不是使用 retpoline 构建的模块。(来源

是否有一种简单且通用/通用/统一的方法来检查内核是否启用了“Retpoline”?我想这样做,以便我的安装程序可以使用要安装的正确构建的内核模块。

linux kernel linux-kernel

20
推荐指数
1
解决办法
2万
查看次数