苏嵌嵌入式linux实训 第 2 天

    技术2024-06-20  75

    项目开发日报表

    项目名称: 未拟定

     

    本人进度计划以及任务:

      嵌入式开发概述及嵌入式Linux C项目演示,嵌入式开发环境安装及使用。

     

    本日任务完成情况 (详细说明本日任务是否按 计划完成,开发的代码量):

      进行了一天的学习,做了详细的笔记。课上写了c的基础代码,如下。求1~n中有几个9。

    include"stdio.h" int main() {     int n;     printf("input number:");     scanf("%d",&n);     int count=0;     int i ;     i=n;    while(i>0)    {       n=i;       while(n>0)       {  if(n%10==9)          {           count++;          }       }        n=n/10;       }         i--;    }     printf("%d",&count) }

     

    本日开发中出现的问题汇总:

      Q1:嵌入式底层开发为什么选择C语言?

    A:嵌入式开发是和OS分不开的,而C语言无疑是使用OS最好的媒介,毕竟OS的内核基本上都是C编写的。并且,C语言较其他的高级编程语言,其特点十分适合嵌入式开发软件。

    C语言的特点如下:

    C语言具有出色的可移植性,能在多种不同体系结构的软/硬件平台上运行。C语言具有简洁紧凑、使用灵活的语法机制,并能直接访问硬件。C语言具有很高的运行效率。

    嵌入式软件一般需着重考虑三个方面:性能、安全性和开发效率(包括代码可移植性等)。

    性能(运行效率)方面,汇编明显是最高的。但汇编在安全性和开发效率方面明显是最低的。所以除非是要求极端高性能的嵌入式平台(或者是系统实在是太简单而没办法支持高级语言),使用汇编语言的不多。我们一般进行初始化时会使用汇编语言。

    而其它高级语言的运行效率一般比较低(C程序运行效率可达汇编的80%,而其它程序可能只有C程序的80%),源代码和目标代码也可能会比较长。这样占用的内存也会比较大。嵌入式开发的编程是要在开发板上跑的,占用内存的增多必然会影响性能。这样一来,C语言的优势就凸现出来了。

      Q2:何为实时性,硬实时,软实时?

    实时性指时钟信号能够准确的定时,各处的时钟能够达到一致。 硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。 软实时系统是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量。

      Q3:Linux和Unix联系?

    Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。Linux 是一种外观和性能与UNIX相同或更好的操作系统,但,Linux不源于任何版本的UNIX的源代码,并不是UNIX,而是一个类似于UNIX的产品。 Linux产品成功的模仿了UNIX系统和功能,具体讲Linux是一套兼容于System V以及BSD UNIX的操作系统。

      Q4:有哪些虚拟机软件?其特点?

    Virtual PC 如果想做Windows虚拟机的话,Virtual PC是最佳选择了。几乎所有找得到的Windows操作系统,都可以在该虚拟机中安装。Virtual PC作为MS自已的产品,在自己的平台下使用非常方便,占用内存小,启动也快。联网方面,即不用桥接也不用NAT共享虚拟网卡,直接可以作为同一子网的一台普通电脑使用,不用进行任何网络设置即可上网。

    VMware 这款虚拟机软件兼容性不错,VMware Tools也很强大,快照功能很快捷,方便,允许你在任意开机时刻创建系统快照和恢复,主要用于调试极易产生蓝屏的软件和工具,十分实用。有点不好的地方在于它安装时会虚拟两块网卡,还可以在设置中虚拟更多的虚拟网卡,一般来说使用桥接Bridge的方法就可以让虚拟机上网,基本没有用过NAT方式。VMware和VirtualBox一样都是会修改电脑本身的网卡设置的。

    VirtualBox VirtualBox最早是德国一家软件公司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 等系列的客户操作系统。

     

      Q5:如何解决使用userdel删除用户问题?(two ways)

     

    一,

    1.su命令,切换root用户登录。

    2.使用vipw命令,把要删除的用户lhy所在的行删除,用 :wq 命令保存并退出vim编辑器。

    3.使用vipw -s命令,同样的,把要删除的用户lhy所在的行删除,用 :wq 命令保存并退出vim编辑器。

    4.回到#提示符,执行userdel -r lhy

    5.完成 二,

    1.vim /etc/passwd 添加 pipetest:x: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  

    Q6:罗列根目录中所有目录的类型和其作用?

    /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:当文件系统发生错误时,存放一些丢失的片段。

     

    本日未解决问题:

      1到n问题的那个代码,会出现无限输入无法取消,也没有结果。只能把命令器关了。

    本日开发收获:

      学习了很多基础的命令,关还有不少于vim的。其他:

    唉,python还是香

    Processed: 0.010, SQL: 9