我很好奇:
将模块静态链接到内核而不是通过 rc.conf 等加载到底有什么好处?
例如:
要添加 Linux 模拟,我可以添加linux_enable="YES"到,或者我可以通过添加到我的内核配置/etc/rc.conf将其链接到内核。options COMPAT_LINUX
这实际上有好处吗?如果是这样,那又怎样?
关于 FreeBSD 的几个问题
我应该在哪里/如何获取源代码(例如通过终端、从网站下载)
我应该如何(在 ubuntu 上)构建它?
在构建它之前我可以自定义它(换句话说是可能的)吗?
最近遇到一条内核消息:
ata3.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
ata3.00: irq_stat 0x40000008
ata3.00: failed command: READ FPDMA QUEUED
ata3.00: cmd 60/08:00:98:b2:78/00:00:13:00:00/40 tag 0 ncq 4096 in
res 41/40:08:9a:b2:78/00:00:13:00:00/00 Emask 0x409 (media error) <F>
ata3.00: status: { DRDY ERR }
ata3.00: error: { UNC }
ata3.00: SB600 AHCI: limiting to 255 sectors per cmd
ata3.00: SB600 AHCI: limiting to 255 sectors per cmd
ata3.00: configured for UDMA/133
sd 2:0:0:0: [sda] Unhandled sense code
sd 2:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE …Run Code Online (Sandbox Code Playgroud) 我正在读一本关于在 Linux 上创建驱动程序的书,我对 Linux 没有太多经验,我之前安装过很多发行版,但我一直使用 Windows 作为我的主要操作系统。
我知道一些C,但我主要是一名C#程序员。
我希望学习(为了好玩)驱动程序编程,并希望它能教我一些有关 Linux 的知识并“深入了解它”。
我的第一个障碍是找到一个具有标准2.6.x内核的发行版。我试图找到一个,但3.x现在它们都已经过去了。有人知道适合此类任务的吗?
这本书还说我应该从中获取一个标准内核kernel.org并构建一个源代码树。我不知道这意味着什么。
这是书: http: //oreilly.com/openbook/linuxdrive3/book/
我有一个没有串口的 CentOS 7 无头系统。有时我想使用串行电缆访问服务器,因此我插入 USB 串行电缆(连接到笔记本电脑的串行端口),但无法从连接中获取控制台/BASH。
我需要做些什么来告诉内核始终在出现 USB 串行端口时创建串行控制台吗?
我想知道 root 用户是否可以读取和写入内存中的内核代码部分。它可以?
背景:
我最近读到了一个freedesktop.org-bug,它允许systemctl为uid>执行任何命令INT_MAX。因此我跑了:
root@host$> useradd -u 4000000000 largeuiduser
root@host$> su largeuiduser
largeuiduser@host$> systemctl ["whatever"]
[bug exists, and "whatever" gets executed]
largeuiduser@host$> exit
root@host$> userdel largeuiduser
Run Code Online (Sandbox Code Playgroud)
寻找一种我后来发现的更清洁的方法
root@host$> setpriv --reuid 4000000000 systemctl ["whatever"]
[bug exists, and "whatever" stuff gets executed]
Run Code Online (Sandbox Code Playgroud)
表明为了利用该漏洞,不需要(临时)用户名。这也表明,我不太确定:用户名实际上有多重要?.
问题 因此我的问题是。从内核(linux/posix)的角度来看,用户名有多可有可无?是否需要,可以使用吗?
我的怀疑是,用户名只是一种专门用于用户空间的“便利设施”。
一个好的答案将试图通过提供有关用户名在哪些设置中成为“必需”以及在哪些设置中它们是“消耗性”的信息来对此有所了解。
在过去几年中,各种实时内核修补技术在努力确保系统正常运行时间的系统管理员中变得流行起来。
为了使该过程成为可能,人们需要准备自定义补丁,然后通常将其分发给付费客户,有时甚至免费分发给家庭用户。
为什么不能使用正在运行的内核版本的源代码和可用的最新版本的源代码之间的差异自动创建这些补丁?据我了解,可以从中获益最多的服务器内核通常每两年只进行一次重大更改,否则只会收到重大错误修复和安全更新,这似乎使这变得更加容易。同样,如果稳定性是问题,那么建立一个系统似乎很简单,在该系统中,运行重要性相对较低的机器的志愿者首先构建他们的补丁,然后自动报告他们的工作情况。
然而,这一切都不会发生。我在那里缺少什么使情况如此?
当我们在 rhel 7.2 上运行以下 dmesg 时,我们得到关于 assuming drive cache
dmesg --level=err
[ 5.325381] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 5.325492] sd 0:0:5:0: [sde] Assuming drive cache: write through
[ 5.325637] sd 0:0:3:0: [sdc] Assuming drive cache: write through
[ 5.325667] sd 0:0:4:0: [sdd] Assuming drive cache: write through
[ 5.326309] sd 0:0:2:0: [sdb] Assuming drive cache: write through
[ 10.277944] piix4_smbus 0000:00:07.3: SMBus Host Controller not enabled!
Run Code Online (Sandbox Code Playgroud)
知道这个内核错误是什么意思吗?
我已阅读 Redhat 帖子 - https://access.redhat.com/solutions/42752
但不清楚解决方案是什么?
注意 - 我必须说服务器在意外重启之后
我遇到了一个与askubuntu社区中描述的问题几乎相同的问题。
与发布此问题的用户一样,我的系统具有金士顿 NVME 磁盘,并且与该用户一样,通过在 grub 菜单中添加以下内核选项解决了我的问题:nvme_core.default_ps_max_latency_us=0.
用户声明的解决方案开始如下:
问题出在 SSD 功能上,自主电源状态转换 (APST) 导致了冻结。为了缓解它,直到他们发布修复程序,请
nvme_core.default_ps_max_latency_us=0在GRUB_CMDLINE_LINUX_DEFAULT选项中包含该行。
虽然有用,但此评论留下了几个问题,包括以下内容:
任何评论都有助于解决所有或部分这种混淆。