苏嵌嵌入式linux实训 实训第2天

1.嵌入式底层开发为什么选择C语言?
嵌入式开发是和OS分不开的,而C语言无疑是使用OS最好的媒介,毕竟OS的内核基本上都是C编写的。并且,C语言较其他的高级编程语言,其特点十分适合嵌入式开发软件。
C语言的特点:C语言具有出色的可移植性,能在多种不同体系结构的软/硬件平台上运行。C语言具有简洁紧凑、使用灵活的语法机制,并能直接访问硬件。C语言具有很高的运行效率。
嵌入式软件一般需着重考虑三个方面:性能、安全性和开发效率(包括代码可移植性等)。性能(运行效率)方面,汇编明显是最高的。但汇编在安全性和开发效率方面明显是最低的。所以除非是要求极端高性能的嵌入式平台(或者是系统实在是太简单而没办法支持高级语言),使用汇编语言的不多。我们一般进行初始化时会使用汇编语言。而其它高级语言的运行效率一般比较低(C程序运行效率可达汇编的80%,而其它程序可能只有C程序的80%),源代码和目标代码也可能会比较长。这样占用的内存也会比较大。嵌入式开发的编程是要在开发板上跑的,占用内存的增多必然会影响性能。这样一来,C语言的优势就凸现出来了。  
2.何为实时性,硬实时,软实时?
实时性指时钟信号能够准确的定时,各处的时钟能够达到一致。硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。软实时系统是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量。  
3.Linux和Unix联系?
Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。Linux 是一种外观和性能与UNIX相同或更好的操作系统,但,Linux不源于任何版本的UNIX的源代码,并不是UNIX,而是一个类似于UNIX的产品。 Linux产品成功的模仿了UNIX系统和功能,具体讲Linux是一套兼容于System V以及BSD UNIX的操作系统。  
4. Linux的主流发行版本及特点
(1)Linux Mint是一个基于Ubuntu的发行版,但是它更加的贴近了普通用户,可以免费下载。同时,它不仅仅是一个具有新的应用程序和更新的桌面主题的Ubuntu,还开发了很多替代的专有程序以避免一些潜在的法律版权问题,其中包括专利和专利设计的多媒体编解码器,这些编解码器在很多发行版中通常是不存在的。也许Linux Mint的最佳特性之一就是开发人员倾听用户的意见,并总是快速地实施好的建议。

(2)Ubuntu固定发布周期和支持期; 具有5年安全更新的长期支持(LTS)变体;新手友好; 丰富的文档,官方和用户无私贡献。
(3)Debian GNU/Linux非常稳定;卓越的质量控制;包括超过30,000个软件包;支持比任何其他Linux发行版更多的处理器体系结构。
(4)Mageia它具有最简单但功能强大的系统安装程序之一,同时还可以使用KDE或GNOME桌面和全面的语言支持。而且可以来直接从桌面安装系统,无需刻录到U盘。该发行版具有良好的软件包管理功能,具有强大的命令行选项和图形化软件管理模块,可以轻松访问数千个软件包。独特的Mageia控制中心随着每个版本的不断改进,为Linux的新手提供了一个强大的工具来配置他们的计算机的任何方面,而无需使用终端命令行.
(5)Fedora是最具创新性的分发版之一。它对Linux内核,glibc和GCC的贡献是众所周知的,它最近集成了SELinux功能,虚拟化技术,系统服务管理器,先进的日志文件系统以及其他企业级功能。(6)openSUSE拥有大量满意的用户。 它具有令人愉悦和精美的桌面环境(KDE和GNOME),卓越的系统管理工具(YaST),全面而直观的配置工具;大型软件包库,优秀的网站基础设施和印刷文档。
(7)Arch Linux除了拥有备受推崇的“滚动发布”更新机制之外,还以其快速和强大的软件包管理器“Pacman”而闻名,能够从源代码安装软件包,并且由于其AUR基础架构,以及经过充分测试的软件包不断增加的软件库。其高度重视的文档,以及卓越的Arch Linux手册,使得一些高级Linux用户可以自行安装和定制分发。用户可以使用的强大工具意味着发行版可以无限定制到最细微的细节,并且没有两个安装可能是相同的。
(8)CentOS非常稳定和可靠;免费下载和使用;有7年以上的免费安全更新。
(9)PCLinuxOS是一个面向KDE的发行版,具有定制且始终最新版本的流行桌面环境。不断增长的软件存储库包含其他桌面,并为许多常见任务提供各种各样的桌面软件包。对于系统配置,PCLinuxOS保留了很多Mandriva优秀的控制中心。(10)deepin是基于Linux内核,以桌面应用为主的开源GNU/Linux操作系统,支持笔记本、台式机和一体机。深度操作系统(deepin)包含深度桌面环境(DDE)和近30款深度原创应用,及数款来自开源社区的应用软件,支撑广大用户日常的学习和工作。另外,通过深度商店还能够获得近千款应用软件的支持,满足您对操作系统的扩展需求。
5.有哪些虚拟机软件?其特点?
Virtual PC如果想做Windows虚拟机的话,Virtual PC是最佳选择了。几乎所有找得到的Windows操作系统,都可以在该虚拟机中安装。Virtual PC作为MS自已的产品,在自己的平台下使用非常方便,占用内存小,启动也快。联网方面,即不用桥接也不用NAT共享虚拟网卡,直接可以作为同一子网的一台普通电脑使用,不用进行任何网络设置即可上网。VMware这款虚拟机软件兼容性不错,VMware Tools也很强大,快照功能很快捷,方便,允许你在任意开机时刻创建系统快照和恢复,主要用于调试极易产生蓝屏的软件和工具,十分实用。有点不好的地方在于它安装时会虚拟两块网卡,还可以在设置中虚拟更多的虚拟网卡,一般来说使用桥接Bridge的方法就可以让虚拟机上网,基本没有用过NAT方式。VMware和VirtualBox一样都是会修改电脑本身的网卡设置的。VirtualBoxVirtualBox最早是德国一家软件公司InnoTek所开bai发的du虚拟系统软件,后来被Sun收购,改名为zhiSun VirtualBox,性能有很大的提高.因为他是开源的dao,不同于VM,而且功能强大,可以在 Linux/Mac 和 Windows 主机中运行,并 支持在其中安装 Windows (NT 4.0、2000、XP、Server 2003、Vista)、DOS/Windows 3.x、Linux (2.4 和 2.6)、OpenBSD 等系列的客户操作系统。
6.如何解决使用userdel删除用户问题?
一,1.su命令,切换root用户登录。2.使用vipw命令,把要删除的用户lhy所在的行删除,用 :wq 命令保存并退出vim编辑器。3.使用vipw -s命令,同样的,把要删除的用户lhy所在的行删除,用 :wq 命令保存并退出vim编辑器。4.回到#提示符,执行userdel -r lhy5.完成
二,1.vim /etc/passwd添加pipetest❌506:506::/home/pipetest:/bin/bash(不一定是506,而是在最好一个行数目上加1)2.vim /etc/shadow添加pipetest:!!:15056:0:99999:7:::(不一定所15056,而是在最后一行数目上加3)3.mkdir /home/pipetest/cp /etc/skel/.bash* /home/pipetest/4.userdel pipetest
7. 罗列根目录中所有目录的类型和其作用?
/bin:存放普通用户可执行的命令,系统中任何用户都可执行。
/boot:存放Linux内核文件以及开机菜单与开机所配置文件。
/dev:存放设备文件的存储目录,如硬盘、光驱等。
/etc:存放系统的配置文件,如用户账号密码、各种服务的起始文件等。只有root有权利修改。
/home:普通用户的主目录,每个用户在该目录下都有一个与用户同名的目录。
/lib:存放开机时用到的函数库,以及在/bin或/sbin下的命令会调用的函数库。
/media:存放可删除的设备,如软盘、光盘、DVD等设备都暂时挂载于此。
/mnt:暂时挂载某些额外的设备。
/opt:存放第三方软件。
/root:超级用户root的主目录。
/sbin:存放开机、修复、还原系统所需要的命令。
/srv:是一些网络服务启动之后,这些服务所需要取用的数据目录,如WWW服务。
/tmp:这是让一般用户或者正在执行的程序暂时放置文件的地方,任何人都能访问,需要定时清理。
/proc:该目录是一个虚拟文件系统,只有在系统运行时才存在,该目录下的数据存放在内存中,不占硬盘空间,例如系统内核、进程、外部设备的状态及网络状态等。通过访问该目录下的文件,可以获取系统的状态信息并且修改某些系统的配置信息。
/sys:与/proc类似,也是一个虚拟文件系统,主要也是记录与内核相关的信息,包括目前已加载的内核模块与内核检测到的硬件设备信息等。这个目录同样不占硬盘空间。
/lost+found:当文件系统发生错误时,存放一些丢失的片段。

你可能感兴趣的:(笔记)