2020-07-03

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

在林老师的公众号文章内很清楚地分析了当前几种热门语言的特点,并详细说明了c的优势究竟在哪里。
林老师提到C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码,并且不需要任何运行环境支持,便能运行的编程语言,其移植性好,能够在多种不同体系结构的软件或硬件平台上运行;

相对来说,C语言在高级语言当中是最贴近物理层面的语言,经过一系列的编译转换,最终它会成为0101的机械码,可以操作硬件,并且具有简介紧凑、使用灵活的语法机制.

C语言具有很高的运行效率。通过观察C语言的背景可以看得出:汇编语言 - B语言 - C语言。在芯片上执行的程序:写汇编执行效率最高,C语言其次,大概在80%左右。
相比较而言汇编指令不多且内存小,Java是面向对象编程,是编译器在后面增加大量的东西的才变成机器语言,换而言之,这样程序无法直接操作内存。
种种情况综合下来,只有C语言才是最适合嵌入式底层开发的。

什么是实时性
实时系统(Real Time System)是指产生系统输出的时间对系统至关重要的系统。从输入到输出的滞后时间必须足够小到一个可以接受的时限内、软实时:只能提供统计意义上的实时
硬实时:计算机主板上的硬件控制的实时

1.两者的本质不同: Linux是开发源代码的自由软件,用户对前者有很高的自主权,在实际的的开发是处在一个完全开放的环境之中; 而unix是对源代码实行知识产权保护的传统商业软件,用户的开发完全是处在一个黑箱之中…
2.两者的运行的平台不一样: Linux可以运行在多种硬件的平台上,不会造成什么大的影响; 而unix系统大多是与硬件配套的;
3.两者在核心是否公开不一样: linux的核心是免费的,自由使用的,核心源代码是开放的;

LInux主流发行版
Debian的稳定性很好,同时也提供了最大和最完整的软件仓库

Debian 是社区类Linux的典范。是最为祖训GNU规范的Linux系统。

Debian包含三个分支版本:

stable: 用于服务器,软件包大部分比较过时,不过,稳定性和安全性特别高。

testing 它的版本都经过STABLE的测试,所以相对来说比较新和稳定

unstable  为最新的测试版本。

Debian最具特色的是apt-get / dpkg 包管理方式。同时,它的资料也很多。

根据桌面系统不同,有三个版本

1, ubuntu 基于Gamenome的Ubuntu,Ubuntu是基于Debian的unstable版本加强而来。近乎完美。

2, 基于KDE的kubuntu

3,     基于Xfc的xubuntu

它们的特点都是界面非常友好。是适合做桌面的发行版本。

2.1.2 Redhat Linux

是红帽公司研发的Linux发行版本。包括 Fedora ,REHL ,Centos和Oracle Linux。

其中,Centos用于活动,演示和实验。它是对用户免费提供的。同时,很多的企业服务器也是使用的Centos。

2.1.3 SUSE

SUSE  包括 SLES 和 openSUSE

SLES(SUSE Linux Enterprise Server(SLES):服务器操作系统,是唯一与微软系统兼容的Linux操作系统。
OpenSUSE:由suse发展而来,旨在推进linux的广泛使用,主要用于桌面环境,用户界面非常华丽,而且性能良好。
 
目前流行的虚拟机软件有VMware(VMWare ACE)和Virtual PC,它们都能在Windows系统上虚拟出多个计算机,用于安装Linux、OS/2、FreeBSD等其他操作系统。微软在2003年2月份收购Connectix后,很快发布了Microsoft Virtual PC 2004。但出于种种考虑,新发布的Virtual PC 2004已不再明确支持Linux、FreeBSD、NetWare、Solaris等操作系统,只保留了OS/2,如果要虚拟一台Linux计算机,只能自己手工设置。相比而言,VMware不论是在多操作系统的支持上,还是在执行效率上,都比Virtual PC 2004明显高出一筹,这也是本文选择它的理由之一。 电脑一台变两台,学用Linux不再有后顾之忧

如何解决使用userdel删除用户的问题
为了在删除用户时完全删除家目录,我们可以使用
-r
选项。这个选项同样会删除用户的邮件池,如果存在的话。
强制删除一个用户
userdel
提供了
选项来强制删除用户。甚至当用户已经登入
Linux
系统时此选项仍旧生效。请看一下示例截图。
截图的上面显示用户
已经登录了系统。它被标记的进程6218是
SSHD
进程。

罗列根目录中所有子目录的功能以及存放的文件类型
(bai1)/ : 根目录
(2)/bin :存放启动时所需要的du普通程zhi序
(3)dao/boot : 存放内核及启动所需要的文件
(4)/dev :存放设备相关的文件
(5)/etc :存放系统的配置文件
(6)/home:存放用户文件的主目录,用户数据( cd ~ 可进入自己的主目录)
(7)/闪电b :存放启动时所需要的库文件
(8)/mnt :存放临时的映射文件,通常是一些用来安装其他设备的子目录(如 /mnt/菜刀rom /mnt/floppy)
(9)/proc :这是一个虚拟的文件系统,存放当前系统的状态(有关进程和系统信息)
(10)/root: 超级用户主目录
(11)/sbin: 存放启动时所需要的系统管理程序
(12)/tmp :存放启动时产生的临时文件
(13)/usr : 包含一般不需要修改的应用程序,命令程序文件,程序库,手册
(14)/胜利ar :存放系统产生的经常变化的文件
(15)/胜利ar/tmp: 存放用户的临时文件
(16) /usr/闪电b: 存放非启动用的库文件
(17)/闪电b/modules /: 存放内核模块
(18)/胜利ar/log:存放大多数日志文件
(19)/胜利ar/run: 存放运行时的信息
(20)/胜利ar/闪电b: 存放一些系统运行时需要的文件
(21)/胜利ar/spool: 存放邮件,新闻及打印序列
(22)/etc/X11:存放X窗口系统所需要的配置文件
(23)/etc/init.d :存放启动描述文件,包括各种模块和服务的加载描述
(24)/etc/rcS.d :存放一些连接到 /etc/init.d的文件,根据runlevel的不同而执行不同的描述
(25)/etc/rc0.d—/etc/rc6.d: 存放一些连接文件,只在指定的runlevel 下执行相应的描述
(26)/usr/X11R6,/usr/X11,/usr/Xfree86 :存放X窗口系统所需要的文件
(27)/usr/bin : 存放应用程序二进制可执行文件
(28)/usr/sbin:存放大部分系统程序
(29)/usr/games:存放游戏程序及相应的数据
(30)/usr/include:存放c 和c++的头文件
(31)/usr/info:存放GNU Info程序所需要的数据
(32)/usr/man:存放man程序所需要的数据
(33)/usr/骚扰c:存放源代码文件
(34)/usr/doc: 存放文档文件
(35)/usr/local:存放本地计算机所需要的文件
(36)/usr/握手d:存放各种共享文件
项目名称 【苏嵌实训•嵌入式linuxC第1天】
今日进度以及任务
学习了vim指令
本日任务完成情况
(详细说明本日任务是否按 计划完成,开发的代码量)

基本完成了vim指令的学习

本日开发中出现的问题汇炮

出现问题:不能进入编译器

本日未解决问题
没有解决老师布置的C语言问题
本日开发收获

收获了linux编译指令和Linux的构成作用等
其他

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值