一、为什么嵌入式要用c语言:
嵌入式软件一般需着重考虑三个方面:性能、安全性和开发效率(包括代码可移植性等)。
性能(运行效率)方面,汇编明显是最高的。但汇编在安全性和开发效率方面明显是最低的。所以除非是要求极端高性能的嵌入式平台(或者是系统实在是太简单而没办法支持高级语言),使用汇编语言的不多。我们一般进行初始化时会使用汇编语言。
而其它高级语言的运行效率一般比较低,源代码和目标代码也可能会比较长。这样占用的内存也会比较大。嵌入式应用在硬件上,需要较快的反映时间,占用内存的增多必然会影响性能。这样一来,C语言的优势就会凸现出来啦。
二、什么是实时性,什么是硬实时,什么是软实时?
三、Linux和Unix之间的关系?
Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型。
UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上;
UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。
四、Linux主流的发行版有哪些?主要特点分别是什么?
发行版
特点
PCLinuxOS
PCLinuxOS的理念是秉承“简单易用,安全无忧”的理念,无需安装可直接运行于CD上,集成的程序丰富。不过LiveCD由于光盘的数据读取速度限制导致性能下降
Ubuntu
Ubuntu 就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux操作系统。Ubuntu是一个相对较新的发行版,Ubuntu默认采用的GNOME桌面系统,如果你是一个KDE的拥护者的话,Kubuntu 同样适合你!Ubuntu的安装非常的人性化,只要按照提示一步一步进行,安装和Windows同样简便!并且,Ubuntu被誉为对硬件支持最好最全面 的Linux 发行版之一,许多在其他发行版上无法使用,或者默认配置时无法使用的硬件,在Ubuntu上轻松搞定。并且,Ubuntu采用自行加强的内核 (kernel),安全性方面更上一层楼。并且,Ubuntu默认不能直接root登陆,必须从第一个创建的用户通过su或sudo来获取root权限 (这也许不太方便,但无疑增加了安全性,避免用户由于粗心而损坏系统)。Ubuntu的版本周期为六个月,弥补了Debian更新缓慢的不足。而且具有人 气颇高的论坛提供优秀的资源和技术支持,固定的版本更新周期和技术支持,适于新手使用。是当前最流行的发行版之一。
openSUSE
SUSE是Novell公司的著名Linux发行版,自主开发的专业,易用的YaST软件包管理系也大受好评。SUSE是一个非常专业、优秀的发行版,一向以华丽的用户界面著称。使用方便,也是当前最流行的版本之一,适于新手使用。
Fedora
Red Hat分为两个系列:由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux(可用CentOS替代,是RHEL的克隆版,免费),以及由社区开发的免费的Fedora Core。FC的定位便是桌面用户。FC提供了最新的软件包,同时,它的版本更新周期也非常短,仅六个月。Fedora拥有数量庞大的用户,优秀的社区技 术支持,许多创新。是当前最流行的版本之一,适于新手使用
Debian
Debian 是迄今为止,最遵循GNU规范的Linux系统。dpkg是Debian系列特有的软件包管理工具,它被誉为所有Linux软件包管理工具(比如RPM) 最强大的!配合apt-get,在Debian上安装、升级、删除和管理软件变得异常容易。Debian具有优秀的网络和社区资源,强大的apt- get,许多发行版都是基于Debian的,最有影响力的发行版之一。不过Debian安装相对不易,stable分支的软件极度过时,不适于新手使用。
Damn Small
Damn Small Linux是一套非常小的(50M字节)可启动光盘的Linux发行版。尽管它的个头小,它努力成为一份可用并且易用的桌面。Damn Small Linux的桌面几乎是完整的一套,可进行简单媒体播放、FTP客户端、进行网页浏览、有简单的字处理及制表软件、可阅读电子邮件及pdf文件、文件管理 器、naim(支持 AIM、ICQ和IRC)、远程控制支持网络,宽带拨号及做服务器,还有一些简单小工具、系统监视软件、USB支持及PCMCIA支持。你可以安装到你的 硬盘上。由于所有的软件都是小巧型的,所以它对老旧的硬件会是一个很好的选择。可以运行在486的cpu及16M的内存中。是一个非主流的特色发行版,扩 展性较差,适于特殊用户使用,纯英文版。
Mandriva
Mandrake是基于Redhat的发行版。使用KDE,简化了安装系统。Mandrake在易用性方面的确是下了不少功夫,包括默认情况下的硬件检测等。具有友好的操作界面,图形配置工具,庞大的社区技术支持,是国际上比较有影响力的版本之一。不过部分版本bug较多
Slackware
Slackware是一个历史悠久的Linux发行版。其他主流发行版强调易用性的时候,他依然固执的追求最原始的效率——所 有的配置均还是要通过配置文件来进行。Slackware稳定、安全,所以有大批的忠实用户。由于尽量采用原版的软件包而不进行任何修改,所以制造新 bug的几率比较低。Slackware的版本更新周期较长。系统非常稳定、安全,并且高度坚持UNIX的规范;不过由于所有的配置均通过编辑文件来进 行,只适用于对linux非常熟悉的用户,而且自动硬件检测能力较差,不适于新手使用。
Puppy
Puppy Linux是一个十分小巧的 Linux 发行版,其ISO映像文件容量约为 100 MB 左右。正所谓“麻雀虽小,五脏俱全”。 在 Puppy Linux 中所包含的系统工具、网络软件、办公应用、影音娱乐可是都不或缺。Puppy Linux 不仅整个系统都可在内存中运行,而且还支持从各种存储介质启动运行,如优盘、光盘、硬盘等。与dsl linux相比puppy更完整,更容易汉化,不过需要的系统要求也更高、安装文件更大。适于一些较老的硬件,内存应在64M以上。
Gentoo
Gentoo 具有高度的自定制性:因为它是一个基于源代码的(source-based)发行版。尽管安装时可以选择预先编译好的软件包,但是大部分使用Gentoo 的用户都选择自己手动编译。所以Gentoo适合比较有Linux使用经验的老手使用。但是注意的是,由于编译软件需要消耗大量的时间,所以如果你所有的 软件都自己编译,并安装桌面系统则需要较长的时间。GENTOO是一个极有特色的发行版,优点是具有高度的可定制性,完整的使用手册,媲美Ports的 Portage系统,运行速度极快,适合“臭美”的高手使用。也是现在比较流行的发行版之一。不过缺点也明显:编译时耗时很多,安装缓慢,只适用于熟悉linux的用户,不适于新手使用。
FreeBSD
这 里说明的是:FreeBSD不是一个Linux系统!但是FreeBSD的用户也相当多,其许多特性都与Linux相类似。FreeBSD作为服务器是相 当优秀的。同样的服务器硬件配置,运行同样的一个vBulletin论坛,FreeBSD所用的资源要比Linux少。网上许多的站点都是使用的 freebsd。除了作为服务器外,也可用于桌面用户。freebsd的优点:速度快,非常稳定,具有优秀的使用手册以及方便的Ports软件包管理系 统。缺点也明显:比起Linux而言对硬件的支持较差,作为桌面系统,软件的兼容性不佳。freebsd更适于服务器使用,而桌面一般是某些有需要的高手 使用。
Arch
Arch Linux是针对i686优化的linux发行版。Arch 基本理念是快速、轻巧、弹性与简单。Arch 是为 i686 处理器优化的。相较于RedHat或是其他的Linux而言非常轻巧,而且简单的设计使他富有弹性。运行速度极快,是运行速度最快的几个发行版之一。其特 有的包管理是pacman,一个命令就让您升级整个系统,同时安装软件也非常方便。适于中级用户以上使用,不适于新手。
KNOPPIX
Knoppix, 是一个基于Debian的发行版。Knoppix是一款LiveCD Linux,所谓的LiveCD就是整个操作系统都在一张光盘上,只要开机从光盘启动,就能拥有一个完整的Linux系统!无需安装!Knoppix也能 够非常轻松的安装到硬盘上。其强大的硬件检测能力、系统修复能力、即时压缩传输技术,都令人大加称赞。由于无需安装可直接运行于CD上,加上其优秀的硬件 检测能力,使它可作为系统急救盘使用,缺点也是由于光盘的数据读取速度限制导致性能下降。
Freespire
Freespire 是一份由社区建设推动的、基于Linux的操作系统,它结合了免费与开源软件的优点(社区推动、免费发布、源码开放等),并在用户认为适当时为他们提供将 私有编码解码器、驱动程序和应用软件包括进来的选择。Freespire由Linspire赞助开发,后者是基于Debian GNU/Linux的面向桌面的商用发行版。Freespire将推出的Click-n-Run(CNR)服务,加入一个CNR外挂程序。使用者只需简单 点选,即可自动下载安装数千种开放源代码应用软件,也可以直接购买非免费软件。
Xandros
Xandros 特点是极其简单的安装和使用,适合完全没有经验的新手,安装完以后就能立即投入使用,自带非常不错的工具所以定位于那些没有任何Linux使用经验的新 手,或是习惯使用Windows的用户。Xandros的标准版和增强版都是商业软件。不过可以下载到免费的公开发行版。
Magic Linux
Magic linux是有国内社区制作的Linux发行套件。对中文的支持非常好,安装好不要配置什么就可以使用了。系統稳定性好,拥有国内Linux中最漂亮的界 面,以及丰富的应用软件,以及一流的中文支持和易用性。国内的linux发行版中最有特色的一个,对国内用户最值得推荐的国内Linux发行版。适用于新 手使用,国内比较流行。
LFS
LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式。它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些 生东西( raw code) 作成符合自己口味的菜肴──个、性
化的linux,不单单是个性的桌面。lfs最大的优势就是,安装LFS是菜鸟变成高手的捷径。适于高手或想深入学习 linix的用户。
红旗 Linux
国 内商业linux中有名的红旗Linux,红旗Linux在桌面领域主要致力于模仿 Windows的界面和使用方法,以吸引更多的Windows用户转入其中。虽然也是使用rpm的包管理体系,但安装软件可以使用类似Windows的向 导方式。国内比较流行。新手可以试用
Hiweed linux
Hiweed Linux基于Ubuntu Linux,适合中国的linux新手和老手使用。Hiweed桌面是一份已经配置好的中文桌面,安装后可直接使用,无需配置。Hiweed的目标是:免去新手的痛苦,节省老手的时间。适于新手使用。
新华Linux
新华Linux,也是国内一个商业公司的发行版。这是一个基于Debian的发行版。使用debian体系中默认的gnome。他的界面也以模仿linux为主。
五、有哪些虚拟机软件?它们有什么特点?
1.VirtualBox ,他是开源的,不同于VM,而且功能强大,可以在 Linux/Mac 和 Windows 主机中运行,并支持在其中安装 Windows (NT 4.0、2000、XP、Server 2003、Vista)、DOS/Windows 3.x、Linux (2.4 和 2.6)、OpenBSD 等系列的客户操作系统。
2.VMware Workstation不需要重开机就能在同一台电脑使用好几个OS。
VMware主要的功能有:
1.不需要分区或重开机就能在同一台PC上运行多种操作系统。
2.完全隔离并且保护不同OS的操作环境以及所有安装在OS上面的应用软件和资料。
3.不同的OS之间还能互动操作,包括网络、周边、文件分享以及复制贴上功能。
4.有复原(Undo)功能。
5.能够设定并且随时修改操作系统的操作环境,如:内存、磁碟空间、周边设备等等。
3.Virtual PC 在一台 PC 上同时运行多个操作系统,使用它你不用重新启动系统,只要点击鼠标便可以打开新的操作系统或是在操作系统之间进行切换。安装该软件后不用对硬盘进行重新分区或是识别,就能够非常顺利地运行你已经安装的多个操作系统,而且还能够使用拖放功能在几个虚拟 PC 之间共享文件和应用程序。
六、如何解决使用userdel删除用户的问题?、
1.
使用userdel 命令删除一个用户user1后,再次创建一个名为user1的用户会失败,显示已经存在
原因:使用userdel user1不能完全删除,此时重新添加用户,就会提示此目录已经存在。
解决的办法是先用find / -name "*liu*"找到残留的文件,然后使用rm -rf将残留的文件删除
所以删除用户的正确方法是 userdel -r 用户名 这样就能删除家目录及其所有文件
2、
Linux 删除用户出现提示userdel: user ** is currently logged in
创建新用户后,想删除,
使用 userdel xx 删除,结果出现userdel: user xx is currently logged in 的提示,其结果是无法删除,
可以使用 sudo userdel -r -f username 强制删除
七、根目录下其他文件的作用及文件类型
/bin 系统由很多放置可执行文件的目录,但是bin目录比较特殊。因为bin目录下面放置的是在单用户维护模式下还能被操作的命令
在/bin下面的被root用户和一般的用户所使用,主要有cat、chmod、chown、date、mv、mkdir、cp、bash等。
/boot 这个目录主要放置开机能够使用到的文件,包括linux内核文件和开机菜单与开机所以需要的配置文件。
/dev 在linux中任何的设备和接口设备都是以文件的形式存在于这个目录当中。只要到通过访问这个目录下的某个文件就相当于访问某个设备.
/etc 系统主要的配置文件几乎都放置在这个这个目录下面,例如人员的帐号密码文件,各种服务的起始文件等。一般来说,这个目录下面的各文件属性时可以让一般的用户查阅的,但是只有root用户有权先修改。FHS建议不要放置可执行的文件在这个目录下。
/home 这是系统默认的用户主文件夹(home directory),在创建一个一般的账户的时候,默认用户的主文件夹都会规范到这里来。比较重要的是,主文件夹有两种代号:~代表当前用户的主文件夹
/lib 系统函数库非常的多,而/lib下面放置则是开机时会用到的数据库,以及在/bin和/sbin下命令会调用的函数库。
/media media是媒体的意思,顾名思义/media下面放置的就是可以删除的设备。包括软盘,光盘,dvd等都临时挂放在此。
/mnt 如果你想挂在额外的设备,一般建议可以放在这个目录下,在比较早的时候这个目录的用途和/media的作用相同,只是有了/media之后,这个目录就用来暂时挂在用了。
/opt 这个是给第三方软件放置的目录。不过,在以前的linux下我们喜欢放置在/usr/local下面。
八.命令(/几乎所有/)
一.系统操作常用命令
1、man 查看其它命令的帮助信息
2、uname -a 查看系统内核版本的详细信息
uname -s 系统内核名称
uname -n 主机名
uname -r 内核版本号
3、cat /etc/issue 查看linux系统版本信息(linux的版本信息存放在etc/issue中)
4、runlevel 查看系统的运行级别(linux有6个运行级别:0关机,1单用户,2多用户无网络,3多用户有网络,5X11,6重启)
5、init 3 将当前系统的运行级别改为3级(临时更改,修改文件etc/inittab持续有效)
6、df -h 查看linux系统磁盘分区
7、which 加命令,如which date 显示命令date存放的路径
二、linux快捷操作
1、ctrl + c键 结束键盘输入或退出当前shell
2、ctrl + u键 删除光标所在行的所有字符
3、exit 命令/ctrl + d键 注销(防止他人通过你的账号登入系统)
4、shutdown -h now/ halt /init0 立即关机
5、shutdown -r now/ reboot /init6 重启
三、时间、日期命令
1、cal 日历程序 cal 2014 显示2014年的日历
cal -1 只显示当月日历
cal -3 显示当月及后两月
cal -s 月以星期日开头
cal -m 月以星期一开头
cal -y 显示全年日历
2、date 显示当前系统的日期
date +%Y(大写) 只显示年
date +%Y/%m/%d 显示年月日信息 (其它参数可 man一下查看)
四、用户信息命令
1、w 系统登入用户的详细信息
who 查看系统有哪些用户在登入
who am i 登入系统的用户信息
whoami 当前使用用户的信息
2、passwd 修改自身命令
passwd user(用户名称) root用户修改用户密码
用户和用户组
3、useradd xiaxia 创建用户xiaxia
useradd -d /tmp/xiaxia xiaxia 创建用户xiaxia并指定家目录为 /tmp/xiaxia,不指定目录则放于 默认/home/xiaxia 下
useradd -c 'testor' xiaxia 创建用户xiaxia,备注xiaxia是testor
useradd -e YYYY-MM-DD xiaxia 创建用户xiaxia,指定超期时间为……
userdel xiaxia 删除用户
userdel -r xiaxia 将xiaxia的家目录一并删除
groupadd boss 创建boss组
groupdel boss 删除boss组
useradd -G boss xiaxia 把xiaxia加入到boss组中
或:gpasswd -a xiaxia boss 把xiaxia加入到boss组中
gpasswd -d xiaxia boss 把xiaxia从boss组中删除
五、目录、文件命令
1、pwd 查看当前所在的目录、
2、mkdir file 创建目录
rmdir file 删除空目录
rm -r file 删除目录及其内容
3、touch abc.txt 创建文件
rm abc.txt 删除文件
mv abc.txt /tmp/ 移动文件至tmp目录下
mv abc.txt bcd.txt 将文件abc.txt重命名为bcd.txt
4、cat file 显示文本内容
more file 一次一屏显示文本的内容
less file 一次一屏显示文本的内容,支持向上翻页
head -5 file 显示文件前5行
tail -5 file 显示文件后5行
tail -f 动态显示文件的更新 tail -f /var/log/messages
5、ls 显示当前目录下的文件目录
ls -l / ls -a / ls -al /ls -a -l 显示文件的详细信息,-a显示隐藏文件
ls -ltr 按时间排序查看目录中的文件
stat file 查看文件的详细信息
6、cp file1 file2 同一机器复制文件
scp 远程文件拷贝(条件:具有访问另一机器的权限)
如:scp abc.txt [email protected] : /tmp/ 将当前目录中的abc.txt文件拷贝到远程机器192.168.1.128的tmp目录下
scp [email protected] :/tmp/abc.txt /tmp 将远程机器192.168.1.127 tmp目录下的abc.txt文件拷贝到本机 tmp目录下
7、ln 创建硬链接 例如:ln /var/log/messages messages_hard_link 新创建的messages_hard_link是普通文件
ln -s 创建软连接 例如:ln -s /var/log/messages messages_soft_link 新创建的messages_soft_link是一个连接符号
8、chmod 修改文件权限 格式:chmod who op permission
who项 表示用户类型 有 u(拥有者user)、g(与拥有者同一组的用户group)、o(其他人others)、a(所有人all)
op项 +/- 加上或取消指定的权限
permission项 存取权限 r(可读)、w(可写)、x(可执行)
例如:chmod u+w file 拥有者对file文件“可写”
chmod u-x file 拥有者对file文件“不可执行”
chmod ugo+rwx file 所有人对file文件“可读、可写、可执行”
9、chown 改变文件所有者 如:chown 新所有者 file
chgrp 改变文件所在组 如:chgrp 组名 file
10、find 目录名 条件 在指定目录下查找文件
find -name xiaxia 查找名称为xiaxia的文件
find -size 10 查找占用10个block的文件
find -type f/d/b/p/c 将文件类型作为寻找条件
find -user xiaxia 查找属于xiaxia的文件
11、grep过滤 格式:grep 字符串 文件名
如:grep root /etc/passwd 在/etc/passwd文件中查找包含root字符串的行
grep ‘this is a book’ temp 在temp中查找 this is a book 字符串
grep -nv root /etc/passwd 使用grep查找 /etc/passwd中不包含root的行,并显示行号
grep -n -c root /etc/passwd 使用grep查找 /etc/passwd中包含root的行的数量
grep -i root /etc/passwd 不区分大小写查找root ROOT rOOt
12、diff 比较两文件的差异
diff -y file1 file2 能并列显示两文件,方便对比(| > <)
13、du -sh /* 查看根目录下所有文件占空间的大小
六、文件打包、解包,压缩、解压
1、tar cvf(关键词)file.tar(压缩包名称)1.txt 2.txt 3.txt 文件打包
tar xvf(关键词)file.tar 文件解包
tar tvf(关键词)file.tar 查看tar包中的文件
touch 4.txt
tar rvf(关键词)file.tar 4.txt 创建新文件4.txt添加到file.tar
2、gzip 压缩 如: gzip 1.txt 将1.txt压缩
gzip -d 解压 如:gzip -d 1.txt.gz 将1.txt解压
3、tar与gzip结合,实现打包并压缩、解压并解包功能
例如:touch 1.txt 2.txt 3.txt 创建3个文件
tar zcvf file.tar.gz *.txt 打包并压缩,创建压缩包file.tar.gz
tar zxvf file.tar.gz 解包并解压缩
tar zcvf home.tar.gz /home/ 打包/home/目录,并压缩
tar zxcvf home.tar.gz 解压并解包
七、Linux系统操作命令
1、netstat 查看各种与网络相关的状态信息,包括:网络的连接、状态、接口的统计信息、路由表、端口的监听情况
netstat -a 显示所有连接中的socket
netstat -r 显示路由表信息
netstat -l 网络接口状态信息
netstat -s 统计网络信息
2、ifconfig 查看所有处于激活状态的网络接口信息
ifconfig -a 查看所有网络接口信息,包括一个lo环回端口
ifconfig -s eth0 查看网络接口eth0上面的统计信息
ifconfig eth0 up 激活网络接口eth0
ifconfig eth0 down 关闭网络接口
3、ip -4 addr 显示主机的ip V4地址
ip -6 addr 显示主机的ip v6地址
4、ping -c 4(测试数据包数量) 192.168.1.128(目的主机地址) 检测与其他主机的网络连通性
5、tcpdump -w 网络协议数据抓包
八、linux系统监控命令
1、ps -ef 查看系统所有的进程
ps -ef|grep sshd 查看系统进程sshd的详细信息
pstree 另一种查看进程运行情况及子进程
2、top 动态查看系统进程的运行情况
3、free -m 查看系统内存使用情况
4、df -h 查看系统磁盘分区情况
5、wmstat 查看系统磁盘分区情况
6、iostat 查看磁盘i/o读写情况
7、sar 查看系统cpu、内存、磁盘读写等信息
8、lsof 查看系统被打开的问价
lsof -i:80 查看系统端口80上面的链路信息
9、uptime 查看系统负载情况
/qq:2101865656 孙舒文 所写 重点//