首页
社区
课程
招聘
[分享]发个小型os玩玩 GpLittle
发表于: 2011-10-28 12:38 3431

[分享]发个小型os玩玩 GpLittle

2011-10-28 12:38
3431
[LEFT][LEFT]What is GpLittle?[/LEFT]
[LEFT]GpLittle 是一个用来学习操作系统原理的一个还称不上OSOS,是我业余时候玩的一个小东东,引导和加载程序使用汇编写的,后面的内核用C写的,开发环境是WinXPWin7下的Cygwin构建的gcc环境,需要运行在x86系列的CPU上,而且经过测试在BochsVMWAREVitualBox和我的本本上都可以正常运行。

[/LEFT]
[LEFT]偶起初写这个滴目的就是想试着做一个系统去了解现在一些操作系统像WindowsLinux他们的底层原理,而事实上,通过这个系统我确实了解到很多底层知识,并且提高了许多专业方面的技能,像C语言和汇编语言水平,还对x86系列CPU的运行架构有了一个比较贴切的理解,比如通过修改GDT表项中的某一位就可以影响到这个段的的一个界限,比如VM86是怎么实现的等等。当然这个东东还可以扩展,可以给他添上多进程,内存管理,文件系统,那样的话他就看起来更像一个OS了。

如果你用任何问题,可以通过我的Email联系我:guapibai@vip.qq.com [/LEFT]
[LEFT]使用许可[/LEFT]
[LEFT]此版本不受限制,你可以自由复制,传播此代码. [/LEFT]
[LEFT]系统结构[/LEFT]
[LEFT]GpLittle不能算一个内核,更应该像是一个运行在Ring0的程序,这个程序可以访问4GB的内存空间,自己位于1MB空间下不和BIOS以及中断向量冲突的地址空间内,它通过一个消息泵和键盘鼠标发生交互,支持时钟,包含一个shell,键盘驱动,鼠标驱动,ne2k网卡驱动,VM86,没有进程管理,没有内存管理,没有文件系统,所以它足够简单让你来看懂并且进行学习扩展,就好比前段时间我就在这个系统完成了ne2k网卡驱动,并且实现了一个简单的TCP/IP,并在Bochs模拟器上启动系统之后向主机发送HTTP请求,成功收到并解包主机发过来网页信息。 [/LEFT]
[LEFT]特点[/LEFT]
[LEFT]· Kernel [/LEFT]
[LEFT]o Simple Shell [/LEFT]
[LEFT]o VM86,可以在保护模式下调用BIOS [/LEFT]
[LEFT]o 消息泵,键盘鼠标中断处理程序会将它们的消息通过封装,放到这个系统消息队列中,供Shell取用 [/LEFT]
[LEFT]· libgui[/LEFT]
[LEFT]图形模式下的一些绘制函数,并且提供了一个很有意思的模拟WINDOWSCMD命令行应用的窗口。[/LEFT]
[LEFT][/LEFT]
[LEFT]· drivers[/LEFT]
[LEFT]o 键盘[/LEFT]
[LEFT]o 鼠标[/LEFT]
[LEFT]o Ne2k[/LEFT]
[LEFT]o Vesa[/LEFT]
[LEFT]o 时钟[/LEFT]
[LEFT]使用GpLittle[/LEFT]
[LEFT]你需要装一个Bochs模拟器,或者装一个VMWARE然后将软驱选项指到GpLittle中的final文件下的软盘镜像,亦或者你可以写一个FAT32或者NTFS Bootloader,你懂得。最好用Bochs,因为调试起来实在是太方便了。[/LEFT]
[LEFT]编译/修改[/LEFT]
[LEFT]GpLittle是用一个Cygwin支持的交叉编译过的GCC写的,这个工具在Tools目录下,主目录下有一个runit,会根据makefile.mak文件进行编译,如果要添加代码或删除某个文件,可以在makefile.mak中进行修改。

下载[/LEFT]
[LEFT]Version 0.1[/LEFT]
[LEFT]· Image (1.4MB) [/LEFT]
[LEFT]· Source-Code (16.5MB) [/LEFT]
[LEFT]截屏[/LEFT]
[LEFT][/LEFT][/LEFT]

[LEFT]启动加载[/LEFT]

图形模式shell

pci探测

真机测试1

真机测试2

文章源地址:http://www.guapibai.com/post/9.html

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1173
活跃值: (2031)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
真不错啊,有自己的OS还是很有价值的
2011-10-29 18:25
0
雪    币: 253
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主,你好厉害!
2011-10-29 18:41
0
雪    币: 200
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不会,来学习了。
2011-10-29 22:26
0
雪    币: 417
活跃值: (201)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
很厉害!好像没图形界面?
2011-10-30 01:08
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
确实是没有窗口系统,在图形模式下画了一个很像CMD窗口的界面,把Printf改了一下适应图形和文字模式两种环境,下一个玩玩就知道了,进入文字模式打个win命令就进图形界面了
2011-10-30 01:58
0
雪    币: 1689
活跃值: (379)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
7
强顶!!!!!
2011-10-30 10:30
0
游客
登录 | 注册 方可回帖
返回
//