linxu内核学习笔记
参考文章
软件分层思想
- BSP:嵌入式底层系统开发,调试程序,让特定的系统跑在特定的板子上,具体的工作包括调Bootloader程序,加载操作系统内核,文件系统的加载,外设驱动程序的开发。
- 驱动开发:驱动与底层硬件直接打交道,充当了硬件与应用软件中间的桥梁。
- 应用层:网络服务层、文件系统、虚拟化
- 基础服务:进程、内存管理、VFS、中断、任务调度
模块化设计
- 更细粒度的模块划分、模块依赖
- 功能、模块、子系统、框架
- Linux内核中的OOP思想
- 结构体
- 函数指针
宏内核与微内核
- 宏内核:宏内核将操作系统的所有核心功能集中到一个大的内核空间中,所有服务(如设备驱动、文件系统、内存管理等)都运行在内核态,紧密集成在一起。这种设计简化了模块间的交互,提高了性能,但增加了复杂性和维护难度。
- 微内核:微内核只保留最基本的系统功能,如进程管理、内存管理和消息传递等,其他高级功能如设备驱动、文件系统和网络协议等在用户空间以服务的形式运行。这种设计提高了系统的模块化和可扩展性,但可能会降低性能。
内核的加载
- 静态加载:将新功能的源码与内核其它代码一起编译进uImage内核镜像文件内。
- 动态加载:新功能源码与内核其它源码不一起编译,而是独立编译成内核的插件(被称为内核模块)文件.ko
内核模块
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 若水の博客!
评论