Questions tagged «linux-kernel»

有关Linux内核和Linux内核相关主题的问题,例如。实现细节,例如系统调用,内核自定义等。对于不涉及内核细节的Linux用户空间主题,[linux]或发行标签更为合适。

1
Linux和x32-ABI-如何使用?
简介 我刚刚移至64位安装,并且在内存使用方面遇到了很大的不同(尤其是对于chrome,firefox,mysql和java应用程序等应用程序): 在4gb之前足够的时候他们很快筋疲力尽! 无论如何,这是众所周知的64位操作系统的副作用,而64位还带来了其他一些优势。 在ram旁边非常便宜,还有一些上网本仍随附1 / 2gb ram……...它来了x32 ABI:内核功能旨在完全限制此问题。 什么是x32 ABI: 根据此pdf文件,与64位普通OS(即使提高40%)相比,它具有更大的内存优势。 现在,如果我了解x32-ABI要求: 使用CONFIG_X86_X32 = y编译的Linux Kernel 3.4 海湾合作委员会4.7 Binutils 2.22 Glibc 2.16 使用gcc -mx32重新编译应用程序所需的所有系统库 我知道Debian和其他发行版实际上是在提供具有32x-ABI支持的库,但是我找不到任何文档来设置此功能(我在Ubuntu 14.04 64bit上) 我想用这个问题来帮助我和其他人收集信息,因为我认为这是一个非常有趣的功能。 特别是我的目标是使用x32-ABI运行一个应用程序(例如chrome或firefox或mysql)。

1
“北桥错误(节点0):探针过滤器目录中的ECC错误”
我收到了一封来自用户的电子邮件,该用户担心他的一台服务器上的以下错误表明存在严重问题。麻烦的是,下面的错误是所有我必须去。我通常认为自己是一个体面的Google用户,但在这种情况下,我只能找到一个当用户遇到的关于“探头过滤目录”这个错误其他事件: [1044 snapshots @ abc]$ Message from syslogd@abc at Sep 8 02:51:51 ... kernel:[Hardware Error]: CPU:0 MC4_STATUS[Over|CE|MiscV|-|AddrV|-|Poison|CECC]: 0xdc0248d0001f010b Message from syslogd@abc at Sep 8 02:51:51 ... kernel:[Hardware Error]: MC4_ADDR: 0x0000000000010f40 Message from syslogd@abc at Sep 8 02:51:51 ... kernel:[Hardware Error]: Northbridge Error (node 0): ECC Error in the Probe Filter …

1
ACPI错误/例外,为什么它们是垃圾邮件,如何知道和解决它?
我一直在这些错误污染我的dmesg: [21720.400079] ACPI Error: [\_TZ_.THRM] Namespace lookup failure, AE_NOT_FOUND (20130328/psargs-359) [21720.400093] ACPI Error: Method parse/execution failed [\_GPE._L1C] (Node f584ec80), AE_NOT_FOUND (20130328/psparse-537) [21720.400112] ACPI Exception: AE_NOT_FOUND, while evaluating GPE method [_L1C] (20130328/evgpe-580) [21960.800116] ACPI Error: [\_TZ_.THRM] Namespace lookup failure, AE_NOT_FOUND (20130328/psargs-359) [21960.800130] ACPI Error: Method parse/execution failed [\_GPE._L1C] (Node f584ec80), AE_NOT_FOUND …

1
如何从一开始就学习内核编程?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我最近完成了毕业。而且我只有C的基本知识。但是我想研究Linux内核,并根据需要对其进行自定义。我不仅想定制,还想为Linux内核贡献自己的想法。 但是我现在是从0开始!因此,请建议我如何开始以及从何开始!

2
Linux中奇怪的临时网络中断
我遇到了一个非常烦人的问题,从现在开始的一个星期我注意到了这个问题,但找不到答案:我的网络突然停止了响应,通常恰好在25秒后返回。我使用的是内核3.10.4,现在迁移到3.11-rc4,以查看是否有所更改,但不,行为是相同的。而且由于通常的网络浏览都是“突发”并且中断完全是随机的,因此很难发现问题,因此我无法真正分辨出该问题是否也存在于以前的内核中(我一直使用custom来自kernel.org的未修补内核,全部由我自己编译) 我也不能说内核是罪魁祸首,但是我可以说系统日志上没有任何线索(我检查了两者/var/log/syslog,/var/log/messages并且那里也没有异常),并且硬件似乎没有问题,因为问题表明使用我的任意一张网卡: lspci output: 02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01) 04:00.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 30) 并且我已经尝试过交换以太网交换机端口,但除我以外,我工作的其他任何地方都没有问题(尽管我们使用的是类似的机器,但我是唯一使用Linux的机器,因此我不得不对此举一些臭名昭著的笑话,因为好吧...呵呵。 我在机器上运行了Wireshark,然后让它连续ping通我们的网关和同一网段上的另一台机器。然后,在出现网络故障的第一个迹象时,我将对其进行检查并验证网关是否停止响应ping,但是另一台计算机仍然在那里正常响应。其他时间是另一台机器停止响应并且网关正常,而另一些时间都停止响应。我不知道该怎么办,因此,我希望获得一些有关进一步调试的帮助或技巧,因为系统日志是完全正常的。 我有我的内核配置文件和来自wireshark的捕获文件来显示这种情况。我可以在这里或在某个pastebin网站上发布,以防万一有人觉得对理解案例有用,请让我知道我应该使用的详细信息级别(我猜没有原始数据的数据包级别就足够了)。

2
对于发送给lkml的补丁程序,我应该如何寻求树维护者的反馈?
我已经向linux内核提交了一个补丁,该补丁已经获得了几条评论,并且在邮件列表上经历了几次迭代。已有两名开发人员对它进行了确认和审查,但他们说要由特定的开发人员来批准此补丁。该开发人员不在邮件列表中。我不想亲自骚扰他,但我希望某种承认该补丁可以或不能被接受。征求该开发人员反馈的最佳方法是什么?向他或其中一位审稿人发送私人电子邮件是否可以接受,或者通过邮件列表公开所有通讯很重要吗?

4
为什么RHEL 6 128 TB的理论RAM限制如何确定?
我正在为RHCSA学习,但对一些培训材料中的陈述感到困惑: 没有实际的最大RAM,因为从理论上讲,您可以在RHEL 6上运行128 TB RAM。但这只是理论上的问题。RHEL 6上的Red Hat支持的最大RAM在32位系统上为16 GB,在64位系统上为2 TB。 有人可以解释一下128 TB理论极限值的来源吗?如果RHEL 6明确定义了其他最大限制,我对于作者如何知道理论限制感到困惑。这仅仅是考虑到64位体系结构的理论限制吗?还是这里还有其他原因?

2
Linux内核如何访问其分配的initramfs / initrd?
从您按下电源按钮开始,我试图了解整个计算机的启动过程。从引导加载程序到initramfs阶段,有一件我不太了解的东西。 给定此条目的Grub配置,取自最近的Ubuntu默认安装: insmod gzio insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set=root 96fb7310-5adb-4f66-bf59-04acd08d76a3 echo 'Loading Linux x.y.z ...' linux /vmlinuz-x.y.z root=/dev/mapper/some-device-name ro nomodeset echo 'Loading initial ramdisk ...' initrd /initrd.img-x.y.z 就系统状态和内存而言,这实际上是做什么的?我知道Grub的任务是“加载并运行内核”,并且它有自己的模块集来访问设备(或网络)上的文件以获取它们。在这里insmod的示例中- set root和search-但这只是从Grub的角度出发,并且不与内核共享,对吗? 我还猜测到Grub正在将内核加载(副本?)到内存(linuxcommand)并踢它以开始执行。(显然有两个不同的步骤-那么,怎么做?)可以在内核中读取并解释给定的参数(这是一个大字符串映射到内存中的某个地方吗?),并提供了安排所请求内容的选项。 我也看到了这个initrd选项。这指向我的gzip压缩的initramfs,它是启动所指定的实际根设备所需的root=。但是如何将这个initramfs提供给内核?它没有传递任何内存地址到可以加载它的位置,也不能访问它本身,因为它在内核启动之前就已经加载了。一些内核文档说,可以通过访问该initramfs文件系统“设备” /dev/ram0,但是我不知道它如何成为可访问的设备文件。我想,在水下看不见的东西正在发生。 我也看不到这与其他引导加载程序(包括嵌入式平台)之间的关系,例如使用U-boot / Coreboot。这是否与Grub(相同的标准内存地址)做相同的事情,并且在加载内核/初始化时,这些与Grub相比有多大? 只是为了澄清我的问题,我认为我确实理解了为什么存在不同的引导阶段以及发生了哪些过渡,但是我看不到它们是如何发生的以及每个阶段的确切职责是什么。我觉得我错过了一些“标准”,所有这些都归结为这些标准。 我希望对此有所解释。



3
Linux内核头文件的组织
在阅读系统调用时,我搜索了“ syscalls.h”以在LXR中找到头文件。搜索结果使我感到困惑。在“ arch / _arch_name_ / include / asm”目录下有许多“ syscalls.h”文件。没关系,它们是体系结构特定的定义或其他需要的东西。问题是,为什么在/ include / linux和/ include / asm-generic下都有两个不同的“ syscalls.h”标头? 另外,我想弄清楚什么是/ include / linux标头,什么是/ include / asm-generic标头。它们之间如何区分?具有两个单独的头文件夹背后的逻辑是什么?它们如何相互联系? 谢谢

1
/ sys内容在Linux中过时了吗?
编辑:过时了,我并不是说不好/不必要(我同意/proc是一团糟)。模块化是一件好事,我喜欢它。我的意思是:可以在/sys其他地方找到的系统信息(保存在中)。 我真的找不到关于/sys和的太多信息/proc。除了这两个内容之外,它们都不是文件系统层次结构标准的一部分(因为它们的方式,看起来/构建方式取决于内核版本) / SYS 并不甚至有自己的man网页。/proc 有它自己的手册页,哦,男孩,它有很多解释,但我仍然有一些未提及的文件夹和文件(例如/acpi和consoles)。 /sys很新吧?在它存在之前,所有提供的信息/sys都是/proc正确的一部分吗? 题: 还是这样吗?能否以一种或另一种形式/sys找到所有信息/proc表格?那将使文档/sys过时,因为它只是用户友好设计的扩展,对吗?还是有/sys没有其他形式的系统信息/proc? 如果是这样的话,那/sys对Linux爱好者解释的地方在哪里?
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.