spinlock分析 1. initlock spinlock分析spinlock: 主要是初始化锁的状态为0,并记录锁的名字用于调试分析。 2. pushcli和popcli 在xv6中,用spin...
SimpleOS开发(5)添加内核物理页管理器
1. 实现互斥锁雏形 内核的各个功能组件后续都有申请释放内存的需求,所以需要实现内存管理。在实现内存管理之前我们需要先实现互斥锁,因为通过下面我们看出内存管理时通过链表实现的,操作链表时需要加锁,所以...
Xv6内核分析(三.4)
main函数之seginit 1. seginit函数 seginit是用于设置每个cpu自己的GDT全局描述符表: 首先获得当前cpu的结构,然后对其中的gdt初始化,最后加载gdt寄存器。 1.1...
浅谈编译(三)
Vulkan 1. Vulkan简介 Vulkan是Khronos组织制定的“下一代”开放的图形显示API,是与DirectX12能够匹敌的GPU API标准。 这里我们仅仅讨论Vulkan着色器相关...
Xv6内核分析(三.8)
main函数之uartinit uart的具体编程知识见8250相关资料。 由代码可知,在初始化了uart之后,调用ioapicenable使能了uart中断,处理中断的cpu设置为了主核???
Xv6内核分析(十四)
日志子系统分析 1. 日志子系统简介 Xv6中的log日志子系统主要用于系统以外崩溃挥着掉电后,再次运行时能够恢复运行。xv6中的磁盘中的文件系统布局如下: 日志区域由一个日志头加上30...
Xv6内核分析(三.2)
main函数之kvmalloc 1. kvmalloc函数 这个函数主要就是分配一个页表给内核进程用于调度: kpgdir是一个全局变量,用于记录内核进程的页目录基址,kvmalloc获得页目录后,调...
VxWorks内核分析五(转)
本篇博文,我们该谈到Wind内核的内存管理模块了,嵌入式操作系统中, 内存的管理及分配占据着极为重要的位置, 因为在嵌入式系统中, 存储容量极为有限, 而且还受到体积、成本的限制, 更重要的是其对系统...
VxWorks内核分析三(转)
原文:http://www.prtos.org/vxworks-wind-scheduler/。 本篇文章分析Wind内核调度器的设计原理以及其工作流程,设计支持多任务RTOS的关键是设计调度器,Wi...
Xv6内核分析(十一)
sleep与wakeup分析 1. 案例 首先来看下xv6的sleep和wakeup使用例子: cquire(lock) sleep(chan,lock) release(lock) acquire(...
Xv6内核分析(三.11)
main函数之startothers 1. startothers函数 startothers函数用来启动其他从核运行,大致的思想就是:首先设置好从核需要运行的代码的地址,然后使用核间中断IPI通知从...
VxWorks内核分析七(转)
为了实现应用层程序的平台无关性,操作系统为应用层提供了一套标准的接口函数,这些接口函数在所有的平台上都保持一致,只是随着平台的变化,底层驱动或接近驱动部分操作系统中间层可能会随着调整。这样可以使用户程...