linux内核简介

1、linux的构成

①linux系统构成

②为什么要将linux系统划分为 内核空间和用户空间
主要是为了保护内核代码不被普通用户程序给搞死,本质是因为两者权限不同,运行时访问的寄存器不同,主要是为了保护内核代码的正常运行。
③如何进行linux运行状态的切换?
linux中运行状态的切换是通过系统调用或者是硬件中断来进行切换的,比如当用户程序正在运行时,这是产生硬件中断,用户程序就会停下来切换到内核态去处理相应的中断,当中断处理完毕之后再返回用户态继续执行用户的相应程序。

2、linux内核是如何构成的?
linux内核由7个部分组成,或者说是由7个子系统组成。
①SCI系统调用接口,比如是open,read,write等函数的具体实现
②进程管理模块(PM) 比如进程创建,进程调度,进程回收等的实现
③内存管理模块(MM) 主要负责内存的分配,回收等功能的实现
④Arch体系结构相关代码 一般和CPU密切相关,类似于Uboot中将某一个芯片和硬件的相关的代码进行集合(CPU目录),使用的根据相应的CPU进行选调相应的代码编译执行。
⑤VFS虚拟文件系统
⑥网络协议栈
⑦设备驱动程序

3、linux内核源代码:
(1)下载linux内核源代码: www.kernel.org
(2)内核源代码的目录结构:
①arch目录
arch是architecture的缩写,内核所支持的每种CPU体系,在该目录下都有对应的子目录,每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别包含控制系统引导,内存管理,系统调用等
②documention
内核的文档 包括驱动的使用方法,内核更新记录等等信息
③drivers目录
设备驱动程序
④include目录
内核所需要的头文件,与平台无关的头文件在include/linux子目录下,与平台相关的头文件则放在相应的平台子目录中。
⑤fs目录(file system简称)
存放各种文件系统的实现代码,每个子目录对应一种文件系统的实现,公用的源程序用于实现虚拟文件系统VFS
devpt /*/dev、pts虚拟文件系统*/
ext2 /*第二扩展文件系统*/
fat /*MS的fat32文件系统*/
ISOfs /*ISO9660光盘CD-rom上的文件系统*/
⑥net目录(不是实现网卡驱动,而是实现网络协议的)
网络协议的实现代码
802 802无线通讯协议核心支持代码
appletalk 与苹果系统连网的协议
ax25 AX25无线INTERNET协议
bridge 桥接设备
ipv4 IP协议簇V4版32位寻址模式
IPv6 IP协议簇V6版

猜你喜欢

转载自blog.csdn.net/ass_dsb/article/details/78712553