手写一个操作系统

前言

目前成熟的操作系统有很多,但随着版本的不断更新,以及日益增多的功能需求,操作系统的“体积”逐渐增大,对于我这种只想了解其原理的人来说很不友好(尤其是那一堆宏,你都不知道有没有用,也不清楚在哪预定义了)。于是便跟着各路大神,结合实际情况,糅合了一个简化版的“操作系统”,时隔较久,已忘记都参考哪了,在此只是记录。

原理

        所有的C语言代码,最后转化为二进制的指令码,实际上都是操作寄存器和内存在一定条件下交换指定的数据。在操作系统中,每个任务拥有自己的内存(栈),但寄存器只有一份(所有任务共享一套硬件寄存器),因此操作系统的实质为:引导任务有序的分时复用寄存器。

这里的分时复用,和中断服务不能说及其相似,只能说“一模一样”。

        *中断的执行流为

                任务执行--->中断请求--->保护现场--->响应中断--->恢复现场--->任务执行。

        *任务的切换流为:

        任务1执行--->切换请求--->保护任务1栈--->查找任务--->恢复任务2栈--->执行任务2。

这不就中断的拓展版嘛,接下来我们实现这个流程。

千里之行,始于足下。流程有了,接着我们把环境搭起来,这里先介绍寄存器。

</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值