8 Linux操作系统.ppt
《8 Linux操作系统.ppt》由会员分享,可在线阅读,更多相关《8 Linux操作系统.ppt(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、LinuxLinux操作系统操作系统第第8章章Linux操作系统操作系统LinuxLinux操作系统操作系统内内 容容8.1 Linux简介简介8.2 Linux开发过程开发过程8.3 Linux开发环境建立开发环境建立8.4 Linux内核移植内核移植8.5 Linux应用程序设计应用程序设计8.6 Linux驱动程序设计驱动程序设计8.7 Linux上的图形系统上的图形系统LinuxLinux操作系统操作系统8.1 Linux8.1 Linux简介简介Linux与与UNIX系统兼容,开放源代码。系统兼容,开放源代码。Linux原本被设计为桌面系统,现在广泛应用于服原本被设计为桌面系统,现在
2、广泛应用于服务器领域。而更大的影响在于它正逐渐应用于嵌务器领域。而更大的影响在于它正逐渐应用于嵌入式设备。入式设备。Linux可以说是最早的嵌入式可以说是最早的嵌入式Linux发发行版本。它是为没有行版本。它是为没有MMU的处理器而设计的,进的处理器而设计的,进而发展了一个完整的开发平台,包括编译、调试而发展了一个完整的开发平台,包括编译、调试等工具。等工具。LinuxLinux操作系统操作系统LinuxLinuxLinux具有如下特性:具有如下特性:开源开源免费免费高度可裁剪:通常内核小于高度可裁剪:通常内核小于 512KBytes,文文件系统可从几十件系统可从几十KBytes到几到几Mby
3、tes不等,不等,视应用程序大小而定。视应用程序大小而定。具有大量的开源的具有大量的开源的linux应用程序和驱动程序,应用程序和驱动程序,并可以方便地移植到各种平台,包括并可以方便地移植到各种平台,包括ARM平台平台LinuxLinux操作系统操作系统LinuxLinux与与uCuC/OS-II/OS-II的区别的区别 功功能性能性Linux包含一整套的编译、调试等开发工具、包含一整套的编译、调试等开发工具、内核源代码、各种文件系统、图形接口、各种内核源代码、各种文件系统、图形接口、各种协议、驱动程序以及丰富的应用程序。协议、驱动程序以及丰富的应用程序。而而uC/OS-II确切的来说只是一个
4、微内核,仅仅包确切的来说只是一个微内核,仅仅包含多任务调度、简单内存管理等基本的多任务操含多任务调度、简单内存管理等基本的多任务操作系统元素,且多任务调度算法和内存管理等都作系统元素,且多任务调度算法和内存管理等都比较简单。对于想实现比较简单。对于想实现GUI、FS、协议等都必协议等都必须另外购买或者移植,对于设备驱动程序没有提须另外购买或者移植,对于设备驱动程序没有提供专门统一的接口。供专门统一的接口。LinuxLinux操作系统操作系统LinuxLinux与与uCuC/OS-II/OS-II的区别的区别 开开发工具发工具Linux发布中包含了编译器和调试器等工具,发布中包含了编译器和调试器
5、等工具,它们都采用它们都采用GCC编译器,汇编语法一致。编译器,汇编语法一致。uC/OS-II没有指定编译器,在不同的平台下使没有指定编译器,在不同的平台下使用该平台下的编译器,而各个编译器,其汇编用该平台下的编译器,而各个编译器,其汇编语法不同,因此,在不同类型平台下,汇编程语法不同,因此,在不同类型平台下,汇编程序不一致。序不一致。LinuxLinux操作系统操作系统LinuxLinux与与uCuC/OS-II/OS-II的区别的区别 开开发资源发资源在在开发上,开发上,Linux采用统一的采用统一的API调用,接口文调用,接口文档齐全,书籍、网上资源也比较多。档齐全,书籍、网上资源也比较
6、多。uC/OS-II虽没有标准的虽没有标准的API接口,但是其内核接口,但是其内核非常简单、简洁,且书籍、网上资源也非常丰非常简单、简洁,且书籍、网上资源也非常丰富。富。LinuxLinux操作系统操作系统LinuxLinux与与uCuC/OS-II/OS-II的区别的区别 移移植性植性Linux发布中包含了多种平台下的移植,可以发布中包含了多种平台下的移植,可以通过配置内核选择体系结构和裁剪内核。通过配置内核选择体系结构和裁剪内核。uC/OS-II的不同平台下的移植通过不同的移植的不同平台下的移植通过不同的移植代码独立发布,没有一个统一的界面,通过宏代码独立发布,没有一个统一的界面,通过宏定
7、义进行内核裁剪。定义进行内核裁剪。LinuxLinux操作系统操作系统LinuxLinux与与uCuC/OS-II/OS-II的区别的区别 实实时性时性Linux内内核不关心实时性问题,可以通过和核不关心实时性问题,可以通过和RTLinux配合来实现实时。配合来实现实时。RTLinux处理实时任务,非实时任务由处理实时任务,非实时任务由linux完成完成RTLinux是为是为linux提供实时性的方法,同样提供实时性的方法,同样也适用于也适用于Linux。通过通过RTLinux的的patch,可可以满足以满足Linux对对实时性的需求实时性的需求uC/OS-II采用占先式内核,实时性好采用占先
8、式内核,实时性好LinuxLinux操作系统操作系统LinuxLinux映映像像(image)(image)文件结构文件结构Linux映映像由内核像由内核(kernel)和文件系统和文件系统(fs)组组成。成。可将可将kernel和和fs统一编译到一个映像统一编译到一个映像(image)文件中,文件中,也可以将也可以将kernel和和fs独立地放置于不同的映像文件独立地放置于不同的映像文件中(烧写到中(烧写到FLASH的不同区域),这需要通过修的不同区域),这需要通过修改改Makefile文件和内核中的文件系统加载代码实现。文件和内核中的文件系统加载代码实现。本系统中本系统中kernel和和f
9、s分别位于不同的映像文件分别位于不同的映像文件中。分别为(中。分别为(ramdisk.gz和和zImage)Linux支持压缩核心支持压缩核心(zImage),它是对原核心映像它是对原核心映像文件文件(linux.bin)进行压缩,并在压缩后的文件头进行压缩,并在压缩后的文件头部添加一段解压缩代码。在部添加一段解压缩代码。在zImage运行时,先运运行时,先运行这段解压缩代码将程序解压缩到行这段解压缩代码将程序解压缩到Linux核心运行核心运行地址,完成后,跳转到核心运行。地址,完成后,跳转到核心运行。LinuxLinux操作系统操作系统LinuxLinux内内核组成核组成初始化程序段初始化程
10、序段(init段段)约约32KBytes。数据段数据段(data)50100KBytes左右。左右。代码段代码段(text)300KBytes左右左右 如果如果kernel和和fs编译在一起,内核映像还包含文件编译在一起,内核映像还包含文件系统系统(romfs)80KBytes未初始化数据段未初始化数据段(bss)100150KBytes左右。左右。LinuxLinux操作系统操作系统8.2 Linux8.2 Linux开发过程开发过程BOOTLOADER开发开发Linux开发环境建立开发环境建立Linux内内核移植核移植应用程序开发应用程序开发LinuxLinux操作系统操作系统支持支持Li
11、nuxLinux开发开发的的BOOTLOADERBOOTLOADER引导引导Linux烧写烧写Linux内内核映像和文件系统核映像和文件系统初始化硬件初始化硬件LinuxLinux操作系统操作系统GNUGNU交叉编译交叉编译Linux采用采用GNU交叉编译器交叉编译器GNU的交叉编译器,包括以下组件:的交叉编译器,包括以下组件:1.Gcc交叉编译器,即在宿主机上开发编译交叉编译器,即在宿主机上开发编译目标上可运行的二进制文件;目标上可运行的二进制文件;2.Binutils辅助工具,包括辅助工具,包括objdump、objcopy等;等;3.Gdb调试器。调试器。对于对于ARM可以采用如下两个版
12、本的编译器:可以采用如下两个版本的编译器:arm-elf-arm-linux-LinuxLinux操作系统操作系统arm-elf-arm-elf-交叉编译器交叉编译器arm-elf-gccarm-elf-ldarm-elf-asarm-elf-objdumparm-elf-objcopyarm-elf-gdbLinuxLinux操作系统操作系统arm-arm-linuxlinux-交叉编译器交叉编译器(推荐推荐使用使用)arm-linux-gccarm-linux-ldarm-linux-asarm-linux-objdumparm-linux-objcopyarm-linux-gdbLinu
13、xLinux操作系统操作系统8.3 Linux8.3 Linux开发环境建立开发环境建立Windows环境环境+CygwinWindows环境环境+VMWare虚拟机(安装虚拟机(安装RedHat 9.0)Linux环境,推荐环境,推荐RedHat 9.0单机模式(一台计算机)单机模式(一台计算机)双机模式(两台计算机)双机模式(两台计算机)Windows+LinuxLinuxLinux操作系统操作系统在在linuxlinux环境下进行环境下进行LinuxLinux开发开发必须采用支持必须采用支持GDB的调试器(如的调试器(如ADT1000A)才能进行调试,否则只能通过才能进行调试,否则只能通
14、过BOOTLOADER进行简单的程序烧写运行等进行简单的程序烧写运行等调试信息的打印可以通过串口完成,使用调试信息的打印可以通过串口完成,使用linux下的下的minicom超级终端程序(类似于超级终端程序(类似于Windows上的超级终端工具)接收并显示目标板传送的上的超级终端工具)接收并显示目标板传送的打印信息打印信息Linux的的程序编辑、编译、调试都在程序编辑、编译、调试都在Linux环境环境进行进行Linux串串口驱动完成后,可以通过内核打印函口驱动完成后,可以通过内核打印函数数printk向向串口打印信息,这是串口打印信息,这是Linux内内核调试核调试过程中最有效的手段过程中最有
15、效的手段LinuxLinux操作系统操作系统在在Windows+Windows+CygwinCygwin环境下进环境下进行行LinuxLinux开发开发Linux内内核配置和编译等在核配置和编译等在Cygwin环境下运行,环境下运行,程序编辑和调试都在程序编辑和调试都在Windows环境下进行,必环境下进行,必须采用支持须采用支持Windows下下进行进行linux调试的调试器调试的调试器(如(如ADT1000A)才能进行调试,否则只能通才能进行调试,否则只能通过过BOOTLOADER进行简单的程序烧写运行等进行简单的程序烧写运行等调试信息的打印可以通过串口完成,使用调试信息的打印可以通过串口
16、完成,使用Windows上的超级终端工具接收并显示目标板上的超级终端工具接收并显示目标板传送的打印信息传送的打印信息Cygwin是是运行于运行于Windows中的一个应用程序,中的一个应用程序,它可以使得它可以使得Linux环境下的应用程序可以在环境下的应用程序可以在Cygwin环境下进行编译,即可以在环境下进行编译,即可以在Windows进进行编译。行编译。LinuxLinux操作系统操作系统在在Windows+Windows+VMWareVMWare虚拟机环虚拟机环境下进行境下进行LinuxLinux开发开发如果需要使用在如果需要使用在Windows环境下调试的调试器,可通环境下调试的调试
17、器,可通过在过在VMWare中中安装安装linux虚拟机,在虚拟机中进行编虚拟机,在虚拟机中进行编辑、编译辑、编译Linux,然后通过网络(然后通过网络(ftp、nfs、ssh)等手等手段传送到段传送到Windows中,进行调试,这样编译和调试可中,进行调试,这样编译和调试可以分别在以分别在linux和和windows环境下但是是在一台电脑中环境下但是是在一台电脑中完成,它的缺点是系统要求较高,运行速度慢。完成,它的缺点是系统要求较高,运行速度慢。也可以在两台电脑中分别安装也可以在两台电脑中分别安装linux和和windows,分别分别实现编译和调试。实现编译和调试。VMWare是是运行于运行
18、于Windows中的一个应用程序,是一中的一个应用程序,是一个虚拟机,可以在其上安装多个操作系统,相当于在个虚拟机,可以在其上安装多个操作系统,相当于在Windows上安装一个虚拟的操作系统。上安装一个虚拟的操作系统。LinuxLinux操作系统操作系统8.4 Linux8.4 Linux内内核移植核移植Linux内内核的移植可以分为板级移植和片级移植。核的移植可以分为板级移植和片级移植。对于对于Linux发行版本中已经支持的发行版本中已经支持的CPU通常只需要针对板级硬通常只需要针对板级硬件进行适当的修改即可,这种移植叫做板级移植。件进行适当的修改即可,这种移植叫做板级移植。而对于而对于Li
19、nux发行版本中没有支持的发行版本中没有支持的CPU则需要添加相应则需要添加相应CPU的内核移植,这种移植叫做片级移植。的内核移植,这种移植叫做片级移植。片级移植相对板级移植来说要复杂许多,本系统采用的片级移植相对板级移植来说要复杂许多,本系统采用的Linux 发行版本中已经包含发行版本中已经包含PXA70处理器的移植包,因此,只需要处理器的移植包,因此,只需要在其上进行在其上进行Linux板板级移植的基本过程和方法。级移植的基本过程和方法。LinuxLinux操作系统操作系统LinuxLinux内内核的目录结构核的目录结构linuxDocumentationarchdriversfsincl
20、udeinitmmlibnetscript帮助文档体系结构相关源代码驱动程序文件系统头文件kernel初始化Linux内存管理常用函数网络协议源代码脚本文件LinuxLinux操作系统操作系统LinuxLinux内内核的核的archarch目录目录armbootkernellibmach-pxavmlinux.lds压缩内核启动引导代码内核起始代码常用函数pxa平台相关代码核心的连接脚本文件与与架构和平台相关的源代码都放在架构和平台相关的源代码都放在arch目录下,对于目录下,对于ARM的的Linux,包含于包含于arch目录下的目录下的arm子目录中。子目录中。LinuxLinux操作系统操
21、作系统LinuxLinux内内核的核的archarch目录目录当当使用压缩核心时,使用压缩核心时,boot目录下包含压缩和解压核心的源代目录下包含压缩和解压核心的源代码和码和Makefile文件。文件。kernel目录的目录的entry-armv.S中为未压缩内核的起始执行文件,中为未压缩内核的起始执行文件,内核从其第一条指令处执行。内核从其第一条指令处执行。vmlinux.lds文件为核心的连接脚本文件,压缩核心解压后必文件为核心的连接脚本文件,压缩核心解压后必须解压缩到该文件指定的地址。须解压缩到该文件指定的地址。LinuxLinux操作系统操作系统LinuxLinux内内核移植核移植配置
22、内核配置内核编译内核编译内核下载、运行、调试内核下载、运行、调试内核LinuxLinux操作系统操作系统配置配置LinuxLinux内内核核make configmake menuconfigmake xconfigLinuxLinux操作系统操作系统make make configconfigLinuxLinux操作系统操作系统make make menuconfigmenuconfigLinuxLinux操作系统操作系统make make xconfigxconfigLinuxLinux操作系统操作系统LinuxLinux常用配置选项常用配置选项系统及其存储器配置系统及其存储器配置网络支持
23、网络支持显示器支持显示器支持触摸屏支持触摸屏支持LinuxLinux操作系统操作系统系统及其存储器配置系统及其存储器配置在在System Type菜单中中进行配置菜单中中进行配置选择系统类型处理器型号选择处理器其它特性LinuxLinux操作系统操作系统网络支持网络支持在在Networking options以及以及Network device support中进中进行配置行配置 选择支持TCP/IP协议LinuxLinux操作系统操作系统网络支持网络支持在在Network device support配置中,添加选项配置中,添加选项Network device support采用SMC91网
24、卡芯片。LinuxLinux操作系统操作系统显示器支持显示器支持在在Console drivers中进行配置。中进行配置。在在Character devices配置中,添加选项配置中,添加选项Virtual terminal配置,如下图所示。配置,如下图所示。Virtual terminal支持LinuxLinux操作系统操作系统显示器支持显示器支持在在Console drivers中添加中添加Support Frame buffer devices配置配置采用16位 TFT显示器,因此必须选择16bpp支持LinuxLinux操作系统操作系统编译编译LinuxLinux内内核核建立依赖关系建
25、立依赖关系make dep编译内核编译内核make 编译内核编译内核make zImage 编译压缩核心(编译压缩核心(zImage)编译生成的编译生成的Linux映映像文件像文件zImage通常保存在通常保存在arch/arm/boot/目录下目录下LinuxLinux操作系统操作系统下载、运行和调试内核下载、运行和调试内核通过调试器下载内核并运行通过调试器下载内核并运行通过通过BOOTLOADER下载内核到下载内核到SDRAM中运行中运行通过通过BOOTLOADER将内核烧写到将内核烧写到FLASH中,然后运行中,然后运行LinuxLinuxLinux操作系统操作系统LinuxLinux调
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux操作系统 Linux 操作系统
限制150内