前言
总感觉自己在linux驱动这块的基础比较薄弱,再学一下linux内核驱动的基础,重新巩固一下。趁着最近有时间尽快巩固一下,活到老学到老,温故而知新。
内核架构
内核分为微内核和宏内核(单体内核)架构。
宏内核
广泛开源的Linux内核属于宏内核,把设备驱动、文件系统等功能全部在内核中实现,运行在内核状态和同一个地址空间内。
- 优点:减少进程间的通信和状态切换的开销,可以获得比较高的运行效率;
- 缺点:内核庞大,占用更自由较多且不易裁剪。系统的稳定性和安全性不高,随便一个驱动挂了都会导致内核宕掉;
微内核
据说鸿蒙系统属于微内核架构的,内核只实现基本的功能,把图形、文件系统、设备驱动和通信相关功能放到内核外。
- 优点:结构清晰,易于协作开发。内核精练,灵活便于裁剪和移植。系统服务程序运行在内核外,系统的可靠性、安全性较高。
- 缺点:用户态和内核态频繁切换,效率低,性能偏低。
Linux内核概貌
Linux内核采用分层架构,主要包括3个部分
- 硬件层: 包括CPU、物理内存、主板、磁盘及相关外设;
- 内核空间: 包括Linux内核的核心部件, arch抽象层、设备管理抽象层、内存管理、进程管理、总线设备、字符设备及系统调用层;
- 用户空间:主要就是C语言库、应用程序和虚拟机了
行动,才不会被动!
欢迎关注个人公众号 微信 -> 搜索 -> fishmwei,沟通交流。
博客地址: https://fishmwei.github.io
掘金主页: https://juejin.cn/user/2084329776486919