摘嵌入式教案2
摘嵌入式教案2
2009年12月25日
uClinux是为支持没有MMU的处理器而对标准硬件平台更好的云新各种程序提供了保证。的在GNU通用公共许可证(GNU GPL)的保证下,运行uClinux操作系统的用户可以使用几乎所有的Linux API函数,不会因为没有MMU而受到影响。
2.6.0以后的Linux内核版本已完全支持不带和带MMU,因此没有必要再分uClinux和Linux了。
uClinux除了不能实现fork()而是使用vfork()外,其余uClinux的API函数与标准Linux的完全相同。这并不是意味着uClinux不能实现多进程,实际上uClinux多进程管理是通过vfork()来实现的,或者是子进程代替父进程执行,直到子进程调用exit()函数推出,或者是子进程调用exec()函数执行一个新的进程。
GNU开发工具都是采用命令行的方式,用户掌握起来相对比较困难
,不如基于Windows系统的开发工具好用,但是GNU工具的复杂性是由于它更贴近编译器和os的底层,并提供了更大的灵活性。
运行于Linux os 下的自由软件GNU gcc编译器,不仅可以编译linux os下运行的应用程序,还可以编译Linux内核本身,甚至可以作交叉编译,编译运行于其他cpu上的程序。
Gcc是GNU组织的免费c编译器,很多流行的自由软件源代码基本都能在GCC编译器下编译运行。
如果你的源代码中包含有某些函数,则在编译的时候要链接确定的库。但一般在gcc中对于一些常用函数的实现,gcc编译器会自动去链接一些常用库,这样用户就没有必要自己去指定了。而有些标准库,没有必要指出路径。但是其他的还是需要的。
在多数Linux中适用的标准C库都是GNU的glibc。GNU的C库是个非常完整的C程序库,它几乎涵盖了其他所有版本C库中的所有函数。同时,glibc遵循了多个标准,如ANSI C,ISO C,POSIX标准,System V和伯克利UNIX的实施标准。
GNU Make
make是负责从项目的源代码中生成最终可执行文件和其他非源代码文件的工具。
make如何实现对源代码的操作是通过一个被称之为makefile的文件来完成。
GNUMake的主要工作是读一个文本文件makefile。
makefile是用bash语言写的,bash语言是很像BASIC语言的一种命令解释语言。这个文件里主要描述了有关那些目标文件时从哪些依赖文件中产生的,是用何种命令来进行这个产生过程的。
有了这些信息,make会检查磁盘的文件,如果目标的日期(即该文件生成或最后修改的日期)至少比它的一个一览文件日期早的话,make就会执行相应的命令,以更新目标文件。
系统小型化(Linux--->嵌入式的Linux)
在pc机上安装的一个linux系统至少需要上百兆的硬盘空间,而嵌入式系统的存储空间有限,要将linux用于嵌入式系统就得对其定制,使整个linux系统能够存放到容量较小的Flash中。通过修改内核代码来达到定制的目的是笔记哦危险的,容易造成代码的不稳定或丧失代码的灵活性。比较安全的办法是先选择合适版本的内核,然后通过内核选项的配置获得既满足应用功能要求同时体积又小的内核。