linux嵌入式操作系统知识点复习_第1页
linux嵌入式操作系统知识点复习_第2页
linux嵌入式操作系统知识点复习_第3页
linux嵌入式操作系统知识点复习_第4页
linux嵌入式操作系统知识点复习_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式LINUX操作系统知识点复习1、背)嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪,对功能、可靠 性、成本、体积和功耗有严格要求的专用计算机系统。2、通常把进行嵌入式系统开发的PC机称为宿主机,把嵌入式系统的机器称为H标机。3、)在目标机上嵌入某种功能较强且占用内存较少的操作系统,用户程序在该操作系统支 持下运行,这种操作系统称为嵌入式操作系统。4、带操作系统的嵌入式系统,在编制较为复杂和高端应用程序时,用户程序会显得比较简 单,而不带操作系统的嵌入式系统,在系统稳定性、实时性等方面要髙于带操作系统的, 但不太适用于编制较为复杂的用户程序。5、目前的嵌入式操作系统主要有Lin

2、ux、WindowsCE、eCos、VXWorks等几种。6、ARM处理器是一种低功耗、高性能的32位RISC处理器。7、在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和 不可执行文件。8、shell脚本是一个包含一系列命令序列的文本文件。9、X ) shell脚本编程与C语言编程的区别。10、vi是一个Linux系统下的文本编辑器,可通过它来编写程序代码。11、gcc是Linux下的程序编译工具,它可将C语言源程序编译链接成可执行文件。12、gcc通过后缀来区别输入文件的类别,默认的输岀文件名为a.outo13、在Linux下,gcc进行编译链接的缺省操作是链

3、接成动态库,要链接成静态库需要 加上“-static”的参数。14、动态库链接与静态库链接的区别。15、gdb是Linux下的程序调试工具,它可启动被调试程序、让被调试程序在断点处停 住、可检査程序状态。16、需要用gdb调试的程序,在用gcc编译时需要加上-g”的参数。17、MakeFile文件描述了整个工程的编译、链接等规则,它是make文件执行时所必需 的文件。18、X )分析一个具体的MakeFile文件。19、在Linux中的文件编程可使用系统调用和C语言库函数两种方法。20、熟悉系统调用方式,文件的读、写等操作。21、日历时间是指从1970年1月1日0点到目前所经过的秒数。22、进

4、程是一个具有一怎独立功能的程序的一次运行活动。23、子进程的创建、进程等待等操作。24、X进程间的通信是为了数据传输、资源共享、通知事件、进程控制等。25、管道是单向的、先进先出的,它把一个进程的输出和另一个进程的输入连接在一起。26、X) 个进程在管道的尾部写入数据,另一个进程从管道的头部读出数据。27、数据被一个进程读出后,将被从管道中删除。28、管逍包括无乳管道PIPE和有名管逍FIFO两种,前者用于父进程和子进程间的通信, 后者用于同一系统中的任意两个进程间的通信。29、关闭笛道只需要将两个文件描述符关闭即可,可使用普通的close函数进行关闭。30、必须在系统调用fork()前调用p

5、ipe()创建无划管道,否则子进程将不会继承文件描 述符。31、X以下条件为可产生信号:按下某个按键、硬件产生异常、进程用kill函数将信号 发送给另一个进程、用户用kill命令将信号发送给其他进程。32、X对信号的处理有三种方式:忽略信号、执行用户希望的动作、执行系统默认动作。33、X使用工alarm函数可以设苣一个时间值,当所设置的时间到了时,产生SIGALRM 信号。34、pause函数使调用进程挂起直到捕捉到一个信号。35、共享内存是被多个进程共享的一部分物理内存,它是进程间共享数据的一种最快的 方法。36、创建共享内存使用shmget函数,映射共享内存使用shmat函数。37、当一个

6、进程不再需要共享内存时,需要把它从进程地址空间中脱离,使用shmdt 函数。38、消息队列是一个消息的链表,可以把消息看作一个记录,具有特左的格式。39、信号量主要用于保护临界资源,进程可根据它判断是否能够访问某些共享资源,还 可用于进程同步。40、线程是一种非常节俭的多任务操作方式,运行于一个进程中的多个线程,它们之间 使用相同的地址空间,一个线程的数据可直接为其它线程所用,非常快捷方便。41、编写Linux下的多线程程序,在编译链接时需要引用库文件libpthread.a,即在gcc 中加入参数-Lpthread”。42、线程的创建,线程间的各类参数传递。43、线程的正常退出方式有retu

7、rn和pthread_exito44线程等待。45、X线程终止有正常终止和非正常终止两种情况,如何保证线程终I匕时能顺利地释放 自己所占用的资源。46、Unux由用八空间和内核空间两部分组成。47、内核空间与用户空间是程序执行的两种不同状态,通过系统调用和硬件中断方式能 够完成从用户空间到内核空间的转移。48、) Linux的内核架构。厂7System Call Interface (SCI)ProcessManagement (PM)Virtual File* Svstenrt (VFS)Memory Management (MM)Network StackArchDevice Driver

8、s (DD)ySCI是系统调用接口,它为用户空间提供了一套标准的系统调用函数来访问Linux内核, 搭起了用户空间到内核空间的桥梁。PM是进程管理,它的重点是创建和停止进程,并控制它们之间的通信,同时负责进程 的调度。VFS是虚拟文件系统,它隐藏了各种文件系统的具体细泯 为文件操作提供了统一的接 口。MMU内存管理单元,它的主要作用是控制多个进程安全地共享内存区域。NS是网络协议栈,它提供了丰富的网络协议的具体实现。Arch是与内核构架相关的内核代码,它对多种CPU构架提供了支持。DD是设备驱动,它用于控制特左的硬件设备,Linux内核中有大量代码都在设备驱动程序中。49、Linux内核源代码

9、采用树形结构进行组织,把功能相关的文件都放在同-个子目录 下。50、)内核配置编译的步骤为:淸除临时文件、中间文件和配苣文件:确定目标系统的 软硬件配置情况;使用“make config”或“make menuconfig”进行配這:编译内核“make bzlmage;编译模块make modules51、在内核配置中,选项为号的项目将会编译进内核中,选项为“M”的项目将 会编译成模块,选项为空的项目将不会被编译。52、)项目编详进内核和编译成内核模块的区别。所有组件都编译进内核会导致两个问 题:一是生成的内核文件过大,二是如果要添加或删除某个组件需要重新编译整个内核。 编译成内核模块时,模块

10、本身并不被编译进内核文件,可根据需求,在内核运行期间进 行动态的安装或卸载。53、X内核模块的加载(insmodmodprobe)、卸载(rmmod)、查看(Ismod )等操作。54、内核模块巧应川程&的区别:应用程序从main函数开始执行任务,一直到结朿后 应用程序从内存中消失:内核模块是先在内核中注册自己以便服务于将来的某个请求, 初始化函数结束时,模块仍然存在于内核中,直到卸载函数被调用,模块才从内核中消 失。55、X内核打印printk与常规打印printf的区别。printk函数在内核中使用,printf函数 在应用程序中使用:printk允许根据严重程度,通过附加不同的“优先级”

11、来对消息分 类。56、物理地址是指岀现在CPU地址总线上的寻址物理内存的地址信号,是地址变换的 最终结果。57、逻辑地址是程序代码经过编译后在汇编程序中使用的地址。58、线性地址(虚拟地址),是与CPU的位宽相关的地址,在32位CPU架构下,可以 表示4G的地址空间。59、XCPU要将一个逻辑地址转换为物理地址需要两步:首先CPU利用段式内存管理 单元将逻借地址转换成线性地址,再利用页式内存管理单元把线性地址最终转换为物理 地址。60、在Linux系统的内存管理中,逻辑地址与线性地址是保持一致的。61、在Linux系统中,巧妙地把段机制给绕过去,而完全利用了分页机制。62、Linux系统采用虚

12、拟内存管理技术,使得每个进程都有独立的进程地址空间,大小 为3G,用户看到的都是虚拟地址,而看不到实际的物理地址,这样用户程序可用比实 际物理内存更大的地址空间。63、Linux将4G的虚拟地址空间分为两个部分:用户空间和内核空间。用户空间从0 到3G,内核空间从3G到4G。用户进程可通过系统调用或中断的方式访问内核空间。64、进程的创建、程序载入、动态内存分配等操作都会分配内存给进程,它分配的仅仅 是虚拟地址,而不是物理地址。65、X实际的物理内存只有当进程真正地去访问新获取的虚拟地址时,才会由“请页机 制”产生“缺页”异常而进入分配实际页框的程序。66、内核空间是由内核负责映射,它不会跟着

13、进程改变,是固立的。67、)内核空间分布。3JG4G8M枢BK896Mimax)12 讪min)4M4M直接内存映射区,从3G开始最大到896M的线性地址空间,它与物理地址之间存在固泄的 线性关系。动态内存映射区,由vmalloc进行分配,线性空间连续,物理空间不一泄连续。永久内存映射区,对于896M以上的高端内存,可使用该区域来访问。固定映射区,它当中的每个地址项都服务于特左的用途,一般是外部硬件设备的映射地址。68、时钟中断由系统的左时硬件以周期性的时间间隔产生,英频率由内核根据HZ来确 泄,HZ是一个与体系结构无关的常数,在X86平台下,默认值为1000o69、内核泄时器用于控制某个函数

14、在未来的某个特左时间执行,函数仅执行一次,不循 环执行。70、每当时钟中断发生,全局变量jiffies就加1,该变量记录了自Linux启动后时钟中 断发生的次数,所以可利用它来计算不同事件间的时间间隔。71、)嵌入式系统开发流程:硬件系统设计、BootLoader移植、Linux内核務植、驱动 程序开发、协议栈开发、应用程序开发、QT图形化应用开发及网络应用开发、产品测 试及发布。72、交叉工具链。73、一个嵌入式系统分为三个层次。Boot ambersKemetRoot Iteyrt era尸Boodoactef引导加载程序BootLoaderLinux 内核 KerneL根文件系统Root

15、 Filesystem74、BootLoader是在操作系统运行之前运行的一段小程序,通过这段小程序可以初始化 硬件设备,为调用操作系统做好准备。它类似于PC中的BIOS程序。75、每种不同的CPU体系结构都有不同的BootLoader,除此以外,它还依赖于具体的 嵌入式板级设备的配置。76、BootLoader的启动过程可分为单阶段和多阶段两种,从固态存储设备上启动的 BootLoader大多采用两阶段模式。77、78、)在两阶段的BootLoader中,第一阶段(stag)的作用是:初始化硬件设备、为 stage2准备RAM空间、复制stage2代码到RAM空间、设巻堆栈、跳转到stage

16、2的入口 去执行:第二阶段(stage2)的作用是:初始化下一阶段要用的硬件设备、把内核映像 和根文件系统映像读到RAM中、跳转到内核的入口去执行。79、根文件系统是Linux启动时使用的第一个文件系统,它由一系列目录组成,目录中5包括了应用程序、c库、相关的配置文件等。80、)制作根文件系统的步骤:创建根文件系统的目录、创建设备文件、安装/etc、编 译内核模块、安装内核模块、配Jit BusyBoXs编译安装BusyBox、制作Ramdisk。81、文件系统的选择要根据存储设备的硬件特性、系统需求等来确定,在嵌入式Linux 系统中,常用的文件系统有:jffs2、yaffss cramfs

17、、ramdisk、ramfs等。82、驱动程序就是使硬件能够在操作系统中正常工作的软件。83、在Linux下,驱动程序分为三类:字符设备驱动、块设备驱动、网络接口驱动。84、X字符设备是一种按字节来访问的设备,字符驱动负责驱动字符设备,它可实现 open close、read、write 等系统调用。85、块设备驱动在Linux下与字符设备驱动仅仅是驱动和内核的接口不同。86、网络接口驱动负责发送和接收数据报文。87、驱动程序的安装可选择为内核模块方式或直接编译进内核。88、字符设备通过字符设备文件来存取。89、主设备号用来反映设备类型,次设备号用来区分同类型的设备。90、主设备号的获取有静态申请和动态分配两种方法。91、静态申请主设备号时,一旦选左的主设备号与已有的设备号冲突,驱动程序将无法 注册。92、不论使用何种方法分配设备号,都要在不再使用它们时释放这些设备号。93在 Linux 系统中,有 3 种重要的数据结构:Struct file、Struct inode、Struct file_operationso94、Struct file代表一个打开的文件,系统中每个打开的文件在内核空间都有一个关联 的struct file,它由内核在打开文件时创建,在文件关闭后释放。95、St

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论