Tag: 内核

我如何以编程方式pipe理iptables规则?

我需要查询现有的规则,以及能够轻松添加和删除规则。 我还没有find任何API来做到这一点。 有什么我失踪? 最接近我的解决scheme是使用iptables-save | iptables-xml iptables-save | iptables-xml用于查询和手动调用iptables命令本身来添加/删除规则。 我考虑过的另一个解决scheme是简单地将整个规则集从我的应用程序的数据库中重新生成,并刷新整个链,然后再次应用它。 但我想避免这种情况,因为我不想丢弃任何数据包 – 除非有办法自动执行此操作。 我想知道是否有更好的方法。 C中的API将会很棒; 不过,因为我打算把它build成一个独立的suid程序,所以用这种语言来做这件事情的图书馆也不错。

Linux如何确定下一个PID?

Linux如何确定下一个将用于进程的PID? 这个问题的目的是为了更好地理解Linux内核。 不要害怕发布内核源代码。 如果按顺序分配PID,Linux如何填补空白? 到底会发生什么? 例如,如果我从Apache运行一个PHP脚本来执行<?php print(getmypid());?>在刷新时打印出相同的PID几分钟。 这段时间是apache接收多less个请求的函数。 即使只有一个客户端,PID最终也会改变。 当PID改变时,它将是一个接近的数字,但有多接近? 这个数字看起来并不完全是连续的。 如果我做一个ps aux | grep apache ps aux | grep apache我得到了相当数量的进程: Linux如何select下一个数字? 前几个PID仍在运行,以及最近打印的PID。 apache如何select重用这些PID?

越狱的内核有什么变化?

看到这个问题 ,保护您的应用程序不被破解,我看到最高回答者提到了能够看到一个设备是否由于内核内部的不平衡而越狱。 仔细研究了一下,我发现了内核体系结构概述指南,并且知道了如何与Mach-BSD内核交互的方法。 我需要知道的是:我在找什么? 当设备在内核环境中越狱时,是否有某种键或内部状态发生变化? 要清楚,我不是在寻找代码(我知道如何自己做这些事情),我正在寻找什么寻找…听起来很奇怪。 我已经看到了链接问题的答案,我知道它们工作,但我想知道所有的内核路由,这似乎更通用和有效的方式来检查,而不是search可能会改变或plist键的目录可能有不同的名字。 我也不打算因盗版而禁用应用程序的任何function(只是根据条件显示消息或其他内容)。

我可以阅读Linux内核的哪些部分?

编程不是我的主要工作,虽然我喜欢它,有时得到报酬。 多年以来,我一直在听说Linux,我的朋友们向我展示了许多* nixes(或* nici?),尽pipe我坚持使用Mac OS。 你是否认为我可以欣赏Linux内核的任何部分,这将帮助我理解什么是整体的东西? 例如,Linux与Darwin有什么不同? 我已经和汇编和DOS一起成长起来了,所以像中断或低级C这样的东西不应该成为理解的障碍。 但是最后我对高级概念更感兴趣,比如线程或者networking堆栈 – 我知道不同的操作系统会有不同的操作系统。 而且我正在寻找一些有趣,轻松和愉快的东西,比如深夜阅读。 (注:做了一个CW,以防万一) 更新:我找了一些文档,并开始阅读: 不可靠的locking指南

在家里学习内核黑客和embedded式开发?

我一直被内核入侵和embedded式系统所吸引。 有没有人得到很好的教程(+易于使用的硬件)开始混淆这样的东西? 有些东西就像用于编写驱动程序的工具包一样,它们具有良好的文档并且价格合理。 谢谢!

如何configurationmodprobe来查找我的模块?

我试图让一个内核模块在启动时加载。 如果我运行insmod /path/to/module.ko ,它工作正常。 但每次重新启动都必须重复。 如果我运行modprobe /path/to/module.ko ,它找不到该模块。 我知道modprobe使用了一个configuration文件,但是在/ etc / modules中join/path/to/module.ko之后,我无法加载模块。 什么是正确的configuration?

如何重新编译一个单一的内核模块?

通常内核源码存放在/usr/src/linux-2.6.x/ 。 为了避免重新编译整个内核,如果我修改模块的源代码,我该如何重新编译模块?

在Linux内核的devise中,什么是好的和坏的东西?

我不是内核代码的主人,但是有一些代码结构的基本概念。 在这篇文章中,我们可以讨论内核devise中的优点和缺点。 更新:不,这不是作业。 如果是这样的话,我会提到的。 看到这个: https : //stackoverflow.com/questions/1548442/i-know-how-to-program-now-how-do-i-learn-to-design 大家都称赞Linux内核的devise。 让我们列出在devise内核时所采取的好的和坏的devise决策。

解释段错误消息

以下段错误消息的正确解释是什么? segfault at 10 ip 00007f9bebcca90d sp 00007fffb62705f0 error 4 in libQtWebKit.so.4.5.2[7f9beb83a000+f6f000] segfault at 10 ip 00007fa44d78890d sp 00007fff43f6b720 error 4 in libQtWebKit.so.4.5.2[7fa44d2f8000+f6f000] segfault at 11 ip 00007f2b0022acee sp 00007fff368ea610 error 4 in libQtWebKit.so.4.5.2[7f2aff9f7000+f6f000] segfault at 11 ip 00007f24b21adcee sp 00007fff7379ded0 error 4 in libQtWebKit.so.4.5.2[7f24b197a000+f6f000]

什么是结构中的variables名之前的点?

看着linux内核源码,我发现这个: static struct tty_operations serial_ops = { .open = tiny_open, .close = tiny_close, .write = tiny_write, .write_room = tiny_write_room, .set_termios = tiny_set_termios, }; 在C中我从来没有见过这样的符号。为什么在variables名前面有一个点?