加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

【Linux内核源码剖析】内核源码的组织结构

发布时间:2022-12-03 08:03:17 所属栏目:Linux 来源:未知
导读: 文章目录
前言
如果说CPU是计算机硬件的心脏,那么操作系统的内核就是整个计算机系统的心脏,或者说是最高管理机构。。。
一、Linux内核的特征 Linux内核组织形式为整体式、开放式结构,也

文章目录

前言

如果说CPU是计算机硬件的心脏,那么操作系统的内核就是整个计算机系统的心脏,或者说是最高管理机构。。。

一、Linux内核的特征 Linux内核组织形式为整体式、开放式结构,也就是说整个内核有许多个过程组成,每个过程可以单独编译。特点:内部结构简单,工作效率高。进程调度方式简单而有效。支持内核线程(守护进程),在后台运行的线程。支持多种平台的虚拟内存管理。内核有自己特殊的虚拟文件系统。模块机制,使得内核保持独立,又容易扩充。增加了系统调用,内核也允许用户自己添加系统调用。面向对象。 二、为什么要学Linux内核 提升研发出高水平软件;开发自己的操作系统;有助于计算机科学领域研究;Linux系统性能优化; 三、Linux操作系统结构 1. Linux内核在系统中的位置

Linux内核并不是孤立,要把它放到整个系统中去研究更容易理解,如下图所示内核在操作系统中的位置。

在这里插入图片描述

2. Linux内核子系统之间的关系

Linux内核由五大主要子系统组成,它们之间的关系为:

在这里插入图片描述

3. 系统主要的数据结构

在Linux内核中,有些使用频度较高的数据结构有:

task_struct:代表一个进程数据结构指针形成一个task数组。mm_struct:代表进程的虚拟内存。inode:代表虚拟文件系统中的文件、目录等对应的索引节点(inode)。 三、Linux内核源码目录组织结构

Linux内核版本有两种:稳定版和开发版,Linux内核版本号由三组数字组成。

第一组数字:目前发布的内核主版本;

第二组数字:偶数表示稳定版本,奇数表示开发中版本;

第三组数字:错误修补次数。

例如:Linux3.4.31

第一组数字:3,主版本号;

第二组数字:4, 次版本号,表示稳定版本(因为是偶数);

第三组数字:31,修订版本号,表示修改的次数,头两个数字全在一起可以描述内核系列。

为了深入地了解Linux的实现机制,还必须阅读Linux的内核源代码,下面是对有关源代码的介绍。内核源代码的版本多,对不同的内核版本Linux 系统目录结构,系统调用一般是相同的。新版本也许可以增加一个新的系统调用,在大多数情况下,设备文件将仍然相同,而另一方面,版本之间的内部接口有所变化。

本系列文章以Linux4.4.4版本为例。

在这里插入图片描述

arch目录:不同平台体系相关代码;

block目录:块设备驱动;

certs目录:与认证和签名相关代码;

crypto目录:内核常用加密。压缩算法等代码;

Documentation目录:描述模块功能和协议规范代码;

Drivers目录 :驱动程序(USB总线、PCI总线、显卡驱动等);

firmware目录 : 主要是一些二进制固件;

fs目录 : 虚拟文件系统代码;

include目录 :内核源码依赖的绝大部分头文件;

init目录 :内核初始化代码,联系到内存各个组件入口;

ipc目录:进程间通信实现,比如共享内存、信号量、匿名管道等;

kernel目录 :内核核心代码,包括进程管理、IRQ、时间等;

lib目录:C标准库的子集;

mm目录: 内存管理相关实现;

net目录: 网络协议代码,比如TCP、IPv6、WiFi、以太网实现等等;

samples目录: 内核实例代码;

scripts目录: 编译和配置内核所需脚本;perl/bash;

security目录: 内核安全模型相关代码;如selinux

sound目录: 声卡驱动源码;

tools目录: 与内核交互;

usr目录: 用户打包和压缩内核的实现源码;

virt目录: /kvm虚拟化目录相关支持实现;

在这里插入图片描述

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!