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

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

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

一:什么是嵌入式系统:

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

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

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

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

二:嵌入式Linux系统结构

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

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

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

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

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

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

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

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

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

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

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

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

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

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


推荐阅读
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
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社区 版权所有