内核和用户线程之间是否存在关系?
一些操作系统教科书称" 将一个(多个)用户线程映射到一个(多个)内核线程".这是什么地图意思吗?
标题可能不够清晰,因为我不知道如何定义我的问题.
我理解Pthread是一个符合POSIX标准的线程库(关于POSIX,请参阅维基百科:http://en.wikipedia.org/wiki/Posix).它可以在类Unix操作系统中使用.
关于线程,我读到有三种不同的模型:
用户级线程:内核不知道它.用户自己创建/实现/销毁线程.
内核级线程:内核直接支持进程中的多个控制线程.
轻量级进程(LWP):由内核调度但可以与用户线程绑定.
你有没有看到我的困惑?当我调用pthread_create()创建一个线程时,我是否创建了一个用户级线程?大概吧.那么我可以说,Pthread为线程提供了用户级解决方案吗?它无法操纵内核/ LWP?
我正在寻找一种方法来在iOS上获得绝对的,始终递增的系统正常运行时间.
它应该返回自设备上次重新启动以来的时间,并且不受系统日期更改的影响.
当设备处于休眠状态(所有我能找到任何方法暂停CACurrentMediaTime,[NSProcessInfo systemUptime],mach_absolute_time),或改变系统日期变更时(sysctl/KERN_BOOTTIME).
有任何想法吗?
我需要查询现有规则,以及能够轻松添加和删除规则.我没有找到任何API来做这件事.有什么东西我不见了吗?
我最接近解决方案的是使用iptables-save | iptables-xml查询和手动调用iptables命令本身来添加/删除规则.我考虑的另一个解决方案是简单地从我的应用程序数据库中重新生成整个规则集并刷新整个链,然后再次应用它.但我想避免这种情况,因为我不想丢弃任何数据包 - 除非有一种方法可以原子地执行此操作.我想知道是否有更好的方法.
C中的API会很棒; 但是,因为我打算将它构建成一个独立的suid程序,所以用任何语言执行此操作的库也可以.
Linux如何确定它将用于进程的下一个PID?这个问题的目的是为了更好地理解Linux内核.不要害怕发布内核源代码.如果顺序分配PID,Linux如何填补空白?当它到达终点时会发生什么?
例如,如果我从Apache运行一个PHP脚本,那么<?php print(getmypid());?>在刷新时会打印出相同的PID几分钟.这段时间是apache接收的请求数量的函数.即使只有一个客户端,PID最终也会改变.
当PID改变时,它将是一个接近的数字,但有多近?该数字似乎并不完全是连续的.如果我这样做,ps aux | grep apache我会得到相当多的过程:

Linux如何选择下一个号码?前几个PID仍在运行,以及最近打印的PID.apache如何选择重用这些PID?
编程不是我的主要工作,虽然我喜欢它,有时也会得到报酬.多年以来我一直听说Linux和我的朋友们向我展示了许多*nixes(或*nici?),尽管我坚持使用Mac OS.
您是否认为我可以欣赏Linux内核的任何部分,这将有助于我理解整个内容是什么?例如,Linux与Darwin有何不同?
我是用汇编程序和DOS长大的,所以像中断或低级别C这样的东西不应成为理解的障碍.但最后我对高级概念更感兴趣,比如线程或网络堆栈 - 我知道不同的操作系统会以不同的方式执行它们.我正在寻找有趣,轻松和愉快的事情,比如深夜阅读.
(注意:制作CW,以防万一)
更新:我找了一些文档并开始阅读:
我一直被内核黑客和嵌入式系统所吸引.
开始乱搞这些东西有没有人有很好的教程(+容易获得的硬件)?
像写作驱动程序等工具包,有很好的文档,价格合理吗?
谢谢!
在看到这个关于保护你的应用程序不被破解的问题后,我看到顶级回答者提到了能够看到设备是否因内核中的某些内部不平衡而被越狱的问题.仔细研究了一下,我发现了内核架构概述指南,并了解了与Mach-BSD内核交互的方法.我需要知道的是:我在寻找什么?当设备在内核的上下文中被越狱时,是否存在某种键或内部状态会发生变化?
要清楚,我不是在寻找代码(我知道如何自己做这些事情),我正在寻找寻找的东西......听起来很奇怪.我已经看到了链接问题中的答案,我知道它们有效,但我想知道一个全内核路由,这似乎是一种通用而有效的方法来检查而不是搜索可能会更改或删除密钥的目录可能有不同的名字.
我也不打算因为盗版而禁用应用程序的任何功能(只是根据条件显示消息或某些内容).
我试图找到需要在Linux内核中修复的错误,但我不知道在哪里看.我在Youtube上观看了Greg Kroah-Hartman的视频"如何提交你的第一个Linux内核补丁",但他并没有真正提到在哪里找到需要修复的漏洞.
在视频中,他简要提到了邮件列表并在内核代码中查看了TODO.有谁知道我可以加入邮件列表?另外,我找到了内核Bugzilla,但根据Kernel.org,只列出了2.6的bug.我实际上注册了,但是我只是发现了一个我感兴趣的错误并尝试修复它,如果它还没有在最新的内核上修复?它是否已被分配给某人是否重要?
如果我能找到一个列出所有现有错误列表的站点,那么我会找到一个低优先级和低严重性的东西.我真的在寻找一个相对容易修复的bug,这样我就可以学习绳索并按照自己的方式工作.
任何建议,输入,阅读网站等任何人都将不胜感激.感谢您阅读/回答.=)
我想知道是否有办法重新启动ipython内核而不关闭它,就像笔记本中存在的内核重启功能一样.我试过,%reset但似乎没有清除进口.