您的位置:首页 > 其它

第一章 嵌入式操作系统_基础知识

2014-01-03 21:50 246 查看
1.自从清华大学邵贝贝教授将Jean J.Labrosse的“µC/OS-II:the RealTime Kernel”翻译后,在国内掀起了µC/OS-II的热潮。
2.其他的嵌入式操作系统
VxWorks
VxWorks是WindRiver公司专门为实时嵌入式系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理,实时的系统资源及实时的任务间通信。
QNX
QNX是一款实时操作系统,由加拿大的QNX软件系统有限公司开发。
3.GNU是为了推广自由软件的精神以实现一个自由的操作系统,Linux的优良性能备受GNU的赏识,于是GNU决定采用Linus及其开发者的内核。在他们的共同努力下,Linux这个完整的操作系统诞生了。其中的程序开发共同遵循GeneralPublicLicense(GPL)协议,这是最开放也是最严格的许可协议方式,这个协议规定了源代码必须可以无偿地获取并且修改。
4.Linux的发行版本
除去非商业性组织Debian开发的Debian GNU/Linux外,美国的RedHat公司发行了Red Hat Linux,法国的Mandrake公司发行了MandrakeLinux,德国的SUSE公司发行了SUSE Linux,国内众多公司也发行了中文版的Linux,如著名的红旗Linux。
5.学习Linux的一些论坛
http://www.linuxfans.org
http://www.linuxform.net/
http://www.linuxeden.com/forum/
http://www.newsmth.net
6.在Windows操作系统下,目录结构属于分区;在Linux操作系统下,分区属于目录结构。因此,在Linux中把每一个分区和某一个目录对应,以后对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一。这个把分区和目录对应的过程称为挂载(mount),而这个挂载在文件树中的位置就是挂载点。
7.硬盘分区
硬盘分区是针对一个硬盘进行的操作的,它可以分为主分区、扩展分区、逻辑分区。主分区就是包含操作系统启动所必需的文件和数据的硬盘分区。要在硬盘上安装操作系统,则该硬盘必须要有一个主分区,而且其主分区的数量可以是1~3个;扩展分区也就是除主分区外的分区,它不能直接使用,必须将其划分为若干个逻辑分区才可以使用,扩展分区的数量可以是0个或者1个;而逻辑分区则在数量上没有什么限制。一般情况下Window都是安装在C盘上,所以为了安装方便及安全起见,一般都把Linux安装在多余的逻辑分区上。
swap分区:类似于Windows的虚拟内存,一般设置为内存大小的2倍。
8.分区格式和GRUB
不同的操作系统选择了不同的格式,Windows就选择了FAT32、NTFS两种格式,但是Windows不支持Linux常见的分区格式。Linux最初使用的是Ext2格式,后来使用Ext3格式,但是它同时支持非常多的分区格式,包括XFS格式以及Windows的FAT和NTFS格式。
GRUB是一种引导装入器(类似于在嵌入式中非常重要的bootloader)它负责装入内核并引导Linux系统,位于硬盘的起始部分。由于GRUB多方面的优越性,如今的Linux一般都默认采用GRUB来引导Linux操作系统,但事实上它还可以引导Windows等多种操作系统。
9.文件系统类型介绍
Ext3是现在Linux常见的默认文件系统,它是Ext2的升级版本。Ext3采用了日志式的管理机制,它使文件系统具有很强的快速恢复能力,并且从Ext2转换到Ext3无须进行格式化。
swap文件系统,在安装Linux时,交换分区是必须建立的,并且它所采用的文件系统类型必须是swap而没有其他选择。
VFAT文件系统,在Linux中,把DOS中采用的FAT文件系统(包括FAT12、FAT16和FAT32)都称为VFAT文件系统。
NFS文件系统是指网络文件系统,它可以很方便的实现在局域网内实现文件共享,使用NFS文件系统可以很方便的实现文件本地修改,从而免去了一次次读写flash的忧虑。
ISO9660文件系统,这是光盘所使用的文件系统。
10.启动Linux之后就可以进入到与Windows类似的图形化界面,这个界面就是Linux图形化界面X窗口系统(简称X)的一部分。X窗口系统仅仅是Linux上的一个软件(或者也可以称为服务),它不是Linux自身的一部分。虽然X窗口系统已经与Linux整合得相当好,但毕竟还是不能保证绝对的可靠性。另外X窗口系统是一个相当耗费系统资源的软件,它会大大降低Linux系统的性能。
当用户在命令行下工作时,不是直接同操作系统内核交互信息,而是由命令行解释器接受命令,分析后再传给相关的程序。Shell是一种Linux中的命令行解释程序,就如同Command.com是DOS下的命令解释程序一样,为用户提供使用操作系统的接口。
11.gcc的编译流程分为4个步骤:预处理,编译,汇编,链接。
预处理阶段:在该阶段,编译器将代码中的stdio.h编译进来,并且用户可以使用gcc的选项“-E”进行查看,该选项的作用是让gcc在预处理结束后停止编译过程。
gcc –E hello.c –o hello.i
.i文件为已经预处理过的C原始程序。“-o”是指目标文件,“hello.i”是-o的参数。
编译阶段:gcc首先要检查代码的规范性、是否有语法错误等,以确定代码实际要做的工作,检查无误后,gcc把代码翻译成汇编语言。用户可以使用“-S”(大写的S)选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。
gcc –S hello.i –o hello.s
汇编阶段:汇编阶段是把编译阶段生成的“.s”文件转换成目标文件,读者在此使用选项“-c”就可以看到汇编代码已经转换为“.o”的二进制目标代码了。
gcc –c hello.s –o hello.o
链接阶段:在成功编译之后,就进入了链接阶段。系统把一些库函数都放到库文件中去了,在没有特别指定时,gcc会到系统默认的搜索路径/usr/lib下进行查找,也就是链接到库函数中去,这就是链接的作用。
gcc hello.o –o hello
12.Makefile中的变量定义有两种方式:一种是递归展开方式;另一种是简单方式。递归展开方式定义的变量是在引用该变量时进行替换的,即如果该变量包含了对其他变量的应用,则在引用该变量时一次性将内嵌的变量全部展开。简单扩展型变量的值在定义处展开,并且只展开一次,因此不包含任何对其他变量的引用,从而消除变量的嵌套引用。
递归展开方式的定义格式为:VAR=var
简单扩展方式的定义格式为:VAR:=var
13.隐式规则
C编译:.c变为.o
C++编译:.cc或.C(大写)变为.o
Pascal编译:.p变为.o
Fortran编译:.r变为.o
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: