Linux复习资料自己总结版.docx

上传人:b****6 文档编号:15850161 上传时间:2023-07-08 格式:DOCX 页数:19 大小:149.58KB
下载 相关 举报
Linux复习资料自己总结版.docx_第1页
第1页 / 共19页
Linux复习资料自己总结版.docx_第2页
第2页 / 共19页
Linux复习资料自己总结版.docx_第3页
第3页 / 共19页
Linux复习资料自己总结版.docx_第4页
第4页 / 共19页
Linux复习资料自己总结版.docx_第5页
第5页 / 共19页
Linux复习资料自己总结版.docx_第6页
第6页 / 共19页
Linux复习资料自己总结版.docx_第7页
第7页 / 共19页
Linux复习资料自己总结版.docx_第8页
第8页 / 共19页
Linux复习资料自己总结版.docx_第9页
第9页 / 共19页
Linux复习资料自己总结版.docx_第10页
第10页 / 共19页
Linux复习资料自己总结版.docx_第11页
第11页 / 共19页
Linux复习资料自己总结版.docx_第12页
第12页 / 共19页
Linux复习资料自己总结版.docx_第13页
第13页 / 共19页
Linux复习资料自己总结版.docx_第14页
第14页 / 共19页
Linux复习资料自己总结版.docx_第15页
第15页 / 共19页
Linux复习资料自己总结版.docx_第16页
第16页 / 共19页
Linux复习资料自己总结版.docx_第17页
第17页 / 共19页
Linux复习资料自己总结版.docx_第18页
第18页 / 共19页
Linux复习资料自己总结版.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Linux复习资料自己总结版.docx

《Linux复习资料自己总结版.docx》由会员分享,可在线阅读,更多相关《Linux复习资料自己总结版.docx(19页珍藏版)》请在冰点文库上搜索。

Linux复习资料自己总结版.docx

Linux复习资料自己总结版

《Linux与嵌入式通信系统》复习大纲

1.简述嵌入式系统的概念、组成、特点及发展趋势。

概念:

嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”

以应用为中心、以计算机技术为基础,软件硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

嵌入式系统是以嵌入式应用为目的的计算机系统。

可分为系统级、板级、片级

组成:

硬件:

存储器、处理器、外围电路

软件:

操作系统各应用程序

特点:

系统内核小

(2)专用性强

(3)系统精简

(4)高实时性OS

(5)嵌入式软件开发走向标准化

(6)嵌入式系统需要开发工具和环境

发展趋势:

软件设计比重日益突出(软件开发特点:

实时性、模块化、组件化、可重用)、组件设计技术、Soc、硬件软件化;宏观方面经济性、小型化、可靠性、高速度、智能性益突出•组件设计技术•SOC•硬件软件化

2.简述嵌入式处理器的分类和各自特点。

嵌入式微控制器(MCU):

微控制器的片上外设资源一般比较丰富,适合于控制,是目前嵌入式系统工业的主流;最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高;

嵌入式DSP处理器微(DSP):

专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊的设计,在数字滤波、FFT频谱分析等各种仪器上获得了大规模的应用。

嵌入式微处理器(MPU):

具有体积小、重量轻、成本低、可靠性高的优点

嵌入式片上系统(SystemOnChip):

是一种电路系统、结合了许多功能区块,将多种功能做在一个芯片上;利用改变内部工作电压,降低芯片功耗;减少芯片对外管脚数,简化制造过程;养活外围驱动接口单元及电路板之间的信号传递,可以加快微处理器数据处理的速度;内嵌的线路可以避免外部电路板在信号传递时所造成的系统杂讯。

的片上外设资源一般比较丰富,适合于控制,是目前嵌入式系统工业的主流。

微控制器的片上外设资源一般比较丰富

3.举例说明常见的嵌入式操作系统及特点。

VxWorks:

可靠性、实时性、可裁减性;支持多种处理器;有良好的持续发展能力,高性能的内核以及友好的用户开发环境。

WindowsEmbedded:

针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台。

但WindowsCE嵌入不够实时,属于软实时操作系统。

界面比较统一

PalmOS:

专用于PDA上的一种32位嵌入式操作系统、操作界面采用触控式,本身所占的内存极小,不具有录音、MP3播放功能

嵌入式Linux:

开放源码,不存在黑箱技术;内核少、功能强大、运行稳定、系统健壮、效率高、易于定制剪裁

4.简述嵌入式系统的开发流程。

一、嵌入式系统的开发流程:

需求分析和概要设计;硬件系统选型和设计;软件系统设计及实现;开发调试及测试;嵌入式系统量产。

建立开发环境;配置开发主机;建立引导装载程序BOOTLOADER;下载已经移植好的Linux操作系统;建立根文件系统;建立应用程序的FLASH磁盘分区;开发应用程序;烧写内核。

二、因此开发流程如下:

1、开发target硬件系统。

2、需要一套交叉编译工具,能够产生target目标代码3、开发一个bootloader到target上去,用来引导内核 4、开发linux内核到target上去5、开发一个rootfs6、开发特定硬件的驱动程序7、或许还需要一个实时的linux 8、开发上层的应用程序。

5.什么是EIA,它有什么特点?

EIA(EmbeddedintelArchitecture)嵌入式英特尔架构)EIA处理器,芯片组,软件项目,和其他积木帮助提供的组合性能,可扩展性,和软件的一基于升级,以满足未来一代网络不断增长的需求,在OSI应用服务层的多层次需要的。

EIA处理器提供电源处理计算密集型的控制操作,包括服务和应用服务层,如路由和信令协议,策略控制,服务质量[QOS和安全所需的功能。

6.南北桥片的功能是什么,选择芯片组的主要原则有哪些?

北桥芯片:

负责与CPU的联系并控制内存,AGP、PCI数据在北桥内部传输,提供对CPU的类型和主频,系统的前端总线频率,内存的类型和最大容量、ISA/PCI/AGP插槽、ECC纠错等支持,还集成了显示核心。

南桥芯片:

负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SATA、音频控制器、键盘控制器,实时时钟控制器,高级电源管理等

选择芯片组的主要原则有哪些:

芯片组性能的优劣,决定了主板性能的好坏与级别的高低。

目前CPU的型号与种类繁多、功能特点不一,如果芯片组不能与CPU良好地协同工作,将严重地影响计算机的整体性能甚至不能正常工作。

其中CPU的类型、主板的系统总线频率,内存类型、容量和性能,显卡插槽规格是由芯片组中的北桥芯片决定的;扩展槽的种类与数量、扩展接口的类型和数量(如USB2.0/1.1,IEEE1394,串口,并口,笔记本的VGA输出接口)等,是由芯片组的南桥决定的;还有些芯片组由于纳入了3D加速显示(集成显示芯片)、AC'97声音解码等功能,还决定着计算机系统的显示性能和音频播放性能等。

7.操作系统的作用、功能、结构及特性。

作用:

隐藏硬件特性,提供等价的虚拟机,便于用户开发的使用

功能:

资源管理器,负责计算机系统的全部资源的分配、控制、调度和回收。

结构:

特性:

并发性(两个或者两个以上的时间或活动在同一时间间隔内发生)

共享性(资源可以被多个并发的进程使用,分为互斥访问和同时访问)

异步性(命令作业随机,错误随机、中断随机)

虚拟性(把物理上一个实体变成逻辑上的多个对应物或把物理上多个尸实体变成逻辑上的一个对应物)

8.简述Linux的主要特点,它与其它操作系统的区别是什么?

主要特点:

开放性、多用户、多任务、良好的用户界面、设备独立性、提供了丰富的网络功能、可靠的系统安全、良好的可移植性、相对比较不耗系统资源

与其它系统的区别:

(1)Linux与MS-DOS:

MS-DOS没有完全实现X86处理器的功能,而Linux完全全在处理器保模式下运行,并且开发了处理器的所有特性;linux可以直接访问计算机内的所有可用内存,提供完整的Unix接口,而MS-DOS只支持部分unix接口;MS-DOS是单任务操作系统。

(2)Linux与OS/2、Windows、WindowsNT:

linux是从一个比较成熟的操作系统发展而来的,而其它操作系统,都是自成体系,无对应的相依托的操作系统;Linux是一种开放、免费的操作系统,而其它操作系统都是封闭的系统,需要有偿使用

9.简述Linux的体系结构及各部分的功能。

LINUX体系结构:

Linux操作系统由4个主要的子系统所组成:

用户应用程序—在某个特定的Linux系统上运行的应用程序集合,它将随着该计算机系统的用途不同而有所变化,但一般会包括文字处理应用程序和Web浏览器。

O/S服务—这些服务一般认为是操作系统的一部分(XWindow系统,命令外壳程序shell等等);此外,内核的编程接口(编译工具和库)也属于这个子系统。

Linux内核—包括内核抽象和对硬件资源(如CPU)的间接访问。

硬件控制器—这个子系统包含在Linux实现中所有可能的物理设备,例如,CPU、内存硬件、硬盘以及网络硬件等都是这个系统的成员。

各部分的功能:

内核:

在硬件方面,Kernel负责控制电脑的硬件装置、内存管理以及提供完整的硬件接口与应用程序沟通(系统启动和初始化,硬件的驱动程序);在软件方面,Kernel负责管理文件系统、对正在运行的程序作内存管理与调整,并进行进程管理(内存管理,进程管理,中断处理,文件系统等)

Shell:

Shell提供了一个内核与用户之间的界面,是一种作为用户和操作系统之间的接口的命令解释程序。

硬件平台:

它是整个系统的实体工作者,是其他部分的基础。

应用程序和系统程序:

运用文字或者图形界面供用户使用操作系统完成具体的应用。

10.简述Linux内核的构成,各部分的功能及相互关系。

Linux内核由5个主要的子系统构成

(1)进程调度程序(SCHED)负责控制进程访问CPU。

调度程序所使用的策略可以保证进程能够公平地访问CPU,同时保证内核可以准时执行一些必需的硬件操作。

(2)内存管理程序(MM)使多个进程可以安全地共享机器的主存系统。

此外,内核管理程序支持虚拟内存。

虚拟内存使得Linux可以支持进程使用超过系统中的内存数量的内存。

暂时用不着的存储信息可以交换出内存,存放到使用文件系统的永久性存储器上,然后在需要它们的时候再交换回来。

(3)虚拟文件系统(VFS)。

通过提供一个所有设备的公共文件接口,VFS抽象了不同硬件设备的细节。

此外,VFS支持与其他操作系统兼容的不同的文件系统格式。

(4)网络接口(NET)提供了对许多建网标准和网络硬件的访问。

(5)进程间通信(IPC)子系统为单个Linux系统上进程与进程之间的通信提供了一些机制。

子系统间的依赖关系:

11.进程的定义、PCB的作用与信息,进程切换、进程控制。

定义:

进程是操作系统机构的基础,是系统中程序执行的资源分配的基本单位,是一个具有独立功能的程序的一次运行活动,一个程序可以启动多个进程。

(四要素:

进程程序块、进程数据块、系统堆栈‘用户堆栈)

PCB:

定义:

是操作系统用于记录和刻画进程状态及有关信息的数据结构,也是操作系统掌握进程的唯一资料结构。

(包括标识信息、现场信息、控制信息)

进程切换:

让处于运行态的进程中断运行,让出处理器,这是要做一次进程上下文的切换,及保存老进程状态而装入被保护的新进程的状态,以便新进程运行。

(步骤:

•保存被中断进程的处理器现场信息。

•修改被中断进程的进程控制块的有关信息,如进程状态等。

•把被中断进程的进程控制块加入有关队列。

•选择下一个占有处理器运行的进程。

修改被选中进程的进程控制块的有关信息。

•根据被选中进程设置操作系统用到的地址转换和存储保护信息。

•根据被选中进程恢复处理器现场。

进程控制:

进程是有生命周期的,包括产生、运行、暂停、终止。

对进程的这些操作叫进程控制。

•进程控制包括:

进程创建、进程阻塞、进程唤醒、进程挂起、进程激活、进程终止和进程撤销等。

进程间的通信:

管道、消息队列、信号、共享内存、信号量、套接口

12.Linux的启动过程,bootloader的主要任务和典型框架结构是什么?

系统加电-Bootloader或BIOS加电自检-读硬盘主引导扇区-分析分区表-执行MBR中的引导程序-读入活动分区的引导扇区-读入操作系统内核-进行初始化-执行init,如果LILO装在MBR,则启动过程如上,如果LILO装在boot扇区,则省去加粗字体那步。

bootloader主要任务:

整个系统加载启动。

Bootloader可以分为两个步骤来完成:

Stage1:

(1)硬件设备初始化(如I/O口,存储器和时钟).

(2)为加载Bootloader的stage2准备好RAM空间.(3)复制Bootloader的到RAM空间中.(4)设置好堆栈.(5)跳转到stage2的C入口点.

Stage2:

(1)初始化本阶段要使用的硬件设备.

(2)检测系统的内存映射.(3)将kernel映像和根文件系统映像从Flash上读到RAM空间中.(4)从内核设置启动参数.(5)调用内核.

13.简述Toolchain的基本功能和配置步骤。

toolchainGNU开发工具链是指GNUCompilerCollection、GNUlibc以及用来编译、测试和分析软件的GNUbinutils。

是Linux默认开发工具链。

它的基本功能是:

编译,。

配置步骤:

先进行命令配置,再进行关联检测:

GNUCompilerCollection:

即GCC是用于C、C++、Objective-C、Fortran等编程语言的一个编译器集。

需要配置输入、输出、平台选择、调试、优化等选项。

GNUbinutils包括一套用来构造和使用二进制文件所需要的工具。

其中两个最为关键的binutils是GNU链接器ld和GNU汇编程序as。

更多的Binutils:

除了链接器和汇编程序之外,有些开发人员还会发现其他binutils

其实就是GNUTools中最基本的工具:

ld(链接器),as(汇编器),gcc(C语言编译器),glibc(包含各种基本函数实现的软件库)。

14.简述Linux文件系统的功能、结构和类型。

文件系统的功能:

(1)满足用户管理数据的需要,这其中包括数据存储和对数据的操作。

(2)尽可能保证文件中数据的有效性。

(3)性能优化,以提高系统的吞吐量和响应速度。

(4)提供不同类型的存储设备的I/O支持。

(5)消除或降低数据丢失或遭破坏的可能性。

(6)提供一个标准的I/O界面。

(7)在多用户系统中,向多个用户提供I/O支持等等。

结构:

见右图。

Linux文件分类:

1.普通文件2.目录文件3.设备文件

Linux文件系统分类:

ext2:

标准Linux文件系统;ext3:

带日志的标准Linux文件系统;NFS:

Sun的文件系统;jfs:

IBM的日志文件系统;reiserfs:

另一个流行的日志文件系统

15.什么是配置文件,举例说明2-3种重要配置文件的功能和结构特点。

一、每个Linux程序都是一个可执行文件,它含有操作码列表,CPU将执行这些操作码来完成特定的操作。

例如,ls命令是由/bin/ls文件提供的,该文件含有机器指令的列表,在屏幕上显示当前目录中文件的列表时需要使用这些机器指令。

几乎每个程序的行为都可以通过修改其配置文件来按照您的偏好或需要去定制。

内核本身也可以看成是一个“程序”。

内核需要了解系统中用户和组的列表,进而管理文件权限,内核也需要系统配置文件。

配置文件都在/etc的目录中,可以分为几类:

访问文件、引导和登录/注销、文件系统、系统管理、网络配置文件、系统命令、守护进程。

举例:

/etc/host.conf告诉网络域名服务器如何查找主机名。

(通常是/etc/hosts,然后就是名称服务器;可通过netconf对其进行更改) /etc/hosts包含(本地网络中)已知主机的一个列表。

如果系统的IP不是动态生成,就可以使用它。

对于简单的主机名解析(点分表示法),在请求DNS或NIS网络名称服务器之前,/etc/hosts.conf通常会告诉解析程序先查看这里。

 /etc/issue&/etc/这些文件由mingetty(和类似的程序)读取,用来向从终端(issue)或通过telnet会话()连接的用户显示一个“welcome”字符串。

它们包括几行声明RedHat版本号、名称和内核ID的信息。

它们由rc.local使用。

 

二、Linux系统中大多数配置文件都在/etc目录中。

配置文件可以大致分为下面几类:

访问文件,文件系统,系统管理,联网,系统命令,守护进程等。

/etc/host.conf告诉网络域名服务器如何查找主机名。

/etc/fstab列举计算机当前“可以安装”的文件系统。

etc/passwd包含一些用户帐号信息,包括密码(如果未被shadow程序加密过)。

/etc/httpd.confWeb服务器Apache的配置文件。

16.简述Linux内核编译、裁减以及Linux移植的基本步骤。

Linux内核的裁减与编译

首先在宿主机端进入到内核所在的目录/usr/src/linux-2.4下,修改Makefile文件中EXTRAVERSION变量的值,用来标识新内核,本例改为hebut。

然后完成内核的裁减与编译:

    ①makemrproper:

用于清除所有的临时文件、中间件、配置文件。

    ②makexconfig:

进行核心配置,在其中每个选项都有两种选择,分别表示支持和不支持相应的特性或驱动程序,个别选项有‘m’选择,表示把相应的特性或驱动程序编译成可加载模块的方式。

根据不同的应用对内核进行裁减。

系统将新的配置保存成.config文件。

    ③makedep:

用于生成依赖性。

    ④makebzImage:

产生压缩的核心映像。

内核压缩映像被系统保留在/usr/src/linux-2.4/arch/i386/boot目录中,将其复制到/boot目录下,并重命名为vmlinuz-2.4.20hebut。

末尾为EXTRAVERSION变量的值。

    ⑤makemodules:

组织各个/usr/src/linux-2.4.20子目录已经配置的模块。

    ⑥makemodules_install:

在/lib/modules/2.4.20目录中组织模块。

    经过以上的裁减与编译,可以使一个包含网络服务的内核减小到1M以内。

移植:

将嵌入式Linux操作系统安装到CF卡上

    要在宿主机上将已定制好的内核装入CF卡中并在其上构建操作系统首先需要把CF挂载成宿主机的一个设备。

挂载成不同的设备需要不同的连接器。

现以把CF卡挂载成USB设备为例,对在其上构建嵌入式Linux操作系统的过程进行介绍。

    首先将CF卡进行分区。

使用fdisk命令,在CF卡上建立分区。

#fdisk/dev/sda1,然后创建ext2文件系统,#mke2fs-c/dev/sda1,该命令在/dev/sda1上创建ext2文件系统。

将CF挂载到宿主机上,#mount/dev/sda1/mnt/sda1,将CF卡挂载到宿主机上后,挂载的目录是/mnt/sda1。

    用下面命令创建文件系统:

    #mkdir/bin

    类似地创建/boot、/etc、/lib、/mnt、/root、/sbin、/tmp、/usr、/var。

    用下面的命令创建/dev:

    #cp-a/dev/mnt/sda1

    这样可以把设备文件创建在CF卡中的/dev目录下。

    将生成的压缩内核文件vmlinuz-2.4.20hebut文件放入/mnt/sda1/boot目录下保存。

进行以上操作后,需要给CF安装BootLoader程序使其运行时可以加载内核。

17.为什么要进行内核配置,简述其基本过程和方法

⑴内核是所有Linux系统的中心软件组件,整个系统的能力完全受内核本身能力的限制。

(2)为什么要进行内核配置?

首先,我们可以了解系统是如何工作的。

通过通读源代码,我们就可以了解系统的工作原理,这在Windows下简直是天方夜谭。

其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。

再次,我们可以对内核进行修改,以符合自己的需要。

(3)基本过程和方法:

内核配置有两种方法,一种是直接置入内核;另一种是编成模块;两种方法各有优点;直接编入内核的,比如设备的启动,不再需要加载模块的这一过程了;而编译成模块,则需要加载设备的内核支持的模块;但直接把所有的东西都编入内核也不是可行的,内核体积会变大,系统负载也会过重。

我们编内核时最好把极为重要的编入内核;其它的如果您不明白的,最好用默认。

#makexconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)makexconfig,使用鼠标就可以选择对应的选项。

实际上在配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。

选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响;不需要的功能就不要选;与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。

(4)配置完成后,进行编译和更新。

18.什么是交叉编译?

编译程序的基本构成是什么?

由于目标机指令系统与宿主机的指令系统不同,编译时将应用程序的源程序在宿主机上生成目标机代码,称为交叉编译。

编译程序结构(components)和功能:

词法分析程序:

从左至右读字符流的源程序识别(拼)单

语法分析程序:

层次分析.依据源程序的语法规则把源程序的单词序列组成语法短语(表示成语法树).、

语义分析程序:

语义审查(静态语义)上下文相关性、类型匹配、类型转换

中间代码生成程序:

源程序的内部(中间)表示三元式、四元式、P-Code、C-Code、UCode、bytecode

代码优化程序:

目标代码生成程序:

符号表管理程序:

记录源程序中使用的名字、收集每个名字的各种属性信息(类型、作用域、分配存储信息)

出错处理程序:

检查错误、报告出错信息、排错、恢复编译工作

19.举例说明makefile功能、构成和工作原理?

Make和Makefile:

自动编译,自动确定软件包的哪部分需要重新编译并用特定的命令去编译。

准确使用make可以大大减少编译程序所花费的时间,因为它可以消除不必要的重编译。

Makefile文件中包含着一些目标,对于每一个目标,都提供了与这个目标具有相关性的其他目标或文件的名字,以及实现这个目标的一组命令。

Makefile的书写规则:

目标[属性]

分隔符号[依赖文件][;命令列]

{命令列}

#一个简单的Makefile的例子

exeProg:

main.osubfunc.o

gcc-oexeProgmain.osubfunc.o

main.o:

main.cmain.h

gcc-c-I.-omain.omain.c

subfunc.o:

subfunc.c

gcc-c-osubfunc.o:

subfunc.c

clean:

rm-f*.o

在这里假设修改了文件subfunc.c,可用一下命令更新目标exeProg,即重新编译可执行文件exeProg。

%makeexeProg

由于exeProg依赖于目标main.o和subfunc.o,所以必须检查main.o和subfunc.o是否过时。

目标main.o依赖文件main.cmain.h,比较目标文件main.o和源文件main.c、main.h的更新日期,如发现main.o比它所依赖的文件的日期更新,即不过时。

在检查目标subfunc.o,subfunc.o,它依赖文件subfunc.c,由于已经修改了subfunc.c,它比subfunc.o更新,即subfunc.o过时了,从而依赖subfunc.o的所有目标都过时了。

应该用在makefile文件中定义好的如下shell命令更新它:

gcc-c-osubfunc.o:

subfunc.c

由于目标subfunc.o过时并更新,导致目标exeProg已经过时,要完成“makeexeProg”的任务,必须用定义exeProg的一组shell命令来更新它:

gcc-oexeProgmain.osubfunc.o

如果是第一次编译上面这个软件,则因为exeProg、main.o和subfunc.o等目标文件都不存在,按照规定,这是所有目标都是过时的,必须全部更新,而且必须从底部而上执行定义这些目标的shell命令。

输入makeclean命令将执行:

rm-f*.o

20.什么是设备驱动程序,其功能和结构如何?

linux设备

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2