郁闷着呢~

来源:互联网 发布:美妆软件下载 编辑:程序博客网 时间:2024/04/29 10:41

最近看DDK,唧唧咕咕出来了好多概念,实在是头大,就想起以前看LINUX源码的时候了,较容易理解啊~~~那个时候自己还有点自以为是,还想自己写操作系统,现在总算悔悟过来,自己是一只小小鸟~~

但是当时的冲动和狂想还是留下了点东西,就是一些晚上靠着手机灯光写下的东西,主要涉及了内存管理,不过好象没有虚拟内存的资料了,我指的虚拟内存是和DISK交换虚拟出来的那些,当时觉得LINUX的管理方案好复杂,于是自己就弄了点简单但是比较浪费的方法写了个KMalloc和Malloc函数,资料找不到了:(然后有中断管理的,完全的模仿LINUX的,记得IRQ是动态分配给设备的,驱动需要操作设备的时候OS先看该设备有没有IRQ绑定,有就查询设备是否忙,忙就插入到设备请求列队,不忙就就发控制指令了;要是设备没有被指定IRQ,要就要申请IRQ,要是申请成功了,就发送控制代码,没有成功就等待有空闲的IRQ出现。超级简化的模型,实际中应该复杂的多了,在我的记录上只能找到这些。最后涉及的就是进程/线程管理了,看自己写的那些丑的要死的字,真是难受,也不知道是LINUX源码的注录还是自己的想法了,反正就看到自己定义了一个PCB结构,然后PCB结构里有PCB* next;TSS tss;Reg387 reg387;....next自然完成PCB链的工作,tss可以看出完全的依赖于INTEL的CPU了,因为在INTEL的x86模型里,TSS会在CPL变换也就是平时说的进入RING0和退回RING3时保存当前机器的状态,那样的好处就是很方便的完成环境切换,每个PCB有TSS,好象和WINDOWS里的CONTEXT结构差不多,不过CONTEXT复杂多了,看定义我都看的晕~如果OS很依赖于CPU,很多东西实现起来还是很方便的,最后是一段关于进程切换的描述,我也不知道详细不详细,另外我的思维都是在单CPU上的,比较狭隘~

丢失了自己的KMalloc函数的源码还是很遗憾的,好象还有KVmap之类的函数,现在想想以前自己狂热多了,现在不行了~

DDK么还是要看的,但是到现在还是不明白是怎么回事,继续努力了!

原创粉丝点击