[LX-00]Linux-内核架构简介(Kernel Architecture Overview)

ver0.1

前言

本来已经开始写虚拟化的调度相关文章了,写到一半发现应该先把单系统调度原理介绍清楚。按照我们一贯的风格还是从一个宏观的视角入手逐渐的分解到局部再细化到具体的模块去介绍,才能够系统性讲清楚一个课题。按照这个思路,我们就需要先介绍一个单系统的架构,我们选择的这个系统就是Linux。Linux博大精深,互联网上有大量大神的文章和很多经典的书籍介绍,本着脑袋笨就勤奋一点的原则,这里我们冒昧的搬运一些知识过来,主要的还是服务于我们的虚拟化主线,让我们后续的文章更丰满和立体。过程中有什么纰漏之处,也请大家多多的做自我批评,因为和作者的水平没有任何关系(哈哈),还有Linux的大神如果不幸看见了本系列文章请尽快保护眼睛远离。
研究Linux同样还是要有一些基础,建议大家读读前序的文章,找找感觉:
(1)[V-00] 虚拟化概论-思想篇
(2)[V-02] 虚拟化基础-CPU架构(基于AArch64)
(3)[A-09]ARMv8/ARMv9-Memory-内存地址空间(Translation Regimes)
(4)[A-14]ARMv8/ARMv9-Memory-内存模型的类型(Device & Normal)
(5)[V-08][Device Virtualization]-软件虚拟化技术vs硬件虚拟化技术

正文

1.1 Kernel Overview

1.1.1 系统架构概述

读过前面的文章的小伙伴们应该知道,我们介绍软件架构之前,能力范围之内的都是要先介绍一下系统架构。如果对硬件的结构和运行的原理一点也不了解的话,是很难透彻理解软件架构的,也就是说即便你反复读过代码和文章始终还是会觉得少那么一点意思。基于此,所以我们还是先认识一下硬件,如图1-1所示:
1-1

图1-1 High Level Soc ARCH

上面是一个经典的嵌入式领域的SOC(System on Chip)的系统架构图,当然我们已经把这个SOC通过接口连接上了外设。SOC上的各个IP通过总线连接在一起构成了这个硬件平台的基础能力,比如有了GPU就可以更加高效的渲染画面,有ADsp就可以组织起更加复杂的Audio子系统(多路Mic和多路外放)、有了IMU就可以支撑起更多的摄像头,有了NPU就可以进行更加高效的AI运算(大模型和小模型就可以在嵌入式平台跑起来)。这些IP也有性能的差异,主要是算力和IO的效率以及收到SOC设计合理性的影响,就比如好的SOC Layout一定会大大降低系统散热的开销,从而进一步的发挥各个IP的能力。当然一个硬件平台最重要的节点一定是CPU,他就是真个硬件世界的指挥官,硬件的一切行为都是从它这里发出来的,其他的硬件必须服从,但是CPU也不能任性妄为也需要考虑当前硬件平台的工况和各个IP的能力。
通过上面的描述并结合图1-1,希望大家了解一个关键点,那就是资源,上面的一切其实都是软件世界运行所要依赖的硬件资源。

1.1.2 操作系统概述

现在情况是硬件资源已经有了,下面的任务就是使用这些资源了。软件模块A想播放音乐,软件模块B想浏览网页,这种情况还好,可是软件模块C想播放铃声并且弹窗显示怎么办,因为这个时候硬件资源出现了竞争关系。俗话说家有千口,主事一人,这个时候就诞生了操作系统。我们看下一般的计算机书籍上对操作系统的定义:

操作系统的定义与⽬标:
定义:操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件。
⽬标:⽅便性,有效性(提⾼系统资源的利⽤率、提⾼系统的吞吐量),可扩充性,开放性操作系统。
(Operating System,OS):是管理计算机硬件与软件资源的系统软件 ,同时也是计算机系统的内核与基⽯ 。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输⼊与输出设备、操作⽹络与管理⽂件系统等基本事务。操作系统也提供⼀个让⽤⼾与系统交互的操作界⾯。

从上面的定义不难看出操作系统就是用来管理和分配硬件资源的一层软件,目的就是为了使整个软件系统运行的效能最大化,充分发挥出硬件的能力。这样看来OS就是整个软件世界的大哥,但是在任何时代任何环境中,大哥都不是那么好当的,你得具备当大哥的气质,如图1-2所示:
1-2

图1-2 OS Basic Features

OS重要的基本特征:
(1) 并发(concurrency):就是操作系统在一定的时间段内具有处理多个任务的能力,能够灵活的调度资源满足不同需求。
(2) 共享(sharing):就是操作系统不能偏心,硬件的资源可以让所有的软件模块共同使用,可以根据硬件资源本身的能力同时共享或者是互斥共享。
(3)异步(asynchronous):就是这个系统要具有处理异步事件的能力,各个软件模块在按照自身的逻辑运行的过程中,得有处理突发事件的能力,比如一个U盘插了上来,或者来了一个电话。异步的处理能力实际上也是现代操作系统的核心能力之一,不然整个软件事件只能单调而乏味的按部就班的执行,好无趣。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值