
linux内核设计与实现
caiMAMBA001
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux内核设计与实现---chapter3进程管理
1.进程管理 进程就是出于执行期的程序(目标代码放在某种存储介质上) linux系统的线程实现的非常特别:他对线程和进程并不特别区分。对linux内核来说,线程就是一种特殊的进程罢了。 进程提供两种虚拟机制:虚拟处理器和虚拟内存。 在调用fork()结束之后,再返回点这个相同的位置上,父进程恢复执行,子进程开始执行。fork()系统调用从内核返回两次,一次放回到父进程,一次回到新产生的子进程。 fork()实际上是由clone()系统调用实现的。 进程的另一个名字叫做task,linux内核通常把进程叫做原创 2021-04-01 12:47:47 · 126 阅读 · 0 评论 -
linux内核设计与实现---chapter2
内核源码树 内核开发的特点 内核编程时既不能访问C库也不能访问标准C头文件 内核编程时必须使用GNU C 内核编程时缺乏像用户空间哪有的内存保护机制 内核编程难以执行浮点数运算 内核给每个进程只有一个很小的定长堆栈 内核支持异步中断,抢占和SMP,因此必须时刻注意同步和并发 要考虑可移植性 GNU C 内联函数(inline) 内联函数的工作方式:函数会在他所调用的位置进行展开,这么做就消除了函数调用和返回所带来的的开销(寄存器的存储和恢复)。 但是这么做的话,函数的代码会变长,就可能占用更多的原创 2021-04-01 12:24:16 · 129 阅读 · 0 评论 -
linux内核设计与实现---chapter1
中断 cpu空闲时,内核就运行一个空进程,出于检查上下文,但运行于内核空间。 单内核和微内核的设计比较 单内核:把它从整体上作为一个单独的大的过程来实现,同时也运行在一个单独的地址空间上。所以所有的内核服务都运行在一个大内核的地址空间上。内核之间的通信是微不足道的,因为大家同时运行在内核态,并身处同一个地址空间,所以内核可以直接调用函数,因此单内核具有简单和性能高的特点 微内核:微内核并不作为一个单独的大的过程来实现。相反,微内核的功能被划分为多个独立的过程,每个过程叫做一个服务器。因为每个服务器都保持独原创 2021-04-01 10:24:54 · 122 阅读 · 0 评论