Linux体系结构

linux内核结构:

system call interface (SCI层)

为用户空间提供了一套标准的系统调用函数来访问linux内核。

process management (PM层)

进程管理是创建进程,停止进程,并控制他们之间的通信。还包括进程

调度,控制活动进程如何共享cpu

Memory Management (MM)

内存管理的主要作用是控制多个进程安全的共享内存区域。

Virtual file systems (VFS)

虚拟文件系统,隐藏各种文件系统的具体细节,为文件操作提供统一的接口

linux提供了一个打得通用模型,使这个模型包含了所有文件系统功能的集合(一切皆文件)

device drivers 设备驱动

linux内核中有大量的代码在设备驱动程序部分,用于控制特定的硬件设备。

linux驱动一般分为网络设备、块设备、字符设备、杂项设备

网络协议栈

内核网络协议栈为linux提供了丰富的网络协议实现。

内核程序结构:

arch目录,

arch目录是平台目录。内核支持的所有CPU架构,在该目录下都有对应的子目录。每个cpu的子目录,

又进一步分解为boot,mm,kernel等子目录,分别控制系统的引导,内存管理,系统调用。

还有动态调频,主频率设置部分等。

binary目录,

无源码的驱动以二进制放到该文件夹

block目录,

部分块设备驱动程序

crypto目录,

加密压缩CRC校验

documentation目录,

内核的使用说明文档

drivers目录,

设备驱动

firmware目录,

固件接口

fs目录,

存放各种文件系统的实现代码

include目录,

通用的头文件在include/linux

init目录,

内核初始代码,

ipc目录,

进程通信的源码

virt目录,

内核虚拟机

kernel目录,

linux核心功能源码,程序调度,控制进程,模块化等

lib目录,

库文件代码

mm目录,

实现内存管理(与平台体系无关的部分)

net目录,

网络协议实现代码

samples目录,

内核编程的范例

scripts目录,

配置裁减内核的工具脚本

security目录,

包括不同的linux安全模型代码

sound目录,

音频设备的驱动程序

tools目录,

将.c编译成目标文件,连接合并可运行的内核镜像文件等

usr目录,

实现用于打包和压缩的cpio等

学习的重点是驱动开发相关的知识、函数的调用、驱动的协议、简单的硬件知识

原文地址:https://www.cnblogs.com/chulin/p/10354034.html