事半功倍之学习Linux系统框架(二)

硬件平台:迅为i.MX6ULL终结者

软件系统:Linux

 

从裸机到OS

做过单片机开发的人都知道裸机程序,裸机程序是在硬件之上直接运行自己写的程序,这种方式简单易懂,

 

 

如果使用Linux来开发产品,Linux操作系统上面可以运行应用程序,操作系统和硬件的接口是驱动程序,在框架上更复杂了,总体框架如图:

 

 

 

为什么要用Linux系统呢,是要让产品开发变得更容易,如果只是一个简单的控制,用单片机就够了。但是一些高新的产品,如:网络协议站,复杂的图形界面,多任务的开发,这些复杂的应用就需要用到Linux了,

 

Linux可看成是一个大软件或者说是一个大程序

它是用C语言来开发的。也有少量的汇编,汇编代码主要在系统的启动部分,在Linux这个大程序的基础上做项目。

Linux提供了大量的资源,如:网络协议站,内存管理,设备管理等等,最终的目地是为了让产品开发更加的简单,但是学习起来还是有一定难度的。Linux架构越来越复杂,但使用越来越方便。也就是说使用的方便性是以复杂的架构为代价的。

 

 

有了Linux系统,使得软件开发人员化分成两种类型,应用程序和驱动程序,应用开发人员可以不懂底层驱动,应用开发只关注业务逻辑,而驱动开发关注硬件特性。

应用程序通过“系统调用”来使用内核资源,

驱动是Linux内核的一部分,驱动的架构越来越复杂,目的是为了我们做的事情越来越少。

 

Linux的内核态和用户态

Linux的内核运行在内核态;应用程序运行在用户态,内核态的权限更高,用户态的程序不能直接访问硬件资源,必须通过操作系统内核来对硬件访问。

 

内核态和用户态不仅是软件上的抽象,ARM处理器本身在硬件上就支持这两种状态。

ARM处理器的工作模式:用户模式,系统模块,中断模块。应用直接访问硬件会触发异常中断,从而阻止应用程序直接访问硬件,所以用户态和内核态的划分使系统更加安全。内核级有更高的特权。

 

 

刚才我们提到了“系统调用”,这是用户态调用内核态函数的方法,一般通过软中断的方式。软中断是软件指令触发。ARM有对应指令,不同于按键等外部中断。

 

文件系统

文件系统可直观的理解为Windows上的文件资源管理器,我们上面提到的应该程序就放在文件系统中。

 

Linux启动后一定要挂载一个文件系统,这样应应程序才能被执行,但VxWorks,ucos等并不需要挂载。

文件系统可大可小,通过构造文件系统可衍生QT,ubuntu,android等系统。

Linux还有一个重要思想:一切皆文件,像串口,led,按键等这些硬件设备,都可以归结为像文件一样的操作,如read,write,open,close,大家在后期编程过程中会深刻的体会到这一点。

 

 

 

 

Linux初学者需要了解的三个知识点:

引导程序(bootloader);(是开发板上电首先运行的程序)

Linux内核镜像:zimage;(bootloader启动后会把内核引导起来)

文件系统镜像:system.img/rootfs.tar.ba2(内核启动最后会挂载文件系统)

并且要了解三个文件之间的关系。初期很多工作都是围绕这三个知识点展开的(开发环境搭建,编译系统,烧写系统),不同的系统文件名会有差异。设备树文件可看成Linux内核的一部分)

 

 

 

IMX6ULL终结者开发板:活动期间:终结者开发板原价398元!现在下单立减100元,到手价仅需298元!

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值