作者:TheKing小狼 | 来源:互联网 | 2023-10-16 06:47
ARM-Linux内核知识点文章目录ARM-Linux内核知识点前言一、概述二、ARM-Linux内核的主要架构及功能三、Linux内核源码目录结构四、ARM-Linux进程管理五
ARM-Linux内核知识点
文章目录
- ARM-Linux内核知识点
- 前言
- 一、概述
- 二、ARM-Linux内核的主要架构及功能
- 三、Linux内核源码目录结构
- 四、ARM-Linux进程管理
- 五、进程的创建
- 六、进程、线程和内核线程
- 七、进程的执行(exec函数族)
- 八、总结构图
前言
这方面的知识点是计科有别于软件工程专业的知识,偏向计算机底层知识,也偏向硬件方面,本次参考教科书是《嵌入式系统设计与应用》。
一、概述
Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
- Linux是一个一体化内核系统
- 内核指的是一个提供硬件抽象系统层、磁盘及文件系统控制、多任务等功能的系统软件,一个内核不是一套完整的操作系统
二、ARM-Linux内核的主要架构及功能
-
进程管理:负责管理CPU资源,负责进程的创建和销毁
-
内存管理(重要资源)
-
虚拟文件系统:用于对外设的驱动和存储,隐藏了各种硬件的具体细节
-
进程间通信:不同进程之间的通信是操作系统的基本功能之一
-
网络管理:提供各种网络标准的存取和各种网络硬件的支持,负责管理系统的设备。
网络接口网络设备驱动程序网络协议
三、Linux内核源码目录结构
-
arch目录:包括所有和体系结构相关的核心代码
-
include目录:包含编译核心所需要的大部分头文件
-
init目录:包含核心的初始化代码
-
mm目录:包含了所有的内存管理代码
-
drivers目录:系统所有的设备驱动程序
-
ipc目录:包含了核心进程间的通信代码
-
modules目录:存放了已建好的、可动态加载的模块
-
fs目录:存放Linux支持的文件系统代码
-
kernel目录:存放内核管理的核心代码
-
net目录:核心的网络部分代码
-
lib目录:核心的库代码
-
scripts目录:包含用于配置核心的脚本文件
四、ARM-Linux进程管理
1. 调度策略模块
2. 与体系结构相关调度器模块
3. 独立体系结构调度器模块
4. 系统调用接口模块
五、进程的创建
-
fork()
- fork()创建的进程不会共享父进程的任何资源
子进程会完全复制父进程的资源,也就是说父子进程是相对独立
-
vfork()
CLONE_VFORK标志使得子进程先于父进程执行,父进程会阻塞子进程结束或执行新的程序
CLONE_VM标志是的子进程可以共享父进程的内存空间(父进程的页表项除外)
-
clone()
通常用于创建轻量级进程
六、进程、线程和内核线程
-
进程:系统分配的基本单位
-
线程:程序独立运行的基本单位(也称为小型进程)
-
内核线程:内核中特殊的线程
-
task_struct数据结构表示,do_fork()函数来创建
七、进程的执行(exec函数族)
execl()
execv()
execle()
execlp()
execvp()
头文件(#include)
八、总结构图