Skip to content

coolshan008/mylab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#NJU 2016 oslab1(1/3) 这是除了jos和nanos之外的第三个可选框架,主体为nanos,同时移植了jos一些容易理解的辅助工具。当然,我们更希望你能够不限于框架,用代码秀我们一脸。组合了多个框架,因此注释中英混搭,见谅。工程里包含了大家用得到但又与课程教学不太相关的内容,很多东西框架都帮你做好了,现在你有两个选择:要么花时间理解框架代码然后加以应用,要么脱离框架内容自己实现。因为框架帮你做好了挺多事情,所以框架目前看起来略臃肿(别去跟老师报怨框架难懂!!!有框架总比没有好对吧),有PA的基础其实上手已经不怎么困难了,请自行努力。

##这个框架有什么 框架里提供了各个阶段你需要码的代码的范例,看完代码相信你会对整个工程有初步的认识。我们提供框架的目的是为了避免大家一脸懵逼不知道要写什么,从哪里写。需要注意的一点是:你最好不要局限于这个框架的内容,这样你能学到更多。我们非常希望你能够在框架的启发下自行设计,既然提供了框架,你当然也可以安逸地用起来。我们提供了从引导初始化到设备、显示、中断的启发式代码段,你所有需要完成的工作都能够参考这个框架的某一个部分加以理解,哪个部分?~~我们不想再送了。~~有一点需要注意的是我们提供的解决方案不是唯一必须的,有可能框架的方案比实际需要会复杂很多,有些东西用不用全靠你选择,如果你觉得太复杂了,可以推倒自行完成。

###阶段

  • boot需要你完成in out内联汇编
  • 完成loader后运行你会看到蓝屏,其实框架提供的游戏就是蓝屏(╯‵□′)╯︵┻━┻
  • 完成串口输出,通过调用串口输出函数你可以在控制台看到输出
  • 为了方便调试,请尽快完成printk,这样你就能使用框架提供的assert等宏帮助你调试了,未完成时会通过hlt指令强行关闭
  • VGA模式的显存映射框架已经简单完成(开机蓝屏),为了完成复杂的输出功能,你需要自行封装需要的函数
  • 时钟中断和8259的初始化需要自行完成
  • 框架提供了中断处理的框架,自行在理解的基础上添加键盘中断的处理
  • 虽然游戏不是关键,但请至少弄个小游戏检验一下你的键盘和显示

###免责声明 已经尽量在需要填充代码的地方加上了hlt指令,可能会有遗漏。如果有的话请相互转告。 也许框架加了些你用不到的东西? clone下来后一定不要忘了把README删掉!

###bug修复 有些同学clone代码后boot/genboot.pl权限发生了改变,为此稍微修改了一下Makefile,使得脚本能够在没有x权限的情况下运行。 你也可以自行添加可执行权限

##代码框架:

.
├── boot#引导代码
│   ├── asm.h
│   ├── boot.h
│   ├── genboot.pl
│   ├── main.c
│   └── start.S
├── include#有很多有用的宏
│   ├── assert.h
│   ├── kbdreg.h
│   ├── keyboard.h
│   ├── mmu.h
│   ├── stdarg.h
│   ├── stdio.h
│   ├── string.h
│   ├── timer.h
│   ├── types.h
│   ├── video.h
│   └── x86.h
├── kernel#内核(游戏)
│   ├── assert.c
│   ├── device#设备的代码
│   │   ├── serial.c
│   │   ├── timer.c
│   │   └── video.c
│   ├── game#游戏
│   │   └── game.c
│   ├── irq#中断
│   │   ├── do_irq.S
│   │   ├── i8259.c
│   │   ├── idt.c
│   │   └── irq_handle.c
│   ├── kernel.ld
│   └── printk.c
├── lib#有用的库
│   ├── printfmt.c
│   └── string.c
├── Makefile
├── mbr.rb#ruby脚本,你可以修改makefile试试看
├── README.md
└── tags

7 directories, 33 files
框架参考:jos by MIT, nanos by JYY, some code by Wonicon and shinezyy.

by coolshan008

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •