构建嵌入式Linux操作系统



《构建嵌入式Linux操作系统》由会员分享,可在线阅读,更多相关《构建嵌入式Linux操作系统(34页珍藏版)》请在文档大全上搜索。
1、第第4 4章章 构建嵌入式构建嵌入式LinuxLinux操作系统操作系统目前流行的嵌入式操作系统有目前流行的嵌入式操作系统有Linux、WinCE、VxWorks等。等。Linux作为一种免费的类作为一种免费的类UNIX操作系统,由于其功能强大操作系统,由于其功能强大,在嵌入式产品的应用中非常广泛。本章将对,在嵌入式产品的应用中非常广泛。本章将对Linux操作系统操作系统做简单的介绍,并简述怎么自己构建一个可以运行的做简单的介绍,并简述怎么自己构建一个可以运行的Linux操操作系统。作系统。4.1 Linux4.1 Linux操作系统的介绍操作系统的介绍Linux操作系统是嵌入式系统的主流操作
2、系统,本节将操作系统是嵌入式系统的主流操作系统,本节将对对Linux操作系统进行简要的介绍。同时对操作系统进行简要的介绍。同时对Linux操作系统适操作系统适用与嵌入式系统的原因进行简要分析。用与嵌入式系统的原因进行简要分析。4.1.1 Linux4.1.1 Linux操作系统操作系统Linux操作系统是一个类操作系统是一个类Unix计算机操作系统。计算机操作系统。Linux操作操作系统的内核的名字也是系统的内核的名字也是“Linux”。Linux这个词本身只表示这个词本身只表示Linux内核,但在实际上人们已经习惯了用内核,但在实际上人们已经习惯了用Linux来形容整个基来形容整个基于于Li
3、nux内核的操作系统。内核的操作系统。Linux的最初版本由的最初版本由Linus Torvalds开开发,此后得到互联网上很多计算机高手的支持,目前的版本已发,此后得到互联网上很多计算机高手的支持,目前的版本已经到了经到了2.6,已经是一个非常成熟稳定的操作系统。下面从不同,已经是一个非常成熟稳定的操作系统。下面从不同方面对方面对Linux操作系统进行简要的介绍。操作系统进行简要的介绍。4.1.2 Linux4.1.2 Linux操作系统的优点操作系统的优点Linux操作系统有很多优点,具有十分丰富的应用功能。操作系统有很多优点,具有十分丰富的应用功能。这些功能特别适用于嵌入式系统,这些优点
4、如下所示:这些功能特别适用于嵌入式系统,这些优点如下所示:1价格低廉价格低廉2高效性和灵活性高效性和灵活性3广泛性广泛性4.2.2 4.2.2 内存管理内存管理内存是计算机的主要资源之一,可以将内存理解为一个线性内存是计算机的主要资源之一,可以将内存理解为一个线性的存储结构。用来管理内存的策略是决定系统性能的主要因素。的存储结构。用来管理内存的策略是决定系统性能的主要因素。内核在有限的资源上为每一个进程创建一个虚拟地址空间,并对内核在有限的资源上为每一个进程创建一个虚拟地址空间,并对虚拟地址空间进行管理。为了方便内存的管理,内核提供了一些虚拟地址空间进行管理。为了方便内存的管理,内核提供了一些
5、重要的函数。这些函数包括重要的函数。这些函数包括kmalloc c、kfree等。另外设备驱动程序等。另外设备驱动程序需要使用内存分配,不同的分配方式对驱动程序的影响不同,所需要使用内存分配,不同的分配方式对驱动程序的影响不同,所以需要对内存分配有比较清晰的了解。以需要对内存分配有比较清晰的了解。4.2.3 4.2.3 文件系统文件系统在在Linux操作系统中,文件系统是用来组织、管理、存放操作系统中,文件系统是用来组织、管理、存放文件的一套管理机制。文件的一套管理机制。Linux文件系统的一大优点是,它几乎文件系统的一大优点是,它几乎可以支持所有的文件格式。任何一种新的文件格式,都可以容可以
6、支持所有的文件格式。任何一种新的文件格式,都可以容易的写出相应的支持代码,并无缝的添加入内核中。虽然不同易的写出相应的支持代码,并无缝的添加入内核中。虽然不同文件格式的文件以不同的存储方式存放在磁盘设备中,但是在文件格式的文件以不同的存储方式存放在磁盘设备中,但是在用户看来,文件总以树形结构显示给用户。用户看来,文件总以树形结构显示给用户。4.2.4 4.2.4 设备管理设备管理无论是桌面系统还是嵌入式系统,都存在各种类型的设备。无论是桌面系统还是嵌入式系统,都存在各种类型的设备。操作系统的一个重要功能就是对这些进行统一的管理。由于设备操作系统的一个重要功能就是对这些进行统一的管理。由于设备的
7、种类繁多,不同设备的操作方法都不一样,使管理设备成为操的种类繁多,不同设备的操作方法都不一样,使管理设备成为操作系统中非常复杂的部分。作系统中非常复杂的部分。Linux系统通过某种方式较好的解决系统通过某种方式较好的解决了这个问题,使设备的管理得到了统一。了这个问题,使设备的管理得到了统一。设备管理的一个主要任务是完成数据从设备到内存的传输。设备管理的一个主要任务是完成数据从设备到内存的传输。一个完全的数据传输过程是:数据首先从设备传入内存,然后一个完全的数据传输过程是:数据首先从设备传入内存,然后CPU对其进行处理,处理完后将数据传入内存或设备中。对其进行处理,处理完后将数据传入内存或设备中
8、。4.2.5 4.2.5 网络功能网络功能网络功能也由操作系统来完成。大部分的网络操作与用户网络功能也由操作系统来完成。大部分的网络操作与用户进程都是分离的,数据包的接收和发送操作都是由相应的驱动进程都是分离的,数据包的接收和发送操作都是由相应的驱动程序来完成的,而与用户进程无关。进程处理数据之前,驱动程序来完成的,而与用户进程无关。进程处理数据之前,驱动程序必须先收集,标识和发送或重组数据。当数据准备好后,程序必须先收集,标识和发送或重组数据。当数据准备好后,系统负责用户进程和网络接口之间的数据传送。另外内核也负系统负责用户进程和网络接口之间的数据传送。另外内核也负责实现网络通信协议。责实现
9、网络通信协议。4.3 Linux4.3 Linux源代码结构分析源代码结构分析了解了解Linux源代码结构对理解源代码结构对理解Linux如何实现各项功能如何实现各项功能是非常重要的。对驱动程序的编写也非常重要,这样,驱动是非常重要的。对驱动程序的编写也非常重要,这样,驱动开发人员知道应该在何处找到相关的驱动程序,一方面可以开发人员知道应该在何处找到相关的驱动程序,一方面可以对其进行改写移植,另一个方面可以模仿以往的驱动程序,对其进行改写移植,另一个方面可以模仿以往的驱动程序,写出新的驱动程序。写出新的驱动程序。Linux源代码以目录的方式组织,每一源代码以目录的方式组织,每一个目录中有相关的
10、内核代码。下面对各个主要的目录进行介个目录中有相关的内核代码。下面对各个主要的目录进行介绍。绍。4.3.1 arch4.3.1 arch目录目录随着随着Linux操作系统的广泛应用,特别是操作系统的广泛应用,特别是Linux在嵌入在嵌入式领域的发展,越来越多的人开始投身到式领域的发展,越来越多的人开始投身到 Linux驱动的开发驱动的开发中。面对日益庞大的中。面对日益庞大的Linux内核源代码,驱动开发者在完成内核源代码,驱动开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到码融入到Linux内核中,增加相应的内核中,增
11、加相应的Linux配置选项,并最终配置选项,并最终被编译进被编译进Linux内核。这就需要对内核。这就需要对Linux源代码结构进行详细源代码结构进行详细的介绍,首先介绍的介绍,首先介绍arch目录。目录。4.3.2 drivers4.3.2 drivers目录目录drivers目录中包含了目录中包含了Linux内核支持的大部分驱动程序。内核支持的大部分驱动程序。每种驱动程序都占用一个子目录。每种驱动程序都占用一个子目录。4.3.3 fs4.3.3 fs目录目录fs目录中包含了目录中包含了Linux所支持的所有文件系统相关的代码。所支持的所有文件系统相关的代码。每一个子目录中包含一种文件系统,