0%

Linux基础复学(1)- 内核简介

前言

总感觉自己在linux驱动这块的基础比较薄弱,再学一下linux内核驱动的基础,重新巩固一下。趁着最近有时间尽快巩固一下,活到老学到老,温故而知新。

内核架构

内核分为微内核和宏内核(单体内核)架构。

宏内核

广泛开源的Linux内核属于宏内核,把设备驱动、文件系统等功能全部在内核中实现,运行在内核状态和同一个地址空间内。

  • 优点:减少进程间的通信和状态切换的开销,可以获得比较高的运行效率;
  • 缺点:内核庞大,占用更自由较多且不易裁剪。系统的稳定性和安全性不高,随便一个驱动挂了都会导致内核宕掉;

微内核

据说鸿蒙系统属于微内核架构的,内核只实现基本的功能,把图形、文件系统、设备驱动和通信相关功能放到内核外。

  • 优点:结构清晰,易于协作开发。内核精练,灵活便于裁剪和移植。系统服务程序运行在内核外,系统的可靠性、安全性较高。
  • 缺点:用户态和内核态频繁切换,效率低,性能偏低。

Linux内核概貌

Linux内核采用分层架构,主要包括3个部分

  • 硬件层: 包括CPU、物理内存、主板、磁盘及相关外设;
  • 内核空间: 包括Linux内核的核心部件, arch抽象层、设备管理抽象层、内存管理、进程管理、总线设备、字符设备及系统调用层;
  • 用户空间:主要就是C语言库、应用程序和虚拟机了

linuxlayer


行动,才不会被动!

欢迎关注个人公众号 微信 -> 搜索 -> fishmwei,沟通交流。

欢迎关注

博客地址: https://fishmwei.github.io

掘金主页: https://juejin.cn/user/2084329776486919