Linux软件系统的层次关系

嵌入式技术

1372人已加入

描述

  1、Linux软件系统的层次关系

  软件系统可分为:应用程序、库、操作系统(内核)、驱动程序

  以点亮LED为例,分析各层间的写作关系

  1)应用程序调用库提供的open函数打开代表LED的设备文件;

  2)库根据open函数传入的参数执行“swi”指令,这条指令会引起CPU异常,进而进入内核;

  3)内核的异常处理函数根据这些参数找到相应的驱动程序,返回一个文件句柄给库,进而返回给应用程序;

  4)应用程序得到文件句柄后,使用库提供的write或ioctl函数发出控制指令。

  5)库根据write或ioctl函数传入的参数执行“swi”指令,引起CPU异常,进入内核;

  6)内核的异常处理函数根据这些参数调用驱动程序的相关函数,点亮LED

  库给应用程序通过的接口函数:open、read、write、ioctl、mmap等(系统调用),都是设置好相应寄存器后,执行某条指令引发异常进入内核,对于ARM架构CPU,指令为swi,软中断

  实际上,内核和驱动并没有界线,因为驱动最终是要通过静态链接和动态加载编进内核中去的;从上分析可知,驱动一般是被动的,根据应用程序的需求来执行。

  2、驱动程序分类

  字符设备、块设备、网络设备

        ymf

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分