您的位置:首页 > 运维架构 > Linux

苏嵌嵌入式linux实训 第 2 天

2020-07-14 06:33 239 查看

项目开发日报表


项目名称: 未拟定

 

本人进度计划以及任务:

  嵌入式开发概述及嵌入式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还是香

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: