一、嵌入式底层开发为什么选择C语言? 对于嵌入式开发,主要是针对硬件做开发,写驱动。而且,嵌入式开发是在操 作系统内部做开发的,操作系统大部分的内核都是C语言编写。C语言也有几个优点:C语 言能适应单片机、ARM等硬件,可移植性很高;C语言运行能够具有很高的效率;C语言的 语言简洁紧凑。 二、什么实时性?硬实时和软实时。 实时性: 指时钟信号能够准确的定时,各处的时钟能够达到一致,在不同的场合需要达到ns级、μs级。实时性可以定义为:在规定时间内系统的反应能力.一般,有实时要求的应用有两个突出的特点:其中的活动时间性强,要求在一定的时刻和或一定的时间内自外部环境收集信息、再及时作出响应 。 嵌入式的实时性: 实时系统不仅仅是表现在“快”上,而更主要的是实时系统必须对外来事件在限定时间内做出反应,当然这个限定时间的范围是根据实际需要来定的,例如控制化学反应过程的时间可能很长,而飞行控制系统的这个时间就会很短。 实时和分时操作系统最大的不同在于 时限(deadline)这个概念。 硬实时(hard real-time)系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。 软实时( soft real-time)系统的时限是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量。
Linux和unix之间的 联系或者关系 简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 区别和联系 Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型。 Linux 的源头要追溯到最古老的UNIX。Linux起源于一个学生的简单需求。 另外两大区别: 1) UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上. 2) UNIX是商业软件,而Linux是自由软件,免费、公开源代码的. Linux主流的发行版有哪些及特点 1.Debian Debian运行起来极其稳定,这使得它非常适合用于服务器。Debian平时维护三套正式的软件库和一套非免费软件库。Debian这款操作系统派生出了多个Linux发行版。它有很多软件包。Debian这款操作系统适合系统管理员和高级用户。Debian支持如今的大多数架构。 2.Gentoo Gentoo这款操作系统包含数量众多的软件包。Gentoo并非以预编译的形式出现,而是每次需要针对每个系统进行编译。虽然Gentoo安装和使用起来很困难,但它被认为是最佳学习对象,你可以通过它了解Linux操作系统的内部运作原理。 3.Ubuntu Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。它是如今市面上用起来最容易的发行版之一。 4.CentOS CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。 5. Fedora Fedora是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。 6.Arch Linux Arch是一款采用滚动发行方式的操作系统:每当发行了某个新版本,就可以升级发行版,不需要重新安装。Arch Linux既支持X86处理器架构,又支持X86_64架构,安装程序可以从光盘或U盘来运行。Arch旨在从开发者的角度而不是从用户的角度做到力求简单。Arch配置和安装起来很容易。它可以让你可以了解Linux系统的每一个细枝末节。 7.OpenSuse OpenSuse这款Linux发行版是免费的,并不供商业用途使用,仅供个人使用。它随带snapper快照管理工具,因而可以恢复或使用旧版的文件、更新和配置。由于让滚动发行版本成为可能的Tumbleweed,可将已安装的操作系统更新到最新版本,不需要任何的新发行版。SUSE在管理员当中的名气更大,因为它有Yast以及让系统管理员能够自动管理任务的其他此类应用程序,同样水准的其他发行版没有这项功能。 有哪些虚拟机软件?特点? 通过虚拟机软件,你可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访问网络资源等等。对于你而言,它只是运行在你物理计算机上的一个应用程序,但是对于在虚拟机中运行的应用程序而言,它就像是在真正的计算机中进行工作。因此,当我在虚拟机中进行软件评测时,可能系统一样会崩溃,但是,崩溃的只是虚拟机上的操作系统,而不是物理计算机上的操作系统,并且,使用虚拟机的“undo”(恢复)功能,我可以马上恢复虚拟机到安装软件之前的状态。 1.VMware Workstation 提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业的IT开发人员和系统管理员而言, VMware在虚拟网路,实时快照,拖曳共享文件夹,支持PXE等方面的特点使它成为必不可少的工具。 2.VirtualBox 最早是德国一家软件公司InnoTek所开发的虚拟系统软件,后来被Sun收购,改名为Sun VirtualBox,性能有很大的提高。因为他是开源的,可以在 Linux/Mac 和 Windows 主机中运行,并支持在其中安装Windows (NT 4.0、2000、XP、Server 2003、Vista)等系列的客户操作系统。VirtualBox 提供了详细的文档,可以助你在短期内入门。 3.Microsoft Virtual PC Microsoft Virtual PC是一款微软推出的免费虚拟机软件。它能让你在一台PC上同时运行多个操作系统。使用它,只要点击鼠标便可以打开新的操作系统或是在操作系统之间进行切换。安装VPC软件完全不需要对硬盘进行重新分区或是识别,就能够非常顺利地运行你已经安装的多个操作系统。而且还能够使用拖放功能在几个虚拟PC之间共享文件和应用程序。可以为你运行传统应用提供一个安全的环境以保持兼容性,它可以保存重新配置的时间,使得你的支持、开发、培训工作可以更加有效。 如何解决使用userdel删除用户的问题?(两种方式) 1.使用vipw删除创建的用户,使用vipw -s删除创建的用户组。 2.可以使用sudo userdel -r -f xx 加两个参数,给他强制删除。 罗列根目录中所有子目录的功能及存放的文件类型。 /bin 二进制可执行命令(常用命令) /etc 系统管理和配置文件 /lost+found 平时为空,收留系统非正常关机而无家可归的文件 /mnt 系统管理员临时安装文件系统的安装点 /proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息 存放着用户与内核的交互信息 /selinux 主要用来加固操作系统 提高系统的安全性 /tftpboot 提供对目标机的主要映像文件的下载工作 /var 某些大文件的溢出区,比如各种服务的日志文件 /boot 启动Linux的核心文件 /home 普通用户的工作目录 /media 存放着可移除的设备,比如软盘,光盘 /opt(option): 自由选择)主要给源码安装软件时选择的安装目录位置 /sbin 系统的管理命令,这里存放的是系统管理员使用的程序 /sys 管理设备文件 /usr 最大的目录,存放着应用程序和文件 /net 存放着和网络相关的一些文件 /root 超级用户的工作目录 /srv 系统启动服务时可以访问的数据库目录 /tmp 临时文件,重启后自动清空 /dev 系统的设备文件,即设备的驱动程序 /lib 存放着和系统运行相关的库文件 /misc 储存着一些特殊的字符的定义