一、Linux 内核特性


1、Linux 内核组织形式


Linux 内核组织形式 : 整体式结构 ;

Linux 内核 由很多 过程 组成 , 每个 过程 都可以进行 独立编译 ,

然后将独立编译的 内核模块 , 链接形成一个单独的 目标程序 ,

每个过程 , 对其它 过程 , 都是可见的 ,

这种组织形式 内部结构简单 , 并且 工作效率 高 ;

开发角度 看 , 基于 过程 结构 , 开发人员可以参与 整体 Linux 内核的开发过程 , 这是一个 开放式的结构 , 允许任何开发人员对其进行 修改 ;


2、Linux 进程调度


Linux 进程调度 简单 , 高效 ,

Linux 采用了 动态优先级 的调度方式 ;


3、Linux 内核线程


Linux 支持 内核线程 , 即 守护进程 , 其 运行效率 高于 普通线程 ;

内核线程 在 后台运行 , 不需要与 命令行终端结合 ;


4、Linux 内核多平台虚拟内存管理


Linux 内核支持 多平台 虚拟内存管理 ,

内存管理 与 硬件平台 相关性很高 , 不同的硬件平台 , 使用的内存管理方式是不同的 ,

Linux 内核为了保证 内存管理 的通用性 , 同时还要 兼容不同的硬件平台 ,

Linux 内核提供了 虚拟内存管理 机制 , 提供 统一的内存管理接口 , 可以将 Linux 内核很容易移植到新的硬件平台中 ;


5、Linux 虚拟文件系统


Linux 虚拟文件系统 , 英文全程 Virtual File System , 简称 VFS ;

虚拟文件系统 ( VFS ) 为 逻辑文件系统 ( FAT32 , NFTS , EXT2/3/4 ) 提供 统一的标准接口 , 也为 硬件设备 提供了 标准接口 ;


6、Linux 内核模块机制


Linux 模块机制 可以使得 Linux 内核能够 保持独立 , 并且 很容易 进行扩充 , 可以任意 添加 / 卸载 内核模块 ;

如 : 新增加了一个设备 , 设备驱动程序就是一个内核模块 , 可以 动态的安装该设备驱动程序内核模块 ; 移除设备后 , 也可以动态卸载内核模块 ;

在之前的博客 【Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 ) 中 , 编译完内核之后 , 直接将内核安装到 Ubuntu 操作系统中 , 替换了之前的内核 ;


7、Linux 定制系统调用


系统调用是 操作系统 提供的 可以 调用 内核功能的接口 ,

Linux 允许开发者 开发 自己的系统调用 , 然后将 系统调用 加载到 内核模块中 ,

动态增加 系统调用 , 可以满足用户特殊需求 ;


8、Linux 网络模块架构


Linux 内核网络模块 , 符合 面向对象思想架构 , 使得 内核 支持多种协议 , 支持多种网卡驱动程序 ;