我在内核设置中(在 sysctl 中)遇到了以下参数:
vm.min_free_kbytes
Run Code Online (Sandbox Code Playgroud)
这是无论如何始终可用的可用内存 (RAM) 量。就我而言,我只有 1 GiB 的 RAM,并且此参数设置为大约 64MiB。我认为这相当高,所以到目前为止我将其降低到 8MiB。我不知道我是否可以进一步降低它,或者将它降低到 8MiB 是否会引起任何麻烦,所以问题是如果空闲内存量太低会发生什么?我可以安全地将值降低到 1MiB 吗?
我正在使用OpenWrt为 wifi 设备编译图像。按照说明,我将一个简单的.config文件复制到 TOP-DIR。
CONFIG_TARGET_ar71xx=y
CONFIG_TARGET_ar71xx_generic=y
CONFIG_TARGET_ar71xx_generic_XXX_OpenWrt_Router=y
Run Code Online (Sandbox Code Playgroud)
然后运行命令make menuconfig。这个命令的结果是
.config file now having default configuration.
Run Code Online (Sandbox Code Playgroud)
但是,我不知道所有新配置来自哪里。如果我只是改变CONFIG_TARGET_ar71xx_generic_XXX_Router=y,CONFIG_TARGET_ar71xx_generic_YYY_Router=y那么结果make defconfig肯定会大不相同。
构建新的 OpenBSD 内核后,内核的install目标Makefile执行以下操作:
rm -f /obsd
ln /bsd /obsd
cp bsd /nbsd
mv /nbsd /bsd
Run Code Online (Sandbox Code Playgroud)
我知道前两行删除了旧的备份内核/obsd并创建了一个/obsd指向当前运行内核的硬链接/bsd。特别是,正在运行的内核根本没有移动。这对我来说很有意义。
但是,将新构建的内核./bsd先移动到/nbsd,然后将其重命名为 的目的是什么/bsd?为什么不用明显更简单的替换第三和第四行cp bsd /bsd呢?
如果这很重要:OpenBSD 的默认分区方案将内核构建树放置在与根文件系统不同的文件系统(磁盘标签)中。
如何在 Linux 内核中启用 Ethernet over USB 支持?
哪个驱动程序(如CONFIG_USB_USBNET)与此支持相关?
EEM(以太网仿真)是否与此支持有关?
我正在为我的特定硬件编译 Linux 内核,我只选择了我真正需要的驱动程序/选项。这与典型的发行版内核形成对比,在典型发行版内核中,它们编译几乎所有内容,以与尽可能多的硬件配置兼容。
我想,对于我的内核,我只使用了总内核代码的 1%(数量级估计)。
有什么方法可以找出我在构建内核时实际使用了内核源代码中的哪些文件?
这不是学术问题。假设我已经编译了我的内核 3.18.1。现在出现了一个安全更新,并发布了 3.18.2。我在我的另一个问题中学到了如何找到哪些文件在不同版本之间发生了变化。如果我知道我正在使用的任何文件是否已更改,我会将我的内核重新编译为新版本。另一方面,如果更改只影响我不使用的文件,我可以保留当前的内核版本。
在 Ubuntu 中安装内核时(例如http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-vivid/),分别是什么文件:
linux-headers-4.0.0-xxx_all.deb
linux-headers-4.0.0-xxx-generic_xxx_i386/amd64.deb
linux-image-4.0.0-xxx-generic_xxx_i386/amd64.deb
linux-headers-4.0.0-xxx-lowlatency_xxx_i386/amd64.deb
linux-image-4.0.0-xxx-lowlatency_xxx_i386/amd64.deb
Run Code Online (Sandbox Code Playgroud) /proc内核在启动过程中读取了哪个文件?这是我的 LPIC 101 测试中的一个问题,我想我可能回答错了。我在谷歌和其他一些地方搜索,但无法找到答案。希望你们中的一位可以提供。谢谢!
IO 调度器和 CPU 调度器的概念让我感到困惑。以下是我的理解:
问题:
IO调度器和CPU调度器是什么关系?从概念上讲,在我看来,CPU 调度程序优于 IO 调度程序。CPU 调度首先发生。IO 调度器本身就是一个线程,受 CPU 调度的影响。
一个人为的场景如下所示:
步骤 1:CPU 调度器选择一个进程 P1 来执行
第二步:P1将IO请求放入自己的IO队列
步骤 3+:CPU 调度程序选择其他线程运行。(假设没有进程有 P1 以外的 IO)
....(过了一会儿)
步骤 n:CPU 调度程序选择 IO 调度程序线程运行。
步骤 n+1:IO 调度程序线程“通知”P1 将 IO 请求排队并将这些请求发送到磁盘。
我的理解和场景是否有意义?
我想知道我安装的 Linux 发行版的内核是否会读取某些 ExFAT 格式的 SD 卡(或 Pendrive、USB 硬盘等)。
我知道,自 2013 年左右以来,大多数内核都包含此功能,但我认为会有一些标志会报告它,而且,只要我使用过不同的发行版,在我看来,检查是否存在更容易标志比下载和安装完整的 Linux 发行版并插入 SD 卡。
此外,有时无法正确读取 ExFAT SD 卡,了解问题是否来自内核会很有用。
是否有任何标志或简单/快速的命令行方法可以了解我的内核是否支持ExFAT 文件系统?