ARM-Linux内核知识点

ARM-Linux内核知识点

文章目录

  • ARM-Linux内核知识点
    • 前言
    • 一、概述
    • 二、ARM-Linux内核的主要架构及功能
    • 三、Linux内核源码目录结构
    • 四、ARM-Linux进程管理
    • 五、进程的创建
    • 六、进程、线程和内核线程
    • 七、进程的执行(exec函数族)
    • 八、总结构图

前言

这方面的知识点是计科有别于软件工程专业的知识,偏向计算机底层知识,也偏向硬件方面,本次参考教科书是《嵌入式系统设计与应用》。

一、概述

Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

  1. Linux是一个一体化内核系统
  2. 内核指的是一个提供硬件抽象系统层、磁盘及文件系统控制、多任务等功能的系统软件,一个内核不是一套完整的操作系统
    ARM-Linux内核知识点_第1张图片

二、ARM-Linux内核的主要架构及功能

  1. 进程管理:负责管理CPU资源,负责进程的创建和销毁

  2. 内存管理(重要资源)

  3. 虚拟文件系统:用于对外设的驱动和存储,隐藏了各种硬件的具体细节

  4. 进程间通信:不同进程之间的通信是操作系统的基本功能之一

  5. 网络管理:提供各种网络标准的存取和各种网络硬件的支持,负责管理系统的设备。

    网络接口
        网络设备驱动程序
        网络协议
    

在这里插入图片描述
ARM-Linux内核知识点_第2张图片

三、Linux内核源码目录结构

  1. arch目录:包括所有和体系结构相关的核心代码

  2. include目录:包含编译核心所需要的大部分头文件

  3. init目录:包含核心的初始化代码

  4. mm目录:包含了所有的内存管理代码

  5. drivers目录:系统所有的设备驱动程序

  6. ipc目录:包含了核心进程间的通信代码

  7. modules目录:存放了已建好的、可动态加载的模块

  8. fs目录:存放Linux支持的文件系统代码

  9. kernel目录:存放内核管理的核心代码

  10. net目录:核心的网络部分代码

  11. lib目录:核心的库代码

  12. scripts目录:包含用于配置核心的脚本文件
    ARM-Linux内核知识点_第3张图片

四、ARM-Linux进程管理

1. 调度策略模块
2. 与体系结构相关调度器模块
3. 独立体系结构调度器模块
4. 系统调用接口模块

ARM-Linux内核知识点_第4张图片

五、进程的创建

  1. fork()
    - fork()创建的进程不会共享父进程的任何资源
    子进程会完全复制父进程的资源,也就是说父子进程是相对独立

  2. vfork()
    CLONE_VFORK标志使得子进程先于父进程执行,父进程会阻塞子进程结束或执行新的程序
    CLONE_VM标志是的子进程可以共享父进程的内存空间(父进程的页表项除外)

  3. clone()
    通常用于创建轻量级进程
    ARM-Linux内核知识点_第5张图片
    ARM-Linux内核知识点_第6张图片

六、进程、线程和内核线程

  1. 进程:系统分配的基本单位

  2. 线程:程序独立运行的基本单位(也称为小型进程)

  3. 内核线程:内核中特殊的线程

  4. task_struct数据结构表示,do_fork()函数来创建
    ARM-Linux内核知识点_第7张图片

七、进程的执行(exec函数族)

execl()
execv()
execle()
execlp()
execvp()
头文件(#include

ARM-Linux内核知识点_第8张图片

八、总结构图


ARM-Linux内核知识点_第9张图片

你可能感兴趣的:(Linux学习,linux,arm开发,arm)