Questions tagged «kernel»

有关UNIX内核的所有内容:开发,配置,编译,设计等。

1
找出RHEL 6与RHEL 5上CPU使用率较高的原因
我目前正在寻求将我们的系统从RHEL 5迁移到RHEL 6,但在RHEL 6机器上却遇到了意外的CPU使用率过高的问题。看来,这可能至少部分是由于使用select进行了可中断的睡眠。这是一个显示行为的简单示例: #include <sys/select.h> int main() { timeval ts; for (unsigned int ii=0; ii<10000; ++ii) { ts.tv_sec = 0; ts.tv_usec = 1000; select(0, 0, 0, 0, &ts); } return 0; } 在RHEL 5机器上,它将保持0%的CPU使用率,但是在安装了RHEL 6的相同硬件上,它将使用大约0.5%的CPU,因此,当运行30到50个程序select执行睡眠时,它会吃掉不必要地占用大量CPU。 我打开了一个Bugzilla,尝试运行OProfile,它在查看内核时仅显示应用程序的100%主内容,而poll_idle的内容仅显示99%以上(我在grub选项中设置了idle = poll以便可以捕获所有内容)。 关于我可以做些什么来尝试找出导致CPU使用率较高的原因的任何其他想法? 更新:我找到了性能工具,并得到以下输出: # Events: 23K cycles # # Overhead Command Shared …

3
如何从头开始构建Linux系统?
我尝试使用自定义构建的内核制作操作系统。效果不是很好。我正在使用Ubuntu,并已从kernel.org下载Linux 3.2.7。我没有尝试在Ubuntu系统中更改内核。我想使用Grub(Linux内核)制作自己的OS,并且希望能够将此Homebrew OS放在文件类型(例如iso)中,然后将其放入CD并在另一台计算机上启动。我的问题是:制作此操作系统到底需要什么?任何评论或教程都将有所帮助。
9 grub2  kernel  iso 




1
自定义内核:模块内置时无法加载固件
我想内置所有模块,但是失败了iwlagn: iwlagn 0000:03:00.0: request for firmware file 'iwlwifi-6000-4.ucode' failed. iwlagn 0000:03:00.0: no suitable firmware found! 微代码文件存在于其中/lib/firmware,如果我将其编译iwlagn为模块,则整个程序就可以正常工作。我不知道它在哪里寻找文件或出了什么问题-有什么想法吗?

2
Cleancache与Zram?
我这里有一台旧笔记本电脑,只有512 MB RAM。由于有几个内核版本,我正在使用zram将其中的256 MB转换为压缩的ramdisk,然后将其用作交换。事实证明,这非常成功,并且系统的响应速度更快,(硬盘支持的)交换使用率大大降低,从而降低了系统的运行速度。 从linux 3.0开始,内核还包含cleancache,它使用zram之类的后端作为后端,可以透明地压缩页面缓存中的页面。据我所知,这与zram不同。 我应该在笔记本电脑上同时启用两者吗?还是cleancache实际上取代了zram解决方案? 编辑:我已经找到了这个gentoo论坛链接,似乎还必须启用CONFIG_ZCACHE它,然后使cleancache使用zram来获取类似于我以前的内容。因此,似乎我启用了所有这些功能,之后不再显式使用zram。有人可以确认吗?
9 linux  kernel  swap  cache  zram 


3
内核mmap操作的内存大小
我对Linux mmap将文件放到主内存中的方式(在我的上下文中为执行,但我想mmap进程在写入和读取方面是相同的)及其使用的大小感兴趣。 因此,我知道Linux使用的页面调度通常为4kB页面大小(我在内核中可以找到这个大小吗?)。但这对分配的内存到底意味着什么:假设您的二进制文件大小只有几千个字节,让我们说5812B,然后执行它。内核中会发生什么:它是否分配2 * 4kB,然后将5812B复制到该空间中,从而在第二页中浪费了大于3KB的主内存? 如果有人知道内核资源中定义了pagesize的文件,那就太好了。 我想第二个问题也非常简单:我以5812B为文件大小。大小是从inode取得的,对吗?
9 kernel  memory  inode  mmap 

1
无法处理内核分页请求?
[免责声明:最初,我对在此处发布此内容感到有些不安,因此我在Meta上询问讨论自制或改装是否可以接受。根据我从几位资深会员那里得到的答复,我继续进行此发布。这是Meta上的链接。] 我目前正在尝试使用xboxhdm和ndure 3.0修改我的原始Xbox。xboxhdm是围绕一个小型可启动Linux发行版构建的,它非常适合我,因此我想在这里问一下,看看是否有人可以帮忙。(注意:在任何人建议使用不同的主板之前,xboxhdm都可以从PC上的CD引导-Xbox硬件完全不参与该过程,所以这就是我在这里问的原因。) 我使用的PC相对较旧-这是一台旧的Compaq台式机,具有约512mb RAM和2.5GHz处理器(可能是P IV)。我使用它是因为它在主板上有2个IDE端口。从性能角度来看,计算机的年龄不应该成为问题-xboxhdm + ndure黑客已经存在多年了-它旨在在这种硬件上运行。 无论如何-在此过程的某一时刻,我必须将某些文件从CD复制到Xbox硬盘驱动器(Xbox硬盘驱动器是标准的Seagate IDE驱动器,由Molex提供支持)。大约在复制过程的一半,一切都死了……我得到一个unable to handle kernel paging request错误,并最终导致内核恐慌。 我找不到任何有关此错误的信息,以及它与Xbox改装的具体关系,但是我能找到的信息表明我的RAM可能不好。我尚无法测试,但是回到家后,我将立即运行MEMTEST。 我没有随身携带的设备-我在工作中,而且它在家里-但是如果有人有兴趣伸出援手,我将在今晚照相并张贴。我在这里问的唯一原因是因为我仍然是一个相当新的* nix转换者,我不确定这一切如何工作。我也假设那unable to handle kernel paging request是一个相当标准的错误消息,如果我错了,请纠正我。

2
在PowerPC debian中安装新内核
我使用以下命令(源)使用交叉编译器在x86上编译了新的内核映像: $ cp arch/powerpc/configs/pmac32_defconfig .config $ make ARCH=powerpc menuconfig $ make ARCH=powerpc CROSS_COMPILE=pwoerpc-750-linux-gnu- 现在,我想将此新映像安装在debian-powerpc上。Debian-powerpc使用quik作为默认的引导程序。我怎么做?



4
USB驱动器上的GRUB-添加操作系统
一些背景: 来自Windows背景(尽管我熟悉Ubuntu等),并使用Windows 7计算机来完成此任务 已成功将GRUB安装到USB驱动器(8 GB FAT32驱动器)的MBR中: 在驱动器上创建了一个基本结构:/ boot / grub,/ boot / img,/ boot / kernel 题: 我有一些基本的,初学者的问题,但是我在通过Google / StackExchange等找到答案时遇到了问题。 我知道/ boot / img / [SystemName]文件夹将为特定系统存储映像,该系统可能使用存储在/ boot / kernel目录中的各种(或相同)版本的Linux内核(至少,这就是我的方式)想要设置) 但是,大多数这些系统在其目录中仅包含一个名为“ linux”的内核(未说明版本)。我可以找出所有这些内核都使用哪个内核,但是将内核本身复制到/ boot / kernel的第一个地方是什么? 获得内核之后,我想剩下的大部分工作就是将设备复制到/ boot / img /并在menu.lst中创建正确的条目,对吗?一旦我可以引用内核,就可以逐个系统地执行此操作。 总体的目标: 我试图创建一个8GB的USB闪存驱动器,该驱动器将允许我从GRUB引导菜单引导多个操作系统。要添加或减少OS,我只需要将适当的文件复制到/ boot / img / [SystemName]和适当的/ boot / kernel文件夹,然后编辑menu.lst文件。因此,第一步是要找到许多这些OS共享的内核,因为我希望减少重复。

3
为什么缓存交换有意义?
对我来说,缓存换出的页面听起来适得其反。如果交换页面,首先将它们缓存在内存中,而不必将它们移到正确的位置有什么好处?即使主动调换页面,“仅仅”调换页面是否更有意义?实际上,缓存交换只是浪费资源吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.