嵌入式Linux设计:内核分析

嵌入式Linux设计:内核分析,第1张

Linux 内核提供对内存管理、进程间通信机制、中断管理和 TCP/IP 网络的支持。目录结构将依赖于架构的代码分开,允许使用基本算法和特定平台的特定代码调用具有更高的可靠性。它允许以相当直接的方式添加对特定于设备的功能的支持。大多数桌面 Linux 供应商都将内核作为其发行版的一部分提供。此类内核包括对现代计算系统中可用的各种硬件设备的支持。许多这些功能都内置在运行时可加载模块中,这是用于检测硬件设备的各种自动化工具所必需的。这种方法允许 Linux 供应商使用单个预编译内核包来支持广泛的系统。与台式机、服务器或企业对应物不同,嵌入式 Linux 系统通常没有默认内核。造成这种情况的原因是多方面的,例如通用内核无法管理一些定制的嵌入式系统,以及使内核配置尽可能简单。更简单的配置更容易定义,并且通常需要更小的资源占用。像任何开源项目一样,内核不断发展,新硬件的模块更新是主要变化。Linux 系统支持目前市场上的大部分 PC 硬件,其灵活的开放代码使其可编辑并适应各种定制系统。这种系统的灵活性非常适合工业管理和控制各个领域的嵌入式技术。或企业同行,嵌入式 Linux 系统通常没有默认内核。造成这种情况的原因是多方面的,例如通用内核无法管理一些定制的嵌入式系统,以及使内核配置尽可能简单。更简单的配置更容易定义,并且通常需要更小的资源占用。像任何开源项目一样,内核不断发展,新硬件的模块更新是主要变化。Linux 系统支持目前市场上的大部分 PC 硬件,其灵活的开放代码使其可编辑并适应各种定制系统。这种系统的灵活性非常适合工业管理和控制各个领域的嵌入式技术。或企业同行,嵌入式 Linux 系统通常没有默认内核。造成这种情况的原因是多方面的,例如通用内核无法管理一些定制的嵌入式系统,以及使内核配置尽可能简单。更简单的配置更容易定义,并且通常需要更小的资源占用。像任何开源项目一样,内核不断发展,新硬件的模块更新是主要变化。Linux 系统支持目前市场上的大部分 PC 硬件,其灵活的开放代码使其可编辑并适应各种定制系统。这种系统的灵活性非常适合工业管理和控制各个领域的嵌入式技术。造成这种情况的原因是多方面的,例如通用内核无法管理一些定制的嵌入式系统,以及使内核配置尽可能简单。更简单的配置更容易定义,并且通常需要更小的资源占用。像任何开源项目一样,内核不断发展,新硬件的模块更新是主要变化。Linux 系统支持目前市场上的大部分 PC 硬件,其灵活的开放代码使其可编辑并适应各种定制系统。这种系统的灵活性非常适合工业管理和控制各个领域的嵌入式技术。造成这种情况的原因是多方面的,例如通用内核无法管理一些定制的嵌入式系统,以及使内核配置尽可能简单。更简单的配置更容易定义,并且通常需要更小的资源占用。像任何开源项目一样,内核不断发展,新硬件的模块更新是主要变化。Linux 系统支持目前市场上的大部分 PC 硬件,其灵活的开放代码使其可编辑并适应各种定制系统。这种系统的灵活性非常适合工业管理和控制各个领域的嵌入式技术。以及使内核配置尽可能简单。更简单的配置更容易定义,并且通常需要更小的资源占用。像任何开源项目一样,内核不断发展,新硬件的模块更新是主要变化。Linux 系统支持目前市场上的大部分 PC 硬件,其灵活的开放代码使其可编辑并适应各种定制系统。这种系统的灵活性非常适合工业管理和控制各个领域的嵌入式技术。以及使内核配置尽可能简单。更简单的配置更容易定义,并且通常需要更小的资源占用。像任何开源项目一样,内核不断发展,新硬件的模块更新是主要变化。Linux 系统支持目前市场上的大部分 PC 硬件,其灵活的开放代码使其可编辑并适应各种定制系统。这种系统的灵活性非常适合工业管理和控制各个领域的嵌入式技术。Linux 系统支持目前市场上的大部分 PC 硬件,其灵活的开放代码使其可编辑并适应各种定制系统。这种系统的灵活性非常适合工业管理和控制各个领域的嵌入式技术。Linux 系统支持目前市场上的大部分 PC 硬件,其灵活的开放代码使其可编辑并适应各种定制系统。这种系统的灵活性非常适合工业管理和控制各个领域的嵌入式技术。

内核选择

嵌入式系统设计需要与所选 *** 作系统兼容的硬件——在这种情况下是 Linux。分发的选择涉及各种修改和基本配置,以使其适应所需的功能。当您开始使用 Linux 时,可以从官方网站http://www.kernel.org/(内核上游)下载多个内核。有各种适当日期的版本旨在用于 Linux 系统的各种发行版。较旧的系列(例如 2.4 版本)仍在许多设备中使用,并且有时会使用维护版本进行更新。

嵌入式设备的 Linux 内核开发倾向于根据所讨论的处理器架构进行划分。例如,Russell King 带领一群开发人员积极为基于 ARM 的设备开发 Linux(通过网站 http://www.arm.linux.org.uk)。ARM 开发人员将他们的工作基于原始 Linux 内核并为 ARM 开发特定补丁。这些源代码补丁允许新的硬件支持并修复影响上游内核中 ARM 架构的现有错误。有时,这些补丁会通过自动化过程包含在各种内核中。
Linux 2.4 内核无疑不再与新的嵌入式项目相关,因为它早已被最新版本 2.6 所取代。虽然 2.6 系列内核以其对大型服务器的增强而闻名,但它还为资源受限的嵌入式设备添加了一组丰富的配置选项。

尽管使用 2.6 内核有很多好处,但它还是花了很长时间才成为新嵌入式系统的主要内容。目前使用的是2.6以后的新版本,内核版本的选择取决于应用、硬件和成本等诸多因素。新版本可能并不总是一个好的选择。

Linux 内核的主流 2.6 系列一般可从 kernel.org 获得。有两种方法可以获取此内核的源代码:

  • 作为存档,可以从中解压缩特定的内核版本。这些版本是独立的并发布用于开发。例如,您可以在名为 linux-2.6.20.tar.bz2 的文件中获取 2.6.20 内核版本。
  • 使用软件配置管理 (SCM) 工具,跟踪开发以及其他官方版本。您还可以使用各种工具查看内核更改,例如 gTIk 图形变更集监控工具,可让您跟踪每天的开发。

对于新的嵌入式项目,通常首选官方内核版本;所有开发人员的总体目标是在更高版本的官方内核中进行更改,以便它们可以立即用于未来的项目。传统上,嵌入式开发人员会选择特定版本的 Linux 内核并坚持使用它,直到需要进行极端更改。
Linux 内核是抢占式多任务处理。这意味着内核会暂停一些任务,以确保每个应用程序都可以使用 CPU例如,如果一个应用程序正在运行但正在等待一些数据,内核将暂停该应用程序以允许另一个程序使用 CPU 资源。否则,系统可能会在等待数据或其他程序运行的任务上浪费资源。然后内核将强制程序等待或停止使用 CPU。

Linux 内核是可移植的。可移植性是使 Linux 流行并适用于各种处理器和系统的最佳特性之一。一些受支持的处理器类型包括 AMD、ARM、Intel 等。

Linux 内核架构

尽管版本不同,Linux 内核的基本架构(图 1 和图 2)仍然保持不变。它基于两个级别的区别:内核空间和用户空间。程序驻留在用户空间中,而内核驻留在内核空间中。Kernel可以分为三个子层次:系统调用(读、写)、不依赖于架构的内核代码和依赖于系统架构的代码(Board Support Package,BSP)。其架构可分为以下子系统:

  • 硬件抽象层 (HAL)
  • 内存管理器
  • 调度器
  • 文件系统
  • I/O 子系统(输入/输出)
  • 网络子系统
  • 工业PC

硬件抽象层 (HAL) 将平台的硬件虚拟化,以便可以轻松地将不同的驱动程序移植到任何硬件上。HAL 等效于大多数实时 *** 作系统 (RTOS) 上可用的 BSP,除了商业 RTOS 上的 BSP 通常具有允许轻松移植的标准 API。HAL 支持以下硬件组件:处理器、缓存和 MMU、内存映射设置、中断处理、DMA 支持、总线管理和电源管理

嵌入式Linux设计:内核分析,pYYBAGLeC2aAd8JPAAA_W1GlUWs934.jpg,第2张

图 1:系统中的 Linux 内核

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2711540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存