树莓派教程:Pi 的操作系统开发(1)

Raspberry Pi第0课:

介绍这一部分没有实际写代码的部分,只是解释一些基础的概念:关于什么是os,什么是汇编,还有其它的一些重要的基本概念。如果你想直接上来就写代码,学习代码,你应该过这一部分。 

内容 

  1 操作系统  

  2 汇编语言 

1 操作系统

       操作系统也是程序,只不过是一个非常复杂的程序。他的工作是管理电脑上的其它程序,,包括共享cpu的时间,memory,hardware和其它的资源。一些大的桌面操作系统,你了解的有GNU/linux Mac OS X,还有windows。其它一些设备也需要os,如手机(android),ios,winphone等。

      由于操作系统要与硬件沟通,交流,所以要有对特定硬件的一些知识。为了操作系统能够使用这些硬件,驱动的概念被发明出来了。驱动是一小部分代码,这些代码可以added and removed 从你的os,当os要用这个hardware时,就add进去。如果不需要用这个硬件,或是没有这个硬件,这个驱动就remove就行,等你买了这个硬件,只需要add进去,你的电脑就可以用这个硬件了。所以驱动这个东东,使硬件的识别更加灵活了,驱动这个概念也是相对os来说的。这门课里,我们不谈论创建可以remove的驱动,而是针对raspberry pi做一些有针对性的硬件驱动。   

       对于os有各种各样的设计,这门课只是抓住了操作系统的一个表面。我们主要集中于让os与各种各样的硬件交流。通常这也是最神秘的一部分。

 

2 汇编代码

       一个cpu每秒钟可以处理百万条指令,但是他们必须是非常简单的。这门课大部分的代码都是用汇编来写的。汇编代码是与机器的思考方法非常接近的一种语言。电脑是如何工作的呢?有一个小的device,称为cpu,就是处理器。处理器可以做简单的工作,如对数字做加法。有大量的空间用来存放这些数字,这样的空间叫ram.当电脑上电后,Cpu开始工作,通过执行一系列的指令。这些指令就是程序员写的,这些程序会改变ram中的数据,这些程序可以与连接在cpu上的硬件进行交流。汇编代码就是人类与机器沟通过的工具。


        当正常的编写程序时,程序员用编程语言写code,如c++,java,c#,basic,等。然后有一种特殊的程序,称为编译器,把程序员写的code翻译成汇编语言,然后进一步翻译成二进制的机器码。二进制的机器码是机器能够理解的,但是对人类来说是不可读的(不可理解的)。汇编代码要好多了,但是有时也会感觉到代码太少了。记住,你写的每一条汇编代码 都是cpu可以直接理解的,所以汇编代码理解起来相当简单,每条汇编代码都是实际电路可以直接处理的。

编译的过程

C语言编译成汇编,汇编由汇编器变成机器码



       如同一般的编程语言,汇编语言也有好多种,不的汇编语言存在的原因是有很多不同的cpu存在。每一种cpu的设计架构不一样,他们能理解的机器码就不一样。因此一个用汇编写的程序是针对一个特定的cpu的,对其它的架构的cpu是不起作用的。经常,要重新针对不同的cpu写代码,这是一个灾难,但是如果有操作系统,就不会有这样的问题了。大多数的操作系统是用c或是c++写的,所以他们可以很容易的移植,只有确实要用汇编语言写的那部分,才需要重写。 



你现在准备开始第1课OK01了。



 注意:对于操作系统和编译器,如果你想深入了解一下,可以wiki一下。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值