Xv6

Xv6内核分析(十)

spinlock分析 1. initlock spinlock分析spinlock: 主要是初始化锁的状态为0,并记录锁的名字用于调试分析。 2. pushcli和popcli 在xv6中,用spin...
阅读全文
Xv6

Xv6内核分析(三.4)

main函数之seginit 1. seginit函数 seginit是用于设置每个cpu自己的GDT全局描述符表: 首先获得当前cpu的结构,然后对其中的gdt初始化,最后加载gdt寄存器。 1.1...
阅读全文
SylixOS

浅谈编译(三)

Vulkan 1. Vulkan简介 Vulkan是Khronos组织制定的“下一代”开放的图形显示API,是与DirectX12能够匹敌的GPU API标准。 这里我们仅仅讨论Vulkan着色器相关...
阅读全文
Xv6

Xv6内核分析(三.8)

main函数之uartinit uart的具体编程知识见8250相关资料。 由代码可知,在初始化了uart之后,调用ioapicenable使能了uart中断,处理中断的cpu设置为了主核???
阅读全文
Xv6

Xv6内核分析(十四)

日志子系统分析 1. 日志子系统简介 Xv6中的log日志子系统主要用于系统以外崩溃挥着掉电后,再次运行时能够恢复运行。xv6中的磁盘中的文件系统布局如下:   日志区域由一个日志头加上30...
阅读全文
Xv6

Xv6内核分析(三.2)

main函数之kvmalloc 1. kvmalloc函数 这个函数主要就是分配一个页表给内核进程用于调度: kpgdir是一个全局变量,用于记录内核进程的页目录基址,kvmalloc获得页目录后,调...
阅读全文
VxWorks

VxWorks内核分析五(转)

本篇博文,我们该谈到Wind内核的内存管理模块了,嵌入式操作系统中, 内存的管理及分配占据着极为重要的位置, 因为在嵌入式系统中, 存储容量极为有限, 而且还受到体积、成本的限制, 更重要的是其对系统...
阅读全文
Xv6

Xv6内核分析(三.11)

main函数之startothers 1. startothers函数 startothers函数用来启动其他从核运行,大致的思想就是:首先设置好从核需要运行的代码的地址,然后使用核间中断IPI通知从...
阅读全文
VxWorks

VxWorks内核分析七(转)

为了实现应用层程序的平台无关性,操作系统为应用层提供了一套标准的接口函数,这些接口函数在所有的平台上都保持一致,只是随着平台的变化,底层驱动或接近驱动部分操作系统中间层可能会随着调整。这样可以使用户程...
阅读全文