QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 931|回复: 5

关于linux的核心态

[复制链接]
发表于 2005-11-9 11:59:23 | 显示全部楼层 |阅读模式
linux系统的核心堆栈态是怎么回事?在用户进程的调用中,是如何转为内核进程的呢?内核数据段及代码段又是如何在内存中分配的呢?若内核进程中存在堆数据段,操作系统又是如何清空堆利用内存的呢?
发表于 2005-11-9 12:12:06 | 显示全部楼层
不知道
回复

使用道具 举报

发表于 2005-11-9 13:12:13 | 显示全部楼层
问题面太广了,回答你的问题可以写一本书了,自己看内核的书吧。
回复

使用道具 举报

发表于 2005-11-10 05:34:15 | 显示全部楼层
嘿嘿,很好的论文题目……
回复

使用道具 举报

发表于 2005-11-10 12:49:09 | 显示全部楼层
http://www.gelato.unsw.edu.au/~d ... rnel-api/index.html
这里有linux kernel api,看看有没有帮助
还有中文版的,不过是繁体
http://vovo2000.com/type-lab/lin ... nux-kernel-api.html
回复

使用道具 举报

发表于 2005-11-10 15:21:48 | 显示全部楼层
早上为了解决一个 futex 的问题,翻了翻 R.Love 的 LKD,顺便总结如下:

用户态程序利用系统调用接口,通过 int 0x80 中断“陷入”核心态。
系统启动时,核心会被加载到内存的特定位置,并在启动每个用户态进程的时候将自身映射到用户进程的高2G地址空间。
内核有多组不同层次的内存管理函数,包括 kmalloc / kfree 到底层的 alloc_pages / free_pages 等,以及其它包括 slab 分配器等,不一而足。

真对内核有兴趣的,可以去看看 Robert Love 的 "Linux Kernel Development" 2nd,国内不知道有没有中文版(我的是 1st E 的中文版)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 04:26 , Processed in 0.042630 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表