zl程序教程

您现在的位置是:首页 >  系统

当前栏目

STM32MP157 Linux系统移植开发篇6:Linux内核简介

Linux内核系统开发 简介 移植 STM32MP157
2023-09-11 14:15:51 时间

本文章为《STM32MP157 Linux系统移植开发篇》系列中的一篇,笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板)。stm32mp157是ARM双核,2个A7核,1个M4核,A7核上可以跑Linux操作系统,M4核上可以跑FreeRTOS、RT-Thread等实时操作系统,STM32MP157开发板所以既可以学嵌入式linux,也可以学stm32单片机。

针对FS-MP1A开发板,除了Linux系统移植篇外,还包括其他多系列教程,包括Cortex-A7开发篇、Cortex-M4开发篇、扩展板驱动移植篇、Linux应用开发篇、FreeRTOS系统移植篇、Linux驱动开发篇、硬件设计篇、人工智能机器视觉篇、Qt应用编程篇、Qt综合项目实战篇等。欢迎关注,更多stm32mp157开发教程及视频,可加技术交流Q群459754978,感谢关注。

关于FS-MP1A开发板:
手机淘宝分享码:复制本行文字打开手淘₤T4FPXn3YYJ2₤
链接:https://item.taobao.com/item.htm?id=622457259672

Linux内核简介

Linux内核是Linux操作系统的核心,也是整个Linux功能体现。它是用C语言编写,符合POSIX标准。Linux最早是由芬兰黑客Linus Torvalds为尝试在英特尔X86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,这里有一份Linus Torvalds当时在Usenet新闻组comp.os.minix所登载的帖子,这份著名的帖子标志着Linux计划的正式开始。在计划的早期有一些Minix黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。

今天Linux是一个一体化内核(Monolithic Kernel)系统。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(Modularize)的形式设置,并在系统运行期间可直接装载或卸载。

Linux内核主要功能包括:进程管理、内存管理、文件管理、设备管理、网络管理等。

  • 进程管理:进程是在计算机系统中资源分配的最小单元。内核负责创建和销毁进程, 而且由调度程序采取合适的调度策略,实现进程之间的合理且实时的处理器资源的共享。从而内核的进程管理活动实现了多个进程在一个或多个处理器之上的抽象。内核还负责实现不同进程之间、进程和其他部件之间的通信。
  • 内存管理:内存是计算机系统中最主要的资源。内核使得多个进程安全而合理地共享内存资源,为每个进程在有限的物理资源上建立一个虚拟地址空间。内存管理部分代码可以分为硬件无关部分和硬件有关部分:硬件无关部分实现进程和内存之间的地址映射等功能;硬件有关部分实现不同体系结构上的内存管理相关功能并为内存管理提供硬件无关的虚拟接口。
  • 文件管理:在Linux系统中的任何一个概念几乎都可以看作一个文件。内核在非结构化的硬件之上建立了一个结构化的虚拟文件系统,隐藏了各种硬件的具体细节。从而在整个系统的几乎所有机制中使用文件的抽象。Linux在不同物理介质或虚拟结构上支持数十种文件系统。例如, Linux支持磁盘的标准文件系统ext3和虚拟的特殊文件系统。
  • 设备管理:Linux系统中几乎每个系统操作最终都映射到一个或多个物理设备上。 除了处理器, 内存等少数的硬件资源之外, 任何一种设备控制操作都由设备特定的驱动代码来进行。内核中必须提供系统中可能要操作的每一种外设的驱动。
  • 网络管理:内核支持各种网络标准协议和网络设备。网络管理部分可分为网络协议栈和网络设备驱动程序。网络协议栈负责实现每种可能的网络传输协议(TCP/IP协议等);网络设备驱动程序负责与各种网络硬件设备或虚拟设备进行通讯。