首页
社区
课程
招聘
[原创]My Mini 操作系统 (源码)
发表于: 2010-4-5 23:28 53175

[原创]My Mini 操作系统 (源码)

2010-4-5 23:28
53175

目前已经实现的功能:
阶段1:
1 BootSect
2 Kernel Loader (已经进入保护模式,并且将必要的参数传递给Kernel)
3 Kernel (开启页式存储,物理内存的简单管理,为中断提供了一套基本的接口,利用Bget建立了一个简单的堆)
阶段2:
1 优化了一部分代码,包括内核堆,内核栈的重新布置
2 初始化了一个TSS,用以处理特权级变化
3 将GDT从以前的KernelLoader空间到自己的空间
4 引入进程的概念(用双向链表来管理)
5 实现了第一个Ring3进程(但是此刻IF位置0,暂不响应时钟中断)
阶段3:
1 现在系统中有2个进程
2 开启时钟中断,对进程进行调度
3 现在每个进程有两个栈(Ring3栈,Ring0内核栈),中断处理程序也有了自己的内核栈,这样子,无论你的ISR多么复杂都不会乱了。
阶段4:
1 优化了中断处理过程,实现了中断的重入
2 实现了进程优先级的概念
3 开启键盘中断,进程中可以可以读取键盘输入(代码模仿,还有BUG,以后修正)

未来计划(如果谁有兴趣一起做的话,welcome !):
1 继续完善键盘输入功能
2 将每个任务(进程)的输入,输出隔离开来
...


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (121)
雪    币: 62
活跃值: (72)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
此贴必火,留名
2010-4-5 23:37
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
强烈支持
研究研究
2010-4-5 23:50
0
雪    币: 167
活跃值: (136)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持下 希望能坚持
2010-4-6 00:19
0
雪    币: 233
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
能问下LZ 是MM 还是GG吗
2010-4-6 00:29
0
雪    币: 123
活跃值: (295)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
关注~~~~~~~~~~~
2010-4-6 01:22
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
关注。。。。
2010-4-6 01:33
0
雪    币: 1634
活跃值: (1387)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
8
看了介绍,鼓励一下,这是个好的开始
2010-4-6 01:58
0
雪    币: 416
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
真是一个很好的开始
可惜没有你那样的毅力
2010-4-6 07:22
0
雪    币: 122
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
楼主的想法很不错,继续努力!
2010-4-6 07:49
0
雪    币: 2203
活跃值: (1021)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11

楼主的头像好有个性
2010-4-6 08:22
0
雪    币: 324
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
想法不错。。。。。。
2010-4-6 09:00
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
膜拜膜拜再膜拜,下了东西要留名。
2010-4-6 09:03
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我用纯64位汇编,用C就算了吧,不过还是很支持你!

我觉得你使用C编译器是个错误,你真想做好这个系统建议你先开发自己的编译器!

写OS并不难,难在编译器!

个人建议,仅供参考。
2010-4-6 09:37
0
雪    币: 83
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
你就别误导楼主了!C本来就有很好的移植性,管你什么编译器,以后重新编译一次不就可以了。
用VC或者gcc来编译又有何关系?
2010-4-6 09:46
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
16
楼主很强大啊
2010-4-6 09:53
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
此贴必火。精华少不了吧。
2010-4-6 10:01
0
雪    币: 233
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
"我觉得使用C编译器是个错误".........      看来朋友你野心蛮大的....貌似是骨灰中的极品..佩服佩服..
2010-4-6 10:20
0
雪    币: 233
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
其实我也觉得C不合适  但是你说自己开发编译器那就更不合适了..不过您老人家还有 "非主流" 的思想 难能可贵
2010-4-6 10:25
0
雪    币: 22
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
尽管有点重复造轮子的味道,但倒是可以体验一下操作系统的工作原理,十分不错。如果要让系统未来能够继续扩大,LZ需要在站高一点,在系统体系结构的设计上下足功夫,最好能够更前瞻一点,去解决当前操作系统不能适用于未来可能的硬件体系结构变化的探索性问题。比如,当多核多到1024核甚至更大时,操作系统构架如何设计才能让全系统运行的更有效率。抛砖引玉一下。
2010-4-6 11:48
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
关注~~~支持,希望坚持!
2010-4-6 14:54
0
雪    币: 622
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
支持 好多学生再干同样的事
2010-4-6 14:59
0
雪    币: 5592
活跃值: (3681)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
23
很牛,很强大!!
2010-4-6 15:51
0
雪    币: 362
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
24
路过,顶一下,以前我也有类似的打算,坚持了不到一周就放弃了.希望楼主能够继续写下去.
2010-4-6 16:14
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
技术的细节,体系结构,方向
你实现了哪些?
全都是模仿现有的操作系统,有没有你自己的东西?
divinger 说用c不合适,见解独到,而且他只用纯64位汇编,方向很明确,意味着现在还用32位的就是落后了,未来的方向。他还说了编译器的问题,编译器or语言呢?,是在谈体系结构吗?希望讨论继续。。。
2010-4-6 18:48
0
游客
登录 | 注册 方可回帖
返回
//