Baking Pi - Operating Systems Development

03 Sep 2012

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,教授如何构建操作系统的命令行接口