SylixOS

RISCV基础开发(十二)

QEMU裸机开发之M模式切换到S模式 从m模式切换到s模式下的代码其实也不是很多,主要是设置"mstatus"和“mepc”寄存器。其实从高特权级别切换到低特权级的思路在各个架构下都差不多,从低级别到...
阅读全文
SylixOS

RISCV基础开发(二)

特权架构 处理器在架构上一般都会有几种特权模式,比如x86架构有“ring0~ring3”4种级别,一般操作系统内核和驱动运行在ring0级别,也就是最高级别,而普通的应用程序运行在ring3级别,也...
阅读全文
SylixOS

(四)SylixOS同步互斥之互斥锁

从本篇开始往后的文章主要介绍下SylixOS常用的编程接口,比如同步互斥接口、动态内存相关类接口、Cache操作接口等等,主要聚焦于驱动开发中经常使用到的内核接口。 1. 基本作用 互斥锁在Sylix...
阅读全文
Xv6

Xv6内核分析(十七)

inode内容分析 1. inode具体内容 磁盘上的Inode具体内容如下: inode的数据块在磁盘上的位置由inode的address表来记录,address表分为直接表和间接表,直接表共有12...
阅读全文
SylixOS

RISCV基础开发(十八)

QEMU OpenSBI 裸机开发之格式化打印 格式化打印代码也跟之前的基本一样,就是将字符输出函数从原来的直接操作16550寄存器改为通过SBI接口进行字符输出,其他的都一样,将printf函数定义...
阅读全文
SylixOS

(三)SylixOS开发环境

最近在学习riscv版本的xv6,加上工作上的一些事情,所以SylixOS入门系列处于停更状态。我发现如果不一直坚持学习或者写文章的话,一段时间后就会松懈下来,到周末能躺床上刷一天的手机==所以做任何...
阅读全文
SylixOS

RISCV基础开发(三)

中断和异常处理 在RISCV架构设计中,有一系列的控制和状态寄存器( Control and Status Registers)简称CSR,在三种特权级别下都有其对应的CSR,比如m模式下的命名都为m...
阅读全文
Xv6

Xv6内核分析(十五)

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