热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

嵌入式Linux系统的三层结构详解

一:什么是嵌入式系统:一般指非PC系统,有计算机功能但又不称之为计算机的设备和器材。它是以应用为中心,软硬件可裁剪的,适用应用系统对功能,可靠性,成本,体积,功耗等综合性严格要求的

一:什么是嵌入式系统:

一般指非PC系统,有计算机功能但又不称之为计算机的设备和器材。它是以应用为中心,软硬件可裁剪的,适用应用系统对功能,可靠性,成本,体积,功耗等综合性严格要求的专用计算机系统。

定义:嵌入到对象系统中的专用计算机系统。对象系统是指所嵌入的宿主系统;

          嵌入性,专用性和计算机系统是计算机系统的三个基本要素;

          它们分别指:(1)嵌入性:是指嵌入到对象系统中,满足对象系统的环境要求,如物理环境(小型),电气环境(可靠),成本低廉等要求;   (2)专用性:嵌入式系统的软硬件可裁剪,可满足对象系统要去的最小软、硬件配置;  (3)计算机系统:嵌入式系统必须满足对象系统控制要求的计算机系统,这样的计算机系统必须配置有与对象系统相适应的接口电路。

二:嵌入式Linux系统结构

《嵌入式Linux系统的三层结构详解》

由图可知:嵌入式Linux系统分三层:应用层,内核层,硬件层。

1:应用层是一些应用程序和库,是面向用户的,如命令,QQ等应用程序;

2:内核层的主要功能是设备驱动,进程管理,内存管理,文件系统和网络通信;

其中,内核与应用程序之间是系统调用接口(函数),它为用户提供内核的功能,同时也保护了内核。but,问题来了,为什么内核要向用户提供这些接口(函数)呢?

其主要原因有:(1):内核要为应用程序服务,应用程序如果没有内核服务,则功能非常单一;   

 (2) 内核是一个稳定的代码,同时也要为多个用户空间的程序服务,为了防止用户空间的某些程序使内核代码崩溃或产生其它问题,而不能为其他用户服务,所以内核向用户空间提供接口(函数),并在这些接口函数中加上了一些保护,这样将向符合接口函数的应用程序提供服务,同时也保护了内核。(在学习函数接口时,我们主要关注接口的功能、参数、返回值)。

内核层与硬件层之间的接口是驱动程序,驱动程序负责硬件操作,内核提供了驱动程序的添加机制,便于开发人员将驱动代码添加到内核中。

3:硬件层是以信号为对象,完成各种信号之间的相互转换,通常信号变换前后其承载的信息保持不变,因此,无论如何变换,信号之间总是存在某种函数关系。

嵌入式系统硬件电路是由微处理器,存储器,输入输出设备,通信与扩展接口构成。

微处理器:处理器将所有可操作的硬件资源全部以地址空间的形式组织在一起,上层系统(软件)只看到统一的地址空间。可见处理器的第一任务就是将所有的硬件资源组织在一起,供软件操作,这项工作即寻址。

处理器的另一项任务就是对数据进行转移,各种算术逻辑运算,决定这些操作的就是程序,或称指令。

存储器:用于保护系统的程序指令和运行过程中所需的寄存空间。

输入输出设备/通信与扩展接口:实现系统与外界环境之间的信息交换。


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • qt学习(六)数据库注册用户的实现方法
    本文介绍了在qt学习中实现数据库注册用户的方法,包括登录按钮按下后出现注册页面、账号可用性判断、密码格式判断、邮箱格式判断等步骤。具体实现过程包括UI设计、数据库的创建和各个模块调用数据内容。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
author-avatar
Tow-face信信
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有