嵌入式Linux开发

丹尼斯·里奇,C语言之父,UNIX之父。

什么是嵌入式?

嵌入式软件和非嵌入式软件有什么区别

操作系统

BSP,驱动,内核

操作系统的优点

嵌入式操作系统

Linux

#

什么是嵌入式?


嵌入式即嵌入式系统,IEEE(美国电气和电子工程师协会)对其定义是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统;
#

嵌入式软件和非嵌入式软件有什么区别


最本质的区别:有无操作系统
比如微信QQ通过安卓操作系统进行软件的实现;而有些单片机,直接通过软件程序的编写对IO口的控制,进而控制硬件,中间不经过操作系统的处理。

#

操作系统


理论上说,大部分语言都可以用来写操作系统内核。
但是为什么大部分操作系统内核都只用C语言来写?因为目前所有的语言的开发环境里,C语言能做到编译成不依赖操作系统的形式二进制代码,C语言的各种脱离系统的库最丰富,最完整,C语言用来开发操作系统的工具最多。比如:如果内核中希望使用printf这个函数,那么内核就必须自己实现printf,而不是依赖标准库,因为标准库是要依赖操作系统来完成真正的printf操作。而这种库,C语言版本的最容易找到,其它语言要么没有,要么很难用。C语言有指针这样的数据类型对地址操作,能够直接访问硬件。
#

BSP,驱动,内核


而了解操作系统,其核心部分就不能忽视

  • BSP:引导加载程序,支持操作系统,使之能够更好的运行于硬件主板。
  • 驱动:让操作系统能在主板上跑起来了,怎么跑?就得提供一个规范,比如CPU,内存,显卡等这些硬件就得靠一个规范让操作系统去处理他们。只有理解了,操作系统和硬件、驱动的关系,才能移植操作系统!
  • 内核:即操作系统的内部核心程序,内核程序是操作系统中最常使用基本模块,直接与硬件打交道,主要由用于管理存储器、文件、外设和系统资源的那些部分组成。(开发,添加都是用C语言)

#

操作系统的优点

  • 多任务:你可以在操作系统上开很多的程序
  • 可移植:很多软件比如QQ微信在相同操作系统的手机都可以下载
  • 开发效率:提高开源工具,库和软件
  • 实时性:规定的时间完成规定的任务
  • 。。。。。。

#

嵌入式操作系统


商用

  • Vxworks 不开源但接口开源
  • WinCE 比如pos机

免费

  • Linux 大概有4kw代码量
  • UC/OS 大概有5k代码量

#

Linux

  • GPL协议:任何人有共享和修改自由软件的自由,任何人有权取得、修改和重新发布只有软件的源代码权利,但都必须同时给出具体更改的源代码;
  • POSIX标准:可移植操作系统接口
  • GNU:GNU’s not unix。革奴计划。可以说就是一个软件集合,如:Emas,gcc,bash,gawk等。由于没有内核(可以理解成还在实验室里就GNU系统就被淘汰了)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值