系统内核管理模块的实现2--解析内存状态信息

上一节,我们成功调用BIOS,获取内存信息,现在,我们可以显示和分析获得的相关信息,为下一步实现内存管理做准备。

2016-10-28 11:12:24

阅读数 558

评论数 0

操作系统内核管理模块的实现1-检测可用内存

操作系统的一大功能就是为运行程序分配资源,早期Dos系统时常死机或程序奔溃,一大原因就在于应用程序不能以有序合理的方式访问系统资源。在众多系统资源中,内存是系统内核必须小心处理的一块,内存分配算法,也是操作系统内核理论和开发上的重点和难点,从本节开始,我们看看内核如何有效的管理和控制内存。

2016-10-25 21:07:29

阅读数 1062

评论数 2

系统内核的洪荒之力:挪动鼠标

当我们获得鼠标发送的数据后,我们就可以根据相应的信息绘制鼠标,从而实现鼠标的挪动效果,在此之前,我们得了解,鼠标发送的数据是怎么解读的。 鼠标发送的数据,必须三个字节连在一起解读,所以我们的内核要等待鼠标发送足够的数据后才可以采取行动。前面我们看到,当鼠标被激活后,它会立马给内核发送一个字节数据...

2016-10-18 19:45:36

阅读数 666

评论数 1

让鼠标漫天飞舞:在内核中实现鼠标的中断处理

代码的调试和运行,以及更详细的讲解,请参看视频: Linux kernel Hacker, 从零构建自己的内核 上一节,我们成功实现了键盘按键的中断响应,本节,我们看如何响应鼠标的中断信号,并做相应处理。

2016-10-11 16:24:16

阅读数 1726

评论数 0

为系统内核建立中断机制

本章代码有一定难度,请参看视频获得更详细的代码开发流程: Linux kernel Hacker, 从零构建自己的内核上一节,我们绘制了鼠标图案,遗憾的是,鼠标箭头是死的,动不了,要想让鼠标移动,我们需要为内核建立中断机制。当我们移动鼠标时,鼠标会给CPU发送信号,CPU接收到信号后,终止当前的...

2016-10-01 21:14:22

阅读数 1211

评论数 0

在系统内核中绘制鼠标指针

有了桌面背景,能够显示字符串,现在在图形界面上还少了点东西,那就是鼠标指针,如果有个鼠标能在桌面里动来动去,那系统就有点意思了。就像前几节说的那样,任何图像都是二维平面上点的集合,把不同位置的点设置成不同颜色,那么我们想要的图像就显示出来了

2016-09-30 17:08:57

阅读数 1176

评论数 0

使用调色板绘制系统界面

上一节,我们已经可以使用C语言实现图像绘制,但操作系统的用户界面不可能是那种扎眼的条纹图案,这一节,我们要改进图形绘制的方法,做一个像某像样的系统界面。 本节,我们看看如何利用调色板机制绘制更加好看的系统界面

2016-09-17 18:03:19

阅读数 3650

评论数 4

利用C语言绘制操作系统图像界面

有了C语言这一利器后,不多多拿来用,那就太对不起前面的一系列努力了。那么怎么表现C语言的强大功能呢,如果还只是一味的在界面上输出几行字符,那太没意思,考虑到,我们的目标是做出像windows那样具备舒心的图像用户界面那样的系统,所以在这一节,我们由字符模式切换入画面模式,初步体验下,那些绚丽多彩的...

2016-09-13 11:39:04

阅读数 19106

评论数 1

C语言结合汇编开发系统内核

前几节,我们进入了保护模式,在保护模式下,除了寻址空间增大,运算能力增强外,还有一大好处就是能将C语言引入内核开发,因为C语言编译后的汇编代码,默认的运行环境就是保护模式,所以,只有进入保护模式,那么C语言才有可能介入到开发流程中,或许大家已经厌倦了汇编语言的晦涩,引入C语言,想必我们都能松口气。...

2016-09-08 16:52:15

阅读数 1492

评论数 0

保护模式超强的寻址功能:天空任鸟飞

X86架构下,cpu 的运行模式分两种,一种是实模式,像早期Dos那种黑底白字的命令行操作界面,可以说是实模式最好表现形式,在实模式下也只能产生这种冰冷,呆板,机械的用户体验。后来Intel的CPU进一步发展,引入了保护模式,由此,操作系统的发展进入了新的时代,在保护模式下,CPU功能进一步增强,...

2016-08-18 18:29:05

阅读数 1086

评论数 0

java开发操作系统内核:由实模式进入保护模式之32位寻址

从时模式到保护模式,是计算法技术跨时代的发展。大家想想笨拙的Dos界面,黑底白字的那种冷漠界面到win95各种色彩斑斓的窗口,两者之间的区别其实就是实模式和保护模式的天壤之别。保护模式中,最重要的一个概念莫过于”保护”二字,有了“保护”功能后,CPU为软件提供了很多的功能,当然也有了更多的限制。从...

2016-07-25 11:53:52

阅读数 1655

评论数 10

java开发操作系统内核:让内核突破512字节的限制

我们当前的系统内核,必须包含在虚拟软盘的第1扇区,由于一个扇区只有512字节,因此,系统内核的大小不可能超过512字节。但是,一个拥有完善功能的内核不可能只有512字节,因此要想越过512字节的限制,具体的做法就是做一个内核加载器,放入到第一扇区,加载器加载如内存后,再将内核从软盘加载到系统内存,...

2016-07-20 18:12:38

阅读数 1375

评论数 3

用java做操作系统内核:软盘读写

在前两节,我们将一段代码通过软盘加载到了系统内存中,并指示cpu执行加入到内存的代码,事实上,操作系统内核加载也是这么做的。只不过我们加载的代码,最大只能512 byte, 一个操作系统内核,少说也要几百兆,由此,系统内核不可能直接从软盘读入系统内存。通常的做法是,被加载进内存的512Byte程序...

2016-07-10 11:27:38

阅读数 3558

评论数 5

用java做一个最小的操作系统内核2.

上一节,我用java制作了一个虚拟软盘,当把软盘插入虚拟机,启动机器后,屏幕打印出java程序中设定的语句,然后卡死。在java代码中,有一个二进制数组,imgContent, 它里面存储的实际上是一段二进制代码,当虚拟机设置为从软盘启动后,这段代码会被bios读取到内存中,然后指示cpu去执行i...

2016-06-26 12:12:49

阅读数 2412

评论数 1

用java做一个最小的操作系统内核

用java来做操作系统内核,太搞笑了吧。如果你这么想,同时嘴上发出呵呵一笑。那么我这篇文章的目的也算达到了,评判一篇文章好坏,不就在于它是否能让读者感觉到精神的愉悦吗。如果你笑了,那表明我写了一篇好文章。呵呵!操作系统,是计算机科学中的皇冠,它作为一个平台,几乎集结了计算机科学里面的所有知识,如硬...

2016-06-21 18:32:37

阅读数 6616

评论数 5

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