SylixOS

SylixOS驱动中锁的使用

在驱动开发中,有时候配合app测试之后,使用ts等命令发现只能打印出头部信息,主体信息无法打印,如下: 原因:驱动中锁使用不规范导致系统死锁。 驱动测试代码: #define __SYLIXOS_KE...
阅读全文
SylixOS

SylixOS之Linux红黑树

1.设计数据结构 SylixOS内核中提供了简单的红黑树的操作,是裁剪自Linux的红黑树的代码。 1.1 定义红黑树root结点 通过LW_TREE_RB_ROOT定义一个root结点: struc...
阅读全文
Xv6

Xv6内核分析(十五)

block 分配器 文件和目录的内容存在磁盘块中,磁盘块都从一个空闲块池中分配出来。xv6 的块分配器包含一个磁盘上的空闲块位图,每个块占一个位。引导区,超级块,i 节点块和位图块的位永远都被置为有效...
阅读全文
SimpleOS

SimpleOS开发(8)改进进程调度

1. 系统接口名称修改 为了方便使用系统接口以及辨识系统接口,需要将系统接口的命名进行规范。这里的系统接口是指通用功能接口,比如开关中断、申请释放内存等等,simpleos采用简单的"os_"前缀来命...
阅读全文
Xv6

Xv6内核分析(十八)

目录实现分析 1. Xv6目录简介 在xv6中目录的也是用inode来表示的,只是inode中的type字段为T_DIR。普通文件的数据块中保存的是文件的内容,但是目录inode的数据块中保存的是一系...
阅读全文
Xv6

Xv6内核分析(八)

新进程运行分析 进程刚创建时的内核栈分布如下: 当从swtch中的ret返回后,新进程回到forkret中执行。 forkret首先会释放ptable.lock这个锁,这个锁是在scheduler线程...
阅读全文
Xv6

Xv6内核分析(九)

ide硬盘驱动分析 1. 磁盘驱动程序 磁盘驱动程序用结构体 buf(称为缓冲区)来表示一个磁盘扇区。每一个缓冲区表示磁盘设备上的一个扇区。域 dev 和 sector 给出了设备号和扇区号,域 da...
阅读全文
SylixOS

浅谈编译(二)

OpenGL 1. OpenGL渲染管线 管线的英文名叫pipeline,其实翻译成流水线更贴切形象一点,渲染管线就是图形图像从数据一步一步形成最终输出的画面所要经历的各种操作过程。数据经过一个操作后...
阅读全文