自己动手写操作系统
醉醉酒
人生算法
展开
-
1-3章
经过前面努力了2天,基本把环境配置好了。在dos下面共享文件的方法,也是费了不少劲头,本来可以用vm的。但我想起于渊的一句话:任何问题都会有一把钥匙去解开它。只要你用心,没有什么克服不了的。最后,终于成功把virtual pc 2007如何和宿主共享文件的方法研究出来了。因为Virtual PC 2007已经不支持DOS系统下的目录共享了,但是2004的补丁有支持,所以我们可以先下载VPC 2原创 2009-01-19 22:44:00 · 372 阅读 · 0 评论 -
控制转移(一致代码和非一致代码)
控制转移基本上可分为两种:同一任务内的控制转移和任务间的控制转移(任务切换)。同一任务内的控制转移又分为:段内转移,特权及不变的段间转移和特权级变换的段间转移。 在保护模式下,段间转移的目标位置由选择子和偏移构成的地址表示,常把它称为目标地址。 使用JMP和CALL还可分为段间直接转移和段间间接转移两类。 如果指令JMP和CALL在指令中直接含有转载 2009-02-16 09:38:00 · 617 阅读 · 0 评论 -
第5章 5.4.1
到第5章的时候,本来以为终于熬出头了,哈哈,谁知第一下就给我当头一棒。我不懂linux啊,装了red hat 在vpc下面,开始不能成功共享文件夹(因为我的vpc有问题,其实是成功共享了,但要等很久才可以出现,所以我以为失败了)。又在vbox里面装了ubuntu,奇怪的是ubuntu里面可以上网,但也共享不成功。老是说mount.vbfs失败。到了第二个问题是:vpc卡得好死,我郁闷啊,以前的原创 2009-02-08 11:55:00 · 314 阅读 · 0 评论 -
在vpc下安装Red Hat 9.0
在vpc下安装Red Hat 9.0 在VPC下安装Red Hat 9.0可能没有安装8.0那么顺利,不过如果您看过此文,也许还会非常顺利。需要注意的也是显卡:您同样要把显卡配置为S3,分辨率设为800*600,但是您要注意,在9.0里面它的驱动可能认为S3支持24位色,实际上它只支持16位色,您要更改这个设置,显示器还可以用默认的。在这里,您最好把登录界面设为:文本登录。 如果您上面原创 2009-02-03 17:45:00 · 416 阅读 · 0 评论 -
3.3.7进一步体会分页机制
DA_C EQU 98h ; 存在的只执行代码段属性值DA_CR EQU 9Ah ; 存在的可执行可读代码段属性值LABEL_DESC_CODE32:Descriptor 0, SegCode32Len - 1, DA_CR +DA_32;把DA_C 改成DA_CR在定义LABEL_DESC_CODE32里面把属性没有改好,结果这个错误导致DOS系统崩溃,但现在还不能理解DA_C与DA_原创 2009-01-30 16:18:00 · 852 阅读 · 1 评论 -
保护模式第三章
第一代码,就单单第一个代码。从开始接触,到自认为明白后。再跟Xinix去讨论,又发现不足。再继续深入学习。还自作聪明的把代码抄出来,做个全面了解。花去的时间有3天了。今天中午没事干,把代码敲了一遍。一运行。错误。在nasm里面是通过的,但在dos下面就不能正确显示出P来。对着书,对照了起码有3遍,才发现一个错误。以为可以了,在dos下,系统还是崩溃了。奇怪,太奇怪了。我还把光碟上的代码和自己的写原创 2009-01-23 20:44:00 · 434 阅读 · 0 评论 -
第4章 让操作系统走进保护模式
按着书上给的代码打进去后,把tasm装进虚拟机后,要注意一下的是:它选择的不是安装路径,而是源文件的盘。还有在虚拟机运行中,老是出现NOLoad,为什么找不到loader.bin呢?排错排了很久,最后使用老办法,发现是定义LoaderFileName db "LOADER BIN", 0;LoaderFileName db "LOADER BIN", 0 ;我还原创 2009-02-03 11:23:00 · 696 阅读 · 0 评论 -
3.3.6克勤可检用内存
在这一小节中,我开始不怎么了解DispMemSize的作用,后来本着要一定要吃透代码的信念。DispMemSize的作用一定要跟前面得到内存数的代码联系起来才可以体会里面用法。DispMemSize里面的子程序就不讨论了,因为跟理解OS没直接关系。前面得到内存数代码里面,比较容易忽视的是ES:DI,这个指向一个描述符的数据结构。这个结构体里面就是执行完得到内存数代码后,BIOS向里面填充系统映像原创 2009-01-26 20:26:00 · 620 阅读 · 1 评论 -
第三章 2.3实验
昨天赶时间去睡觉来,所以现在才把实验2,3一起写个总结。记得华姐说过,做报告就是对你实验的一个总结。那我写blog也是为了总结和以后回头看看自己走过的路。好了,废话不多说了,继续。实验2,3合起来有几个问题暂时还未能解决。Q:;有三个问题,第一个是TestRead和TestWrite ,DispAL,DispReturn要放在段[SECTION .s32]里面; 第二个问题是:显示原创 2009-01-24 09:24:00 · 572 阅读 · 0 评论 -
OS作业的第一步骤
进程用链表表示,资源也是用链表表示。类似一个十字链表。能在进程里面去查看资源。 #include#includeusing namespace std; #define Sort 5#define Number 20struct Resource{ int r_No; int max; int allocation; int need; Resource *next;};str原创 2009-05-29 20:35:00 · 382 阅读 · 0 评论