《Linux复习资料自己总结版(35页).doc》由会员分享,可在线阅读,更多相关《Linux复习资料自己总结版(35页).doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-Linux与嵌入式通信系统复习大纲1. 简述嵌入式系统的概念、组成、特点及发展趋势。概念:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”以应用为中心、以计算机技术为基础,软件硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是以嵌入式应用为目的的计算机系统。可分为系统级、板级、片级组成:硬件:存储器、处理器、外围电路 软件:操作系统各应用程序特点:系统内核小()专用性强()系统精简()高实时性OS(5)嵌入式软件开发走向标准化(6)嵌入式系统需要开发工具和环境发展趋势:软件设计比重日益突出(软件开发特点:实时性、模块化、组件化、可重用)、组件设计技术、
2、Soc、硬件软件化;宏观方面经济性、小型化、可靠性、高速度、智能性益突出 组件设计技术 SOC 硬件软件化2. 简述嵌入式处理器的分类和各自特点。嵌入式微控制器(MCU):微控制器的片上外设资源一般比较丰富,适合于控制,是目前嵌入式系统工业的主流;最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高;嵌入式DSP处理器微(DSP):专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊的设计,在数字滤波、FFT频谱分析等各种仪器上获得了大规模的应用。嵌入式微处理器(MPU):具有体积小、重量轻、成本低、可靠性高的优点嵌入式片上系统(System On Chip):是一种
3、电路系统、结合了许多功能区块,将多种功能做在一个芯片上;利用改变内部工作电压,降低芯片功耗;减少芯片对外管脚数,简化制造过程;养活外围驱动接口单元及电路板之间的信号传递,可以加快微处理器数据处理的速度;内嵌的线路可以避免外部电路板在信号传递时所造成的系统杂讯。的片上外设资源一般比较丰富,适合于控制,是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富3. 举例说明常见的嵌入式操作系统及特点。VxWorks:可靠性、实时性、可裁减性;支持多种处理器;有良好的持续发展能力,高性能的内核以及友好的用户开发环境。Windows Embedded:针对掌上设备、无线设备的动态应用程序和服务提供
4、了一种功能丰富的操作系统平台。但WindowsCE嵌入不够实时,属于软实时操作系统。界面比较统一Palm OS:专用于PDA上的一种32位嵌入式操作系统、操作界面采用触控式,本身所占的内存极小,不具有录音、MP3播放功能嵌入式Linux:开放源码,不存在黑箱技术;内核少、功能强大、运行稳定、系统健壮、效率高、易于定制剪裁4. 简述嵌入式系统的开发流程。一、嵌入式系统的开发流程:需求分析和概要设计;硬件系统选型和设计;软件系统设计及实现;开发调试及测试;嵌入式系统量产。建立开发环境;配置开发主机;建立引导装载程序BOOTLOADER;下载已经移植好的Linux操作系统;建立根文件系统;建立应用程
5、序的FLASH磁盘分区;开发应用程序;烧写内核。二、因此开发流程如下: 1、开发target硬件系统。 2、需要一套交叉编译工具,能够产生target目标代码 3、开发一个bootloader到target上去,用来引导内核 4、开发linux内核到target上去 5、开发一个rootfs 6、开发特定硬件的驱动程序 7、或许还需要一个实时的linux 8、开发上层的应用程序。5.什么是EIA,它有什么特点?EIA(Embedded intel Architecture)嵌入式英特尔架构)EIA处理器,芯片组,软件项目,和其他积木帮助提供的组合性能,可扩展性,和软件的一基于升级,以满足未来一
6、代网络不断增长的需求,在OSI应用服务层的多层次需要的。EIA处理器提供电源处理计算密集型的控制操作,包括服务和应用服务层,如路由和信令协议,策略控制,服务质量QOS和安全所需的功能。6. 南北桥片的功能是什么,选择芯片组的主要原则有哪些?北桥芯片:负责与CPU的联系并控制内存, AGP、PCI数据在北桥内部传输,提供对CPU的类型和主频,系统的前端总线频率,内存的类型和最大容量、ISA/PCI/AGP插槽、ECC纠错等支持,还集成了显示核心。南桥芯片:负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SATA、音频控制器、键盘控制器,实时时钟控制器,高级电源管理等选择芯片组的主
7、要原则有哪些:芯片组性能的优劣,决定了主板性能的好坏与级别的高低。目前CPU的型号与种类繁多、功能特点不一,如果芯片组不能与CPU良好地协同工作,将严重地影响计算机的整体性能甚至不能正常工作。 其中CPU的类型、主板的系统总线频率,内存类型、容量和性能,显卡插槽规格是由芯片组中的北桥芯片决定的;扩展槽的种类与数量、扩展接口的类型和数量(如USB2.0/1.1,IEEE1394,串口,并口,笔记本的VGA输出接口)等,是由芯片组的南桥决定的;还有些芯片组由于纳入了3D加速显示(集成显示芯片)、AC97声音解码等功能,还决定着计算机系统的显示性能和音频播放性能等。 7. 操作系统的作用、功能、结构
8、及特性。作用: 隐藏硬件特性,提供等价的虚拟机,便于用户开发的使用功能: 资源管理器,负责计算机系统的全部资源的分配、控制、调度和回收。结构:特性:并发性(两个或者两个以上的时间或活动在同一时间间隔内发生) 共享性 (资源可以被多个并发的进程使用,分为互斥访问和同时访问) 异步性(命令作业随机,错误随机、中断随机) 虚拟性(把物理上一个实体变成逻辑上的多个对应物或把物理上多个尸实体变成逻辑上的一个对应物)8. 简述Linux的主要特点,它与其它操作系统的区别是什么?主要特点:开放性、多用户、多任务、良好的用户界面、设备独立性、提供了丰富的网络功能、可靠的系统安全、良好的可移植性、相对比较不耗系
9、统资源与其它系统的区别:(1)Linux 与MSDOS:MS-DOS没有完全实现X86处理器的功能,而Linux完全全在处理器保模式下运行,并且开发了处理器的所有特性; linux可以直接访问计算机内的所有可用内存,提供完整的Unix接口,而MS-DOS只支持部分unix接口;MS-DOS是单任务操作系统。(2)Linux 与OS/2 、Windows 、Windows NT:linux是从一个比较成熟的操作系统发展而来的,而其它操作系统,都是自成体系,无对应的相依托的操作系统;Linux是一种开放、免费的操作系统,而其它操作系统都是封闭的系统,需要有偿使用9. 简述Linux的体系结构及各部
10、分的功能。LINUX体系结构:L i n u x操作系统由4个主要的子系统所组成:用户应用程序在某个特定的L i n u x系统上运行的应用程序集合,它将随着该计算机系统的用途不同而有所变化,但一般会包括文字处理应用程序和Web浏览器。O / S服务这些服务一般认为是操作系统的一 部分 (X Window系统,命令外壳程序shell等等);此外,内核的编程接口(编译工具和库)也属于这个子系统。L i n u x内核包括内核抽象和对硬件资源(如C P U)的间接访问。硬件控制器这个子系统包含在L i n u x实现中所有可能的物理设备,例如,C P U、内存硬件、硬盘以及网络硬件等都是这个系统的
11、成员。各部分的功能:内核:在硬件方面,Kernel负责控制电脑的硬件装置、内存管理以及提供完整的硬件接口与应用程序沟通(系统启动和初始化,硬件的驱动程序);在软件方面,Kernel负责管理文件系统、对正在运行的程序作内存管理与调整,并进行进程管理(内存管理,进程管理,中断处理,文件系统等)Shell:Shell提供了一个内核与用户之间的界面,是一种作为用户和操作系统之间的接口的命令解释程序。硬件平台:它是整个系统的实体工作者,是其他部分的基础。应用程序和系统程序:运用文字或者图形界面供用户使用操作系统完成具体的应用。10. 简述Linux内核的构成,各部分的功能及相互关系。L i n u x内
12、核由5个主要的子系统构成(1)进程调度程序( SCHED)负责控制进程访问CPU。调度程序所使用的策略可以保证进程能够公平地访问CPU,同时保证内核可以准时执行一些必需的硬件操作。(2)内存管理程序( MM)使多个进程可以安全地共享机器的主存系统。此外,内核管理程序支持虚拟内存。虚拟内存使得Linux可以支持进程使用超过系统中的内存数量的内存。暂时用不着的存储信息可以交换出内存,存放到使用文件系统的永久性存储器上,然后在需要它们的时候再交换回来。(3) 虚拟文件系统( VFS)。通过提供一个所有设备的公共文件接口, VFS抽象了不同硬件设备的细节。此外, VFS支持与其他操作系统兼容的不同的文
13、件系统格式。(4)网络接口( NET)提供了对许多建网标准和网络硬件的访问。(5) 进程间通信( IPC)子系统为单个Linux系统上进程与进程之间的通信提供了一些机制。子系统间的依赖关系:11. 进程的定义、PCB的作用与信息,进程切换、进程控制。定义:进程是操作系统机构的基础,是系统中程序执行的资源分配的基本单位,是一个具有独立功能的程序的一次运行活动,一个程序可以启动多个进程。(四要素:进程程序块、进程数据块、系统堆栈用户堆栈)PCB:定义:是操作系统用于记录和刻画进程状态及有关信息的数据结构,也是操作系统掌握进程的唯一资料结构。 (包括 标识信息、现场信息、控制信息)进程切换:让处于运
14、行态的进程中断运行,让出处理器,这是要做一次进程上下文的切换,及保存老进程状态而装入被保护的新进程的状态,以便新进程运行。(步骤: 保存被中断进程的处理器现场信息。 修改被中断进程的进程控制块的有关信息,如进程状态等。 把被中断进程的进程控制块加入有关队列。 选择下一个占有处理器运行的进程。修改被选中进程的进程控制块的有关信息。 根据被选中进程设置操作系统用到的地址转换和存储保护信息。 根据被选中进程恢复处理器现场。)进程控制:进程是有生命周期的,包括产生、运行、暂停、终止。对进程的这些操作叫进程控制。 进程控制包括:进程创建、进程阻塞、进程唤醒、进程挂起、进程激活、进程终止和进程撤销等。进程
15、间的通信:管道、消息队列、信号、共享内存、信号量、套接口12. Linux的启动过程,boot loader的主要任务和典型框架结构是什么?系统加电Bootloader 或BIOS加电自检读硬盘主引导扇区分析分区表执行MBR中的引导程序读入活动分区的引导扇区读入操作系统内核进行初始化执行init,如果LILO装在MBR,则启动过程如上,如果LILO装在boot扇区,则省去加粗字体那步。boot loader主要任务:整个系统加载启动。Bootloader可以分为两个步骤来完成: Stage1 :(1)硬件设备初始化(如I/O口,存储器和时钟).(2)为加载Bootloader的stage2准备
16、好RAM空间.(3)复制Bootloader的到RAM空间中.(4)设置好堆栈.(5)跳转到stage2的C入口点.Stage2:(1)初始化本阶段要使用的硬件设备.(2)检测系统的内存映射.(3)将kernel映像和根文件系统映像从Flash上读到RAM空间中.(4)从内核设置启动参数.(5)调用内核.13. 简述Toolchain的基本功能和配置步骤。toolchainGNU开发工具链是指 GNU Compiler Collection、GNU libc以及用来编译、测试和分析软件的 GNU binutils。是Linux默认开发工具链。它的基本功能是:编译,链接。配置步骤:先进行命令配置
17、,再进行关联检测:GNU Compiler Collection:即GCC是用于 C、C+、Objective-C、Fortran 等编程语言的一个编译器集。需要配置输入、输出、平台选择、调试、优化等选项。GNU binutils 包括一套用来构造和使用二进制文件所需要的工具。其中两个最为关键的 binutils 是 GNU 链接器 ld 和 GNU 汇编程序 as。更多的 Binutils: 除了链接器和汇编程序之外,有些开发人员还会发现其他 binutils其实就是GNU Tools中最基本的工具: ld(链接器),as(汇编器), gcc(C语言编译器),glibc(包含各种基本函数实现
18、的软件库)。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
19、 的 文件系统 ;jfs:IBM 的日志文件系统 ;reiserfs:另一个流行的日志文件系统 15. 什么是配置文件,举例说明2-3种重要配置文件的功能和结构特点。一、每个 Linux 程序都是一个可执行文件,它含有操作码列表,CPU 将执行这些操作码来完成特定的操作。例如,ls 命令是由 /bin/ls 文件提供的,该文件含有机器指令的列表,在屏幕上显示当前目录中文件的列表时需要使用这些机器指令。几乎每个程序的行为都可以通过修改其配置文件来按照您的偏好或需要去定制。内核本身也可以看成是一个“程序”。内核需要了解系统中用户和组的列表,进而管理文件权限,内核也需要系统配置文件。配置文件都在/e
20、tc的目录中,可以分为几类:访问文件 、引导和登录注销 、文件系统、系统管理、网络配置文件、系统命令、守护进程。举例:/etc/host.conf 告诉网络域名服务器如何查找主机名。(通常是 /etc/hosts,然后就是名称服务器;可通过 netconf 对其进行更改) /etc/hosts 包含(本地网络中)已知主机的一个列表。如果系统的 IP 不是动态生成,就可以使用它。对于简单的主机名解析(点分表示法),在请求 DNS 或 NIS 网络名称服务器之前,/etc/hosts.conf 通常会告诉解析程序先查看这里。/etc/issue & /etc/ 这些文件由 mingetty(和类似
21、的程序)读取,用来向从终端(issue)或通过 telnet 会话()连接的用户显示一个“welcome”字符串。它们包括几行声明 Red Hat 版本号、名称和内核 ID 的信息。它们由 rc.local 使用。 二、Linux 系统中大多数配置文件都在 /etc 目录中。配置文件可以大致分为下面几类:访问文件,文件系统,系统管理,联网,系统命令,守护进程等。/etc/host.conf 告诉网络域名服务器如何查找主机名。/etc/fstab 列举计算机当前“可以安装”的文件系统。etc/passwd包含一些用户帐号信息,包括密码(如果未被 shadow 程序加密过)。/etc/httpd.
22、conf Web 服务器 Apache 的配置文件。16. 简述Linux内核编译、裁减以及Linux移植的基本步骤。Linux内核的裁减与编译首先在宿主机端进入到内核所在的目录/usr/src/linux-2.4下,修改Makefile文件中EXTRAVERSION 变量的值,用来标识新内核,本例改为hebut。然后完成内核的裁减与编译:make mrproper: 用于清除所有的临时文件、中间件、配置文件。make xconfig: 进行核心配置,在其中每个选项都有两种选择,分别表示支持和不支持相应的特性或驱动程序,个别选项有m选择,表示把相应的特性或驱动程序编译成可加载模块的方式。根据不
23、同的应用对内核进行裁减。系统将新的配置保存成.config文件。make dep: 用于生成依赖性。make bzImage: 产生压缩的核心映像。内核压缩映像被系统保留在/usr/src/linux-2.4/arch/i386/boot目录中,将其复制到/boot目录下,并重命名为vmlinuz-2.4.20hebut。末尾为EXTRAVERSION变量的值。make modules: 组织各个/usr/src/linux-2.4.20子目录已经配置的模块。make modules_install: 在/lib/modules/2.4.20目录中组织模块。经过以上的裁减与编译,可以使一个包含
24、网络服务的内核减小到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,将
25、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安装Boot Loader程序使其运行时可以加载内核。17. 为什么要进行内核配置,简述其基本过程和方法内核是所有Linux系统的中心软
26、件组件,整个系统的能力完全受内核本身能力的限制。(2) 为什么要进行内核配置?首先,我们可以了解系统是如何工作的。通过通读源代码,我们就可以了解系统的工作原理,这在Windows下简直是天方夜谭。其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。再次,我们可以对内核进行修改,以符合自己的需要。(3)基本过程和方法:内核配置有两种方法,一种是直接置入内核;另一种是编成模块;两种方法各有优点;直接编入内核的,比如设备的启动,不再需要加载模块的这一过程了;而编译成模块,则需要加载设备的内核支持的模块;但直接把所有的东西都编入内核也不是可行的,内核体积会变大,系统负载
27、也会过重。我们编内核时最好把极为重要的编入内核;其它的如果您不明白的,最好用默认。#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)make xconfig,使用鼠标就可以选择对应的选项。实际上在配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响;不需要的功能就不要选;与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。(4)配置完成后,进行编译和更新。18. 什么是交叉编
28、译?编译程序的基本构成是什么?由于目标机指令系统与宿主机的指令系统不同,编译时将应用程序的源程序在宿主机上生成目标机代码,称为交叉编译。编译程序结构(components)和功能:词法分析程序:从左至右读字符流的源程序识别(拼)单语法分析程序:层次分析.依据源程序的语法规则把源程序的单词序列组成语法短语(表示成语法树).、语义分析程序:语义审查(静态语义)上下文相关性、类型匹配、类型转换中间代码生成程序:源程序的内部(中间)表示三元式、四元式、P-Code、C-Code、UCode、bytecode代码优化程序:目标代码生成程序:符号表管理程序:记录源程序中使用的名字、收集每个名字的各种属性信
29、息(类型、作用域、分配存储信息)出错处理程序:检查错误、报告出错信息、排错、恢复编译工作19. 举例说明makefile功能、构成和工作原理?Make和Makefile:自动编译,自动确定软件包的哪部分需要重新编译并用特定的命令去编译。准确使用make可以大大减少编译程序所花费的时间,因为它可以消除不必要的重编译。Makefile文件中包含着一些目标,对于每一个目标,都提供了与这个目标具有相关性的其他目标或文件的名字,以及实现这个目标的一组命令。Makefile的书写规则:目标属性分隔符号依赖文件;命令列 命令列#一个简单的Makefile的例子exeProg:main.osubfunc.og
30、cc -oexeProgmain.osubfunc.omain.o:main.cmain.hgcc -c -I.-omain.omain.csubfunc.o:subfunc.cgcc -c -o subfunc.o:subfunc.cclean:rm -f *.o在这里假设修改了文件subfunc.c,可用一下命令更新目标exeProg,即重新编译可执行文件exeProg。%make exeProg由于exeProg依赖于目标main.o和subfunc.o,所以必须检查main.o和subfunc.o是否过时。目标main.o依赖文件main.cmain.h,比较目标文件main.o和源文
31、件main.c、main.h的更新日期,如发现main.o比它所依赖的文件的日期更新,即不过时。在检查目标subfunc.o,subfunc.o,它依赖文件subfunc.c,由于已经修改了subfunc.c,它比subfunc.o更新,即subfunc.o过时了,从而依赖subfunc.o的所有目标都过时了。应该用在makefile文件中定义好的如下shell命令更新它:gcc -c -o subfunc.o:subfunc.c由于目标subfunc.o过时并更新,导致目标exeProg已经过时,要完成“make exeProg”的任务,必须用定义exeProg的一组shell命令来更新它:
32、gcc -o exeProg main.osubfunc.o如果是第一次编译上面这个软件,则因为exeProg、main.o和subfunc.o等目标文件都不存在,按照规定,这是所有目标都是过时的,必须全部更新,而且必须从底部而上执行定义这些目标的shell命令。输入make clean命令将执行:rm -f *.o20. 什么是设备驱动程序,其功能和结构如何?linux设备驱动程序是处理或操作硬件控制器的软件,被集成在内核中,是常驻内存的低级硬件处理程序的共享库,设备驱动程序就是对设备的抽象处理。设备驱动程序的功能(1)对设备进行初始化(2)使设备投入和退出服务(3)检测和处理设备出现的错误
33、(4)设备和系统之间交换数据的界面(5)“黑盒子”,内含设备的固有特性功能结构:21. 比较字符设备、块设备和网络设备的区别。字符设备:(1)能够象字节流(比如键盘,显示器)一样被访问的设备,由字符设备驱动程序来实现这种特性,字符设备驱动程序通常至少需要实现open close read 和write系统调用。open, close, read(2)字符设备以字节为单位进行数据处理,通常只允许按顺序访问块设备:(1)与字符设备的区别仅仅在于内核内部管理数据的方式,也就是内核和驱动程序的接口不同。(2)块设备驱动程序除了给内核提供和字符驱动程序一样的接口以外,还提供了专门面向块设备的接口。(3)
34、块设备将数据按可寻址的块为单位进行处理可以随机访问,利用缓冲技术可以一次传递任意字节的数据(4)块设备通过/dev目录下的文件系统接点被访问的。块设备(例如磁盘)上能够容纳文件系统。网络设备:(1) 和其它主机交换数据的设备(2)内核和驱动程序之间的通信完全不同于内核和字符设备以及块设备驱动程序之间的通信,内核调用一套和数据包传输相关的函数,而不是read, write.(3)Linux分配给网络接口一个唯一的名字(比如eth0),网络设备是一类特殊的设备,每块网卡有名字但没有设备文件与之对应查看系统中的设备:/proc/devices(4)由内核中的网络子系统驱动,负责发送和接收数据包,它无
35、须了解每项事务是如何映射到实际传送的数据包的,例如尽管Telent和FTP连接都是面向流的,它们都使用了同一个设备,但这个设备看到只是数据包,而不是独立的流。22. 什么是套接字,有什么特性,分为哪些类型?套接字是网络通信中应用进程和网络协议之间的接口,为TCP/IP协议开发的应用程序接口。特性:网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符,也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种:流式Socket (SOCK_STREAM
36、)和数据报式Socket(SOCK_DGRAM)。23. 画出socket编程中TCP、UDP通信中server与client端的通信流程并比较两者的区别。一、UDP与TCP的区别:a 基于连接与无连接;b 流模式与数据报模式(TCP保证数据正确性,UDP可能丢包; TCP保证数据顺序,UDP不保证),c 对系统资源的要求(TCP较多,UDP少。socket编程中:1 socket()的参数不同; 2 UDP Server不需要调用listen和accept; 3 UDP收发数据用sendto/recvfrom函数; 4 TCP:地址信息在connect/accept时确定UDP:在sendt
37、o/recvfrom函数中每次均需指定地址信息;5 UDP:shutdown函数无效;二、TCP(左图) Server的通信流程:1 取得socket描述符;2 填写自身地址信息的sckadd_in结构;3 绑定端口;4 监听端口;5 接收连接请求; 6 产生新进程处理读写socket; 7 转程序流程5,继续等待其它Client的连接并处理。TCP Client的通信流程:1取得socket描述符;2 填写连接对方的地址信息的sckadd_in结构;3 连接端口;4 读写socket;5关闭socket。UDP(右图) Server的通信流程:1 取得socket描述符;2 绑定端口;3 接
38、收连接请求; 4 产生新进程处理读写socket。UDP Client的通信流程:1取得socket描述符;2 读写socket;3关闭socket。两者的区别:1 基于连接于无连接2 流模式与数据报模式:1.TCP保证数据正确性,UDP可能丢包;2. TCP保证数据顺序,UDP不能保证3 对系统资源的要求(TCP较多,UDP少)。24. Linux常用命令(自己熟悉吧)25. LILO和GRUB的配置方法LILO的配置文件为/etc/lilo.conf,LILO将读取此文件。#cp /usr/src/linux/arch/i386/boot/zImage /boot/zImage-2.4.1
39、8#cp /usr/src/linux/System.map /boot/System.map-2.4.18#ln -sf /boot/System.map-2.4.18 /boot/System.mapGRUB 的配置都是通过位于 /boot/grub/grub.conf 的一个配置文件来完成的。26. 简述嵌入式Linux开发环境和工具的基本功能和建立过程。Xp ADS linux工具:(1)编译开发工具:即能够把一个源程序编译生成一个可执行的软件,如gcc等。 (2)调试工具:即能够对执行程序进行源码或汇编级调试的软件,如gdb。 (3)软件工程工具:用于协助多人开发或大型软件项目的管理
40、的软件,如make,cvs。普通用户ID大于多少 500包含主机名到IP地址映射关系的文件 /etc/hosts/proc目录作用 proc 是个虚拟的文件系统,这个目录的所有文件都放在内存内,这个目录会纪录系统的每个process,也会提供系统正在使用的IRQ 、I/O端口、DMA通道、CPU 种类等信息并口设备二进制文件放在? /bin未用磁盘大小命令 df 文件使用的磁盘大小命令 du 1、 简述/etc,/dev,/bin,/boot,/home目录的作用。/etc是重要的系统目录,几乎所有系统设置文件都存放在这;/dev存放硬件装置文件,Linux上把所有的装置视为一个文件,如/dev/console代表屏幕,/dev/ttyS0代表COM1,hd代表IDE硬盘,sd代表SCSI硬盘,lp代表打印机,tty代表terminal;/bin 主要存放一些系统必备执行文件,如基本程序ls、mv、rm、mkdir、rmdir,基本的压缩、解压缩工具gzip、gunzip、tar,基本的网络工具telnet、ftp等;/boot 放置有关系统启动(boot)的相关文件;/home 一般系统上所有用户的Home Dirctory都放在这个目录下。第 36 页-