• Linux内核学习笔记2——Linux内核源码结构


    一 内核组成部分

      内核是一个操作系统的核心,主要由五个部分组成:进程调度,内存管理,虚拟文件系统,网络结构,进程间通信。
      

      1、进程调度(SCHED)

      控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其他资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。
      2、内存管理(MM)

      允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存,即在计算机中运行的程序,其代码,数据,堆栈的总数可以超过实际内存的大小操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。必要时,操作系统负责在磁盘和内存间交换程序块。内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。
      3、虚拟文件系统(VFS)

      隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口。VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。
      4、网络接口(NET)

      提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网路设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。
      5、进程间通讯(IPC)

      支持进程间各种通信机制。

      6、内核系统模块结构及相互依赖关系

      7、内核结构框图

      严格说Linux并不能称作一个完整的操作系统,我们安装时通常所说的Linux,是有很多集合组成的,应称为GNU/Linux

    二 内核代码的目录结构

      arch:与CPU体系结构相关代码
      block:块设备驱动管理代码
      crypto:加密算法:散列算法CRC校验
      Documentation:内核各部分通用解释文档
      drivers:设备驱动代码
      firmware:固件相关代码
      fs:文件系统相关代码
      include:内核公共头文件
      init:内核初始化代码
      ipc:进程间通信代码
      kernel:内核核心代码,比如进程调度、定时器等
      lib:内核库代码
      Makefile:整个内核代码工程文件
      mm:内存管理代码
      net:网络相关代码,主要是协议层代码
      samples:例程代码
      scripts:用于配制内核的脚本处理相关代码
      security:用于SElinux安全相关代码
      sound:音频设备驱动管理代码
      tools:内核工具
      virt:虚拟机制相关代码
      usr:实现一个cpio

  • 相关阅读:
    让IT工作者过劳的13个坏习惯zz
    WPF Radio button的解决方案
    程序退出的各种方法,如何关闭多线程。
    文本框输入自动切换输入法问题
    在外部js文件中读取带母版页的子页当中控件的值
    Showwindow/FindWindow/PostMessage 转
    vb读取字节中的某一位
    C# 禁止windows程序重复运行的两种基本方法
    C# DllImport的用法(转)
    sqlserver存储过程中sql语句连接及datetime字段的处理
  • 原文地址:https://www.cnblogs.com/zjzsky/p/3528151.html
Copyright © 2020-2023  润新知