Xv6

Xv6内核分析(三.2)

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

Xv6内核分析(三.11)

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

Xv6内核分析(三.10)

main函数之tvinit 1. 中断描述符 中断描述符表idt共有256个项目,每个条目8字节,根据每个条目的类型不同,共有3种不同的门描述符如下: 在xv6中的设置idt代码如下: 注意,这个id...
阅读全文
Xv6

Xv6内核分析(三.1)

main函数之kinit1 1. kinit1概述 物理内存分配器在xv6-book中由详细的描述: 这个函数是用来初始化物理内存分配器的。可以用来分配的物理内存范围是地址空间: 其中end这个标号在...
阅读全文
Xv6

Xv6内核分析(七)

scheduler线程分析 1. scheduler函数 当检索到有一个空闲的PCB后,将PCB的地址记录在c->proc成员中。接着调用switchuvm。 2. switchuvm函数 pu...
阅读全文
Xv6

Xv6内核分析(一)

Bootloader引导 Bootloader部分的代码主要负责主核的启动,保护模式的设置等。代码主要在bootasm.S、bootmain.c中。 1.bootasm.S bootasm.S主要工作...
阅读全文
SylixOS

Wayland窗口系统(二)

4. Wayland协议实现浅析 4.1 几个重要的数据结构 4.1.1 wl_object wl_object是一个很重要的数据结构,在客户端和服务端都有此数据结构的封装,是wl_proxy、wl_...
阅读全文
SylixOS

Wayland窗口系统(一)

1. 窗口系统 1.1 窗口系统简介 任何窗口系统的主要组件通常称为显示服务器(Display Server),也可以称作窗口服务器(Window Server)或合成器(Compositor)。在窗...
阅读全文
VxWorks

VxWorks内核分析四(转)

原文:http://www.prtos.org/wind-interrupt/。 接下来我们讨论一下Wind内核的中断处理模块,中断是操作系统内核设计中非常重要的部分。由于周期性和非周期性任务的按时执...
阅读全文
VxWorks

VxWorks内核分析五(转)

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