Day2 简单介绍linux kernel 的架构

linux 是作业系统,是硬体与应用程序之间沟通的桥梁,应用程序想要使用硬体,都需要有作业系统的协助。

上图是linux的架构图,列出了linux kernel 中比较重要的功能,以下简单介绍几个重要的部分,也会在後续的文章中出现。

行程管理

程序(process)是linux中重要的概念,其中包含了选择下一个要执行的程序,并且在切换运行程序的时候要进行上下文切换(context switch),更甚至要在多个程序同时运行的状况下,能够正常运行。在後续的文章中会介绍基本常见的排程方法,以及linux过去使用的O(1)排成,到目前的CFS算法,更甚至到现今因应效能而生的 EAS 排成器(Energy Awareness Scheduler)。除了排程器以外还会介绍 Process 基本包含的资料。

记忆体管理

记忆体管理在 linux 系统中是非常复杂的一部份,为了让使用者能更流畅更舒服的使用,记忆体管理牵涉到实体记忆体与虚拟记忆体,虚拟记忆体让多个程序可以同时运行,让程序实际的大小能比记忆体的大小更大。更有页面回收(page reclamation) 、分页错误(page fault)、 记忆体共享(memory share)等等议题,还有如何选出要被替换的页面(page),也是个学问。

中断管理

中断管理中包含例外(exception),与中断(interrupt),例外包含程序错误例外、软件产生例外、机械错误例外。 中断则通常是外部设备透过中断信号告知处理器,处理器会停下目前执行的指令处理中断。在linux中提供了 softirq, tasklet 等等作法。

档案系统

Linux 核心为了统合各个档案系统实作,引入一层虚拟档案系统 ((Virtual File System, VFS),後者是一组档案操作的抽象介面,於是依循 VFS 界面开发的任何的档案系统,可在执行时期挂载到 Linux 核心,在 FUSE (Filesystem in Userspace) 出现後,更给档案系统开发者极大的弹性,能够快速且多样地延展作业系统的特徵

以上节录自 jserv老师 Linux 核心设计: 档案系统概念及实作手法

以上就是简单的了解linux kernel的架构,上述的重要的概念都会在後续的文章中进行细部的分享,希望我能持续支撑下去,如果以上的内容有任何问题麻烦看官不吝赐教。

後记

day2 差点赶不及死线,以後真的要早上动笔,或是做一些存货,才能够偶尔偷懒。


<<:  [D02]k8s基本名词认识-01

>>:  Day2 Python 基础教学 (一)

{CMoney战斗营} 的第八周 #如果我不再这里学习

游戏专题进行了半个月,耗费最大的心力是在处理碰撞的逻辑问题,为1 Pixcel的逻辑误差斤斤计较,不...

GIT 基本观念和指令

从0开始学Git git init - (初始化) 在想要做版本控制的资料夹中下指令便能开始使用。 ...

Day20 X CDN

CDN 这个名词在前面的篇章应该出现过蛮多次的,一直感到困惑的朋友们不用担心,今天终於要来好好介绍...

Day30_终於结束了

嗨~大家,30天说长不长,说短也不短,谢谢这30天来大家的陪伴,坚持30天不间断的发文,真的是一个大...

Day.21 Fibonacci

Fibonacci(斐波那契数),大家多少一定会在教课书看过,老实说到我出社会工作都还没搞懂,之前每...