项目开发日报表
项目名称 |
【苏嵌实训-嵌入式 linux C 第1 天】 |
今日进度以及任务 |
简单学习了Linux环境下的一些使用命令,包括用户管理命令,文件管理命令,目录命令等 利用vim编辑器学习编辑程序 |
本日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) |
完成了老师布置的七道题目,在表后 |
本日开发中出现的问题汇总 |
对于Linux系统的不习惯,不习惯每一步都由命令进行 命令较多且对于命令不熟悉,容易把命令输错,使得重复性工作增加 vim的缩进设置没有调整好 |
本日未解决问题 |
还未将vim的缩进设置调整好 没有将vim彻底掌握,还有模糊的地方 |
本日开发收获 |
初步了解了怎么运用Linux系统 学习了大部分Linux的基础命令 学会了利用vim编辑器写C语言程序并运行
|
其他 |
|
1、嵌入式底层开发为什么选择C语言?
(1)C语言有出色的可移植性,不需要任何运行环境支持,就能运行的编程语言,可以在多种不同体系结构的软件或硬件平台上运行。
(2)C语言具有简洁紧凑、使用灵活的语法机制,在高级语言当中是最贴近物理层面的语言,可以直接访问操作硬件。
(3)在所有语言的运行效率中,虽然汇编的访问效率快,但是汇编是低级语言,实现不了复杂操作,而且在安全性和开发效率方面明显是最低的,C语言的运行效率仅次于汇编,且C语言是高级语言,安全性和开发效率有一定的保障。
2、什么是实时性?什么是硬实时?什么是软实时?
实时性:不管实时应用程序进行的是何种任务,不仅需要正确进行该任务而且还必须在规定时间内完成。
硬实时:即便是在最坏的处理负载下也能在指定的期限完成实时任务的操作系统。在硬实时系统中,如果超过了最后时限,将造成灾难性后果。
软实时:在平均情况下能支持任务的执行期限的操作系统。在软实时系统中,如果超过了时间限制,体验质量会下降,但不会造成系统整体失败。
3、Linux和Unix之间的关系
(1)区别
①Linux 则可以运行在多种硬件平台上,而UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的。
②UNIX 是商业软件,大部分都是收费的,小公司和个人都难以承受,而 Linux 是开源软件,是免费的公开源代码的,这是它能够蓬勃发展的最重要原因。
(2)联系
Linux 完全不等于 Unix,这是两个独立的操作系统,但是在Linux设计之初借鉴了Unix的许多规范化的设计思想并且实现了Unix的API(POSIX标准和其他Single Unix Specification定义),然而Linux并未直接使用Unix的源码,而是采用了和Unix一致的程序编程接口。
4、Linux主流的发行版有哪些及其特点
①Debian :是迄今为止,最遵循GNU 规范的Linux 系统。dpkg 是Debian 系列特有的软件包管理工具,它被誉为所有Linux 软件包管理工具(比如RPM ) 最强大的!配合apt-get ,在Debian 上安装、升级、删除和管理软件变得异常容易。Debian 具有优秀的网络和社区资源,强大的apt- get ,许多发行版都是基于Debian 的,最有影响力的发行版之一。不过Debian 安装相对不易,stable 分支的软件极度过时,不适于新手使用。
②Ubuntu :一个拥有Debian 所有的优点,以及自己所加强的优点的近乎完美的 Linux 操作系统。Ubuntu 是一个相对较新的发行版,Ubuntu 默认采用的GNOME 桌面系统,如果你是一个KDE 的拥护者的话,Kubuntu 同样适合你!Ubuntu 的安装非常的人性化,只要按照提示一步一步进行,安装和Windows 同样简便!并且,Ubuntu 被誉为对硬件支持最好最全面 的Linux 发行版之一,许多在其他发行版上无法使用,或者默认配置时无法使用的硬件,在Ubuntu 上轻松搞定。并且,Ubuntu 采用自行加强的内核 (kernel ),安全性方面更上一层楼。并且,Ubuntu 默认不能直接root 登陆,必须从第一个创建的用户通过su 或sudo 来获取root 权限 (这也许不太方便,但无疑增加了安全性,避免用户由于粗心而损坏系统)。Ubuntu 的版本周期为六个月,弥补了Debian 更新缓慢的不足。而且具有人 气颇高的论坛提供优秀的资源和技术支持,固定的版本更新周期和技术支持,适于新手使用。是当前最流行的发行版之一。推荐使用。
③Slackware: 是一个历史悠久的Linux 发行版。其他主流发行版强调易用性的时候,他依然固执的追求最原始的效率—— 所 有的配置均还是要通过配置文件来进行。Slackware 稳定、安全,所以有大批的忠实用户。由于尽量采用原版的软件包而不进行任何修改,所以制造新 bug 的几率比较低。Slackware 的版本更新周期较长。系统非常稳定、安全,并且高度坚持UNIX 的规范;不过由于所有的配置均通过编辑文件来进 行,只适用于对linux 非常熟悉的用户,而且自动硬件检测能力较差,不适于新手使用。
④CentOS:是一个社区项目,目标是将红帽企业Linux(RHEL)的源代码重建为可安装的Linux发行版,并为所有包含的软件包提供及时的安全更新。更直白地说,CentOS是一个RHEL克隆版。这两个发行版之间唯一的技术差异就是品牌 – CentOS用自己的所有代码取代了所有的红帽商标和标识。尽管如此,红帽与CentOS之间的关系仍然保持友好,许多CentOS开发者与Red Hat保持着紧密的联系,甚至直接受雇于Red Hat。CentOS经常被看作是一个可靠的服务器发行版。它配备了经过良好测试和稳定的Linux内核和软件包,构成了其母公司Red Hat Enterprise Linux的基础。尽管是志愿者维护的一个社区项目,但它已经赢得了市场上更高端服务器产品(尤其是经验丰富的Linux系统管理员)的稳定,免费替代品的声誉。
①VMware:这款虚拟机软件兼容性不错,VMware Tools也很强大,快照功能很快捷,方便,允许你在任意开机时刻创建系统快照和恢复,主要用于调试极易产生蓝屏的软件和工具,十分实用。有点不好的地方在于它安装时会虚拟两块网卡,还可以在设置中虚拟更多的虚拟网卡,一般来说使用桥接Bridge的方法就可以让虚拟机上网,基本没有用过NAT方式。VMware和VirtualBox一样都是会修改电脑本身的网卡设置的。
②Virtual PC:如果想做Windows虚拟机的话,Virtual PC是最佳选择了。几乎所有找得到的Windows操作系统,都可以在该虚拟机中安装。Virtual PC作为MS自已的产品,在自己的平台下使用非常方便,占用内存小,启动也快。联网方面,即不用桥接也不用NAT共享虚拟网卡,直接可以作为同一子网的一台普通电脑使用,不用进行任何网络设置即可上网。
6、如何解决userdel删除用户的问题?
①用su转换到root用户,获得最高权限,输入userdel 用户名删除该用户。
②在普通用户登录,利用sudo获得更高级权限sudo userdel 用户名,如果没删除掉的话,可以用sudo userdel -r 用户名完全删除。
③可以用sudo userdel -f 用户名强制删除用户,即使是当前登录的用户也可以删除。
7、罗列根目录中所有子目录的功能和存放的文件类型
/bin 二进制可执行命令,存放普通用户可执行的命令,系统中任何用户都可执行。
/dev 设备特殊文件,存放设备文件的存储目录,如硬盘、光驱等。
/lib 标准程序设计库,又叫动态链接共享库,存放开机时用到的函数库,以及在/bin或/sbin下的命令会调用的函数库。
/mnt 系统提供这个目录就是让用户临时挂载其他的文件系统,暂时挂载某些额外的设备。
/root 系统管理员的主目录,超级用户root的主目录。
/snap ubunut全新软件包管理方式,snap软件包一般在/snap这个目录下。
/sys 跟proc一样虚拟文件系统,记录核心系统硬件信息。
/var 某些大文件的益出区
/boot 存放Linux内核文件以及开机菜单与开机所配置文件。
/etc 系统管理和配置文件,存放系统的配置文件,如用户账号密码、各种服务的起始文件等。只有root有权利修改。
/lost+found 一般为空,当非法关机时,会存放一些零散的文件。
/opt 存放第三方软件。
/run 系统运行是所需文件,以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据
/srv 是一些网络服务启动之后,这些服务所需要取用的数据目录,如WWW服务。
/home 用户目录的基点,普通用户的主目录,每个用户在该目录下都有一个与用户同名的目录。
/media 存放可删除的设备,如软盘、光盘、DVD等设备都暂时挂载于此。
/sbin 系统管理命令,这里存放系统管理员使用的管理程序,存放开机、修复、还原系统所需要的命令。
/usr 最庞大的目录,要用到的程序和文件几乎在这个目录。
/tmp 公用的临时文件存储点,这是让一般用户或者正在执行的程序暂时放置文件的地方,任何人都能访问,需要定时清理。