1、什么是嵌入式系统?它由及部分组成?嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。
简单的说就是系统的应用软件与系统的硬件一体化,类似与BIOS的工作方式。
具有软件代码小,高度自动化,响应速度快等特点。
特别适合于要求实时的和多任务的体系。
嵌入式系统一般有3个主要的组成部分:硬件、实时操作系统以及应用软件。
2、嵌入式系统的三要素是什么?嵌入式系统的三要素是嵌入、专用、计算机;其中嵌入性指的是嵌入到对象体系中,有对象环境要求;专用性是指软、硬件按对象要求裁减;计算机指实现对象的智能化功能。
3、嵌入式系统一般由几层组成?嵌入式系统一般由硬件层、中间层、软件层和功能层组成。
4、Linux作为嵌入式系统的优势?(1)可应用于多种硬件平台。
(2)添加部件非常容易(3)支持大量硬件(4)程序源码全部公开(5)完善的开发工具5、何为虚拟内存?虚拟内存的管理有何作用?使用虚拟地址寻址整个系统的主存和辅存为虚拟内存。
可以运行体积比物理内存还要大的应用程序,也可以实现“按需调页”,既满足了程序的运行速度,又节约了物理内存。
6、进程内存区域涉及哪几种数据段?代码段:可执行的操作命令数据段:已初始化的全局变量BSS段:未初始化的全局变量堆:进程运行中被分配的内存段栈:程序临时创建的局部变量7、简述内核空间和用户空间的区别?内核空间:任何操作都可以执行用户空间:禁止处理器对硬件的直接访问和对内容的未授权访问。
两者分别引用不同的内存映射,即程序代码段使用不同的“地址空间”8、简述共享内存的作用①、共享内存区域是被多个进程共享的一部分物理内存②、进程可以直接访问该共享内存区域,并通过该区域进行通信。
③、进程间快速共享数据④、共享虚拟内存的页面出现在每一个共享该页面的进程的页表中,但它不需要所有进程的虚拟内存都有相同的虚拟地址9、简述内存管理与虚拟文件系统之间的关系内存管理利用虚拟文件系统支持交换,交换进程定期由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。
当一进程存取的内存映射被换出时,内存管理向文件系统发出请求,同时挂起当前正在进行的进程。
10、Linux系统中线程的同步方式有互斥量、信号灯和条件变量等。
假设现在需要设计一个多线程的应用程序,试分析一下以上几种同步方式分别可在什么场合下使用?Mutex互斥量:用于操作某个临界资源时对该资源上锁,以实现互斥地对独占资源的使Sempphere信号灯:信号灯内有一个计数器,可用于多个同资源的分配。
当资源用完时,申请资源的线程会在信号量上睡眠,有线程释放资源时,在将该线程唤醒继续进行Condition条件变量:条件变量用于等待信号。
当一个线程需要等待某个信号时,就可到条件变量上等待,当信号具备时,系统就会唤醒,该线程继续运行11、在Linux系统上设计本地运行的两个进程,一个负责采集视频,一个负责播放。
进一步考虑当两个进程处于不同机器上时,需要采用的通信方式本地:共享内存+信号量,适合于大量数据传输。
Linux支持系统V和POSIX的共享内存和信号量。
远程:Socket+应用协议。
适合于跨网络的(大量)数据传输。
Linux支持BSD的socket。
应用层协议需要自行设计。
12、常用的内核裁剪:make xconfig、make config、make menuconfig13、在完成内核的裁剪后,内核的编译还需执行那几条命令:make clean 清理内核make dep 编译相关依赖文件make zImage 创建内核镜像文件make modules 创建内核模块make install 把相关文件拷贝到默认目录14、在vivi下执行命令load flash kernel x,其作用是什么:装载压缩映像文件zImage 到flash存储器中,地址是kernel分区,并采用x modem传输协议15、执行ifconfig eth0 192.168.1.1 netmask 255.255.255.0的含义:设置网卡1的地址192.168.1.1,掩码为255.255.255.0,不写netmask参数则默认为255.255.255.0 16、执行mount -t nfs 192.168.1.1:/sharedir/mnt命令的含义:将nfs服务的共享目录sharedir加载到/mnt/nfs17、在vivi下执行命令load flash root x作用:装载根文件系统root.cramfs到flash存储器中,地址是根文件系统分区,并采用xmodem传输协议18、在vivi中执行bon part 0 128k 192k 1216k 4288k:m 64704k的作用:同时进行了分区和格式化,0~128K存放vivi,128K~192K存放VIVI控制台指令,192K~1216K 存放kernel,1216K~4288K存放root,其余部分存放应用程序填空、选择1、GDB调试时,可通过step和next命令进行单步调试2、Vi编辑器具有3种工作模式:末行模式、命令模式、输入模式3、GCC调试C程序文件生成可执行文件步骤:预处理、编译、汇编、连接4、在vi模式下,将文件内容存入text.txt文件中,应在命令模式下输入:w text.txt:q!强制离开,放弃编译:wq写入并离开1、linux分区类型默认为的是Ext2/Ext3,swap为交换分区2、shutdown -r now 马上启动正在运行的linux系统3、重定向的符号“> ”表示输出重定向,原来的文件会被改写。
“>> ”追加重定向操作符,原有内容被破坏。
“<< ”输入追加。
4、touch myfile命令可以确保文件myfile存在。
5、chmod命令变更权限,chown变更所有者。
u为user,g为groups,o为others6、执行、读、写权限分别为1、2、47、rm -rf abc强制删除不提示,rm -r abc\*.*递归删除,rmdir abc删除空目录&8、&cat file>file.copy将file文件中的内容输出到file.copy9、mkdir建立目录rmdir删除目录mv移动、改名rm删除文件10、demesg可以查看Linux启动信息11、cat /proc/meminfo命令可以查看Linux使用了多少内存12、ps -a可显示终端所有用户的进程,ps -u显示当前用户格式,ls -a显示所有文件和目录,ls-l列出目录下文件的权限、所有者、文件大小、修改时间名称13、ln -s a.txt b.txt用于制作a.txt的符号链接,其名称为b.txt df命令可以查看文件系统大小,无法查看目录占磁盘情况comm用于比较两个已排序的文件rm可用于删除目录14、对/etc/rc.d/rc.inet1文件进行编辑能保证启动服务器自动启动DHCP进程1、make实现自动编译。
2、执行make clear命令,实际执行的是clear里面的内容3、命令mv shell.sh shell2.sh意思为将文件shell.sh改名为shell2.sh4、Gcc编译器中,选项-c为生成.o目标文件,不进行链接,-o为生成指定文件名的可执行文件,-S为只进行编译,不进行汇编和链接,-E是只进行预处理,不编译、汇编、链接5、-g选项是GCC在编译时包含调试信息,生成目标文件用于GDB调试6、fstab文件存放在/etc目录中7、init启动进程需要读取/etc/inittab配置文件1、Linux支持网络文件NFS,mount -t nfs 192.168.1.4: /opt/sirnfs /mnt/sirnfs命令将位于192.168.1.4机器上的/opt/sirnfs目录挂载到本机/mnt/sirnfs2、有利于嵌入式应用软件移植的是:软件设计采用层次化设计和模块化设计|||软件体系结构中在操作系统和应用软件之间引入一个虚拟机层,把一些通用的、共性的操作系统API 接口函数封装起来|||将不可移植的部分局域化,集中在某几个特定的文件之中3、固态存储设备上独立存放的分配顺序:BootLoader、启动参数、内核、文件系统4、Bootloader的stage1:屏蔽所有中断、设置CPU的时钟频率、初始化RAM,设置系统内存控制器的功能存储器和各内存库控制寄存器、为加载stage2准备RAM空间、复制stage2到RAM中、跳转到stage2入口点stage2:用汇编跳转到main入口函数、初始化本阶段要使用的硬件设备,包括初始化串口,计时器等、检测系统的内存映射、加载内核映像和根文件系统映像、设置内核启动参数、调用内核5、make menuconfig命令以文本菜单方式界面配置内核选项6、开启MMU时,在内存中创建页表(映射内核到3GB以上的虚拟地址空间,同时把内核所在的前1MB空间映射到和其实地址相同的虚拟地址空间),开启MMU,跳转到虚拟地址空间继续执行7、Blob运行第一阶段:寄存器的初始化8、ARM系统中,MMU映射最大的单元空间是1MB9、嵌入式系统软件有:系统内核、驱动程序、嵌入式中间体10、通过修改文件/etc/fstab可以设定开机时候自动安装的文件系统1、Linux文件权限一共10位长度,分成4段,(1为文件类型)(2,3,4为文件所有者的权限)(5,6,7为文件所有者所在组的权限)(8,9,10为其他用户的权限)2、文件系统的主要功能是实现文件的按名存取3、Ext3文件系统采用了inode来标识文件4、通过文件名存取文件时,文件系统内部的操作过程是通过文件名直接找到文件的数据,进行存取操作5、Linux将存取设备和输入输出设备均看做文件来操作,其中目录、软链接、硬链接是以文件形式出现的,而i节点不是以文件形式出现的1、查找当前用户的运行的所有进程的信息:ps -u 所有用户的运行进程信息:ps -a2、显示所有文件及目录:ls -a 显示l目录下的文件的权限、所有者、文件大小、修改时间及名称:ls -l3、init进程:可以产生新的进程、在某些程序退出时能重启它们、负责在系统启动时运行一系列程序和脚本文件4、init启动进程需要读取/etc/inittab配置文件5、启动init进程前,要经过:加载内核、检测内核、加载文件系统6、在若干并发进程均将一个共享变量count中的值加1一次,若控制这些并发进程互斥执行count加1操作,count值正确7、Linux系统的进程类型:交互进程、批处理进程、守护进程8、进程3种状态:运行态、就绪态、等待态9、内核包括的子系统:进程管理系统、内存管理系统、I/O管理系统,无硬件管理系统10、为保证在启动服务器时自动启动DHCP进程,应对/etc/rc.d/rc.inet1文件进行编辑1、ifconfig命令能配置网卡的IP地址2、在FTP协议中,控制连接是由客户端主动建立的3、Traceroute可以在当与某远程网络连接不上时,跟踪路由查看并了解在网络的什么位置出现了问题4、配置匿名FTP服务器时,应修改/etc/ftpusers 配置NFS服务器,应配置/etc/exports文件5、FTP协议能够实现本地与远程主机之间的文件传输工作6、DNS域名系统主要负责主机名和IP地址之间的解析7、Mount -t -s nfs :/home/nfs /home2命令可以加载NFS Server “”的/home/nfs到/home2Makefile1、已知C语言程序有主程序模块proc.c、prog.h,其中调用了另一模块subr.c、subr.h 中的功能。