main函数之startothers 1. startothers函数 startothers函数用来启动其他从核运行,大致的思想就是:首先设置好从核需要运行的代码的地址,然后使用核间中断IPI通知从...
Xv6内核分析(三.9)
main函数之pinit pinit函数很简单,就是初始化了一个锁:
Xv6内核分析(四)
从核运行过程分析 1. entryother.S 从核的启动代码在entryother.S中,大致的流程和主核启动一样,主要包括: 设置cpu进入32位保护模式。 开启分页部件,在boot启动阶段,和...
Xv6内核分析(三.1)
main函数之kinit1 1. kinit1概述 物理内存分配器在xv6-book中由详细的描述: 这个函数是用来初始化物理内存分配器的。可以用来分配的物理内存范围是地址空间: 其中end这个标号在...
Xv6内核分析(五)
mian函数之kinit2 kinit2函数的作用是将之间的物理内存页添加到空间页链表之中: 在调用kinit2函数之后,物理内存页的申请释放就启用了锁机制。
Xv6内核分析(三.6)
main函数之ioapicinit 1. ioapic概述 ioapic的基础知识可见下面这篇博客: https://blog.csdn.net/borisjineman/article/detail...
Xv6内核分析(三.5)
main函数之picinit 由于xv6使用的是apic,所以禁止了一切pic上的中断: 具体的8259A的编程知识请见相关文档或者资料。
Xv6内核分析(三.7)
main函数之consoleinit devsw用来表示一个设备,xv6下最多有10个设备。其中console是第1个设备: consoleinit函数很简单,就是初始化了devsw中的读写操作函数指...
Xv6内核分析(三.10)
main函数之tvinit 1. 中断描述符 中断描述符表idt共有256个项目,每个条目8字节,根据每个条目的类型不同,共有3种不同的门描述符如下: 在xv6中的设置idt代码如下: 注意,这个id...