1 Linux体系结构
由上图得知,Linux由用户空间和内核空间两部分组成。
为什么Linux系统会被划分称为用户空间与内核空间?
现代CPU通常实现两不同的工作模式,以ARM为例,实现了7中工作模式:
用户模式(usr),快速中断(fiq),外部中断(irq),系统模式(svc),数据访问终止(abt),系统模式(sys),未定义指针异常(und)。
X86也实现了4个不同的级别:Ring0-Ring3。Ring0下,可以执行特权指令,可以访问IO设备等,在Ring3则有很多限制。
Linux系统利用了CPU的这一特性,使用了其中的两级来分别运行Linux内核于应用程序,这样使得操作系统本身得到充分的保护。例如:如果使用X86,用户代码运行在Ring3,内核代码运行在Ring0。内核空间与用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。
Linux内核如何构成的?
2 Linux内核源代码
目录结构
Linux内核源代码采用树形结构进行组织,非常合理地把更能相关的文件都放在同一个子目录下,使得程序更具可读性。
内核源代码下载地址:www.kernel.org
*arch 目录
arch是architeture的缩写。内核所支持的每种CPU体系,在该目录下都有对应的子目录。每个CPU的子目录,有进一步分解为boot, mm ,kernel等子目录,分别包含控制系统引导,内存管理,系统调用等。
*block目录
部分块设备驱动程序
*crypto目录
加密、压缩、CRC校验算法
*documentation
内核的文档
*drivers目录
设备驱动程序
*fs目录
存放各种文件系统的实现代码。每个子目录对应一种文件系统的实现,公用的源程序用于实现虚拟文件系统vfs。
|| --devpts /*/dev/pts虚拟文件系统*/
|| --ext2 /*第二扩展文件系统*/
|| --fat /*MS的fat32文件系统*/
|| --isofs /*ISO9660光盘cd-rom上的文件系统*/
*include目录
内核所需要的头文件。与平台无关的头文件在include/linux子目录下,与平台相关的头文件则存放在相应的子目录中。
*init目录
内核初始化代码
*ipc目录
进程间通信的实现代码
*kernel目录
Linux大多数的关键的核心功能都是在这个目录实现(调度程序,进程控制,模块化)
*lib目录
库文件代码
*mm目录
Mm目录中的文件用于实现内存管理中于体系结构无关的部分
*net目录
网路协议的实现代码
*smaples
一些内核编程的范例
*scripts
配置内核的脚本
*security
Selinux的模块
*sound
音频设备的驱动程序
*usr
Cpio命令实现
*virt
内核虚拟机
分享到:
相关推荐
Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客 Linus Torvalds为尝试在...一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。
第五章+Linux内核简介.ppt
DM365 Linux 内核简介 GNU/Linux 操作系统的基本体系结构
linux内核简介,进程管理,进程调度等等,是ppt
Linux教程:第5章 Linux内核简介.ppt
嵌入式linux内核简介--smart210
Linux内核简介[参考].pdf
《Linux内核设计与实现》 第一章 读书笔记 Linux内核简介 面试被怼了Linux内核,于是决定好好看一下这本书。作为经典书籍,Linux内核设计与实现是一本很重要的书籍。在大学本科的课程中已经学习过有关操作系统的内容...
1.1 Linux内核简介. 1.2 Intel X86 CPU系列的寻址方式 1.3 i386的页式内存管理机制 1.4 Linux内核源代码中的C语言代码 1.5 Linux内核源代码中的汇编语言代码 第2章 存储管理 2.1 Linux内存管理的基本框架 2.2 地址...
linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核...
第一天 1. Linux内核简介 2. Linux内核源代码结构 3. Linux内核配置与裁剪 4. Linux内核模块开发 5. Linux内核启动流程 第二天 1. Linux内存管理 2. Linux进程地址空间 3. Linux内核地址空间 4. Linux内核链表 5. ...
鉴于此,《Linux内核精髓:精通Linux内核必会的75个绝技》选取了资源管理(CPU、内存、进程等)、文件系统、网络、虚拟化、省电、调试、概要分析、追踪、内核调整等Linux内核的核心主题进行了深入剖析和讲解,总结出...
理解Linux内核最好预备的知识点:懂C语言懂一点操作系统的知识熟悉少量相关算法懂计算机体系结构Linux内核的特点:结合了unix操作系统的一些基础概念Linux内核的任务:1.从技术层面讲,内核是硬件与软
linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码...
深入理解Linux内核 + Linux内核设计与实现,绝对完整,我最近也在学,建议先学Linux内核设计与实现,对Linux内核有一个大体的认识,在看深入理解Linux内核,要舍得花时间。
linux内核简介在Linux既允许把设备驱动程序在编译时静态地连接在内核中,一如传统的驱动程序那样;也允许动态地在运行时安装,称为“模块”;还允许在运行状态下当需
linux内核简介 linux内核版本号 linux为什么重新编译内核 linux内核编译模式 linux内核功能划分 linux内核编译步骤 其它升级内核的方法
linux内核设计说明,Linux内核设计与实现(第三版中文高清带目录)