首页
社区
课程
招聘
[原创]自己写的一个简单操作系统
发表于: 2014-12-20 14:05 25320

[原创]自己写的一个简单操作系统

2014-12-20 14:05
25320
感谢梦织未来论坛的老大送了我一本x86/x64体系探索,让我有机会学习了CPU架构的一些东西
国庆节那几天没事就写了一个简单的OS。
  已经简单的实现了Boot和Loader,Boot主要是把Loader加载到内存,然后睡觉去。
Loader负责进入保护模式并开启分页机制。
Boot和Loader都是用nasm汇编器编译的。
然后就是内核。
  系统内核基址是0xC0000000,在开启分页基址的时候绕了几道弯,才成功映射的。
中断管理:参考了orange‘s的书,初步实现了异常处理,仅仅是简单的蓝屏提示:
简单的实现了内存管理 mem_malloc 、mem_free 等函数..
简单的做了一些键盘驱动,还没有来得及写解析扫码那一块。
内核是用C语言 + 汇编开发的。
现在学校任务重,所以打算寒假在继续开发。
保存线程上线文那里有点下问题,时钟中断中断在不同级的时候栈的情况不一样的说..
编译:
  我是在 Linux ubuntu 进行开发的。
同时你的工作机上应该具有如下程序:
nasm
gcc
python.
-------------------------------------------------
目录下有makefile文件。
编译前最好先 make clean  清理输出文件夹
make   这个是完全编译
make setup把镜像文件装载到虚拟机的vhd磁盘文件

交流群:173836071

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

上传的附件:
收藏
免费 3
支持
分享
最新回复 (50)
雪    币: 188
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个必须支持一下。
2014-12-20 14:18
0
雪    币: 102
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
我也正在做诶。
2014-12-20 14:27
0
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
。。。。牛X 我去看看
2014-12-20 14:28
0
雪    币: 6879
活跃值: (2748)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
看标题就知道牛逼了~~~~~~~~
2014-12-20 14:29
0
雪    币: 13
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
赞一个。gc
2014-12-20 14:46
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
LZ厉害~~~~~~~~~~~
2014-12-20 15:02
0
雪    币: 7068
活跃值: (3517)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
8
支持开源,3QLZ~
2014-12-20 15:21
0
雪    币: 246
活跃值: (144)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
diao diao diao
2014-12-20 15:41
0
雪    币: 967
活跃值: (1138)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
make 一下  过年研究一下  谢谢楼主共享
2014-12-20 15:47
0
雪    币: 1305
活跃值: (213)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
11
越来越厉害了,膜拜啊
2014-12-20 18:27
0
雪    币: 95
活跃值: (119)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
好厉害呀
2014-12-20 18:54
0
雪    币: 6890
活跃值: (8944)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
13
留一个联系方式哇,日后好交流
2014-12-20 20:12
0
雪    币: 210
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
先看看再说
2014-12-20 20:27
0
雪    币: 131
活跃值: (98)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
15
简陋的kernel,离操作系统还有点距离哈,加油
2014-12-20 23:41
0
雪    币: 435
活跃值: (1207)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
16
楼主你好~
好不容易碰到个同好的
楼主在校生有毅力能力弄这个东西好厉害
有没有文档之类的东西,介绍下代码结构之类的
我在doc目录下没找到哦
2014-12-21 00:06
0
雪    币: 236
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
增加经过两本书。一个操作系统的实现, 30天自制操作系统。可能惜一直没动手实践过。
楼主辛苦了
2014-12-21 09:10
0
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
加油  加上内核线程 调度 等等很多东西  就完善多了
2014-12-21 09:10
0
雪    币: 6890
活跃值: (8944)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
19
  系统还比较简单,所以没弄什么文档。 你可以根据makefile为线索来阅读程序.
还是以前学E的大把空闲时间
2014-12-21 09:24
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
最近看到好几个这种教程。看到国外有个人做了一个unix like的操作系统。希望楼主能做点有特色的东西出来。加油~
2014-12-21 10:40
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
大牛啊,能说一下那本书的名字吗?
2014-12-21 16:16
0
雪    币: 60
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
支持开源精神,支持强大的楼主
2014-12-21 16:23
0
雪    币: 102
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
其实我还没完成...进度缓慢.
2014-12-21 19:02
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zxf
24
中国的未来就靠楼主了
2014-12-21 20:11
0
雪    币: 346
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
25
请教一个问题:看邓志老师那本《X86/X64体系探索及编程》里有用U盘启动,我始终没有成功,你是怎么解决的?
2014-12-21 21:29
0
游客
登录 | 注册 方可回帖
返回
//