
linux 内核
文章平均质量分 78
roma823
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
switch_to及ret_from_sys_call控制任务的切换与返回
当进程A在用户态下执行着,出现了系统调用(int 0x80),CPU转而执行_system_call(system_call.s L80)中断处理过程, _system_call 保持了进程A在用户态时的现场信息,然后执行call _sys_call_table(, %eax, 4)指令,当执行完本指令时,进程 A请求的系统调用已经完成了,_system_call剩下的代码是该系统调用中断处理过程的退出阶段。 当执行到jne reschedule时,处于内核态的进程A希望主原创 2011-05-11 22:26:00 · 2364 阅读 · 0 评论 -
linux0.11 引导启动程序目录boot/分析
boot/包含三个汇编文件:bootsect.s,setup.s,head.s。bootsect.s程序是磁盘引导块程序,编译后会驻留在磁盘的第一个扇区中(引导扇区,0磁道,0磁头,第一个扇区),在PC加电ROM-BIOS自检后,将被BIOS加载到内存0X7C00处执行。setup.s程序主要用于读取机器的硬件配置参数,把内核模块system移动到适当的内存位置处。head.s程序会被编译连接在system模块的最前部分,主要进行硬件设备的探测设置和内存管理页面的初始化设置。 BIOS:P原创 2011-04-18 11:44:00 · 915 阅读 · 0 评论 -
任务0的内核堆栈,用户堆栈
描述任务0的内核堆栈和用户堆栈是如何产生的: linux0.11系统共使用了4种堆栈:系统初始化时临时使用的堆栈;供内核程序自己使用的堆栈(内核堆栈),只有一个,位于系统 地址空间固定的位置,也就是后来任务0的用户态堆栈;每个任务通过系统调用,执行内核程序时使用的堆栈,也即任务的内核态 堆栈,每个任务都有自己独立的内核态堆栈;任务在用户态执行的堆栈,位于任务(进程)地址空间的末端,即任务的用户态堆栈。 从head.s程序起,系统正式在保护模式下运行,此时堆栈段被设置原创 2011-04-28 11:40:00 · 2082 阅读 · 0 评论