1 介绍1
欢迎来到本课程,课程作者为Alex Chadwick.
这个网站旨在帮助你完成在Raspberry Pi上进行一个基本的操作系统的开发.目标读者是16岁以上,当然更小的读者也可以,如果可以有其他人的帮助当然更好.课程目前还在进展中,随时会有新加入的内容.
本课程主要内容是利用汇编语言进行操作系统开发.设计之初就考虑到了没有操作系统开发和汇编语言背景的读者,因此无需上述的背景知识.当然如果有编程经验的话,更是锦上添花.整个课程如下面的表格,被划分为多个课时.每个课时都会包括一些理论的介绍,实践训练和完整的答案.
本课程不会涉及到操作系统开发的细节,只是完成开发最基本的功能,而且各个主要部分之间也相对分离.在最后,读者有望可以对操作系统有一定的了解,并且有足够的能力将课程中所有的部分组合在一起,形成一个完整的有一定功能的操作系统.课程涉及的内容并不多,但是读者如果有心,仍有很多自己可以发挥的地方.譬如,完成课程后,完成函数的那一课后,你可以考虑出更好的汇编代码,或者是在有关图形操作的课程后考虑下3D操作系统.别忘了,这是操作系统课程,因此你可以随意创造出你自己的心目中的东西.一旦你有任何新想法,尝试一下不会有坏处.计算机科学还是个很年轻的领域,很多方面都亟待发掘.
1.1 基本要求
要想完成这门课程,你得准备好一个 Raspberry Pi,兼容的SD卡,以及电源,还有用于开发的电脑,操作系统可以是linux, Windows, Mac OS X,电脑要可以安装软件和读写SD卡.如果有个可以连上 Raspberry Pi的显示器当然更好,不过不是必须.
软件上,你需要目标平台是ARMv6的GNU开源工具链,下载 页面上有他们的链接,还有所有练习的参考答案.
1.2 课时安排
编号 | 课程名称 | 描述 |
---|---|---|
0 | 介绍 | 这一部分没有实质的内容,主要是介绍作系统和汇编代码的基本概念和其他重要的基础知识.如果急于进入课程的主体,可以选择跳过这一课程 |
OK LED系列 | (难度简单) | |
1 | OK01 | 说明最基本的起步和怎样打开Raspberry Pi上的'OK' LED灯,灯的位置在RCA和USB接口附近 |
2 | OK02 | 基于OK01,内容是让'OK' LED可以重复关闭和开启 |
3 | OK03 | 基于OK02,讲解如何使用汇编中的函数提高代码的复用性和可读性 |
4 | OK04 | 基于OK03,如何利用定时器让LED灯可以精确的闪烁 |
5 | OK05 | 基于OK04,让LED发出SOS的摩斯码(…—…) |
Screen系列 | (高级部分) | |
6 | Screen01 | 介绍有关图形学的基本理论,然后实践之,在显示器或者电视上显示渐变图案 |
7 | Screen02 | 基于Screen01,教授如何画线以及生成一个伪随机数的方法 |
8 | Screen03 | 基于Screen02,教授如何打印文本到显示器上,并且介绍内核命令行的概念 |
9 | Screen04 | 基于Screen03,教授如何处理文本在屏幕上显示计算值 |
Input系列 | (高级部分) | |
10 | Input01 | 介绍有关驱动,链接程序还有键盘的概念.然后实现打印输入的字符到显示器上的功能 |
11 | Input02 | 基于Input01,教授如何构建操作系统的命令行接口 |