Questions tagged «kernel»

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

1
CFS的CPU使用率高吗?
我问了一个先前的问题,试图找出将应用程序从RHEL 5迁移到RHEL 6时CPU使用率增加的原因。我所做的分析似乎表明,这是由内核中的CFS引起的。我编写了一个测试应用程序来尝试验证是否是这种情况(已删除原始测试应用程序以适合大小限制,但仍在git repo中提供)。 我在RHEL 5上使用以下命令对其进行了编译: cc test_select_work.c -O2 -DSLEEP_TYPE=0 -Wall -Wextra -lm -lpthread -o test_select_work 然后,我使用这些参数,直到在Dell Precision m6500上每次迭代的执行时间约为1 ms。 我在RHEL 5上得到以下结果: ./test_select_work 1000 10000 300 4 time_per_iteration: min: 911.5 us avg: 913.7 us max: 917.1 us stddev: 2.4 us ./test_select_work 1000 10000 300 8 time_per_iteration: min: 1802.6 us avg: …


1
内核源代码树包含什么?这与Linux内核标头有关吗?
在书籍,我通常在阅读到Linux源代码树的引用/usr/src/linux与通常的组子目录(arch,block,crypto,...)。 我期望这棵树包含组成内核的二进制文件。在我的系统中(Ubuntu 10.04)... 对于我拥有的不同内核(使用自动软件下载,未手动安装),我在此位置找到了每个内核的两个子目录,如下所示: /usr/src/linux-headers-2.6.32-22 /usr/src/linux-headers-2.6.32-22-generic 在子目录中,我希望使用二进制文件等。但是,我检查了相当数量的树,并且这里的最后一个子目录似乎总有一个Makefile(读取时,听起来通常更像是配置文件,然后是安装文件),偶尔还有一些孤立的其他文件(主要是Kconfig)。 我的问题可能很幼稚,但我有些困惑。是(2)我应该在内核源代码树中看到的内容;为什么我要明确提及“标题”?我需要linux-generic-headers为其他一些软件安装一段时间,并且不确定是否可能与之相关。我知道生成文件有充分的理由(例如,将模块安装在/ driver子目录中),但是(几乎)只有生成文件吗?
25 ubuntu  kernel  source 



5
Linux是否不使用分段而是仅使用分页?
Linux编程接口显示了进程的虚拟地址空间的布局。图中的每个区域都是一个分段吗? 通过了解Linux内核, 下列意思是否正确,即MMU中的分段单元将分段和分段内的偏移量映射到虚拟内存地址,然后分页单元将虚拟内存地址映射到物理内存地址? 存储器管理单元(MMU)通过称为分段单元的硬件电路将逻辑地址转换为线性地址。随后,称为分页单元的第二个硬件电路将线性地址转换为物理地址(见图2-1)。 那么为什么说Linux不使用分段而是仅使用分页呢? 分割已包含在80x86微处理器中,以鼓励程序员将其应用程序拆分为逻辑上相关的实体,例如子例程或全局和本地数据区域。但是, Linux以非常有限的方式使用分段。实际上,分段和分页在某种程度上是多余的,因为它们都可以用于分隔进程的物理地址空间:分段可以为每个进程分配不同的线性地址空间,而分页可以将同一线性地址空间映射到不同的物理地址空间。Linux倾向于分页而不是分段,原因如下: •当所有进程使用相同的段寄存器值(即它们共享同一组线性地址)时,内存管理会更简单。 •Linux的设计目标之一是可移植到多种体系结构。特别是RISC体系结构,对分段的支持有限。 Linux 2.6版仅在80x86体系结构要求时才使用分段。

1
将devtmpfs用于/ dev
我注意到内核中的以下选项:CONFIG_DEVTMPFS Device Drivers -> Generic Driver Options -> Maintain devtmpfs to mount at /dev 而且我看到它在Debian发行版内核中是默认启用的 3.2.0-4-amd64 我试图了解此选项带来的不同。如果没有此选项,/dev则安装为tmpfs,使用此选项,则安装为devtmpfs。除此之外,我看不出任何区别。 在help没有明确对我来说之一: 这将在启动初期创建一个tmpfs / ramfs文件系统实例。在此文件系统中,内核驱动程序核心会维护设备节点的默认名称以及对所有分配了主/次编号的注册设备的权限。 它提供了一个功能齐全的/ dev目录,其中udev通常在顶部运行,以管理权限并添加有意义的符号链接。 在非常有限的环境中,它可以提供足够的功能/ dev而无需任何其他帮助。它还允许简单的救援系统,并可靠地处理动态的主要/次要号码。 有人可以解释一下使用CONFIG_DEVTMPFS与标准之间的区别/dev吗?

2
内核模式设置与帧缓冲?
使用KMS,图形驱动程序将移入内核。由于帧缓冲区已经在内核中,所以我不希望这会影响帧缓冲区的操作。但是,我读到KMS取代了fb,增加了fb,需要fb,并且要求fb支持被删除。有没有搞错?我正在寻找的答案是对KMS与帧缓冲区之间关系的解释。 我一直在使用uvesafb在tty上获得本机分辨率。我的目的是了解如何在具有KMS的系统上工作。这也将有助于解决诸如此类的问题。.使用KMS滚动是否更快?fbterm和fbida之类的实用程序是否起作用?稳定性更好吗?

2
如何将Arch Linux切换到LTS内核?
我正在运行Arch Linux的无头服务器安装。较高的内核升级率使我有些维护困难,因此我希望切换到lts内核。 我已经安装了linux-lts和linux-lts-headers软件包。现在,我已经安装了两个内核,但是我不知道如何从这里继续。该文档解释: [...]您将需要更新引导程序的配置文件以使用LTS内核和ram磁盘:vmlinuz-linux-lts和initramfs-linux-lts.img。 我已经在引导部分找到了它们: 0 ✓ root@host ~ $ ll /boot/ total 85M 4,0K drwxr-xr-x 4 root root 4,0K 21. Mai 13:46 ./ 4,0K drwxr-xr-x 17 root root 4,0K 4. Apr 15:08 ../ 4,0K drwxr-xr-x 6 root root 4,0K 4. Apr 14:50 grub/ 27M -rw-r--r-- 1 root root 27M …
24 arch-linux  kernel  grub  lts 

1
Linux中的实时流程调度
我一直在学习一些调度概念。目前,到目前为止,我的理解如下。 有实时过程和非实时过程。 非实时进程nice的优先级值可以在-20到+20之间。正值越高,表示该进程的优先级越低。 实时进程将列为正派值-作为这个答案说明这里。这主要是因为实时过程比非实时过程具有更高的优先级,并且niceness值不适用于它们。 现在,我可以chrt用来查看流程的实时属性。 对于实时过程,chrt给出的输出为 chrt -p 5 pid 5's current scheduling policy: SCHED_FIFO pid 5's current scheduling priority: 99 正如我们在流程5中看到的那样,优先级是最高的99。另外,调度策略是SCHED_FIFO 现在,对于非实时过程,chrt给出的输出为 chrt -p 22383 pid 22383's current scheduling policy: SCHED_OTHER pid 22383's current scheduling priority: 0 如我们对于进程22383所看到的,优先级为0,调度策略为SCHED_OTHER。 问题 我可以将任何过程都设为实时过程吗? 除了SCHED_OTHER非实时过程外,我是否可以设置其他调度算法? 从这里,我还看到我可以修改正在运行的进程的属性,因为, chrt -p prio pid 另外,我看到chrt -m了调度算法列表。该命令将输出显示为 SCHED_OTHER …


1
Ubuntu引导过程中'i8042.nomux = 1'内核选项有什么作用?
我有一台带有多访客触摸板的笔记本电脑。我的触摸板无法在任何Linux发行版中使用,例如Ubuntu,Fedora,openSUSE,Linux Mint,Knoppix,Puppy,Slitaz等。我尝试了很多事情,但没有任何效果。我一直在努力使用Synaptics驱动程序一年多了,但是它也不起作用。 然后我在某处读到了i8042.nomux内核选项。所以我用以下选项启动了Ubuntu: i8042.nomux=1 i8042.reset 这使我的触摸板适用于Ubuntu及其衍生产品(如Linux Mint)的所有变体。 我很想知道这些选项。如果我知道它的确切功能,那么我将能够在所有Linux发行版中使用触摸板,因为该选项仅适用于Ubuntu。

2
Linux上USB3外部存储的连接问题(UAS驱动程序问题)
在Ubuntu 15.10上,当我想使用NTFS文件系统格式化通过USB3(在StarTech USB / eSATA硬盘底座上)连接的外部4TO磁盘时,我遇到很多 I / O错误,并且格式化失败。 我尝试了GParted v 0.19,并在最新的实时CD上尝试了GParted gparted-live-0.23.0-1-i586.iso,但存在相同的问题。 之后,在Ubuntu 15.10和相同的USB3连接上使用GParted,我尝试将格式设置为ext4,没有问题。真的很奇怪 因为我不知道mkfs.ext4GParted用来格式化磁盘的工具是否像(或不喜欢)测试磁盘mkntfs,所以我首先假设问题与新磁盘有关。也许此新磁盘引起了问题。因此,我尝试e2fsck -c在此硬盘上运行。在Ubuntu 15.10上,e2fsck -c冻结率为0.45%,我不知道为什么。 因此,在同一台PC上使用另一版本的Ubuntu(15.04),我尝试使用StarTech HDD扩展坞的eSATA连接来连接同一4TO磁盘。这次,e2fsck -c运行正常。 几个小时后,您可以看到结果: sudo e2fsck -c /dev/sdc1 e2fsck 1.42.12 (29-Aug-2014) ColdCase : récupération du journal Vérification des blocs défectueux (test en mode lecture seule) : complété ColdCase: Updating bad block inode. …

5
在Linux上使用O_DIRECT
如果这个问题太面向程序员,请告诉我。我想知道是否有人熟悉Linux 2.6上的open()系统调用的O_DIRECT标志?Linus贬低了它的使用,但是高性能文件写入似乎表明了它的使用。我想知道任何现实世界的经验和建议。 更多信息:我正在使用的应用程序确实维护了自己的缓存,并且这样做的速度平均提高了5倍或更多。写入文件时,必须将高速缓存的内容写出到文件系统高速缓存中,这似乎是多余的,并且会影响性​​能。

2
为什么香草内核中不包含grsecurity补丁?
grsecurity默认情况下,内核中未包含补丁(或其带来的安全功能)的原因是什么?当查看安全性带来的好处时,原始内核似乎并不安全。 如果这是一个折衷(某些应用程序要避免使用安全措施),则似乎grsecurity可以选择在原始内核中启用。 在主流香草内核中有如此多的内容,我很难理解社区不愿意加入的原因grsecurity。

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.