自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 第六步:继续完善域结构并实现键盘模块与视频模块的交互

随着编写的不断深入,整个工程变得越来越大了。以前的一些文件,这里那里偶尔需要进行一下小的改动。单个文件的代码量也越来愈大。现今再一个一个文件的代码贴出来,就太占篇幅了。所以接下来的帖子里,我将直接给出下载链接,免得想要实际运行一下程序的朋友们需要粘贴来粘贴去。 我将所有的代码...

2010-06-15 20:33:00

阅读数 789

评论数 1

原创 第五步:进一步完善域结构并根据域结构重新编写键盘驱动

此次,对域结构进行了进一步完善,除了“子域”的概念没有出来外,域结构的最基本特性已经展现出来了。下面就对“域”的一些特点进行一下简单总结。然后利用“域”来重新实现键盘驱动程序。 一个域,包含以下几个基本要素: 1.生命值 2.(主动)动作函数 //actio...

2010-06-15 20:12:00

阅读数 851

评论数 0

原创 第四步:创建键盘中断处理模块和初步搭建程序执行系统

键盘中断处理模块:    在前一步,已经可以对键盘中断有反应了,但是按下一次键盘按钮后,就不再反应了。这是因为,必须要向键盘数据端口取出从键盘传来的扫描码后,才会继续等待与保存下一个键盘中断产生的扫描码。 t_8 scan_code = in_byte(KB_DATA); //获取扫描码,KB_...

2010-05-27 20:27:00

阅读数 1322

评论数 0

原创 第三步:初步建立中断异常处理机制

建立中断异常处理机制,主要就是对8259A的初始化,建立中断描述符表。因为要对十来个已定义的异常进行处理,再加上16个外部中断的处理,代码量就显得很庞大了。因为一时间也想不出更好的处理方案,所以就照搬《自己动手写操作系统》里的那一套方法用着先…… 具体的初始化流程为: kernel -> i...

2010-05-17 04:19:00

阅读数 1205

评论数 0

原创 第二步:在内核添加屏幕输出函数

这一步,主要是一个过渡,为将来的工作做准备。在这里的主要工作是整理代码与添加字符串与int型数值的输出函数。 在yc09中,编译后的二进制文件,函数似乎是按照在代码中的先后顺序排列的,然后再在末尾放置所有的变量。在整个内核中,是以kernel.c文件为核心。在后面添加任何模块,都是在kernel....

2010-05-15 00:52:00

阅读数 1190

评论数 0

原创 第一步:加载内核到内存中

      在 操作系统学习笔记 里基本完成了《自己动手写操作系统》第三章的几个实验(除了分页机制实验外)。下面就要迈开编写自己的操作系统这万里长征的第一步了。       在迈出第一步前,有几件事要简要说明一下。      首先,为将要实现的操作系统命名为:maios。请不要问我这个名称的含义是...

2010-05-14 00:33:00

阅读数 3040

评论数 2

原创 猫吃老鼠问题

今天在看雪看到这个“猫吃老鼠问题”的帖子,和当初学编程时的一个叫做“约瑟夫环问题”类似。自己按照数学的方法分析了一下,得到一个数学算法。 问题描述:      现有n个老鼠围成一圆圈,有一只猫从任意位置开始吃老鼠,每次都隔一个老鼠吃,请给出最后一个老鼠的编号?题目要求是任给老鼠数n,输出猫最后吃的...

2010-04-18 18:53:00

阅读数 1037

评论数 0

原创 汉诺塔问题算法(c语言控制台动画演示版)

递归思想非常简单也是最常见的算法之一,其中一代表例题就是汉诺塔问题。解题的算法很简单:void Hanoi(int n,int A,int B,int C){    if(n>0)    {        Hanoi(n-1,a,c,b);        move(a,b);        ...

2010-03-23 15:45:00

阅读数 6287

评论数 0

原创 操作系统实验七:保护模式之中断测试实验

我对中断的理解:    中断,顾名思义,就是在遇到特殊的情况时,停下当前正在做的事情,转去干其他(根据特殊情况预先设计好的)事情,完成后(并不一定非要)再继续之前做的事情。   首先说说“去干其他(根据特殊情况预先设计好的)事情”。   我们可以预先设计好256件事情(处理函数),然后使用0~25...

2010-02-15 00:13:00

阅读数 2092

评论数 0

原创 操作系统实验六:保护模式之使用调用门提升特权级

对IA32分段机制中特权级的个人总结: 在IA32的分段机制里,分为4个特权等级(ring0~ring3):      Level0                高(内层)    L e v e l 1                              L  e  v  e  l  2 ...

2010-02-14 23:42:00

阅读数 2620

评论数 0

原创 操作系统实验五:保护模式之初步认知门任务(求助:如何使用其他指令替代或模拟retf指令)

向汇编高手求助:      此次实验中需要用到retf指令在调用门任务后返回。可是yc09编译器不支持retf指令。而我使用ret指令无法正确跳转返回。      因为对汇编不熟,胡乱试了许多方法后依然无法解决,无奈之下,只好在编译好代码后直接修改机器指令码。希望有路过的高手、大牛等告说我在不换编...

2010-02-03 21:15:00

阅读数 1772

评论数 2

原创 操作系统实验四:保护模式之局部任务(LDT)初探

      通过前几次实验,对于实模式与保护模式间的跳转已经有了充分认知。此次实验与接下来的实验主要集中在认识保护模式下的一些特性,如多任务的基础(局部任务LDT)、分页机制、中断、异常、I/O等。为了尽可能将实验设计的简单,我尽量将以上实验压缩在引导扇区的512字节内。为了节省空间,我将pm16...

2010-01-30 19:44:00

阅读数 1191

评论数 0

原创 操作系统实验三:实模式与保护模式间自由跳转

      此次实验,是在  操作系统实验二:从实模式跳转到保护模式  基础上的进一步实验。实验实现的内容很简单,一开始进入实模式,然后跳转到保护模式,然后再跳转回实模式,然后再跳转到保护模式,如此不断循环。 从实模式调转到保护模式步骤:1.准备好GDT2.使用lgdt指令加载gdtr3.打开地址...

2010-01-24 02:54:00

阅读数 1951

评论数 0

原创 操作系统实验二:从实模式跳转到保护模式

写在前面的话:      编写这一个实验实在是让我感到惭愧,捣鼓了许多次,也失败了许多次,才好不容易才正确跳转到保护模式。想当初我按照《自己动手写操作系统》直接打代码,用nasm编译运行,尽管也会出现一些小错误。但仔细对照书或直接拉出源代码来对比一下就ok了。自以为已经完全弄懂了,如今换个编译器,...

2010-01-13 05:53:00

阅读数 1792

评论数 0

原创 操作系统实验一:在引导扇区编写显示字符串的引导程序

写在前面的话:      一直以来就想要自己动手写一个简单的操作系统,可惜水平有限,在linux下编译安装一个程序几天都没有成功,更不用说研究Linux的内核代码了。后来买来minix的书籍,看了半个月,也不知道如何开始写自己的第一行代码……无意中发现于源写的《自己动手写操作系统》,终于让我真正踏...

2010-01-12 02:09:00

阅读数 3635

评论数 9

提示
确定要删除当前文章?
取消 删除