Questions tagged «linux-kernel»

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

7
如何找到Linux内核系统调用的实现?
我试图mkdir通过查看内核源代码来理解一个函数的工作原理。这是一种尝试了解内核内部结构并在各种功能之间导航的尝试。我知道mkdir在中定义sys/stat.h。我找到了原型: /* Create a new directory named PATH, with permission bits MODE. */ extern int mkdir (__const char *__path, __mode_t __mode) __THROW __nonnull ((1)); 现在,我需要查看在哪个C文件中实现此功能。从源目录,我尝试了 ack "int mkdir" 哪个显示 security/inode.c 103:static int mkdir(struct inode *dir, struct dentry *dentry, int mode) tools/perf/util/util.c 4:int mkdir_p(char *path, mode_t mode) tools/perf/util/util.h 259:int mkdir_p(char *path, …

6
为什么不采用Linux作为正式的GNU内核?
尽管我在相当长一段时间内都知道了Hurd的存在及其作为官方GNU操作系统内核的使命,但我想知道多年来Linux为何不被视为官方GNU内核,因为它处于一个更好的状态比赫德? 到目前为止,Linux已经或多或少地担当了20多年的角色,但是人们可以看到GNU项目在涉及Linux方面一直在与时俱进。为什么会这样呢?是因为梦想赫德(在将来的某个时候)处于生产质量水平吗?是因为GNU项目在Linux中没有充分体现其使命吗?是否出于其他政治原因?
128 linux-kernel  gnu  hurd 



6
为什么Linux内核需要15+百万行代码?[关闭]
这个整体代码库的内容是什么? 我了解处理器体系结构的支持,安全性和虚拟化,但是我无法想象它超过60万条。 内核代码库中包含哪些历史和当前原因驱动程序? 那15+百万行是否包括每个硬件的每个驱动程序?如果是这样,那就引出了一个问题:为什么驱动程序嵌入在内核中,而不是将自动检测和安装的程序包与硬件ID分开? 对于存储受限或内存受限的设备,代码库的大小是否成问题? 如果所有这些内容都嵌入了,似乎会占用空间有限的ARM设备的内核大小。预处理器会剔除很多行吗?叫我疯了,但是我无法想象一台机器需要那么多的逻辑来运行我所了解的内核功能。 是否有证据表明,由于其不断增长的性质,其大小将在50多年后成为问题? 包含驱动程序意味着它将随着硬件制造而增长。 编辑:对于那些认为这是内核的本质的人,经过一些研究,我意识到并非总是如此。不需要这么大的内核,因为卡内基·梅隆(Carnegie Mellon)的微内核马赫(Mach)被列为示例,“通常在10,000行代码下”
109 linux-kernel 

1
在Linux中什么是受污染的内核?
在某些情况下,Linux内核可能会受到污染。例如,将专有的视频驱动程序加载到内核会污染内核。此状况可能在系统日志,内核错误消息(糟糕和紧急情况)中以及通过诸如之类的工具可见lsmod,并且一直保持到重新启动系统为止。 这是什么意思?它会影响我使用系统的能力吗?它会如何影响我的支持选项?

2
Linux系统上的“ WannaCry”:您如何保护自己?
根据Rapid7的文章,有一些易受攻击的Samba版本允许在Linux系统上远程执行代码: 尽管WannaCry勒索病毒影响了Windows系统,并且很容易识别,并且采取了明确的补救措施,但Samba漏洞将影响Linux和Unix系统,并且可能对获得或部署适当的补救措施造成重大技术障碍。 CVE-2017-7494 从3.5.0版开始的所有版本的Samba都容易受到远程代码执行漏洞的攻击,从而使恶意客户端可以将共享库上传到可写共享,然后导致服务器加载并执行它。 可能的攻击场景: 从两个因素开始: Samba漏洞在某些Linux发行版中尚未修复。 在某些Linux内核版本(例如,在4.8.0-41通用的Ubuntu内核上的CVE-2017-7308)上,存在一个未修补的本地特权升级漏洞。 攻击者可以使用本地漏洞利用漏洞访问Linux机器并提升特权,以获取root用户访问权限并安装可能的将来的勒索软件,类似于此模拟 的Linux WannaCry勒索软件。 更新资料 最新文章“警告!黑客开始使用“ SambaCry Flaw”来入侵Linux系统”展示了如何使用Sambacry缺陷来感染Linux机器。 卡巴斯基实验室的研究人员建立的蜜罐捕获了一个恶意软件活动,该活动利用SambaCry漏洞利用加密货币挖掘软件感染Linux计算机,因此该预测非常准确。 另一名安全研究员Omri Ben Bassat独立发现了同一活动,并将其命名为“ EternalMiner”。 根据研究人员的说法,在公开披露Samba漏洞并安装升级版本的“ CPUminer”(一种用于挖掘“ Monero”数字货币的加密货币挖掘软件)之后一周,一个未知的黑客组织就开始劫持Linux PC。 使用SambaCry漏洞破坏了易受攻击的计算机之后,攻击者会在目标系统上执行两个有效负载: INAebsGB.so —一个反向外壳,提供对攻击者的远程访问。 cblRWuoCc.so —包含加密货币挖掘实用程序的后门程序– CPUminer。 TrendLab报告发布于2017年7月18日:由于新威胁利用SambaCry,Linux用户被迫进行更新 如何保护Linux系统以防止受到攻击?

3
空闲的CPU进程有什么作用?
查看源代码,strace我发现使用了克隆标志CLONE_IDLETASK,该标志被描述为: #define CLONE_IDLETASK 0x00001000 /* kernel-only flag */ 在更深入地研究它之后,我发现,尽管该标志未涉及该标志,但man clone内核实际上在引导过程中使用了该标志来为机器上的每个CPU创建空闲进程(所有进程都应具有PID 0)。即,具有8个CPU的计算机将至少有7个(请参见下面的问题)这样的进程“正在运行”(注释引号)。 现在,这使我对“闲置”过程的实际作用提出了两个问题。我的假设是,它将连续执行NOP操作,直到其时间范围结束为止,并且内核分配了一个实际的进程来运行或再次分配了空闲进程(如果未使用CPU)。但是,这是一个完整的猜测。所以: 例如,在具有8个CPU的计算机上,将创建7个这样的空闲进程吗?(而一个CPU将由内核本身持有,而没有执行任何用户空间工作?) 空闲过程真的只是无限的NOP操作流吗?(或执行相同操作的循环)。 CPU使用率(例如uptime)是否仅通过空闲时间在CPU上存在了多长时间,在一段时间内不存在多少时间来简单地计算出来? PS:这个问题很可能是由于我不完全了解CPU的工作原理。即我了解程序集,时间范围和中断,但是我不知道例如CPU如何根据执行的内容使用更多或更少的能量。如果有人也能启发我,我将不胜感激。
73 linux-kernel  cpu 

2
如何显示为当前引导提供的Linux内核命令行参数?
在grub.conf配置文件中,我可以指定内核将使用的命令行参数,即: kernel /boot/kernel-3-2-1-gentoo root=/dev/sda1 vga=791 引导给定的内核后,是否有办法显示首先传递给内核的命令行参数?我已经找到sysctl, sysctl --all 但是sysctl显示所有可能的内核参数。


7
线程是否在Linux上实现为进程?
我正在阅读 Mark Mitchell,Jeffrey Oldham和Alex Samuel 所著的 Advanced Linux Programming。是2001年的,所以有点旧了。但是无论如何我都觉得很好。 但是,当它与Linux在shell输出中产生的结果有所不同时,我到了一个地步。在第92页(查看器中为116)上,第4.5章GNU / Linux线程实现始于包含以下语句的段落: GNU / Linux上的POSIX线程实现与其他许多类UNIX系统上的线程实现有一个重要的区别:在GNU / Linux上,线程被实现为进程。 这似乎是关键点,以后将用C代码进行说明。本书的输出为: main thread pid is 14608 child thread pid is 14610 在我的Ubuntu 16.04中是: main thread pid is 3615 child thread pid is 3615 ps 输出支持这一点。 我猜在2001年到现在之间一定有所改变。 下一页的下一个子章节4.5.1 Signal Handling建立在上一条语句的基础上: 信号和线程之间的交互行为在一个类UNIX系统之间有所不同。在GNU / Linux中,行为是由将线程实现为进程这一事实所决定的。 看起来这在本书的后面将变得更加重要。有人可以解释这是怎么回事吗? …


5
为什么Linux内核称为“映像”?
我经常听到人们将Linux内核称为Linux内核映像,而且我似乎无法在任何搜索引擎上找到关于为何将其称为映像的答案。 当我想到一个图像时,我只能想到两件事:磁盘的副本或照片。确定地狱不是照片图像,为什么将其称为图像?

2
了解Linux中的日志记录
据我了解,Linux内核记录到/proc/kmsg文件(主要是与硬件相关的消息)和/dev/log套接字中?还有其他地方吗 其他应用程序也能够向/proc/kmsg或发送消息/dev/log吗?最后但并非最不重要的,我是正确的,这是系统日志守护程序(rsyslog现在,syslog-ng的),它来自这两个地方检查邮件,然后分发给那些喜欢各种文件/var/log/messages或者/var/log/kern.log甚至是中央系统日志服务器?


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.